flock-core 0.5.9__tar.gz → 0.5.11__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.

Files changed (797) hide show
  1. flock_core-0.5.11/.github/issue_draft_non_blocking_serve.md +205 -0
  2. {flock_core-0.5.9 → flock_core-0.5.11}/AGENTS.md +285 -2
  3. {flock_core-0.5.9 → flock_core-0.5.11}/PKG-INFO +150 -26
  4. {flock_core-0.5.9 → flock_core-0.5.11}/README.md +149 -25
  5. flock_core-0.5.11/docs/guides/context-providers.md +1515 -0
  6. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/dashboard.md +28 -0
  7. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/index.md +11 -0
  8. flock_core-0.5.11/docs/guides/rest-api.md +466 -0
  9. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/visibility.md +95 -2
  10. {flock_core-0.5.9 → flock_core-0.5.11}/examples/00-patterns/02-multi_publish.py +10 -3
  11. {flock_core-0.5.9 → flock_core-0.5.11}/examples/00-patterns/03-multi-artifact-multi-publish.py +12 -3
  12. {flock_core-0.5.9 → flock_core-0.5.11}/examples/00-patterns/04-fan-out.py +3 -2
  13. {flock_core-0.5.9 → flock_core-0.5.11}/examples/00-patterns/05-multi-fan-out.py +10 -3
  14. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/01_declarative_pizza.py +3 -1
  15. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/04_input_and_output.py +3 -1
  16. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/06_mcp_roots.py +14 -14
  17. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/09_debate_club.py +2 -1
  18. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/10_news_agency.py +2 -2
  19. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/11_tracing_detective.py +4 -1
  20. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/01_declarative_pizza.py +2 -1
  21. flock_core-0.5.11/examples/02-dashboard/02_non_blocking_serve.py +97 -0
  22. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/04_input_and_output.py +3 -1
  23. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/06_mcp_roots.py +11 -13
  24. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/09_debate_club.py +2 -1
  25. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/13_medical_diagnostics_joinspec.py +15 -6
  26. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/16_news_batching.py +2 -2
  27. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_03_web_detective.py +10 -2
  28. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_05_tracing_detective.py +3 -1
  29. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_07_news_agency.py +4 -4
  30. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_08_the_matchmaker.py +3 -1
  31. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_11_performance_monitor.py +7 -5
  32. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_12_confidence_booster.py +26 -9
  33. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_13_regex_matcher.py +12 -6
  34. {flock_core-0.5.9 → flock_core-0.5.11}/examples/04-misc/01_persistent_pizza.py +9 -3
  35. {flock_core-0.5.9 → flock_core-0.5.11}/examples/04-misc/04_persistent_pizza_dashboard.py +3 -1
  36. {flock_core-0.5.9 → flock_core-0.5.11}/examples/05-engines/emoji_mood_engine.py +12 -4
  37. {flock_core-0.5.9 → flock_core-0.5.11}/examples/05-engines/potion_batch_engine.py +40 -25
  38. {flock_core-0.5.9 → flock_core-0.5.11}/examples/06-agent-components/cheer_meter_component.py +3 -1
  39. {flock_core-0.5.9 → flock_core-0.5.11}/examples/06-agent-components/plot_twist_component.py +3 -1
  40. {flock_core-0.5.9 → flock_core-0.5.11}/examples/07-orchestrator-components/kitchen_monitor_component.py +13 -15
  41. {flock_core-0.5.9 → flock_core-0.5.11}/examples/07-orchestrator-components/quest_tracker_component.py +15 -3
  42. flock_core-0.5.11/examples/08-context-provider/01_basic_visibility.py +144 -0
  43. flock_core-0.5.11/examples/08-context-provider/02_global_provider.py +192 -0
  44. flock_core-0.5.11/examples/08-context-provider/02_simple_global_provider.py +49 -0
  45. flock_core-0.5.11/examples/08-context-provider/03_per_agent_provider.py +233 -0
  46. flock_core-0.5.11/examples/08-context-provider/04_custom_filtering.py +247 -0
  47. flock_core-0.5.11/examples/08-context-provider/05_password_redactor.py +435 -0
  48. flock_core-0.5.11/examples/08-context-provider/README.md +502 -0
  49. {flock_core-0.5.9 → flock_core-0.5.11}/pyproject.toml +7 -4
  50. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/agent.py +149 -62
  51. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/api/themes.py +6 -2
  52. flock_core-0.5.11/src/flock/api_models.py +285 -0
  53. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/artifact_collector.py +6 -3
  54. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/batch_accumulator.py +3 -1
  55. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/cli.py +3 -1
  56. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/components.py +45 -56
  57. flock_core-0.5.11/src/flock/context_provider.py +531 -0
  58. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/correlation_engine.py +8 -4
  59. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/collector.py +48 -29
  60. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/events.py +10 -4
  61. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/launcher.py +3 -1
  62. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/models/graph.py +9 -3
  63. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/service.py +187 -93
  64. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/websocket.py +17 -4
  65. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/engines/dspy_engine.py +174 -98
  66. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/engines/examples/simple_batch_engine.py +9 -3
  67. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/examples.py +6 -2
  68. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/indexeddb.test.ts +4 -4
  69. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/indexeddb.ts +1 -1
  70. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/helper/cli_helper.py +14 -1
  71. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/auto_trace.py +6 -1
  72. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/formatters/enum_builder.py +3 -1
  73. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/formatters/theme_builder.py +32 -17
  74. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/formatters/themed_formatter.py +38 -22
  75. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/logging.py +21 -7
  76. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/telemetry.py +9 -3
  77. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/duckdb_exporter.py +27 -25
  78. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/trace_and_logged.py +14 -5
  79. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/__init__.py +3 -6
  80. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/client.py +49 -19
  81. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/config.py +12 -6
  82. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/manager.py +6 -2
  83. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/sse/flock_sse_server.py +9 -3
  84. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +6 -2
  85. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/tool.py +18 -6
  86. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/types/handlers.py +3 -1
  87. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/types/types.py +9 -3
  88. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/orchestrator.py +449 -58
  89. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/orchestrator_component.py +15 -5
  90. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/patches/dspy_streaming_patch.py +12 -4
  91. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/registry.py +9 -3
  92. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/runtime.py +69 -18
  93. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/service.py +135 -64
  94. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/store.py +29 -10
  95. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/subscription.py +6 -4
  96. flock_core-0.5.11/src/flock/system_artifacts.py +33 -0
  97. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/utilities.py +41 -13
  98. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/utility/output_utility_component.py +31 -11
  99. {flock_core-0.5.9 → flock_core-0.5.11}/tests/e2e/test_critical_scenarios.py +2 -2
  100. {flock_core-0.5.9 → flock_core-0.5.11}/tests/integration/test_orchestrator_dashboard.py +241 -0
  101. flock_core-0.5.11/tests/test_api_models.py +320 -0
  102. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_components.py +121 -195
  103. flock_core-0.5.11/tests/test_context_provider.py +1266 -0
  104. flock_core-0.5.11/tests/test_context_security.py +325 -0
  105. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dspy_engine.py +51 -41
  106. flock_core-0.5.11/tests/test_engine_context.py +283 -0
  107. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_engines.py +3 -2
  108. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator_batchspec.py +2 -2
  109. flock_core-0.5.11/tests/test_orchestrator_context_injection.py +578 -0
  110. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_runtime.py +17 -17
  111. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_subscription.py +1 -1
  112. {flock_core-0.5.9 → flock_core-0.5.11}/uv.lock +386 -367
  113. flock_core-0.5.9/docs/specs/001-sqlite-blackboard-store/PLAN.md +0 -169
  114. flock_core-0.5.9/docs/specs/001-sqlite-blackboard-store/PRD.md +0 -146
  115. flock_core-0.5.9/docs/specs/002-ui-optimization-migration/PHASE_4.1_AFTERMATH_AUDIT.md +0 -243
  116. flock_core-0.5.9/docs/specs/002-ui-optimization-migration/PHASE_4.1_TASK_LIST.md +0 -464
  117. flock_core-0.5.9/docs/specs/002-ui-optimization-migration/PLAN.md +0 -743
  118. flock_core-0.5.9/docs/specs/002-ui-optimization-migration/PRD.md +0 -146
  119. flock_core-0.5.9/docs/specs/003-logic-operations/PLAN.md +0 -1252
  120. flock_core-0.5.9/docs/specs/004-logic-operations-ux/PLAN.md +0 -630
  121. flock_core-0.5.9/docs/specs/004-logic-operations-ux/PRD.md +0 -146
  122. flock_core-0.5.9/docs/specs/004-orchestrator-component/LOGGING_GUIDE.md +0 -652
  123. flock_core-0.5.9/docs/specs/004-orchestrator-component/PLAN.md +0 -509
  124. flock_core-0.5.9/docs/specs/004-orchestrator-component/PRD.md +0 -146
  125. flock_core-0.5.9/docs/specs/004-orchestrator-component/README.md +0 -104
  126. flock_core-0.5.9/docs/specs/004-orchestrator-component/UNIFIED_IMPLEMENTATION_PLAN.md +0 -1028
  127. flock_core-0.5.9/docs/specs/005-multi-publishes-fan-out/CHANGES_SUMMARY.md +0 -160
  128. flock_core-0.5.9/docs/specs/005-multi-publishes-fan-out/CONCURRENCY_FIX.md +0 -304
  129. flock_core-0.5.9/docs/specs/005-multi-publishes-fan-out/PHASE4_ARCHITECTURAL_PIVOT.md +0 -277
  130. flock_core-0.5.9/docs/specs/005-multi-publishes-fan-out/PLAN.md +0 -616
  131. flock_core-0.5.9/docs/specs/005-multi-publishes-fan-out/PRD.md +0 -146
  132. flock_core-0.5.9/docs/specs/006-dspy-engine-refactor/PLAN.md +0 -1052
  133. {flock_core-0.5.9 → flock_core-0.5.11}/.devcontainer/devcontainer.json +0 -0
  134. {flock_core-0.5.9 → flock_core-0.5.11}/.envtemplate +0 -0
  135. {flock_core-0.5.9 → flock_core-0.5.11}/.github/workflows/deploy-documentation.yml +0 -0
  136. {flock_core-0.5.9 → flock_core-0.5.11}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  137. {flock_core-0.5.9 → flock_core-0.5.11}/.github/workflows/quality.yml +0 -0
  138. {flock_core-0.5.9 → flock_core-0.5.11}/.gitignore +0 -0
  139. {flock_core-0.5.9 → flock_core-0.5.11}/.pre-commit-config.yaml +0 -0
  140. {flock_core-0.5.9 → flock_core-0.5.11}/.python-version +0 -0
  141. {flock_core-0.5.9 → flock_core-0.5.11}/.vscode/settings.json +0 -0
  142. {flock_core-0.5.9 → flock_core-0.5.11}/AUTO_TRACING.md +0 -0
  143. {flock_core-0.5.9 → flock_core-0.5.11}/CONTRIBUTING.md +0 -0
  144. {flock_core-0.5.9 → flock_core-0.5.11}/ID_AUDIT_REPORT.md +0 -0
  145. {flock_core-0.5.9 → flock_core-0.5.11}/LICENSE +0 -0
  146. {flock_core-0.5.9 → flock_core-0.5.11}/ROADMAP.md +0 -0
  147. {flock_core-0.5.9 → flock_core-0.5.11}/USECASES.md +0 -0
  148. {flock_core-0.5.9 → flock_core-0.5.11}/docs/about/changelog.md +0 -0
  149. {flock_core-0.5.9 → flock_core-0.5.11}/docs/about/contributing.md +0 -0
  150. {flock_core-0.5.9 → flock_core-0.5.11}/docs/about/roadmap.md +0 -0
  151. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/batch.png +0 -0
  152. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/bug_diagnosis.png +0 -0
  153. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/flock.png +0 -0
  154. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/flock_ui_1.png +0 -0
  155. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/flock_ui_agent_view.png +0 -0
  156. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/flock_ui_blackboard_view.png +0 -0
  157. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/join.png +0 -0
  158. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/pattern2.png +0 -0
  159. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/pizza.png +0 -0
  160. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/trace_1.png +0 -0
  161. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/trace_2.png +0 -0
  162. {flock_core-0.5.9 → flock_core-0.5.11}/docs/assets/images/trace_3.png +0 -0
  163. {flock_core-0.5.9 → flock_core-0.5.11}/docs/bugfixes/websocket-streaming-deadlock-fix.md +0 -0
  164. {flock_core-0.5.9 → flock_core-0.5.11}/docs/community/index.md +0 -0
  165. {flock_core-0.5.9 → flock_core-0.5.11}/docs/examples/index.md +0 -0
  166. {flock_core-0.5.9 → flock_core-0.5.11}/docs/getting-started/concepts.md +0 -0
  167. {flock_core-0.5.9 → flock_core-0.5.11}/docs/getting-started/index.md +0 -0
  168. {flock_core-0.5.9 → flock_core-0.5.11}/docs/getting-started/installation.md +0 -0
  169. {flock_core-0.5.9 → flock_core-0.5.11}/docs/getting-started/quick-start.md +0 -0
  170. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/agents.md +0 -0
  171. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/batch-processing.md +0 -0
  172. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/blackboard.md +0 -0
  173. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/components.md +0 -0
  174. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/dspy-engine.md +0 -0
  175. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/fan-out.md +0 -0
  176. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/join-operations.md +0 -0
  177. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/mcp-roots.md +0 -0
  178. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/orchestrator-components.md +0 -0
  179. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/patterns.md +0 -0
  180. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/persistent-blackboard.md +0 -0
  181. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/predicates.md +0 -0
  182. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/testing.md +0 -0
  183. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/auto-tracing.md +0 -0
  184. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/how_to_use_tracing_effectively.md +0 -0
  185. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/index.md +0 -0
  186. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/trace-module.md +0 -0
  187. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/tracing-production.md +0 -0
  188. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/tracing-quickstart.md +0 -0
  189. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/tracing/unified-tracing.md +0 -0
  190. {flock_core-0.5.9 → flock_core-0.5.11}/docs/guides/use-cases.md +0 -0
  191. {flock_core-0.5.9 → flock_core-0.5.11}/docs/index.md +0 -0
  192. {flock_core-0.5.9 → flock_core-0.5.11}/docs/javascripts/extra.js +0 -0
  193. {flock_core-0.5.9 → flock_core-0.5.11}/docs/reference/api.md +0 -0
  194. {flock_core-0.5.9 → flock_core-0.5.11}/docs/reference/configuration.md +0 -0
  195. {flock_core-0.5.9 → flock_core-0.5.11}/docs/reference/index.md +0 -0
  196. {flock_core-0.5.9 → flock_core-0.5.11}/docs/stylesheets/extra.css +0 -0
  197. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tags.md +0 -0
  198. {flock_core-0.5.9 → flock_core-0.5.11}/docs/troubleshooting/streaming-freeze-fix.md +0 -0
  199. {flock_core-0.5.9 → flock_core-0.5.11}/docs/troubleshooting/streaming-freeze-with-dashboard-fix.md +0 -0
  200. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/advanced-patterns.md +0 -0
  201. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/conditional-routing.md +0 -0
  202. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/connect_with_ollama.md +0 -0
  203. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/custom-agent-components.md +0 -0
  204. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/custom-engines.md +0 -0
  205. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/index.md +0 -0
  206. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/multi-agent-workflow.md +0 -0
  207. {flock_core-0.5.9 → flock_core-0.5.11}/docs/tutorials/your-first-agent.md +0 -0
  208. {flock_core-0.5.9 → flock_core-0.5.11}/docs/whiteducksoftware/versions.json +0 -0
  209. {flock_core-0.5.9 → flock_core-0.5.11}/examples/00-patterns/01-single_publish.py +0 -0
  210. {flock_core-0.5.9 → flock_core-0.5.11}/examples/00-patterns/README.md +0 -0
  211. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/02_input_and_output.py +0 -0
  212. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/03_code_detective.py +0 -0
  213. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/05_mcp_and_tools.py +0 -0
  214. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/07_web_detective.py +0 -0
  215. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/08_band_formation.py +0 -0
  216. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/12_secret_agents.py +0 -0
  217. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/13_medical_diagnostics_joinspec.py +0 -0
  218. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/14_ecommerce_batch_processing.py +0 -0
  219. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/15_iot_sensor_batching.py +0 -0
  220. {flock_core-0.5.9 → flock_core-0.5.11}/examples/01-cli/README.md +0 -0
  221. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/02_input_and_output.py +0 -0
  222. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/03_code_detective.py +0 -0
  223. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/05_mcp_and_tools.py +0 -0
  224. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/07_web_detective.py +0 -0
  225. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/08_band_formation.py +0 -0
  226. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/10_news_agency.py +0 -0
  227. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/11_tracing_detective.py +0 -0
  228. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/12_secret_agents.py +0 -0
  229. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/14_ecommerce_batch_processing.py +0 -0
  230. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/15_iot_sensor_batching.py +0 -0
  231. {flock_core-0.5.9 → flock_core-0.5.11}/examples/02-dashboard/README.md +0 -0
  232. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/README.md +0 -0
  233. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_01_code_detective.py +0 -0
  234. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_02_band_formation.py +0 -0
  235. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_04_debate_club.py +0 -0
  236. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_06_secret_agents.py +0 -0
  237. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_09_the_batch_optimizer.py +0 -0
  238. {flock_core-0.5.9 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_10_the_smart_factory.py +0 -0
  239. {flock_core-0.5.9 → flock_core-0.5.11}/examples/04-misc/02-dashboard-edge-cases.py +0 -0
  240. {flock_core-0.5.9 → flock_core-0.5.11}/examples/04-misc/03-scale-test-100-agents.py +0 -0
  241. {flock_core-0.5.9 → flock_core-0.5.11}/examples/04-misc/05_lm_studio.py +0 -0
  242. {flock_core-0.5.9 → flock_core-0.5.11}/examples/04-misc/README.md +0 -0
  243. {flock_core-0.5.9 → flock_core-0.5.11}/examples/05-engines/README.md +0 -0
  244. {flock_core-0.5.9 → flock_core-0.5.11}/examples/06-agent-components/README.md +0 -0
  245. {flock_core-0.5.9 → flock_core-0.5.11}/examples/07-orchestrator-components/README.md +0 -0
  246. {flock_core-0.5.9 → flock_core-0.5.11}/examples/README.md +0 -0
  247. {flock_core-0.5.9 → flock_core-0.5.11}/mkdocs.yml +0 -0
  248. {flock_core-0.5.9 → flock_core-0.5.11}/requirements.txt +0 -0
  249. {flock_core-0.5.9 → flock_core-0.5.11}/scripts/build_dashboard.py +0 -0
  250. {flock_core-0.5.9 → flock_core-0.5.11}/scripts/bump_version.py +0 -0
  251. {flock_core-0.5.9 → flock_core-0.5.11}/scripts/check_version_bump.py +0 -0
  252. {flock_core-0.5.9 → flock_core-0.5.11}/scripts/ensure_uv.py +0 -0
  253. {flock_core-0.5.9 → flock_core-0.5.11}/scripts/gen_ref_pages.py +0 -0
  254. {flock_core-0.5.9 → flock_core-0.5.11}/scripts/generate_llm_codebase.py +0 -0
  255. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/__init__.py +0 -0
  256. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/artifacts.py +0 -0
  257. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/__init__.py +0 -0
  258. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/graph_builder.py +0 -0
  259. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/models/__init__.py +0 -0
  260. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/static_v2/assets/index-DFRnI_mt.js +0 -0
  261. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/static_v2/assets/index-fPLNdmp1.css +0 -0
  262. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/dashboard/static_v2/index.html +0 -0
  263. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/engines/__init__.py +0 -0
  264. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/engines/examples/__init__.py +0 -0
  265. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/README.md +0 -0
  266. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/docs/DESIGN_SYSTEM.md +0 -0
  267. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/index.html +0 -0
  268. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/package-lock.json +0 -0
  269. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/package.json +0 -0
  270. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/App.tsx +0 -0
  271. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/__tests__/integration/graph-snapshot.test.tsx +0 -0
  272. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +0 -0
  273. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/BuildInfo.tsx +0 -0
  274. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/EmptyState.module.css +0 -0
  275. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/EmptyState.tsx +0 -0
  276. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/ErrorBoundary.module.css +0 -0
  277. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/ErrorBoundary.tsx +0 -0
  278. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.css +0 -0
  279. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +0 -0
  280. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/LoadingSpinner.module.css +0 -0
  281. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/common/LoadingSpinner.tsx +0 -0
  282. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/controls/PublishControl.css +0 -0
  283. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/controls/PublishControl.test.tsx +0 -0
  284. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/controls/PublishControl.tsx +0 -0
  285. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/DetailWindowContainer.tsx +0 -0
  286. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/LiveOutputTab.test.tsx +0 -0
  287. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/LiveOutputTab.tsx +0 -0
  288. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/MessageDetailWindow.tsx +0 -0
  289. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/MessageHistoryTab.tsx +0 -0
  290. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/NodeDetailWindow.test.tsx +0 -0
  291. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/NodeDetailWindow.tsx +0 -0
  292. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/RunStatusTab.tsx +0 -0
  293. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/details/tabs.test.tsx +0 -0
  294. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/ArtifactTypeFilter.tsx +0 -0
  295. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/CorrelationIDFilter.module.css +0 -0
  296. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +0 -0
  297. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/CorrelationIDFilter.tsx +0 -0
  298. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterFlyout.module.css +0 -0
  299. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterFlyout.tsx +0 -0
  300. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterPills.module.css +0 -0
  301. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterPills.test.tsx +0 -0
  302. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterPills.tsx +0 -0
  303. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/ProducerFilter.tsx +0 -0
  304. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/SavedFiltersControl.module.css +0 -0
  305. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/SavedFiltersControl.test.tsx +0 -0
  306. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/SavedFiltersControl.tsx +0 -0
  307. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TagFilter.tsx +0 -0
  308. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TimeRangeFilter.module.css +0 -0
  309. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +0 -0
  310. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TimeRangeFilter.tsx +0 -0
  311. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/VisibilityFilter.tsx +0 -0
  312. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/AgentNode.test.tsx +0 -0
  313. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/AgentNode.tsx +0 -0
  314. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/GraphCanvas.tsx +0 -0
  315. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/LogicOperationsDisplay.tsx +0 -0
  316. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MessageFlowEdge.tsx +0 -0
  317. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MessageNode.test.tsx +0 -0
  318. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MessageNode.tsx +0 -0
  319. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MiniMap.tsx +0 -0
  320. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/PendingBatchEdge.tsx +0 -0
  321. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/PendingJoinEdge.tsx +0 -0
  322. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/TransformEdge.tsx +0 -0
  323. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/DashboardLayout.css +0 -0
  324. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/DashboardLayout.tsx +0 -0
  325. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/Header.module.css +0 -0
  326. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/Header.tsx +0 -0
  327. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.module.css +0 -0
  328. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.tsx +0 -0
  329. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/HistoricalArtifactsModuleWrapper.tsx +0 -0
  330. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +0 -0
  331. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/ModuleRegistry.test.ts +0 -0
  332. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/ModuleRegistry.ts +0 -0
  333. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/ModuleWindow.tsx +0 -0
  334. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/TraceModuleJaeger.tsx +0 -0
  335. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +0 -0
  336. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/registerModules.ts +0 -0
  337. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/AdvancedSettings.tsx +0 -0
  338. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/AppearanceSettings.tsx +0 -0
  339. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/GraphSettings.tsx +0 -0
  340. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/MultiSelect.tsx +0 -0
  341. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/SettingsPanel.css +0 -0
  342. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/SettingsPanel.tsx +0 -0
  343. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/ThemeSelector.tsx +0 -0
  344. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/TracingSettings.tsx +0 -0
  345. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useKeyboardShortcuts.ts +0 -0
  346. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useModulePersistence.test.ts +0 -0
  347. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useModulePersistence.ts +0 -0
  348. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useModules.ts +0 -0
  349. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/hooks/usePersistence.ts +0 -0
  350. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/main.tsx +0 -0
  351. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/api.ts +0 -0
  352. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/graphService.test.ts +0 -0
  353. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/graphService.ts +0 -0
  354. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/layout.test.ts +0 -0
  355. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/layout.ts +0 -0
  356. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/themeApplicator.ts +0 -0
  357. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/themeService.ts +0 -0
  358. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/services/websocket.ts +0 -0
  359. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/filterStore.test.ts +0 -0
  360. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/filterStore.ts +0 -0
  361. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/graphStore.test.ts +0 -0
  362. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/graphStore.ts +0 -0
  363. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/moduleStore.test.ts +0 -0
  364. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/moduleStore.ts +0 -0
  365. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/settingsStore.ts +0 -0
  366. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/streamStore.ts +0 -0
  367. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/uiStore.test.ts +0 -0
  368. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/uiStore.ts +0 -0
  369. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/store/wsStore.ts +0 -0
  370. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/styles/index.css +0 -0
  371. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/styles/scrollbar.css +0 -0
  372. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/styles/variables.css +0 -0
  373. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/test/setup.ts +0 -0
  374. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/types/filters.ts +0 -0
  375. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/types/graph.ts +0 -0
  376. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/types/modules.ts +0 -0
  377. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/types/theme.ts +0 -0
  378. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/utils/artifacts.ts +0 -0
  379. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/utils/mockData.ts +0 -0
  380. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/utils/performance.ts +0 -0
  381. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/src/vite-env.d.ts +0 -0
  382. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/tsconfig.json +0 -0
  383. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/tsconfig.node.json +0 -0
  384. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/vite.config.ts +0 -0
  385. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/frontend/vitest.config.ts +0 -0
  386. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/__init__.py +0 -0
  387. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/formatters/themes.py +0 -0
  388. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/span_middleware/baggage_span_processor.py +0 -0
  389. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/base_exporter.py +0 -0
  390. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/file_exporter.py +0 -0
  391. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  392. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/sse/__init__.py +0 -0
  393. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/stdio/__init__.py +0 -0
  394. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
  395. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
  396. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/websockets/__init__.py +0 -0
  397. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
  398. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/types/__init__.py +0 -0
  399. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/types/callbacks.py +0 -0
  400. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/types/factories.py +0 -0
  401. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/util/__init__.py +0 -0
  402. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/mcp/util/helpers.py +0 -0
  403. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/patches/__init__.py +0 -0
  404. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/3024-day.toml +0 -0
  405. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/3024-night.toml +0 -0
  406. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/aardvark-blue.toml +0 -0
  407. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/abernathy.toml +0 -0
  408. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/adventure.toml +0 -0
  409. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/adventuretime.toml +0 -0
  410. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/afterglow.toml +0 -0
  411. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/alabaster.toml +0 -0
  412. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/alienblood.toml +0 -0
  413. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/andromeda.toml +0 -0
  414. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/apple-classic.toml +0 -0
  415. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/apple-system-colors.toml +0 -0
  416. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/arcoiris.toml +0 -0
  417. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/argonaut copy.toml +0 -0
  418. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/argonaut.toml +0 -0
  419. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/arthur.toml +0 -0
  420. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ateliersulphurpool.toml +0 -0
  421. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/atom.toml +0 -0
  422. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/atom_test.toml +0 -0
  423. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/atomonelight.toml +0 -0
  424. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/aurora.toml +0 -0
  425. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ayu copy.toml +0 -0
  426. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ayu-light.toml +0 -0
  427. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ayu-mirage.toml +0 -0
  428. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ayu.toml +0 -0
  429. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/banana-blueberry.toml +0 -0
  430. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/batman.toml +0 -0
  431. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/belafonte-day.toml +0 -0
  432. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/belafonte-night.toml +0 -0
  433. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/birdsofparadise.toml +0 -0
  434. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/blazer.toml +0 -0
  435. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/blue-matrix.toml +0 -0
  436. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/blueberrypie.toml +0 -0
  437. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/bluedolphin.toml +0 -0
  438. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/blulocodark.toml +0 -0
  439. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/blulocolight.toml +0 -0
  440. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/borland.toml +0 -0
  441. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/breeze.toml +0 -0
  442. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/bright-lights.toml +0 -0
  443. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/broadcast.toml +0 -0
  444. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/brogrammer.toml +0 -0
  445. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-dark.toml +0 -0
  446. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-light.toml +0 -0
  447. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  448. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  449. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-solarized-light.toml +0 -0
  450. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-tango-dark.toml +0 -0
  451. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/builtin-tango-light.toml +0 -0
  452. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/c64.toml +0 -0
  453. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/calamity.toml +0 -0
  454. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/catppuccin-frappe.toml +0 -0
  455. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/catppuccin-latte.toml +0 -0
  456. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  457. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/catppuccin-mocha.toml +0 -0
  458. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cga.toml +0 -0
  459. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/chalk.toml +0 -0
  460. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/chalkboard.toml +0 -0
  461. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/challengerdeep.toml +0 -0
  462. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/chester.toml +0 -0
  463. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ciapre.toml +0 -0
  464. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/clrs.toml +0 -0
  465. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cobalt-neon.toml +0 -0
  466. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cobalt2.toml +0 -0
  467. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/coffee-theme.toml +0 -0
  468. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/crayonponyfish.toml +0 -0
  469. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cutiepro.toml +0 -0
  470. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cyberdyne.toml +0 -0
  471. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cyberpunk.toml +0 -0
  472. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  473. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dark+.toml +0 -0
  474. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dark-pastel.toml +0 -0
  475. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/darkermatrix.toml +0 -0
  476. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/darkmatrix.toml +0 -0
  477. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/darkside.toml +0 -0
  478. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dayfox.toml +0 -0
  479. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/deep.toml +0 -0
  480. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/desert.toml +0 -0
  481. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dimidium.toml +0 -0
  482. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dimmedmonokai.toml +0 -0
  483. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/django.toml +0 -0
  484. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/djangorebornagain.toml +0 -0
  485. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/djangosmooth.toml +0 -0
  486. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/doom-peacock.toml +0 -0
  487. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/doomone.toml +0 -0
  488. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dotgov.toml +0 -0
  489. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dracula+.toml +0 -0
  490. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/dracula.toml +0 -0
  491. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/duckbones.toml +0 -0
  492. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/duotone-dark.toml +0 -0
  493. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/earthsong.toml +0 -0
  494. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/elemental.toml +0 -0
  495. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/elementary.toml +0 -0
  496. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/encom.toml +0 -0
  497. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/espresso-libre.toml +0 -0
  498. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/espresso.toml +0 -0
  499. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/everblush.toml +0 -0
  500. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/fahrenheit.toml +0 -0
  501. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/fairyfloss.toml +0 -0
  502. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/farmhouse-dark.toml +0 -0
  503. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/farmhouse-light.toml +0 -0
  504. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/fideloper.toml +0 -0
  505. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/firefly-traditional.toml +0 -0
  506. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/firefoxdev.toml +0 -0
  507. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/firewatch.toml +0 -0
  508. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/fishtank.toml +0 -0
  509. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/flat.toml +0 -0
  510. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/flatland.toml +0 -0
  511. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/flexoki-dark.toml +0 -0
  512. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/flexoki-light.toml +0 -0
  513. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/floraverse.toml +0 -0
  514. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/forestblue.toml +0 -0
  515. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/framer.toml +0 -0
  516. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/frontenddelight.toml +0 -0
  517. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/funforrest.toml +0 -0
  518. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/galaxy.toml +0 -0
  519. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/galizur.toml +0 -0
  520. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/github-dark.toml +0 -0
  521. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/github.toml +0 -0
  522. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/glacier.toml +0 -0
  523. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/grape.toml +0 -0
  524. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/grass.toml +0 -0
  525. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/grey-green.toml +0 -0
  526. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/gruber-darker.toml +0 -0
  527. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/gruvboxdark.toml +0 -0
  528. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  529. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/gruvboxlight.toml +0 -0
  530. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/guezwhoz.toml +0 -0
  531. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hacktober.toml +0 -0
  532. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hardcore.toml +0 -0
  533. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/harper.toml +0 -0
  534. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hax0r-blue.toml +0 -0
  535. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hax0r-gr33n.toml +0 -0
  536. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hax0r-r3d.toml +0 -0
  537. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/highway.toml +0 -0
  538. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hipster-green.toml +0 -0
  539. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hivacruz.toml +0 -0
  540. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/homebrew.toml +0 -0
  541. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hopscotch.256.toml +0 -0
  542. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hopscotch.toml +0 -0
  543. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hurtado.toml +0 -0
  544. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/hybrid.toml +0 -0
  545. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ic-green-ppl.toml +0 -0
  546. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ic-orange-ppl.toml +0 -0
  547. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iceberg-dark.toml +0 -0
  548. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iceberg-light.toml +0 -0
  549. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/idea.toml +0 -0
  550. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/idletoes.toml +0 -0
  551. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ir-black.toml +0 -0
  552. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-dark-background.toml +0 -0
  553. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-default.toml +0 -0
  554. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-light-background.toml +0 -0
  555. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  556. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  557. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  558. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  559. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  560. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/iterm2-tango-light.toml +0 -0
  561. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/jackie-brown.toml +0 -0
  562. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/japanesque.toml +0 -0
  563. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/jellybeans.toml +0 -0
  564. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/jetbrains-darcula.toml +0 -0
  565. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/jubi.toml +0 -0
  566. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/kanagawabones.toml +0 -0
  567. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/kibble.toml +0 -0
  568. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/kolorit.toml +0 -0
  569. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/konsolas.toml +0 -0
  570. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/kurokula.toml +0 -0
  571. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/lab-fox.toml +0 -0
  572. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/laser.toml +0 -0
  573. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/later-this-evening.toml +0 -0
  574. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/lavandula.toml +0 -0
  575. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/liquidcarbon.toml +0 -0
  576. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  577. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  578. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/lovelace.toml +0 -0
  579. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/man-page.toml +0 -0
  580. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/mariana.toml +0 -0
  581. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/material.toml +0 -0
  582. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/materialdark.toml +0 -0
  583. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/materialdarker.toml +0 -0
  584. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/materialdesigncolors.toml +0 -0
  585. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/materialocean.toml +0 -0
  586. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/mathias.toml +0 -0
  587. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/matrix.toml +0 -0
  588. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/medallion.toml +0 -0
  589. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/mellifluous.toml +0 -0
  590. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/midnight-in-mojave.toml +0 -0
  591. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/mirage.toml +0 -0
  592. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/misterioso.toml +0 -0
  593. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/molokai.toml +0 -0
  594. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/monalisa.toml +0 -0
  595. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/monokai-remastered.toml +0 -0
  596. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/monokai-soda.toml +0 -0
  597. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/monokai-vivid.toml +0 -0
  598. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/n0tch2k.toml +0 -0
  599. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/neobones-dark.toml +0 -0
  600. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/neobones-light.toml +0 -0
  601. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/neon.toml +0 -0
  602. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/neopolitan.toml +0 -0
  603. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/neutron.toml +0 -0
  604. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/night-owlish-light.toml +0 -0
  605. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nightfox.toml +0 -0
  606. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nightlion-v1.toml +0 -0
  607. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nightlion-v2.toml +0 -0
  608. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/niji.toml +0 -0
  609. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nocturnal-winter.toml +0 -0
  610. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nord-light.toml +0 -0
  611. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nord.toml +0 -0
  612. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/novel.toml +0 -0
  613. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nvimdark.toml +0 -0
  614. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/nvimlight.toml +0 -0
  615. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/obsidian.toml +0 -0
  616. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ocean.toml +0 -0
  617. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/oceanic-next.toml +0 -0
  618. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/oceanicmaterial.toml +0 -0
  619. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ollie.toml +0 -0
  620. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/onehalfdark.toml +0 -0
  621. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/onehalflight.toml +0 -0
  622. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/operator-mono-dark.toml +0 -0
  623. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/overnight-slumber.toml +0 -0
  624. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/oxocarbon.toml +0 -0
  625. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/palenighthc.toml +0 -0
  626. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/pandora.toml +0 -0
  627. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/paraiso-dark.toml +0 -0
  628. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/paulmillr.toml +0 -0
  629. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/pencildark.toml +0 -0
  630. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/pencillight.toml +0 -0
  631. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/peppermint.toml +0 -0
  632. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/piatto-light.toml +0 -0
  633. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/pnevma.toml +0 -0
  634. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/popping-and-locking.toml +0 -0
  635. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/primary.toml +0 -0
  636. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/pro-light.toml +0 -0
  637. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/pro.toml +0 -0
  638. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/purple-rain.toml +0 -0
  639. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/purplepeter.toml +0 -0
  640. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rapture.toml +0 -0
  641. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/raycast-dark.toml +0 -0
  642. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/raycast-light.toml +0 -0
  643. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rebecca.toml +0 -0
  644. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/red-alert.toml +0 -0
  645. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/red-planet.toml +0 -0
  646. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/red-sands.toml +0 -0
  647. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/relaxed.toml +0 -0
  648. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/retro.toml +0 -0
  649. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rippedcasts.toml +0 -0
  650. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rose-pine-dawn.toml +0 -0
  651. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rose-pine-moon.toml +0 -0
  652. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rose-pine.toml +0 -0
  653. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/rouge-2.toml +0 -0
  654. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/royal.toml +0 -0
  655. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ryuuko.toml +0 -0
  656. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/sakura.toml +0 -0
  657. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/scarlet-protocol.toml +0 -0
  658. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/seafoam-pastel.toml +0 -0
  659. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/seashells.toml +0 -0
  660. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/seoulbones-dark.toml +0 -0
  661. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/seoulbones-light.toml +0 -0
  662. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/seti.toml +0 -0
  663. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/shades-of-purple.toml +0 -0
  664. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/shaman.toml +0 -0
  665. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/slate.toml +0 -0
  666. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/sleepyhollow.toml +0 -0
  667. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/smyck.toml +0 -0
  668. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/snazzy.toml +0 -0
  669. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/softserver.toml +0 -0
  670. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/solarized-darcula.toml +0 -0
  671. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/solarized-dark---patched.toml +0 -0
  672. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  673. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/spacedust.toml +0 -0
  674. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  675. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/spacegray-eighties.toml +0 -0
  676. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/spacegray.toml +0 -0
  677. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/spiderman.toml +0 -0
  678. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/spring.toml +0 -0
  679. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/square.toml +0 -0
  680. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/sublette.toml +0 -0
  681. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/subliminal.toml +0 -0
  682. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/sugarplum.toml +0 -0
  683. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/sundried.toml +0 -0
  684. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/symfonic.toml +0 -0
  685. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/synthwave-everything.toml +0 -0
  686. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/synthwave.toml +0 -0
  687. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/synthwavealpha.toml +0 -0
  688. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tango-adapted.toml +0 -0
  689. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tango-half-adapted.toml +0 -0
  690. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/teerb.toml +0 -0
  691. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/terafox.toml +0 -0
  692. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/terminal-basic.toml +0 -0
  693. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/thayer-bright.toml +0 -0
  694. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/the-hulk.toml +0 -0
  695. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  696. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tinacious-design-(light).toml +0 -0
  697. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tokyonight-day.toml +0 -0
  698. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tokyonight-storm.toml +0 -0
  699. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tokyonight.toml +0 -0
  700. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  701. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  702. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  703. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  704. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tomorrow-night.toml +0 -0
  705. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/tomorrow.toml +0 -0
  706. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/toychest.toml +0 -0
  707. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/treehouse.toml +0 -0
  708. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/twilight.toml +0 -0
  709. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ubuntu.toml +0 -0
  710. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ultradark.toml +0 -0
  711. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/ultraviolent.toml +0 -0
  712. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/underthesea.toml +0 -0
  713. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/unikitty.toml +0 -0
  714. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/urple.toml +0 -0
  715. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/vaughn.toml +0 -0
  716. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/vesper.toml +0 -0
  717. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/vibrantink.toml +0 -0
  718. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/vimbones.toml +0 -0
  719. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/violet-dark.toml +0 -0
  720. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/violet-light.toml +0 -0
  721. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/warmneon.toml +0 -0
  722. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/wez.toml +0 -0
  723. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/whimsy.toml +0 -0
  724. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/wildcherry.toml +0 -0
  725. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/wilmersdorf.toml +0 -0
  726. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/wombat.toml +0 -0
  727. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/wryan.toml +0 -0
  728. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/xcodedark.toml +0 -0
  729. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/xcodedarkhc.toml +0 -0
  730. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/xcodelight.toml +0 -0
  731. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/xcodelighthc.toml +0 -0
  732. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/xcodewwdc.toml +0 -0
  733. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenbones-dark.toml +0 -0
  734. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenbones-light.toml +0 -0
  735. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenbones.toml +0 -0
  736. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenburn.toml +0 -0
  737. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenburned.toml +0 -0
  738. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenwritten-dark.toml +0 -0
  739. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/themes/zenwritten-light.toml +0 -0
  740. {flock_core-0.5.9 → flock_core-0.5.11}/src/flock/visibility.py +0 -0
  741. {flock_core-0.5.9 → flock_core-0.5.11}/tests/PHASE2_TEST_SUMMARY.md +0 -0
  742. {flock_core-0.5.9 → flock_core-0.5.11}/tests/PHASE3_TEST_SUMMARY.md +0 -0
  743. {flock_core-0.5.9 → flock_core-0.5.11}/tests/TEST_COVERAGE_PHASE2.md +0 -0
  744. {flock_core-0.5.9 → flock_core-0.5.11}/tests/conftest.py +0 -0
  745. {flock_core-0.5.9 → flock_core-0.5.11}/tests/contract/test_agent_payload_selection_contract.py +0 -0
  746. {flock_core-0.5.9 → flock_core-0.5.11}/tests/contract/test_artifact_storage_contract.py +0 -0
  747. {flock_core-0.5.9 → flock_core-0.5.11}/tests/contract/test_type_normalization_contract.py +0 -0
  748. {flock_core-0.5.9 → flock_core-0.5.11}/tests/dashboard/test_logic_operations_api.py +0 -0
  749. {flock_core-0.5.9 → flock_core-0.5.11}/tests/dashboard/test_logic_operations_events.py +0 -0
  750. {flock_core-0.5.9 → flock_core-0.5.11}/tests/e2e/README.md +0 -0
  751. {flock_core-0.5.9 → flock_core-0.5.11}/tests/e2e/TESTING_SUMMARY.md +0 -0
  752. {flock_core-0.5.9 → flock_core-0.5.11}/tests/integration/test_collector_orchestrator.py +0 -0
  753. {flock_core-0.5.9 → flock_core-0.5.11}/tests/integration/test_sqlite_store_integration.py +0 -0
  754. {flock_core-0.5.9 → flock_core-0.5.11}/tests/integration/test_websocket_protocol.py +0 -0
  755. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_agent.py +0 -0
  756. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_agent_builder.py +0 -0
  757. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_agent_mcp.py +0 -0
  758. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_agent_server_specific_mounts.py +0 -0
  759. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_artifacts.py +0 -0
  760. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_cli.py +0 -0
  761. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_cli_helper.py +0 -0
  762. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dashboard_api.py +0 -0
  763. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dashboard_collector.py +0 -0
  764. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dashboard_graph.py +0 -0
  765. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dashboard_launcher.py +0 -0
  766. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dashboard_service.py +0 -0
  767. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dspy_engine_mcp.py +0 -0
  768. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dspy_engine_multioutput.py +0 -0
  769. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_dspy_streaming_events.py +0 -0
  770. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_filtering_validation.py +0 -0
  771. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_logging_config.py +0 -0
  772. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_client.py +0 -0
  773. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_config.py +0 -0
  774. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_coverage_summary.md +0 -0
  775. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_imports.py +0 -0
  776. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_manager.py +0 -0
  777. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_server_config_typeddict.py +0 -0
  778. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_mcp_tool_handlers.py +0 -0
  779. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator.py +0 -0
  780. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator_and_gate.py +0 -0
  781. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator_combined.py +0 -0
  782. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator_component.py +0 -0
  783. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator_joinspec.py +0 -0
  784. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_orchestrator_mcp.py +0 -0
  785. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_output_groups.py +0 -0
  786. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_registry.py +0 -0
  787. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_service.py +0 -0
  788. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_service_extended.py +0 -0
  789. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_store.py +0 -0
  790. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_store_graph.py +0 -0
  791. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_telemetry.py +0 -0
  792. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_trace_clearing.py +0 -0
  793. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_unified_tracing.py +0 -0
  794. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_utilities.py +0 -0
  795. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_version_endpoint.py +0 -0
  796. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_visibility.py +0 -0
  797. {flock_core-0.5.9 → flock_core-0.5.11}/tests/test_websocket_manager.py +0 -0
@@ -0,0 +1,205 @@
1
+ # 🚀 [FEATURE] Non-Blocking `serve()` for Dashboard Examples
2
+
3
+ ### Is your feature request related to a problem?
4
+
5
+ Dashboard examples currently face a limitation: once `flock.serve(dashboard=True)` is called, execution blocks indefinitely. This makes it impossible to publish messages or perform any setup logic after starting the dashboard server, unlike CLI examples which use `run_until_idle()` for controlled execution.
6
+
7
+ **Current workaround:**
8
+ Users must publish all messages *before* calling `serve()`, which is awkward for demos and prevents realistic workflows where the server runs continuously while processing incoming messages.
9
+
10
+ **Example of the problem:**
11
+ ```python
12
+ # This doesn't work - can't execute after serve()
13
+ async def main():
14
+ await flock.serve(dashboard=True) # blocks forever
15
+
16
+ # This code never runs! ❌
17
+ pizza = MyDreamPizza(pizza_idea="pizza with pineapple")
18
+ await flock.publish(pizza)
19
+ await flock.run_until_idle()
20
+ ```
21
+
22
+ ### Describe the solution you want to see
23
+
24
+ Add a `blocking` parameter to `serve()` that allows starting the dashboard server as a background task:
25
+
26
+ ```python
27
+ async def serve(
28
+ self,
29
+ *,
30
+ dashboard: bool = False,
31
+ dashboard_v2: bool = False,
32
+ host: str = "127.0.0.1",
33
+ port: int = 8344,
34
+ blocking: bool = True, # NEW: default True for backwards compatibility
35
+ ) -> Task[None] | None:
36
+ ```
37
+
38
+ **Usage example:**
39
+ ```python
40
+ async def main():
41
+ # Start dashboard in background
42
+ await flock.serve(dashboard=True, blocking=False)
43
+
44
+ # Now we can publish messages!
45
+ pizza = MyDreamPizza(pizza_idea="pizza with pineapple")
46
+ await flock.publish(pizza)
47
+ await flock.run_until_idle()
48
+
49
+ # Dashboard stays alive for inspection
50
+ print("Check dashboard at http://localhost:8344")
51
+ await asyncio.Event().wait() # Keep running
52
+ ```
53
+
54
+ **Key requirements:**
55
+ - Backwards compatible (`blocking=True` by default)
56
+ - Return `Task[None]` handle when `blocking=False`
57
+ - Proper cleanup of dashboard launcher and server on shutdown or task cancellation
58
+ - Works seamlessly with `run_until_idle()`
59
+
60
+ ### Describe alternatives you have considered
61
+
62
+ **Option 1: Startup hook pattern**
63
+ ```python
64
+ async def setup():
65
+ await flock.publish(...)
66
+
67
+ await flock.serve(dashboard=True, on_startup=setup)
68
+ ```
69
+ ❌ Less flexible, doesn't allow continuous message publishing
70
+
71
+ **Option 2: Separate `serve_background()` method**
72
+ ```python
73
+ await flock.serve_background(dashboard=True)
74
+ ```
75
+ ❌ API duplication, less discoverable
76
+
77
+ **Option 3: Always non-blocking**
78
+ ```python
79
+ await flock.serve(dashboard=True) # always returns immediately
80
+ ```
81
+ ❌ Breaking change for existing users
82
+
83
+ ### Additional context
84
+
85
+ **Complexity: Medium** (6-9 hours estimated)
86
+ - Core async pattern is straightforward (codebase already uses `asyncio.create_task` extensively)
87
+ - Cleanup coordination requires careful handling (dashboard launcher + server task lifecycle)
88
+ - Backwards compatibility is preserved with default parameter
89
+
90
+ ---
91
+
92
+ ## 🛠️ Implementation Plan
93
+
94
+ ### 1. Core Changes
95
+
96
+ **File: `src/flock/orchestrator.py`**
97
+
98
+ - Add `blocking: bool = True` parameter to `serve()` method (line 753)
99
+ - Add `_server_task: Task[None] | None = None` field to `__init__` (around line 165)
100
+ - Update return type: `-> Task[None] | None`
101
+ - When `blocking=False`:
102
+ - Wrap server execution in `asyncio.create_task()`
103
+ - Add cleanup callback for dashboard launcher on task completion
104
+ - Track task in `_server_task` field
105
+ - Return task handle
106
+
107
+ **Estimated effort:** 2-3 hours
108
+
109
+ ### 2. Cleanup Logic
110
+
111
+ **File: `src/flock/orchestrator.py`**
112
+
113
+ - Add server cleanup to `shutdown()` method (line 718)
114
+ - Cancel `_server_task` if running
115
+ - Stop `_dashboard_launcher` if present
116
+ - Handle `asyncio.CancelledError` gracefully
117
+ - Ensure proper resource cleanup on both normal completion and cancellation
118
+
119
+ **Estimated effort:** 1-2 hours
120
+
121
+ ### 3. Testing
122
+
123
+ **File: `tests/integration/test_orchestrator_dashboard.py` (or new test file)**
124
+
125
+ Test scenarios:
126
+ - ✅ Non-blocking serve starts successfully and returns task
127
+ - ✅ Can publish messages after non-blocking serve
128
+ - ✅ Server processes messages during `run_until_idle()`
129
+ - ✅ Dashboard launcher cleanup on task completion
130
+ - ✅ Cleanup on explicit `shutdown()` call
131
+ - ✅ Backwards compatibility: `blocking=True` works as before
132
+ - ✅ Task cancellation cleans up resources properly
133
+
134
+ **Estimated effort:** 2-3 hours
135
+
136
+ ### 4. Documentation
137
+
138
+ **Files to update:**
139
+ - `src/flock/orchestrator.py` - Update `serve()` docstring with:
140
+ - New `blocking` parameter description
141
+ - Example showing non-blocking usage
142
+ - Return type documentation
143
+
144
+ **Estimated effort:** 30 minutes
145
+
146
+ ### 5. Example
147
+
148
+ **File: `examples/02-dashboard/02_non_blocking_serve.py` (new)**
149
+
150
+ Create example demonstrating:
151
+ - Starting dashboard in non-blocking mode
152
+ - Publishing messages after server starts
153
+ - Using `run_until_idle()` to process messages
154
+ - Keeping server alive for inspection
155
+
156
+ **Estimated effort:** 1 hour
157
+
158
+ ---
159
+
160
+ ## ✅ Definition of Done
161
+
162
+ - [ ] `blocking` parameter implemented with default `True`
163
+ - [ ] Non-blocking mode returns `Task[None]` handle
164
+ - [ ] Server cleanup logic handles both normal and cancelled completion
165
+ - [ ] All tests passing (new + existing)
166
+ - [ ] Docstring updated with parameter and examples
167
+ - [ ] New example created: `examples/02-dashboard/02_non_blocking_serve.py`
168
+ - [ ] Backwards compatibility verified (existing examples still work)
169
+ - [ ] Manual validation: example runs and dashboard stays accessible
170
+
171
+ ---
172
+
173
+ ## 🧪 Validation Strategy
174
+
175
+ **Automated:**
176
+ - Unit/integration tests for non-blocking behavior
177
+ - Cleanup verification tests
178
+ - Backwards compatibility regression tests
179
+
180
+ **Manual:**
181
+ 1. Run new example: `python examples/02-dashboard/02_non_blocking_serve.py`
182
+ 2. Verify dashboard accessible at http://localhost:8344
183
+ 3. Verify messages appear in dashboard
184
+ 4. Verify server stays alive after `run_until_idle()`
185
+ 5. Test graceful shutdown (Ctrl+C)
186
+
187
+ ---
188
+
189
+ ## 📅 Timeline Estimate
190
+
191
+ **Total effort:** 6-9 hours
192
+
193
+ Breakdown:
194
+ - Implementation: 3-5 hours
195
+ - Testing: 2-3 hours
196
+ - Documentation + Example: 1.5 hours
197
+
198
+ ---
199
+
200
+ ## 🔗 Technical References
201
+
202
+ - `orchestrator.py:753` - Current `serve()` implementation
203
+ - `orchestrator.py:580, 588, 1417` - Existing `asyncio.create_task` usage patterns
204
+ - `orchestrator.py:718` - Existing `shutdown()` method
205
+ - `service.py:279` - `BlackboardHTTPService.run_async()` (blocks on `uvicorn.Server.serve()`)
@@ -53,7 +53,7 @@ A blackboard architecture framework where specialized AI agents collaborate thro
53
53
 
54
54
  ### Prerequisites
55
55
 
56
- - **Python 3.10+** (we use modern async features)
56
+ - **Python 3.12+** (we use modern async features)
57
57
  - **UV package manager** (faster than pip, handles virtual envs)
58
58
  - **Node.js 18+** (22+ recommended) for dashboard frontend
59
59
  - **OpenAI API key** (for running examples)
@@ -107,6 +107,7 @@ For deep dives into specific topics, see:
107
107
  **Core Architecture:**
108
108
  - **[Architecture & Blackboard](docs/guides/blackboard.md)** - Core pattern, structure, and behavior
109
109
  - **[Agent Guide](docs/guides/agents.md)** - Complete agent development reference
110
+ - **[Context Providers](docs/guides/context-providers.md)** - Smart filtering & security boundaries for agent context ⭐ **NEW in 0.5**
110
111
 
111
112
  **Components & Extensibility:**
112
113
  - **[Agent Components](docs/guides/components.md)** - Extend agent behavior with lifecycle hooks
@@ -296,6 +297,288 @@ Kick the tyres with `examples/02-the-blackboard/01_persistent_pizza.py`, then la
296
297
 
297
298
  ---
298
299
 
300
+ ### 🔐 Context Providers - Smart Filtering & Security Boundaries
301
+
302
+ **Context Providers are the intelligent filter layer between agents and the blackboard—controlling what each agent sees, reducing token costs by 90%+, and automatically redacting sensitive data.**
303
+
304
+ #### Why Context Providers Matter
305
+
306
+ **The Problem:**
307
+ - Agents seeing ALL artifacts wastes tokens (costs)
308
+ - No way to filter sensitive data before agents see it
309
+ - Performance degrades as blackboard grows
310
+ - Security vulnerabilities if agents bypass visibility
311
+
312
+ **The Solution:**
313
+ Context Providers enforce a security boundary that:
314
+ - ✅ **Reduces token costs** - Agents see only relevant artifacts (90%+ savings)
315
+ - ✅ **Protects sensitive data** - Auto-redact passwords, API keys, credit cards
316
+ - ✅ **Improves performance** - Less context = faster agent execution
317
+ - ✅ **Enforces security** - Agents cannot bypass provider filtering
318
+
319
+ **Understanding the Three-Layer Model:**
320
+
321
+ Flock uses three complementary filtering layers:
322
+
323
+ 1. **Visibility** (security boundary) - Controls BOTH which agents trigger AND which artifacts they see in context
324
+ 2. **Subscription Filters** (routing logic) - Controls WHEN agents trigger (e.g., `.consumes(Task, tags={"urgent"})`)
325
+ 3. **Context Providers** (context shaping) - Controls WHAT agents see in their historical context
326
+
327
+ These layers work together to provide fine-grained control over agent execution and data access. Context Providers are the third layer—they filter what agents see in context but do NOT control triggering.
328
+
329
+ #### Quick Start: Global Filtering
330
+
331
+ **Filter all agents to see only urgent items:**
332
+
333
+ ```python
334
+ from flock import Flock
335
+ from flock.context_provider import FilteredContextProvider
336
+ from flock.store import FilterConfig
337
+
338
+ # Create provider that filters by tags
339
+ urgent_only = FilteredContextProvider(
340
+ FilterConfig(tags={"urgent", "high"}),
341
+ limit=50 # Max 50 artifacts
342
+ )
343
+
344
+ # Apply to ALL agents
345
+ flock = Flock("openai/gpt-4.1", context_provider=urgent_only)
346
+
347
+ # Publish with tags
348
+ await flock.publish(Task(...), tags={"urgent"}) # ✅ Agents see this
349
+ await flock.publish(Task(...), tags={"low"}) # ❌ Agents don't see this
350
+ ```
351
+
352
+ #### Per-Agent Filtering (Role-Based)
353
+
354
+ **Different agents see different context:**
355
+
356
+ ```python
357
+ # Global: Errors only
358
+ error_provider = FilteredContextProvider(FilterConfig(tags={"ERROR"}))
359
+ flock = Flock("openai/gpt-4.1", context_provider=error_provider)
360
+
361
+ # Junior engineer: Errors only (uses global)
362
+ junior = flock.agent("junior").consumes(LogEntry).publishes(Report).agent
363
+
364
+ # Senior engineer: Errors + Warnings (override global)
365
+ warn_provider = FilteredContextProvider(FilterConfig(tags={"ERROR", "WARN"}))
366
+ senior = flock.agent("senior").consumes(LogEntry).publishes(Analysis).agent
367
+ senior.context_provider = warn_provider # 🎯 Per-agent override!
368
+
369
+ # Platform team: Everything (override global)
370
+ all_provider = FilteredContextProvider(FilterConfig(tags={"DEBUG", "INFO", "WARN", "ERROR"}))
371
+ platform = flock.agent("platform").consumes(LogEntry).publishes(Report).agent
372
+ platform.context_provider = all_provider
373
+ ```
374
+
375
+ **Provider Priority:**
376
+ ```
377
+ Per-Agent Provider > Global Provider > DefaultContextProvider
378
+ (highest) (medium) (fallback)
379
+ ```
380
+
381
+ #### Production-Ready: Password Redaction
382
+
383
+ **Automatically redact sensitive data from agent context:**
384
+
385
+ ```python
386
+ from examples.context_provider import PasswordRedactorProvider
387
+
388
+ # Create provider with built-in patterns
389
+ provider = PasswordRedactorProvider(
390
+ redaction_text="[REDACTED]",
391
+ redact_emails=True,
392
+ log_redactions=True # Audit trail
393
+ )
394
+
395
+ flock = Flock("openai/gpt-4.1", context_provider=provider)
396
+
397
+ # Publish data with secrets
398
+ await flock.publish(UserData(
399
+ password="MySecret123", # → [REDACTED]
400
+ api_key="sk-1234567890abcdef", # → [REDACTED]
401
+ email="user@example.com" # → [REDACTED]
402
+ ))
403
+
404
+ # Agents see redacted version automatically!
405
+ ```
406
+
407
+ **What gets redacted:**
408
+ - 🔒 Passwords and secrets
409
+ - 🔑 API keys (OpenAI, AWS, GitHub, GitLab, Stripe, Google)
410
+ - 🎫 Bearer tokens and JWT
411
+ - 💳 Credit card numbers (Visa, MC, Amex, Discover)
412
+ - 🆔 Social Security Numbers
413
+ - 🔐 Private keys (RSA, EC, OpenSSH)
414
+ - 📧 Email addresses (optional)
415
+
416
+ #### FilterConfig API Reference
417
+
418
+ **Declarative filtering with multiple criteria:**
419
+
420
+ ```python
421
+ from flock.store import FilterConfig
422
+
423
+ # Combine multiple filters (AND logic)
424
+ config = FilterConfig(
425
+ tags={"ERROR", "CRITICAL"}, # OR logic: any of these tags
426
+ type_names={"SystemEvent", "Alert"}, # OR logic: any of these types
427
+ produced_by=["monitor", "watchdog"], # OR logic: from any of these agents
428
+ correlation_id="incident-123" # Exact match
429
+ )
430
+
431
+ provider = FilteredContextProvider(config, limit=100)
432
+ ```
433
+
434
+ **Criteria are combined with AND logic:**
435
+ - Must have (ERROR OR CRITICAL) tag
436
+ - AND must be (SystemEvent OR Alert) type
437
+ - AND must be from (monitor OR watchdog) agent
438
+ - AND must have correlation_id "incident-123"
439
+
440
+ #### Custom Context Providers
441
+
442
+ **Build your own filtering logic:**
443
+
444
+ ```python
445
+ from flock.context_provider import BaseContextProvider, ContextRequest
446
+ from flock.artifacts import Artifact
447
+
448
+ class TimeBoundProvider(BaseContextProvider):
449
+ """Only show artifacts from last 1 hour.
450
+
451
+ Security is enforced automatically by BaseContextProvider!
452
+ """
453
+
454
+ async def get_artifacts(self, request: ContextRequest) -> list[Artifact]:
455
+ cutoff = datetime.now() - timedelta(hours=1)
456
+
457
+ # Query all artifacts
458
+ artifacts, _ = await request.store.query_artifacts(limit=1000)
459
+
460
+ # Apply time-based filtering
461
+ recent = [a for a in artifacts if a.created_at >= cutoff]
462
+
463
+ return recent
464
+
465
+ # ✨ BaseContextProvider automatically:
466
+ # - Filters by visibility (MANDATORY, cannot bypass!)
467
+ # - Excludes requested IDs
468
+ # - Serializes to standard format
469
+
470
+ # Usage
471
+ provider = TimeBoundProvider()
472
+ flock = Flock("openai/gpt-4.1", context_provider=provider)
473
+ ```
474
+
475
+ **Why this is better:**
476
+ - ✅ **75% less code** - 5 lines vs 20+ lines
477
+ - ✅ **Impossible to bypass security** - visibility enforced by base class
478
+ - ✅ **Consistent serialization** - automatic standard format
479
+ - ✅ **Focus on business logic** - not infrastructure
480
+
481
+ #### Real-World Use Cases
482
+
483
+ **Healthcare (HIPAA Compliance):**
484
+ ```python
485
+ # Redact PHI (Protected Health Information)
486
+ from examples.context_provider import PasswordRedactorProvider
487
+
488
+ phi_provider = PasswordRedactorProvider(
489
+ custom_patterns={
490
+ "ssn": r"\b\d{3}-\d{2}-\d{4}\b",
491
+ "mrn": r"MRN[:\s]*\d{6,10}",
492
+ "dob": r"\b\d{2}/\d{2}/\d{4}\b",
493
+ }
494
+ )
495
+
496
+ flock = Flock("openai/gpt-4.1", context_provider=phi_provider)
497
+ ```
498
+
499
+ **DevOps (Log Filtering):**
500
+ ```python
501
+ # Error engineers see only errors
502
+ error_provider = FilteredContextProvider(FilterConfig(tags={"ERROR", "CRITICAL"}))
503
+ error_agent.context_provider = error_provider
504
+
505
+ # Platform team sees everything
506
+ all_provider = FilteredContextProvider(FilterConfig(tags={"DEBUG", "INFO", "WARN", "ERROR"}))
507
+ platform_agent.context_provider = all_provider
508
+ ```
509
+
510
+ **Multi-Tenant SaaS (Customer Isolation):**
511
+ ```python
512
+ # Each tenant gets isolated context
513
+ tenant_a_provider = FilteredContextProvider(FilterConfig(correlation_id=f"tenant_{customer_a.id}"))
514
+ tenant_a_agent.context_provider = tenant_a_provider
515
+
516
+ tenant_b_provider = FilteredContextProvider(FilterConfig(correlation_id=f"tenant_{customer_b.id}"))
517
+ tenant_b_agent.context_provider = tenant_b_provider
518
+ ```
519
+
520
+ #### Performance Impact
521
+
522
+ **Token Cost Reduction:**
523
+
524
+ ```python
525
+ # ❌ Before (no filtering): Agent sees 1000 artifacts = 200,000 tokens
526
+ # Cost: $0.006 per agent call
527
+
528
+ # ✅ After (smart filtering): Agent sees 10 relevant artifacts = 2,000 tokens
529
+ # Cost: $0.00006 per agent call
530
+
531
+ # 💰 99% cost reduction!
532
+
533
+ provider = FilteredContextProvider(FilterConfig(tags={"urgent"}), limit=10)
534
+ ```
535
+
536
+ #### Security Best Practices
537
+
538
+ **✅ DO:**
539
+ - Always enforce visibility (NEVER skip)
540
+ - Use `FilteredContextProvider` for common patterns
541
+ - Test redaction patterns with real data
542
+ - Log security events for audit trails
543
+ - Limit by default (start restrictive)
544
+
545
+ **❌ DON'T:**
546
+ - Don't skip visibility filtering (security boundary!)
547
+ - Don't leak sensitive data in nested objects
548
+ - Don't cache redacted data without re-applying redaction
549
+ - Don't trust agent input (agents are untrusted)
550
+ - Don't expose infrastructure details
551
+
552
+ #### Learn More
553
+
554
+ **📚 Complete Guide:** [docs/guides/context-providers.md](docs/guides/context-providers.md) - Architecture, security model, advanced patterns
555
+
556
+ **💡 Examples:** [examples/08-context-provider/](examples/08-context-provider/) - 5 progressive examples from beginner to expert
557
+
558
+ **🎁 Production Code:** [examples/08-context-provider/05_password_redactor.py](examples/08-context-provider/05_password_redactor.py) - Copy-paste ready password filtering
559
+
560
+ #### Quick Reference
561
+
562
+ ```python
563
+ # Global filtering
564
+ flock = Flock("openai/gpt-4.1", context_provider=FilteredContextProvider(FilterConfig(tags={"urgent"})))
565
+
566
+ # Per-agent override
567
+ agent.context_provider = FilteredContextProvider(FilterConfig(tags={"ERROR", "WARN"}))
568
+
569
+ # Password redaction
570
+ from examples.context_provider import PasswordRedactorProvider
571
+ flock = Flock("openai/gpt-4.1", context_provider=PasswordRedactorProvider())
572
+
573
+ # Custom provider
574
+ class MyProvider(ContextProvider):
575
+ async def __call__(self, request: ContextRequest) -> list[dict[str, Any]]:
576
+ # Query + filter by visibility (MANDATORY) + your logic
577
+ pass
578
+ ```
579
+
580
+ ---
581
+
299
582
  ### 🔒 Test Isolation and Mock Cleanup - The Contamination Trap
300
583
 
301
584
  **We fixed 32 failing tests caused by test contamination - here's what we learned:**
@@ -1335,7 +1618,7 @@ Add to existing test file if relevant, or create new file following naming conve
1335
1618
 
1336
1619
  ### Q: What Python version features can I use?
1337
1620
 
1338
- Python 3.10+, so you can use:
1621
+ Python 3.12+, so you can use:
1339
1622
  - `match`/`case` statements
1340
1623
  - `TaskGroup` for parallel execution
1341
1624
  - Improved type hints (`list[str]` not `List[str]`)