flock-core 0.5.0b63__tar.gz → 0.5.0b70__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.0b70}/.gitignore +1 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/AGENTS.md +29 -0
- flock_core-0.5.0b63/README.md → flock_core-0.5.0b70/PKG-INFO +56 -0
- flock_core-0.5.0b63/PKG-INFO → flock_core-0.5.0b70/README.md +24 -30
- flock_core-0.5.0b70/docs/bugfixes/websocket-streaming-deadlock-fix.md +203 -0
- flock_core-0.5.0b70/docs/guides/mcp-roots.md +416 -0
- flock_core-0.5.0b70/docs/guides/persistent-blackboard.md +92 -0
- flock_core-0.5.0b70/docs/internal/implementation-summary-server-specific-mounts.md +153 -0
- flock_core-0.5.0b70/docs/internal/mcp-server-config-typeddict.md +230 -0
- flock_core-0.5.0b70/docs/internal/sqlite-blackboard-store/README.md +24 -0
- flock_core-0.5.0b70/docs/internal/sqlite-blackboard-store/dashboard-playwright-mcp.md +44 -0
- flock_core-0.5.0b70/docs/internal/sqlite-blackboard-store/domain.md +23 -0
- flock_core-0.5.0b70/docs/internal/sqlite-blackboard-store/interfaces.md +25 -0
- flock_core-0.5.0b70/docs/internal/sqlite-blackboard-store/patterns.md +44 -0
- flock_core-0.5.0b70/docs/specs/001-sqlite-blackboard-store/PLAN.md +169 -0
- flock_core-0.5.0b70/docs/specs/001-sqlite-blackboard-store/PRD.md +146 -0
- flock_core-0.5.0b70/docs/troubleshooting/streaming-freeze-fix.md +169 -0
- flock_core-0.5.0b70/docs/troubleshooting/streaming-freeze-with-dashboard-fix.md +50 -0
- flock_core-0.5.0b70/docs/tutorials/connect_with_ollama.md +255 -0
- flock_core-0.5.0b70/examples/00-clean/01-the-declarative-way/01_declarative_pizza.py +38 -0
- flock_core-0.5.0b70/examples/00-clean/01-the-declarative-way/02_input_and_output.py +96 -0
- flock_core-0.5.0b70/examples/00-clean/01-the-declarative-way/03_mcp_and_tools.py +106 -0
- flock_core-0.5.0b70/examples/00-clean/02-the-blackboard/01_persistent_pizza.py +68 -0
- flock_core-0.5.0b70/examples/00-clean/03-the-dashboard/01_declarative_pizza.py +32 -0
- flock_core-0.5.0b70/examples/00-clean/03-the-dashboard/02-dashboard-edge-cases.py +57 -0
- flock_core-0.5.0b70/examples/00-clean/03-the-dashboard/03-scale-test-100-agents.py +75 -0
- flock_core-0.5.0b70/examples/00-clean/03-the-dashboard/04_persistent_pizza_dashboard.py +62 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_01_code_detective.py +67 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_02_band_formation.py +93 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_03_web_detective.py +102 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_04_debate_club.py +98 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_05_tracing_detective.py +100 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_06_secret_agents.py +111 -0
- flock_core-0.5.0b70/examples/00-clean/05-claudes-workshop/lesson_07_news_agency.py +134 -0
- flock_core-0.5.0b70/examples/00-clean/06-readme/01-BugDiagnosis.py +55 -0
- flock_core-0.5.0b70/examples/00-clean/README.md +44 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/01-the-declarative-way/01_declarative_pizza.py +0 -1
- flock_core-0.5.0b70/examples/01-the-declarative-way/04_mcp_roots.py +299 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/01-the-declarative-way/README.md +6 -1
- flock_core-0.5.0b70/examples/02-the-blackboard/01_persistent_pizza.py +114 -0
- flock_core-0.5.0b70/examples/03-the-dashboard/04_persistent_pizza_dashboard.py +106 -0
- flock_core-0.5.0b70/examples/08-ollama/08_ollama_example.py +91 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/pyproject.toml +3 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/agent.py +205 -27
- flock_core-0.5.0b70/src/flock/cli.py +147 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/dashboard/websocket.py +13 -2
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/engines/dspy_engine.py +70 -13
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/examples.py +4 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/README.md +15 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/package-lock.json +11 -21
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/package.json +1 -1
- flock_core-0.5.0b70/src/flock/frontend/src/App.tsx +147 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/__tests__/e2e/critical-scenarios.test.tsx +4 -5
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/__tests__/integration/filtering-e2e.test.tsx +7 -3
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/ArtifactTypeFilter.tsx +21 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/FilterFlyout.module.css +104 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/FilterFlyout.tsx +80 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/FilterPills.module.css +220 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/FilterPills.test.tsx +189 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/FilterPills.tsx +143 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/ProducerFilter.tsx +21 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/SavedFiltersControl.module.css +60 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/SavedFiltersControl.test.tsx +158 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/SavedFiltersControl.tsx +159 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/TagFilter.tsx +21 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/filters/TimeRangeFilter.module.css +24 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/filters/TimeRangeFilter.tsx +6 -1
- flock_core-0.5.0b70/src/flock/frontend/src/components/filters/VisibilityFilter.tsx +21 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/GraphCanvas.tsx +24 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/layout/DashboardLayout.css +13 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/layout/DashboardLayout.tsx +8 -24
- flock_core-0.5.0b70/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.module.css +288 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.tsx +460 -0
- flock_core-0.5.0b70/src/flock/frontend/src/components/modules/HistoricalArtifactsModuleWrapper.tsx +13 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/ModuleRegistry.ts +7 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/registerModules.ts +9 -10
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/hooks/useModules.ts +11 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/api.ts +140 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/indexeddb.ts +56 -2
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/websocket.ts +129 -0
- flock_core-0.5.0b70/src/flock/frontend/src/store/filterStore.test.ts +162 -0
- flock_core-0.5.0b70/src/flock/frontend/src/store/filterStore.ts +250 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/graphStore.test.ts +19 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/graphStore.ts +166 -27
- flock_core-0.5.0b70/src/flock/frontend/src/types/filters.ts +47 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/types/graph.ts +7 -0
- flock_core-0.5.0b70/src/flock/frontend/src/utils/artifacts.ts +24 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/client.py +25 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/config.py +1 -10
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/manager.py +34 -3
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/types/callbacks.py +4 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/orchestrator.py +56 -5
- flock_core-0.5.0b70/src/flock/service.py +277 -0
- flock_core-0.5.0b70/src/flock/store.py +1049 -0
- flock_core-0.5.0b70/test.py +149 -0
- flock_core-0.5.0b70/tests/contract/test_artifact_storage_contract.py +139 -0
- flock_core-0.5.0b70/tests/integration/test_sqlite_store_integration.py +37 -0
- flock_core-0.5.0b70/tests/test_agent_server_specific_mounts.py +252 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_cli.py +45 -2
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_mcp_config.py +0 -5
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_mcp_manager.py +3 -3
- flock_core-0.5.0b70/tests/test_mcp_server_config_typeddict.py +143 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_orchestrator_mcp.py +0 -2
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_service_extended.py +152 -0
- flock_core-0.5.0b70/tests/test_store.py +388 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/uv.lock +26 -1
- flock_core-0.5.0b63/src/flock/cli.py +0 -75
- flock_core-0.5.0b63/src/flock/frontend/src/App.tsx +0 -79
- flock_core-0.5.0b63/src/flock/frontend/src/components/filters/FilterBar.module.css +0 -29
- flock_core-0.5.0b63/src/flock/frontend/src/components/filters/FilterBar.test.tsx +0 -133
- flock_core-0.5.0b63/src/flock/frontend/src/components/filters/FilterBar.tsx +0 -33
- flock_core-0.5.0b63/src/flock/frontend/src/components/filters/FilterPills.module.css +0 -79
- flock_core-0.5.0b63/src/flock/frontend/src/components/filters/FilterPills.test.tsx +0 -173
- flock_core-0.5.0b63/src/flock/frontend/src/components/filters/FilterPills.tsx +0 -67
- flock_core-0.5.0b63/src/flock/frontend/src/components/modules/EventLogModule.test.tsx +0 -401
- flock_core-0.5.0b63/src/flock/frontend/src/components/modules/EventLogModule.tsx +0 -396
- flock_core-0.5.0b63/src/flock/frontend/src/components/modules/EventLogModuleWrapper.tsx +0 -17
- flock_core-0.5.0b63/src/flock/frontend/src/store/filterStore.test.ts +0 -242
- flock_core-0.5.0b63/src/flock/frontend/src/store/filterStore.ts +0 -103
- flock_core-0.5.0b63/src/flock/frontend/src/types/filters.ts +0 -14
- flock_core-0.5.0b63/src/flock/service.py +0 -140
- flock_core-0.5.0b63/src/flock/store.py +0 -102
- flock_core-0.5.0b63/tests/contract/test_artifact_storage_contract.py +0 -130
- flock_core-0.5.0b63/tests/test_store.py +0 -212
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.envtemplate +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.github/workflows/quality.yml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.pre-commit-config.yaml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.python-version +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/.vscode/settings.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/AGENTS.md.backup +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/CONTRIBUTING.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/LICENSE +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/ROADMAP.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/USECASES.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/about/changelog.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/about/contributing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/about/roadmap.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/bug_diagnosis.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/flock_ui_1.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/flock_ui_agent_view.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/flock_ui_blackboard_view.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/pizza.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/trace_1.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/trace_2.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/assets/images/trace_3.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/community/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/examples/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/getting-started/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/getting-started/installation.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/getting-started/quick-start.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/agents.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/blackboard.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/components.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/dashboard.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/patterns.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/testing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/auto-tracing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/how_to_use_tracing_effectively.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/trace-module.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/tracing-production.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/tracing-quickstart.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/tracing/unified-tracing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/use-cases.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/guides/visibility.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/IMPLEMENTATION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/PRE_COMMIT_HOOKS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/UNIFIED_TRACING_DELIVERY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/VERSIONING.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/ai-agents/architecture.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/ai-agents/common-tasks.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/ai-agents/dependencies.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/ai-agents/development.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/ai-agents/frontend.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/design_and_goals/landscape_analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/design_and_goals/motivation.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/design_and_goals/review.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/design_and_goals/technical_design.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/ANALYSIS_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/AUDIT_QUICKREF.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/BROKEN_LINKS_REPORT.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/DOCUMENTATION_ANALYSIS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/DOCUMENTATION_TRANSFORMATION_CHECKLIST.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/DOCUMENTATION_TRANSFORMATION_ROADMAP.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/MKDOCS_BEST_PRACTICES_RESEARCH.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/MKDOCS_QUICK_REFERENCE.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/PHASE_1_COMPLETION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/PHASE_1_FINAL_REPORT.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/PHASE_2_COMPLETION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/PHASE_3_COMPLETION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/examples-analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/examples-quick-reference.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/documentation-analysis/examples-structure-diagram.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/domain/test-improvement-roadmap.md +0 -0
- {flock_core-0.5.0b63/docs → flock_core-0.5.0b70/docs/internal}/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/patterns/auto-layout-auto-zoom-removal.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/patterns/core-architecture.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/patterns/development-workflow.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/patterns/project-configuration.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/patterns/repository-structure.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/INDEX.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/RANKED_RESEARCH_AGENDA.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/benchmarks/BENCHMARK_DELIVERABLES.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/benchmarks/BENCHMARK_EXECUTIVE_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/benchmarks/BENCHMARK_RESEARCH.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/benchmarks/BENCHMARK_VISUAL_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/benchmarks/QUICK_START_BENCHMARKS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/benchmarks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/01_contract_first_reliability.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/02_event_parallelism_batching.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/03_mcp_native_eval.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/04_formal_liveness_safety.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/05_stigmergic_patterns.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/06_observability_driven_scheduling.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/07_visibility_multitenant_infoflow.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/08_structured_generation_adversarial_schemas.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/09_web_agent_orchestration_bench.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/09x_alternatives_refs.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/10_distributed_blackboard_kafka.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/11_cost_optimal_bestof_cascade.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/12_human_in_the_loop_guardrails.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/13_trace_dataset_compression.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/14_mcp_latency_caching.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/15_market_bidding_blackboard.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/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.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/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.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/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.0b70}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/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.0b70}/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.0b70}/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.0b70}/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.0b70}/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.0b70}/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.0b70}/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.0b70}/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.0b70}/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.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/INDEX.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/_shared/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/_shared/harness/runner.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/boilerplate/_shared/scripts/analyze_template.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/extra_sources.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/kafka_implementation_plan.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/codex/needed_framework_implementation.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/emergence/EMERGENCE_RESEARCH_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/emergence/EMERGENT_BEHAVIOR_RESEARCH.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/emergence/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/emergence/emergence_toolkit.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/emergence/experiment_emergence_demo.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/formal-methods/FORMAL_METHODS_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/formal-methods/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/formal-methods/formal-methods-analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/formal-methods/formal-methods-quick-ref.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/formal-methods/formal-verification-examples.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/observability/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/observability/observability_research_opportunities.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/orchestration/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/orchestration/RESEARCH_BLACKBOARD_ORCHESTRATION.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/orchestration/RESEARCH_EXAMPLES.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/research/orchestration/RESEARCH_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/specs/001-test-coverage-improvement/PLAN.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/specs/001-test-coverage-improvement/PRD.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/specs/001-test-coverage-improvement/SDD.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/troubleshooting/codex_bug_analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/internal/troubleshooting/event-log-memory-leak-analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/javascripts/extra.js +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/reference/api.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/reference/configuration.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/reference/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/tags.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/tutorials/advanced-patterns.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/tutorials/conditional-routing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/tutorials/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/tutorials/multi-agent-workflow.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/tutorials/your-first-agent.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/docs/whiteducksoftware/versions.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/01-the-declarative-way/02_input_and_output.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/01-the-declarative-way/03_mcp_and_tools.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/02-the-blackboard/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/03-the-dashboard/01_declarative_pizza.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/03-the-dashboard/02-dashboard-edge-cases.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/03-the-dashboard/03-scale-test-100-agents.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/03-the-dashboard/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/04-the-api/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_01_code_detective.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_02_band_formation.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_03_web_detective.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_04_debate_club.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_05_tracing_detective.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_06_secret_agents.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/05-claudes-workshop/lesson_07_news_agency.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/06-readme/01-BugDiagnosis.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/examples/07-notebooks/Untitled-1.ipynb +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/mkdocs.yml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/requirements.txt +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/scripts/build_dashboard.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/scripts/bump_version.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/scripts/check_version_bump.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/scripts/ensure_uv.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/scripts/gen_ref_pages.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/scripts/generate_llm_codebase.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/api/themes.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/artifacts.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/components.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/dashboard/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/dashboard/collector.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/dashboard/events.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/dashboard/launcher.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/dashboard/service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/engines/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/docs/DESIGN_SYSTEM.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/index.html +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/__tests__/integration/graph-rendering.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/BuildInfo.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/EmptyState.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/EmptyState.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/ErrorBoundary.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/ErrorBoundary.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/LoadingSpinner.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/common/LoadingSpinner.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/controls/PublishControl.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/controls/PublishControl.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/controls/PublishControl.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/DetailWindowContainer.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/LiveOutputTab.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/LiveOutputTab.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/MessageHistoryTab.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/NodeDetailWindow.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/NodeDetailWindow.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/RunStatusTab.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/details/tabs.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/filters/CorrelationIDFilter.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/filters/CorrelationIDFilter.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/AgentNode.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/AgentNode.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/MessageFlowEdge.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/MessageNode.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/MessageNode.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/MiniMap.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/graph/TransformEdge.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/layout/Header.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/layout/Header.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/ModuleRegistry.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/ModuleWindow.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/TraceModuleJaeger.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/AdvancedSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/AppearanceSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/GraphSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/MultiSelect.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/SettingsPanel.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/SettingsPanel.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/ThemeSelector.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/components/settings/TracingSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/hooks/useKeyboardShortcuts.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/hooks/useModulePersistence.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/hooks/useModulePersistence.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/hooks/usePersistence.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/main.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/indexeddb.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/layout.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/layout.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/themeApplicator.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/themeService.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/services/websocket.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/moduleStore.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/moduleStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/settingsStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/streamStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/uiStore.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/uiStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/store/wsStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/styles/index.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/styles/scrollbar.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/styles/variables.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/test/setup.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/types/modules.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/types/theme.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/utils/mockData.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/utils/performance.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/utils/transforms.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/utils/transforms.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/src/vite-env.d.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/tsconfig.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/tsconfig.node.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/vite.config.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/frontend/vitest.config.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/helper/cli_helper.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/auto_trace.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/formatters/themes.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/logging.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/telemetry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/telemetry_exporter/duckdb_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/logging/trace_and_logged.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/sse/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/stdio/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/websockets/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/tool.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/types/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/types/factories.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/types/handlers.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/types/types.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/util/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/mcp/util/helpers.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/registry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/runtime.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/subscription.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/django.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/github.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/material.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/square.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/utilities.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/utility/output_utility_component.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/src/flock/visibility.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/conftest.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/contract/test_agent_payload_selection_contract.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/contract/test_type_normalization_contract.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/e2e/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/e2e/TESTING_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/e2e/test_critical_scenarios.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/integration/test_collector_orchestrator.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/integration/test_orchestrator_dashboard.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/integration/test_websocket_protocol.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_agent.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_agent_mcp.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_artifacts.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_cli_helper.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_components.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dashboard_api.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dashboard_collector.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dashboard_launcher.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dashboard_service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dspy_engine.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dspy_engine_mcp.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_dspy_streaming_events.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_engines.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_logging_config.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_mcp_client.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_mcp_coverage_summary.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_mcp_imports.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_mcp_tool_handlers.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_orchestrator.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_registry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_runtime.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_subscription.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_telemetry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_trace_clearing.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_unified_tracing.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_utilities.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_version_endpoint.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_visibility.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b70}/tests/test_websocket_manager.py +0 -0
|
@@ -234,6 +234,35 @@ The separation of `publish()` and `run_until_idle()` gives you **control over ex
|
|
|
234
234
|
|
|
235
235
|
---
|
|
236
236
|
|
|
237
|
+
### 🗄️ Persistent Blackboard History (SQLite Store)
|
|
238
|
+
|
|
239
|
+
**Production teams asked for auditability—now the blackboard can keep a full historical trail.**
|
|
240
|
+
|
|
241
|
+
#### Why this matters
|
|
242
|
+
- **Durable artifacts**: Everything on the blackboard (payloads, tags, visibility, correlation IDs) is stored on disk for replay, compliance, and debugging.
|
|
243
|
+
- **Faster postmortems**: Query `/api/v1/artifacts` with filters (`type`, `produced_by`, `tags`, `visibility`, time windows) to reconstruct agent cascades after the fact.
|
|
244
|
+
- **Operational dashboards**: The new **Historical Blackboard** module preloads persisted pages, exposes consumption metadata, and shows retention banners so operators know how far back they can scroll.
|
|
245
|
+
- **Retention policies**: CLI helpers make maintenance routine—`flock sqlite-maintenance my.db --delete-before 2025-01-01T00:00:00Z --vacuum` prunes old artifacts and compacts the store.
|
|
246
|
+
|
|
247
|
+
#### Quick start
|
|
248
|
+
```python
|
|
249
|
+
from flock import Flock
|
|
250
|
+
from flock.store import SQLiteBlackboardStore
|
|
251
|
+
|
|
252
|
+
store = SQLiteBlackboardStore(".flock/history.db")
|
|
253
|
+
await store.ensure_schema()
|
|
254
|
+
|
|
255
|
+
flock = Flock("openai/gpt-4.1", store=store)
|
|
256
|
+
await flock.publish(MyDreamPizza(pizza_idea="fermented garlic delight"))
|
|
257
|
+
await flock.run_until_idle()
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Kick the tyres with `examples/02-the-blackboard/01_persistent_pizza.py`, then launch `examples/03-the-dashboard/04_persistent_pizza_dashboard.py` to inspect the retained history alongside live WebSocket updates.
|
|
261
|
+
|
|
262
|
+
> **Heads-up:** The interface now returns `ArtifactEnvelope` objects when `embed_meta=True`. Future backends (Postgres, BigQuery, etc.) can implement the same contract to plug straight into the runtime and dashboard.
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
237
266
|
### 🔒 Test Isolation and Mock Cleanup - The Contamination Trap
|
|
238
267
|
|
|
239
268
|
**We fixed 32 failing tests caused by test contamination - here's what we learned:**
|
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flock-core
|
|
3
|
+
Version: 0.5.0b70
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Requires-Dist: aiosqlite>=0.20.0
|
|
9
|
+
Requires-Dist: devtools>=0.12.2
|
|
10
|
+
Requires-Dist: dspy==3.0.0
|
|
11
|
+
Requires-Dist: duckdb>=1.1.0
|
|
12
|
+
Requires-Dist: fastapi>=0.117.1
|
|
13
|
+
Requires-Dist: hanging-threads>=2.0.7
|
|
14
|
+
Requires-Dist: httpx>=0.28.1
|
|
15
|
+
Requires-Dist: litellm==1.75.3
|
|
16
|
+
Requires-Dist: loguru>=0.7.3
|
|
17
|
+
Requires-Dist: mcp>=1.7.1
|
|
18
|
+
Requires-Dist: opentelemetry-api>=1.30.0
|
|
19
|
+
Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
|
|
20
|
+
Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
|
|
21
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
|
|
22
|
+
Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
|
|
23
|
+
Requires-Dist: opentelemetry-sdk>=1.30.0
|
|
24
|
+
Requires-Dist: poethepoet>=0.30.0
|
|
25
|
+
Requires-Dist: pydantic[email]>=2.11.9
|
|
26
|
+
Requires-Dist: rich>=14.1.0
|
|
27
|
+
Requires-Dist: toml>=0.10.2
|
|
28
|
+
Requires-Dist: typer>=0.19.2
|
|
29
|
+
Requires-Dist: uvicorn>=0.37.0
|
|
30
|
+
Requires-Dist: websockets>=15.0.1
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
1
33
|
<p align="center">
|
|
2
34
|
<img alt="Flock Banner" src="https://raw.githubusercontent.com/whiteducksoftware/flock/master/docs/assets/images/flock.png" width="800">
|
|
3
35
|
</p>
|
|
@@ -252,6 +284,30 @@ asyncio.run(main())
|
|
|
252
284
|
|
|
253
285
|
---
|
|
254
286
|
|
|
287
|
+
## Persistent Blackboard History
|
|
288
|
+
|
|
289
|
+
The in-memory store is still great for local tinkering, but production teams now have a durable option. Plugging in `SQLiteBlackboardStore` turns the blackboard into a persistent event log with first-class ergonomics:
|
|
290
|
+
|
|
291
|
+
- **Long-lived artifacts** — every field (payload, tags, partition keys, visibility) is stored for replay, audits, and postmortems
|
|
292
|
+
- **Historical APIs** — `/api/v1/artifacts`, `/summary`, and `/agents/{agent_id}/history-summary` expose pagination, filtering, and consumption counts
|
|
293
|
+
- **Dashboard module** — the new **Historical Blackboard** experience preloads persisted history, enriches the graph with consumer metadata, and highlights retention windows
|
|
294
|
+
- **Operational tooling** — CLI helpers (`init-sqlite-store`, `sqlite-maintenance --delete-before ... --vacuum`) make schema setup and retention policies scriptable
|
|
295
|
+
|
|
296
|
+
Quick start:
|
|
297
|
+
|
|
298
|
+
```python
|
|
299
|
+
from flock import Flock
|
|
300
|
+
from flock.store import SQLiteBlackboardStore
|
|
301
|
+
|
|
302
|
+
store = SQLiteBlackboardStore(".flock/blackboard.db")
|
|
303
|
+
await store.ensure_schema()
|
|
304
|
+
flock = Flock("openai/gpt-4.1", store=store)
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Run `examples/02-the-blackboard/01_persistent_pizza.py` to generate history, then launch `examples/03-the-dashboard/04_persistent_pizza_dashboard.py` and explore previous runs, consumption trails, and retention banners inside the dashboard.
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
255
311
|
## Core Concepts
|
|
256
312
|
|
|
257
313
|
### Typed Artifacts (The Vocabulary)
|
|
@@ -1,33 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: flock-core
|
|
3
|
-
Version: 0.5.0b63
|
|
4
|
-
Summary: Add your description here
|
|
5
|
-
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
|
-
License-File: LICENSE
|
|
7
|
-
Requires-Python: >=3.10
|
|
8
|
-
Requires-Dist: devtools>=0.12.2
|
|
9
|
-
Requires-Dist: dspy==3.0.0
|
|
10
|
-
Requires-Dist: duckdb>=1.1.0
|
|
11
|
-
Requires-Dist: fastapi>=0.117.1
|
|
12
|
-
Requires-Dist: httpx>=0.28.1
|
|
13
|
-
Requires-Dist: litellm==1.75.3
|
|
14
|
-
Requires-Dist: loguru>=0.7.3
|
|
15
|
-
Requires-Dist: mcp>=1.7.1
|
|
16
|
-
Requires-Dist: opentelemetry-api>=1.30.0
|
|
17
|
-
Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
|
|
18
|
-
Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
|
|
19
|
-
Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
|
|
20
|
-
Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
|
|
21
|
-
Requires-Dist: opentelemetry-sdk>=1.30.0
|
|
22
|
-
Requires-Dist: poethepoet>=0.30.0
|
|
23
|
-
Requires-Dist: pydantic[email]>=2.11.9
|
|
24
|
-
Requires-Dist: rich>=14.1.0
|
|
25
|
-
Requires-Dist: toml>=0.10.2
|
|
26
|
-
Requires-Dist: typer>=0.19.2
|
|
27
|
-
Requires-Dist: uvicorn>=0.37.0
|
|
28
|
-
Requires-Dist: websockets>=15.0.1
|
|
29
|
-
Description-Content-Type: text/markdown
|
|
30
|
-
|
|
31
1
|
<p align="center">
|
|
32
2
|
<img alt="Flock Banner" src="https://raw.githubusercontent.com/whiteducksoftware/flock/master/docs/assets/images/flock.png" width="800">
|
|
33
3
|
</p>
|
|
@@ -282,6 +252,30 @@ asyncio.run(main())
|
|
|
282
252
|
|
|
283
253
|
---
|
|
284
254
|
|
|
255
|
+
## Persistent Blackboard History
|
|
256
|
+
|
|
257
|
+
The in-memory store is still great for local tinkering, but production teams now have a durable option. Plugging in `SQLiteBlackboardStore` turns the blackboard into a persistent event log with first-class ergonomics:
|
|
258
|
+
|
|
259
|
+
- **Long-lived artifacts** — every field (payload, tags, partition keys, visibility) is stored for replay, audits, and postmortems
|
|
260
|
+
- **Historical APIs** — `/api/v1/artifacts`, `/summary`, and `/agents/{agent_id}/history-summary` expose pagination, filtering, and consumption counts
|
|
261
|
+
- **Dashboard module** — the new **Historical Blackboard** experience preloads persisted history, enriches the graph with consumer metadata, and highlights retention windows
|
|
262
|
+
- **Operational tooling** — CLI helpers (`init-sqlite-store`, `sqlite-maintenance --delete-before ... --vacuum`) make schema setup and retention policies scriptable
|
|
263
|
+
|
|
264
|
+
Quick start:
|
|
265
|
+
|
|
266
|
+
```python
|
|
267
|
+
from flock import Flock
|
|
268
|
+
from flock.store import SQLiteBlackboardStore
|
|
269
|
+
|
|
270
|
+
store = SQLiteBlackboardStore(".flock/blackboard.db")
|
|
271
|
+
await store.ensure_schema()
|
|
272
|
+
flock = Flock("openai/gpt-4.1", store=store)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Run `examples/02-the-blackboard/01_persistent_pizza.py` to generate history, then launch `examples/03-the-dashboard/04_persistent_pizza_dashboard.py` and explore previous runs, consumption trails, and retention banners inside the dashboard.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
285
279
|
## Core Concepts
|
|
286
280
|
|
|
287
281
|
### Typed Artifacts (The Vocabulary)
|
|
@@ -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
|