flock-core 0.5.10__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 (799) hide show
  1. flock_core-0.5.11/.github/issue_draft_non_blocking_serve.md +205 -0
  2. {flock_core-0.5.10 → flock_core-0.5.11}/PKG-INFO +52 -58
  3. {flock_core-0.5.10 → flock_core-0.5.11}/README.md +51 -57
  4. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/dashboard.md +28 -0
  5. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/index.md +11 -0
  6. flock_core-0.5.11/docs/guides/rest-api.md +466 -0
  7. flock_core-0.5.11/examples/02-dashboard/02_non_blocking_serve.py +97 -0
  8. {flock_core-0.5.10 → flock_core-0.5.11}/pyproject.toml +4 -40
  9. flock_core-0.5.11/src/flock/api_models.py +285 -0
  10. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/service.py +44 -21
  11. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/orchestrator.py +246 -9
  12. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/service.py +119 -61
  13. flock_core-0.5.11/src/flock/system_artifacts.py +33 -0
  14. {flock_core-0.5.10 → flock_core-0.5.11}/tests/integration/test_orchestrator_dashboard.py +241 -0
  15. flock_core-0.5.11/tests/test_api_models.py +320 -0
  16. {flock_core-0.5.10 → flock_core-0.5.11}/uv.lock +161 -141
  17. flock_core-0.5.10/docs/specs/001-sqlite-blackboard-store/PLAN.md +0 -169
  18. flock_core-0.5.10/docs/specs/001-sqlite-blackboard-store/PRD.md +0 -146
  19. flock_core-0.5.10/docs/specs/002-ui-optimization-migration/PHASE_4.1_AFTERMATH_AUDIT.md +0 -243
  20. flock_core-0.5.10/docs/specs/002-ui-optimization-migration/PHASE_4.1_TASK_LIST.md +0 -464
  21. flock_core-0.5.10/docs/specs/002-ui-optimization-migration/PLAN.md +0 -743
  22. flock_core-0.5.10/docs/specs/002-ui-optimization-migration/PRD.md +0 -146
  23. flock_core-0.5.10/docs/specs/003-logic-operations/PLAN.md +0 -1252
  24. flock_core-0.5.10/docs/specs/004-logic-operations-ux/PLAN.md +0 -630
  25. flock_core-0.5.10/docs/specs/004-logic-operations-ux/PRD.md +0 -146
  26. flock_core-0.5.10/docs/specs/004-orchestrator-component/LOGGING_GUIDE.md +0 -652
  27. flock_core-0.5.10/docs/specs/004-orchestrator-component/PLAN.md +0 -509
  28. flock_core-0.5.10/docs/specs/004-orchestrator-component/PRD.md +0 -146
  29. flock_core-0.5.10/docs/specs/004-orchestrator-component/README.md +0 -104
  30. flock_core-0.5.10/docs/specs/004-orchestrator-component/UNIFIED_IMPLEMENTATION_PLAN.md +0 -1028
  31. flock_core-0.5.10/docs/specs/005-multi-publishes-fan-out/CHANGES_SUMMARY.md +0 -160
  32. flock_core-0.5.10/docs/specs/005-multi-publishes-fan-out/CONCURRENCY_FIX.md +0 -304
  33. flock_core-0.5.10/docs/specs/005-multi-publishes-fan-out/PHASE4_ARCHITECTURAL_PIVOT.md +0 -277
  34. flock_core-0.5.10/docs/specs/005-multi-publishes-fan-out/PLAN.md +0 -616
  35. flock_core-0.5.10/docs/specs/005-multi-publishes-fan-out/PRD.md +0 -146
  36. flock_core-0.5.10/docs/specs/006-dspy-engine-refactor/PLAN.md +0 -1052
  37. flock_core-0.5.10/docs/specs/007-context-provider-security-fix/PLAN.md +0 -470
  38. flock_core-0.5.10/docs/specs/007-context-provider-security-fix/PRD.md +0 -146
  39. {flock_core-0.5.10 → flock_core-0.5.11}/.devcontainer/devcontainer.json +0 -0
  40. {flock_core-0.5.10 → flock_core-0.5.11}/.envtemplate +0 -0
  41. {flock_core-0.5.10 → flock_core-0.5.11}/.github/workflows/deploy-documentation.yml +0 -0
  42. {flock_core-0.5.10 → flock_core-0.5.11}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  43. {flock_core-0.5.10 → flock_core-0.5.11}/.github/workflows/quality.yml +0 -0
  44. {flock_core-0.5.10 → flock_core-0.5.11}/.gitignore +0 -0
  45. {flock_core-0.5.10 → flock_core-0.5.11}/.pre-commit-config.yaml +0 -0
  46. {flock_core-0.5.10 → flock_core-0.5.11}/.python-version +0 -0
  47. {flock_core-0.5.10 → flock_core-0.5.11}/.vscode/settings.json +0 -0
  48. {flock_core-0.5.10 → flock_core-0.5.11}/AGENTS.md +0 -0
  49. {flock_core-0.5.10 → flock_core-0.5.11}/AUTO_TRACING.md +0 -0
  50. {flock_core-0.5.10 → flock_core-0.5.11}/CONTRIBUTING.md +0 -0
  51. {flock_core-0.5.10 → flock_core-0.5.11}/ID_AUDIT_REPORT.md +0 -0
  52. {flock_core-0.5.10 → flock_core-0.5.11}/LICENSE +0 -0
  53. {flock_core-0.5.10 → flock_core-0.5.11}/ROADMAP.md +0 -0
  54. {flock_core-0.5.10 → flock_core-0.5.11}/USECASES.md +0 -0
  55. {flock_core-0.5.10 → flock_core-0.5.11}/docs/about/changelog.md +0 -0
  56. {flock_core-0.5.10 → flock_core-0.5.11}/docs/about/contributing.md +0 -0
  57. {flock_core-0.5.10 → flock_core-0.5.11}/docs/about/roadmap.md +0 -0
  58. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/batch.png +0 -0
  59. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/bug_diagnosis.png +0 -0
  60. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/flock.png +0 -0
  61. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/flock_ui_1.png +0 -0
  62. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/flock_ui_agent_view.png +0 -0
  63. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/flock_ui_blackboard_view.png +0 -0
  64. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/join.png +0 -0
  65. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/pattern2.png +0 -0
  66. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/pizza.png +0 -0
  67. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/trace_1.png +0 -0
  68. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/trace_2.png +0 -0
  69. {flock_core-0.5.10 → flock_core-0.5.11}/docs/assets/images/trace_3.png +0 -0
  70. {flock_core-0.5.10 → flock_core-0.5.11}/docs/bugfixes/websocket-streaming-deadlock-fix.md +0 -0
  71. {flock_core-0.5.10 → flock_core-0.5.11}/docs/community/index.md +0 -0
  72. {flock_core-0.5.10 → flock_core-0.5.11}/docs/examples/index.md +0 -0
  73. {flock_core-0.5.10 → flock_core-0.5.11}/docs/getting-started/concepts.md +0 -0
  74. {flock_core-0.5.10 → flock_core-0.5.11}/docs/getting-started/index.md +0 -0
  75. {flock_core-0.5.10 → flock_core-0.5.11}/docs/getting-started/installation.md +0 -0
  76. {flock_core-0.5.10 → flock_core-0.5.11}/docs/getting-started/quick-start.md +0 -0
  77. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/agents.md +0 -0
  78. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/batch-processing.md +0 -0
  79. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/blackboard.md +0 -0
  80. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/components.md +0 -0
  81. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/context-providers.md +0 -0
  82. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/dspy-engine.md +0 -0
  83. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/fan-out.md +0 -0
  84. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/join-operations.md +0 -0
  85. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/mcp-roots.md +0 -0
  86. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/orchestrator-components.md +0 -0
  87. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/patterns.md +0 -0
  88. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/persistent-blackboard.md +0 -0
  89. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/predicates.md +0 -0
  90. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/testing.md +0 -0
  91. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/auto-tracing.md +0 -0
  92. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/how_to_use_tracing_effectively.md +0 -0
  93. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/index.md +0 -0
  94. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/trace-module.md +0 -0
  95. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/tracing-production.md +0 -0
  96. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/tracing-quickstart.md +0 -0
  97. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/tracing/unified-tracing.md +0 -0
  98. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/use-cases.md +0 -0
  99. {flock_core-0.5.10 → flock_core-0.5.11}/docs/guides/visibility.md +0 -0
  100. {flock_core-0.5.10 → flock_core-0.5.11}/docs/index.md +0 -0
  101. {flock_core-0.5.10 → flock_core-0.5.11}/docs/javascripts/extra.js +0 -0
  102. {flock_core-0.5.10 → flock_core-0.5.11}/docs/reference/api.md +0 -0
  103. {flock_core-0.5.10 → flock_core-0.5.11}/docs/reference/configuration.md +0 -0
  104. {flock_core-0.5.10 → flock_core-0.5.11}/docs/reference/index.md +0 -0
  105. {flock_core-0.5.10 → flock_core-0.5.11}/docs/stylesheets/extra.css +0 -0
  106. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tags.md +0 -0
  107. {flock_core-0.5.10 → flock_core-0.5.11}/docs/troubleshooting/streaming-freeze-fix.md +0 -0
  108. {flock_core-0.5.10 → flock_core-0.5.11}/docs/troubleshooting/streaming-freeze-with-dashboard-fix.md +0 -0
  109. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/advanced-patterns.md +0 -0
  110. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/conditional-routing.md +0 -0
  111. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/connect_with_ollama.md +0 -0
  112. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/custom-agent-components.md +0 -0
  113. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/custom-engines.md +0 -0
  114. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/index.md +0 -0
  115. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/multi-agent-workflow.md +0 -0
  116. {flock_core-0.5.10 → flock_core-0.5.11}/docs/tutorials/your-first-agent.md +0 -0
  117. {flock_core-0.5.10 → flock_core-0.5.11}/docs/whiteducksoftware/versions.json +0 -0
  118. {flock_core-0.5.10 → flock_core-0.5.11}/examples/00-patterns/01-single_publish.py +0 -0
  119. {flock_core-0.5.10 → flock_core-0.5.11}/examples/00-patterns/02-multi_publish.py +0 -0
  120. {flock_core-0.5.10 → flock_core-0.5.11}/examples/00-patterns/03-multi-artifact-multi-publish.py +0 -0
  121. {flock_core-0.5.10 → flock_core-0.5.11}/examples/00-patterns/04-fan-out.py +0 -0
  122. {flock_core-0.5.10 → flock_core-0.5.11}/examples/00-patterns/05-multi-fan-out.py +0 -0
  123. {flock_core-0.5.10 → flock_core-0.5.11}/examples/00-patterns/README.md +0 -0
  124. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/01_declarative_pizza.py +0 -0
  125. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/02_input_and_output.py +0 -0
  126. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/03_code_detective.py +0 -0
  127. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/04_input_and_output.py +0 -0
  128. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/05_mcp_and_tools.py +0 -0
  129. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/06_mcp_roots.py +0 -0
  130. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/07_web_detective.py +0 -0
  131. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/08_band_formation.py +0 -0
  132. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/09_debate_club.py +0 -0
  133. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/10_news_agency.py +0 -0
  134. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/11_tracing_detective.py +0 -0
  135. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/12_secret_agents.py +0 -0
  136. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/13_medical_diagnostics_joinspec.py +0 -0
  137. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/14_ecommerce_batch_processing.py +0 -0
  138. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/15_iot_sensor_batching.py +0 -0
  139. {flock_core-0.5.10 → flock_core-0.5.11}/examples/01-cli/README.md +0 -0
  140. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/01_declarative_pizza.py +0 -0
  141. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/02_input_and_output.py +0 -0
  142. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/03_code_detective.py +0 -0
  143. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/04_input_and_output.py +0 -0
  144. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/05_mcp_and_tools.py +0 -0
  145. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/06_mcp_roots.py +0 -0
  146. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/07_web_detective.py +0 -0
  147. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/08_band_formation.py +0 -0
  148. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/09_debate_club.py +0 -0
  149. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/10_news_agency.py +0 -0
  150. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/11_tracing_detective.py +0 -0
  151. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/12_secret_agents.py +0 -0
  152. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/13_medical_diagnostics_joinspec.py +0 -0
  153. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/14_ecommerce_batch_processing.py +0 -0
  154. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/15_iot_sensor_batching.py +0 -0
  155. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/16_news_batching.py +0 -0
  156. {flock_core-0.5.10 → flock_core-0.5.11}/examples/02-dashboard/README.md +0 -0
  157. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/README.md +0 -0
  158. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_01_code_detective.py +0 -0
  159. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_02_band_formation.py +0 -0
  160. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_03_web_detective.py +0 -0
  161. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_04_debate_club.py +0 -0
  162. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_05_tracing_detective.py +0 -0
  163. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_06_secret_agents.py +0 -0
  164. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_07_news_agency.py +0 -0
  165. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_08_the_matchmaker.py +0 -0
  166. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_09_the_batch_optimizer.py +0 -0
  167. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_10_the_smart_factory.py +0 -0
  168. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_11_performance_monitor.py +0 -0
  169. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_12_confidence_booster.py +0 -0
  170. {flock_core-0.5.10 → flock_core-0.5.11}/examples/03-claudes-workshop/lesson_13_regex_matcher.py +0 -0
  171. {flock_core-0.5.10 → flock_core-0.5.11}/examples/04-misc/01_persistent_pizza.py +0 -0
  172. {flock_core-0.5.10 → flock_core-0.5.11}/examples/04-misc/02-dashboard-edge-cases.py +0 -0
  173. {flock_core-0.5.10 → flock_core-0.5.11}/examples/04-misc/03-scale-test-100-agents.py +0 -0
  174. {flock_core-0.5.10 → flock_core-0.5.11}/examples/04-misc/04_persistent_pizza_dashboard.py +0 -0
  175. {flock_core-0.5.10 → flock_core-0.5.11}/examples/04-misc/05_lm_studio.py +0 -0
  176. {flock_core-0.5.10 → flock_core-0.5.11}/examples/04-misc/README.md +0 -0
  177. {flock_core-0.5.10 → flock_core-0.5.11}/examples/05-engines/README.md +0 -0
  178. {flock_core-0.5.10 → flock_core-0.5.11}/examples/05-engines/emoji_mood_engine.py +0 -0
  179. {flock_core-0.5.10 → flock_core-0.5.11}/examples/05-engines/potion_batch_engine.py +0 -0
  180. {flock_core-0.5.10 → flock_core-0.5.11}/examples/06-agent-components/README.md +0 -0
  181. {flock_core-0.5.10 → flock_core-0.5.11}/examples/06-agent-components/cheer_meter_component.py +0 -0
  182. {flock_core-0.5.10 → flock_core-0.5.11}/examples/06-agent-components/plot_twist_component.py +0 -0
  183. {flock_core-0.5.10 → flock_core-0.5.11}/examples/07-orchestrator-components/README.md +0 -0
  184. {flock_core-0.5.10 → flock_core-0.5.11}/examples/07-orchestrator-components/kitchen_monitor_component.py +0 -0
  185. {flock_core-0.5.10 → flock_core-0.5.11}/examples/07-orchestrator-components/quest_tracker_component.py +0 -0
  186. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/01_basic_visibility.py +0 -0
  187. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/02_global_provider.py +0 -0
  188. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/02_simple_global_provider.py +0 -0
  189. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/03_per_agent_provider.py +0 -0
  190. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/04_custom_filtering.py +0 -0
  191. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/05_password_redactor.py +0 -0
  192. {flock_core-0.5.10 → flock_core-0.5.11}/examples/08-context-provider/README.md +0 -0
  193. {flock_core-0.5.10 → flock_core-0.5.11}/examples/README.md +0 -0
  194. {flock_core-0.5.10 → flock_core-0.5.11}/mkdocs.yml +0 -0
  195. {flock_core-0.5.10 → flock_core-0.5.11}/requirements.txt +0 -0
  196. {flock_core-0.5.10 → flock_core-0.5.11}/scripts/build_dashboard.py +0 -0
  197. {flock_core-0.5.10 → flock_core-0.5.11}/scripts/bump_version.py +0 -0
  198. {flock_core-0.5.10 → flock_core-0.5.11}/scripts/check_version_bump.py +0 -0
  199. {flock_core-0.5.10 → flock_core-0.5.11}/scripts/ensure_uv.py +0 -0
  200. {flock_core-0.5.10 → flock_core-0.5.11}/scripts/gen_ref_pages.py +0 -0
  201. {flock_core-0.5.10 → flock_core-0.5.11}/scripts/generate_llm_codebase.py +0 -0
  202. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/__init__.py +0 -0
  203. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/agent.py +0 -0
  204. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/api/themes.py +0 -0
  205. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/artifact_collector.py +0 -0
  206. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/artifacts.py +0 -0
  207. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/batch_accumulator.py +0 -0
  208. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/cli.py +0 -0
  209. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/components.py +0 -0
  210. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/context_provider.py +0 -0
  211. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/correlation_engine.py +0 -0
  212. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/__init__.py +0 -0
  213. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/collector.py +0 -0
  214. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/events.py +0 -0
  215. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/graph_builder.py +0 -0
  216. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/launcher.py +0 -0
  217. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/models/__init__.py +0 -0
  218. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/models/graph.py +0 -0
  219. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/static_v2/assets/index-DFRnI_mt.js +0 -0
  220. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/static_v2/assets/index-fPLNdmp1.css +0 -0
  221. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/static_v2/index.html +0 -0
  222. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/dashboard/websocket.py +0 -0
  223. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/engines/__init__.py +0 -0
  224. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/engines/dspy_engine.py +0 -0
  225. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/engines/examples/__init__.py +0 -0
  226. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/engines/examples/simple_batch_engine.py +0 -0
  227. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/examples.py +0 -0
  228. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/README.md +0 -0
  229. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/docs/DESIGN_SYSTEM.md +0 -0
  230. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/index.html +0 -0
  231. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/package-lock.json +0 -0
  232. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/package.json +0 -0
  233. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/App.tsx +0 -0
  234. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/__tests__/integration/graph-snapshot.test.tsx +0 -0
  235. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +0 -0
  236. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/BuildInfo.tsx +0 -0
  237. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/EmptyState.module.css +0 -0
  238. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/EmptyState.tsx +0 -0
  239. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/ErrorBoundary.module.css +0 -0
  240. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/ErrorBoundary.tsx +0 -0
  241. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.css +0 -0
  242. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +0 -0
  243. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/LoadingSpinner.module.css +0 -0
  244. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/common/LoadingSpinner.tsx +0 -0
  245. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/controls/PublishControl.css +0 -0
  246. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/controls/PublishControl.test.tsx +0 -0
  247. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/controls/PublishControl.tsx +0 -0
  248. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/DetailWindowContainer.tsx +0 -0
  249. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/LiveOutputTab.test.tsx +0 -0
  250. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/LiveOutputTab.tsx +0 -0
  251. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/MessageDetailWindow.tsx +0 -0
  252. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/MessageHistoryTab.tsx +0 -0
  253. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/NodeDetailWindow.test.tsx +0 -0
  254. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/NodeDetailWindow.tsx +0 -0
  255. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/RunStatusTab.tsx +0 -0
  256. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/details/tabs.test.tsx +0 -0
  257. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/ArtifactTypeFilter.tsx +0 -0
  258. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/CorrelationIDFilter.module.css +0 -0
  259. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +0 -0
  260. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/CorrelationIDFilter.tsx +0 -0
  261. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterFlyout.module.css +0 -0
  262. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterFlyout.tsx +0 -0
  263. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterPills.module.css +0 -0
  264. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterPills.test.tsx +0 -0
  265. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/FilterPills.tsx +0 -0
  266. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/ProducerFilter.tsx +0 -0
  267. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/SavedFiltersControl.module.css +0 -0
  268. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/SavedFiltersControl.test.tsx +0 -0
  269. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/SavedFiltersControl.tsx +0 -0
  270. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TagFilter.tsx +0 -0
  271. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TimeRangeFilter.module.css +0 -0
  272. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +0 -0
  273. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/TimeRangeFilter.tsx +0 -0
  274. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/filters/VisibilityFilter.tsx +0 -0
  275. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/AgentNode.test.tsx +0 -0
  276. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/AgentNode.tsx +0 -0
  277. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/GraphCanvas.tsx +0 -0
  278. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/LogicOperationsDisplay.tsx +0 -0
  279. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MessageFlowEdge.tsx +0 -0
  280. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MessageNode.test.tsx +0 -0
  281. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MessageNode.tsx +0 -0
  282. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/MiniMap.tsx +0 -0
  283. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/PendingBatchEdge.tsx +0 -0
  284. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/PendingJoinEdge.tsx +0 -0
  285. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/graph/TransformEdge.tsx +0 -0
  286. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/DashboardLayout.css +0 -0
  287. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/DashboardLayout.tsx +0 -0
  288. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/Header.module.css +0 -0
  289. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/layout/Header.tsx +0 -0
  290. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.module.css +0 -0
  291. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.tsx +0 -0
  292. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/HistoricalArtifactsModuleWrapper.tsx +0 -0
  293. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +0 -0
  294. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/ModuleRegistry.test.ts +0 -0
  295. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/ModuleRegistry.ts +0 -0
  296. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/ModuleWindow.tsx +0 -0
  297. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/TraceModuleJaeger.tsx +0 -0
  298. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +0 -0
  299. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/modules/registerModules.ts +0 -0
  300. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/AdvancedSettings.tsx +0 -0
  301. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/AppearanceSettings.tsx +0 -0
  302. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/GraphSettings.tsx +0 -0
  303. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/MultiSelect.tsx +0 -0
  304. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/SettingsPanel.css +0 -0
  305. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/SettingsPanel.tsx +0 -0
  306. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/ThemeSelector.tsx +0 -0
  307. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/components/settings/TracingSettings.tsx +0 -0
  308. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useKeyboardShortcuts.ts +0 -0
  309. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useModulePersistence.test.ts +0 -0
  310. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useModulePersistence.ts +0 -0
  311. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/hooks/useModules.ts +0 -0
  312. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/hooks/usePersistence.ts +0 -0
  313. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/main.tsx +0 -0
  314. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/api.ts +0 -0
  315. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/graphService.test.ts +0 -0
  316. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/graphService.ts +0 -0
  317. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/indexeddb.test.ts +0 -0
  318. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/indexeddb.ts +0 -0
  319. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/layout.test.ts +0 -0
  320. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/layout.ts +0 -0
  321. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/themeApplicator.ts +0 -0
  322. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/themeService.ts +0 -0
  323. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/services/websocket.ts +0 -0
  324. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/filterStore.test.ts +0 -0
  325. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/filterStore.ts +0 -0
  326. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/graphStore.test.ts +0 -0
  327. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/graphStore.ts +0 -0
  328. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/moduleStore.test.ts +0 -0
  329. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/moduleStore.ts +0 -0
  330. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/settingsStore.ts +0 -0
  331. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/streamStore.ts +0 -0
  332. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/uiStore.test.ts +0 -0
  333. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/uiStore.ts +0 -0
  334. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/store/wsStore.ts +0 -0
  335. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/styles/index.css +0 -0
  336. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/styles/scrollbar.css +0 -0
  337. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/styles/variables.css +0 -0
  338. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/test/setup.ts +0 -0
  339. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/types/filters.ts +0 -0
  340. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/types/graph.ts +0 -0
  341. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/types/modules.ts +0 -0
  342. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/types/theme.ts +0 -0
  343. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/utils/artifacts.ts +0 -0
  344. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/utils/mockData.ts +0 -0
  345. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/utils/performance.ts +0 -0
  346. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/src/vite-env.d.ts +0 -0
  347. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/tsconfig.json +0 -0
  348. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/tsconfig.node.json +0 -0
  349. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/vite.config.ts +0 -0
  350. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/frontend/vitest.config.ts +0 -0
  351. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/helper/cli_helper.py +0 -0
  352. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/__init__.py +0 -0
  353. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/auto_trace.py +0 -0
  354. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/formatters/enum_builder.py +0 -0
  355. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/formatters/theme_builder.py +0 -0
  356. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/formatters/themed_formatter.py +0 -0
  357. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/formatters/themes.py +0 -0
  358. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/logging.py +0 -0
  359. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/span_middleware/baggage_span_processor.py +0 -0
  360. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/telemetry.py +0 -0
  361. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/base_exporter.py +0 -0
  362. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/duckdb_exporter.py +0 -0
  363. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/file_exporter.py +0 -0
  364. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  365. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/logging/trace_and_logged.py +0 -0
  366. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/__init__.py +0 -0
  367. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/client.py +0 -0
  368. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/config.py +0 -0
  369. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/manager.py +0 -0
  370. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/sse/__init__.py +0 -0
  371. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
  372. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/stdio/__init__.py +0 -0
  373. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
  374. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
  375. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
  376. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/websockets/__init__.py +0 -0
  377. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
  378. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/tool.py +0 -0
  379. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/types/__init__.py +0 -0
  380. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/types/callbacks.py +0 -0
  381. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/types/factories.py +0 -0
  382. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/types/handlers.py +0 -0
  383. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/types/types.py +0 -0
  384. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/util/__init__.py +0 -0
  385. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/mcp/util/helpers.py +0 -0
  386. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/orchestrator_component.py +0 -0
  387. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/patches/__init__.py +0 -0
  388. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/patches/dspy_streaming_patch.py +0 -0
  389. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/registry.py +0 -0
  390. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/runtime.py +0 -0
  391. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/store.py +0 -0
  392. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/subscription.py +0 -0
  393. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/3024-day.toml +0 -0
  394. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/3024-night.toml +0 -0
  395. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/aardvark-blue.toml +0 -0
  396. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/abernathy.toml +0 -0
  397. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/adventure.toml +0 -0
  398. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/adventuretime.toml +0 -0
  399. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/afterglow.toml +0 -0
  400. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/alabaster.toml +0 -0
  401. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/alienblood.toml +0 -0
  402. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/andromeda.toml +0 -0
  403. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/apple-classic.toml +0 -0
  404. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/apple-system-colors.toml +0 -0
  405. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/arcoiris.toml +0 -0
  406. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/argonaut copy.toml +0 -0
  407. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/argonaut.toml +0 -0
  408. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/arthur.toml +0 -0
  409. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ateliersulphurpool.toml +0 -0
  410. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/atom.toml +0 -0
  411. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/atom_test.toml +0 -0
  412. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/atomonelight.toml +0 -0
  413. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/aurora.toml +0 -0
  414. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ayu copy.toml +0 -0
  415. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ayu-light.toml +0 -0
  416. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ayu-mirage.toml +0 -0
  417. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ayu.toml +0 -0
  418. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/banana-blueberry.toml +0 -0
  419. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/batman.toml +0 -0
  420. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/belafonte-day.toml +0 -0
  421. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/belafonte-night.toml +0 -0
  422. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/birdsofparadise.toml +0 -0
  423. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/blazer.toml +0 -0
  424. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/blue-matrix.toml +0 -0
  425. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/blueberrypie.toml +0 -0
  426. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/bluedolphin.toml +0 -0
  427. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/blulocodark.toml +0 -0
  428. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/blulocolight.toml +0 -0
  429. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/borland.toml +0 -0
  430. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/breeze.toml +0 -0
  431. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/bright-lights.toml +0 -0
  432. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/broadcast.toml +0 -0
  433. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/brogrammer.toml +0 -0
  434. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-dark.toml +0 -0
  435. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-light.toml +0 -0
  436. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  437. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  438. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-solarized-light.toml +0 -0
  439. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-tango-dark.toml +0 -0
  440. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/builtin-tango-light.toml +0 -0
  441. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/c64.toml +0 -0
  442. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/calamity.toml +0 -0
  443. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/catppuccin-frappe.toml +0 -0
  444. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/catppuccin-latte.toml +0 -0
  445. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  446. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/catppuccin-mocha.toml +0 -0
  447. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cga.toml +0 -0
  448. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/chalk.toml +0 -0
  449. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/chalkboard.toml +0 -0
  450. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/challengerdeep.toml +0 -0
  451. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/chester.toml +0 -0
  452. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ciapre.toml +0 -0
  453. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/clrs.toml +0 -0
  454. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cobalt-neon.toml +0 -0
  455. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cobalt2.toml +0 -0
  456. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/coffee-theme.toml +0 -0
  457. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/crayonponyfish.toml +0 -0
  458. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cutiepro.toml +0 -0
  459. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cyberdyne.toml +0 -0
  460. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cyberpunk.toml +0 -0
  461. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  462. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dark+.toml +0 -0
  463. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dark-pastel.toml +0 -0
  464. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/darkermatrix.toml +0 -0
  465. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/darkmatrix.toml +0 -0
  466. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/darkside.toml +0 -0
  467. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dayfox.toml +0 -0
  468. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/deep.toml +0 -0
  469. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/desert.toml +0 -0
  470. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dimidium.toml +0 -0
  471. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dimmedmonokai.toml +0 -0
  472. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/django.toml +0 -0
  473. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/djangorebornagain.toml +0 -0
  474. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/djangosmooth.toml +0 -0
  475. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/doom-peacock.toml +0 -0
  476. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/doomone.toml +0 -0
  477. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dotgov.toml +0 -0
  478. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dracula+.toml +0 -0
  479. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/dracula.toml +0 -0
  480. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/duckbones.toml +0 -0
  481. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/duotone-dark.toml +0 -0
  482. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/earthsong.toml +0 -0
  483. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/elemental.toml +0 -0
  484. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/elementary.toml +0 -0
  485. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/encom.toml +0 -0
  486. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/espresso-libre.toml +0 -0
  487. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/espresso.toml +0 -0
  488. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/everblush.toml +0 -0
  489. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/fahrenheit.toml +0 -0
  490. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/fairyfloss.toml +0 -0
  491. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/farmhouse-dark.toml +0 -0
  492. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/farmhouse-light.toml +0 -0
  493. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/fideloper.toml +0 -0
  494. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/firefly-traditional.toml +0 -0
  495. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/firefoxdev.toml +0 -0
  496. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/firewatch.toml +0 -0
  497. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/fishtank.toml +0 -0
  498. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/flat.toml +0 -0
  499. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/flatland.toml +0 -0
  500. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/flexoki-dark.toml +0 -0
  501. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/flexoki-light.toml +0 -0
  502. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/floraverse.toml +0 -0
  503. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/forestblue.toml +0 -0
  504. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/framer.toml +0 -0
  505. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/frontenddelight.toml +0 -0
  506. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/funforrest.toml +0 -0
  507. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/galaxy.toml +0 -0
  508. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/galizur.toml +0 -0
  509. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/github-dark.toml +0 -0
  510. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/github.toml +0 -0
  511. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/glacier.toml +0 -0
  512. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/grape.toml +0 -0
  513. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/grass.toml +0 -0
  514. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/grey-green.toml +0 -0
  515. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/gruber-darker.toml +0 -0
  516. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/gruvboxdark.toml +0 -0
  517. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  518. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/gruvboxlight.toml +0 -0
  519. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/guezwhoz.toml +0 -0
  520. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hacktober.toml +0 -0
  521. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hardcore.toml +0 -0
  522. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/harper.toml +0 -0
  523. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hax0r-blue.toml +0 -0
  524. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hax0r-gr33n.toml +0 -0
  525. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hax0r-r3d.toml +0 -0
  526. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/highway.toml +0 -0
  527. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hipster-green.toml +0 -0
  528. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hivacruz.toml +0 -0
  529. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/homebrew.toml +0 -0
  530. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hopscotch.256.toml +0 -0
  531. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hopscotch.toml +0 -0
  532. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hurtado.toml +0 -0
  533. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/hybrid.toml +0 -0
  534. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ic-green-ppl.toml +0 -0
  535. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ic-orange-ppl.toml +0 -0
  536. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iceberg-dark.toml +0 -0
  537. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iceberg-light.toml +0 -0
  538. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/idea.toml +0 -0
  539. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/idletoes.toml +0 -0
  540. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ir-black.toml +0 -0
  541. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-dark-background.toml +0 -0
  542. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-default.toml +0 -0
  543. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-light-background.toml +0 -0
  544. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  545. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  546. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  547. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  548. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  549. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/iterm2-tango-light.toml +0 -0
  550. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/jackie-brown.toml +0 -0
  551. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/japanesque.toml +0 -0
  552. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/jellybeans.toml +0 -0
  553. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/jetbrains-darcula.toml +0 -0
  554. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/jubi.toml +0 -0
  555. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/kanagawabones.toml +0 -0
  556. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/kibble.toml +0 -0
  557. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/kolorit.toml +0 -0
  558. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/konsolas.toml +0 -0
  559. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/kurokula.toml +0 -0
  560. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/lab-fox.toml +0 -0
  561. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/laser.toml +0 -0
  562. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/later-this-evening.toml +0 -0
  563. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/lavandula.toml +0 -0
  564. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/liquidcarbon.toml +0 -0
  565. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  566. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  567. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/lovelace.toml +0 -0
  568. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/man-page.toml +0 -0
  569. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/mariana.toml +0 -0
  570. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/material.toml +0 -0
  571. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/materialdark.toml +0 -0
  572. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/materialdarker.toml +0 -0
  573. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/materialdesigncolors.toml +0 -0
  574. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/materialocean.toml +0 -0
  575. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/mathias.toml +0 -0
  576. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/matrix.toml +0 -0
  577. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/medallion.toml +0 -0
  578. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/mellifluous.toml +0 -0
  579. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/midnight-in-mojave.toml +0 -0
  580. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/mirage.toml +0 -0
  581. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/misterioso.toml +0 -0
  582. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/molokai.toml +0 -0
  583. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/monalisa.toml +0 -0
  584. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/monokai-remastered.toml +0 -0
  585. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/monokai-soda.toml +0 -0
  586. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/monokai-vivid.toml +0 -0
  587. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/n0tch2k.toml +0 -0
  588. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/neobones-dark.toml +0 -0
  589. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/neobones-light.toml +0 -0
  590. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/neon.toml +0 -0
  591. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/neopolitan.toml +0 -0
  592. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/neutron.toml +0 -0
  593. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/night-owlish-light.toml +0 -0
  594. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nightfox.toml +0 -0
  595. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nightlion-v1.toml +0 -0
  596. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nightlion-v2.toml +0 -0
  597. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/niji.toml +0 -0
  598. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nocturnal-winter.toml +0 -0
  599. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nord-light.toml +0 -0
  600. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nord.toml +0 -0
  601. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/novel.toml +0 -0
  602. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nvimdark.toml +0 -0
  603. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/nvimlight.toml +0 -0
  604. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/obsidian.toml +0 -0
  605. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ocean.toml +0 -0
  606. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/oceanic-next.toml +0 -0
  607. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/oceanicmaterial.toml +0 -0
  608. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ollie.toml +0 -0
  609. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/onehalfdark.toml +0 -0
  610. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/onehalflight.toml +0 -0
  611. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/operator-mono-dark.toml +0 -0
  612. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/overnight-slumber.toml +0 -0
  613. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/oxocarbon.toml +0 -0
  614. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/palenighthc.toml +0 -0
  615. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/pandora.toml +0 -0
  616. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/paraiso-dark.toml +0 -0
  617. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/paulmillr.toml +0 -0
  618. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/pencildark.toml +0 -0
  619. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/pencillight.toml +0 -0
  620. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/peppermint.toml +0 -0
  621. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/piatto-light.toml +0 -0
  622. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/pnevma.toml +0 -0
  623. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/popping-and-locking.toml +0 -0
  624. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/primary.toml +0 -0
  625. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/pro-light.toml +0 -0
  626. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/pro.toml +0 -0
  627. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/purple-rain.toml +0 -0
  628. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/purplepeter.toml +0 -0
  629. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rapture.toml +0 -0
  630. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/raycast-dark.toml +0 -0
  631. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/raycast-light.toml +0 -0
  632. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rebecca.toml +0 -0
  633. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/red-alert.toml +0 -0
  634. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/red-planet.toml +0 -0
  635. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/red-sands.toml +0 -0
  636. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/relaxed.toml +0 -0
  637. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/retro.toml +0 -0
  638. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rippedcasts.toml +0 -0
  639. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rose-pine-dawn.toml +0 -0
  640. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rose-pine-moon.toml +0 -0
  641. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rose-pine.toml +0 -0
  642. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/rouge-2.toml +0 -0
  643. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/royal.toml +0 -0
  644. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ryuuko.toml +0 -0
  645. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/sakura.toml +0 -0
  646. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/scarlet-protocol.toml +0 -0
  647. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/seafoam-pastel.toml +0 -0
  648. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/seashells.toml +0 -0
  649. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/seoulbones-dark.toml +0 -0
  650. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/seoulbones-light.toml +0 -0
  651. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/seti.toml +0 -0
  652. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/shades-of-purple.toml +0 -0
  653. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/shaman.toml +0 -0
  654. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/slate.toml +0 -0
  655. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/sleepyhollow.toml +0 -0
  656. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/smyck.toml +0 -0
  657. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/snazzy.toml +0 -0
  658. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/softserver.toml +0 -0
  659. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/solarized-darcula.toml +0 -0
  660. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/solarized-dark---patched.toml +0 -0
  661. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  662. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/spacedust.toml +0 -0
  663. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  664. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/spacegray-eighties.toml +0 -0
  665. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/spacegray.toml +0 -0
  666. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/spiderman.toml +0 -0
  667. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/spring.toml +0 -0
  668. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/square.toml +0 -0
  669. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/sublette.toml +0 -0
  670. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/subliminal.toml +0 -0
  671. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/sugarplum.toml +0 -0
  672. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/sundried.toml +0 -0
  673. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/symfonic.toml +0 -0
  674. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/synthwave-everything.toml +0 -0
  675. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/synthwave.toml +0 -0
  676. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/synthwavealpha.toml +0 -0
  677. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tango-adapted.toml +0 -0
  678. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tango-half-adapted.toml +0 -0
  679. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/teerb.toml +0 -0
  680. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/terafox.toml +0 -0
  681. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/terminal-basic.toml +0 -0
  682. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/thayer-bright.toml +0 -0
  683. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/the-hulk.toml +0 -0
  684. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  685. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tinacious-design-(light).toml +0 -0
  686. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tokyonight-day.toml +0 -0
  687. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tokyonight-storm.toml +0 -0
  688. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tokyonight.toml +0 -0
  689. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  690. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  691. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  692. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  693. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tomorrow-night.toml +0 -0
  694. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/tomorrow.toml +0 -0
  695. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/toychest.toml +0 -0
  696. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/treehouse.toml +0 -0
  697. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/twilight.toml +0 -0
  698. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ubuntu.toml +0 -0
  699. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ultradark.toml +0 -0
  700. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/ultraviolent.toml +0 -0
  701. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/underthesea.toml +0 -0
  702. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/unikitty.toml +0 -0
  703. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/urple.toml +0 -0
  704. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/vaughn.toml +0 -0
  705. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/vesper.toml +0 -0
  706. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/vibrantink.toml +0 -0
  707. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/vimbones.toml +0 -0
  708. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/violet-dark.toml +0 -0
  709. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/violet-light.toml +0 -0
  710. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/warmneon.toml +0 -0
  711. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/wez.toml +0 -0
  712. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/whimsy.toml +0 -0
  713. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/wildcherry.toml +0 -0
  714. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/wilmersdorf.toml +0 -0
  715. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/wombat.toml +0 -0
  716. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/wryan.toml +0 -0
  717. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/xcodedark.toml +0 -0
  718. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/xcodedarkhc.toml +0 -0
  719. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/xcodelight.toml +0 -0
  720. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/xcodelighthc.toml +0 -0
  721. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/xcodewwdc.toml +0 -0
  722. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenbones-dark.toml +0 -0
  723. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenbones-light.toml +0 -0
  724. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenbones.toml +0 -0
  725. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenburn.toml +0 -0
  726. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenburned.toml +0 -0
  727. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenwritten-dark.toml +0 -0
  728. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/themes/zenwritten-light.toml +0 -0
  729. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/utilities.py +0 -0
  730. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/utility/output_utility_component.py +0 -0
  731. {flock_core-0.5.10 → flock_core-0.5.11}/src/flock/visibility.py +0 -0
  732. {flock_core-0.5.10 → flock_core-0.5.11}/tests/PHASE2_TEST_SUMMARY.md +0 -0
  733. {flock_core-0.5.10 → flock_core-0.5.11}/tests/PHASE3_TEST_SUMMARY.md +0 -0
  734. {flock_core-0.5.10 → flock_core-0.5.11}/tests/TEST_COVERAGE_PHASE2.md +0 -0
  735. {flock_core-0.5.10 → flock_core-0.5.11}/tests/conftest.py +0 -0
  736. {flock_core-0.5.10 → flock_core-0.5.11}/tests/contract/test_agent_payload_selection_contract.py +0 -0
  737. {flock_core-0.5.10 → flock_core-0.5.11}/tests/contract/test_artifact_storage_contract.py +0 -0
  738. {flock_core-0.5.10 → flock_core-0.5.11}/tests/contract/test_type_normalization_contract.py +0 -0
  739. {flock_core-0.5.10 → flock_core-0.5.11}/tests/dashboard/test_logic_operations_api.py +0 -0
  740. {flock_core-0.5.10 → flock_core-0.5.11}/tests/dashboard/test_logic_operations_events.py +0 -0
  741. {flock_core-0.5.10 → flock_core-0.5.11}/tests/e2e/README.md +0 -0
  742. {flock_core-0.5.10 → flock_core-0.5.11}/tests/e2e/TESTING_SUMMARY.md +0 -0
  743. {flock_core-0.5.10 → flock_core-0.5.11}/tests/e2e/test_critical_scenarios.py +0 -0
  744. {flock_core-0.5.10 → flock_core-0.5.11}/tests/integration/test_collector_orchestrator.py +0 -0
  745. {flock_core-0.5.10 → flock_core-0.5.11}/tests/integration/test_sqlite_store_integration.py +0 -0
  746. {flock_core-0.5.10 → flock_core-0.5.11}/tests/integration/test_websocket_protocol.py +0 -0
  747. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_agent.py +0 -0
  748. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_agent_builder.py +0 -0
  749. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_agent_mcp.py +0 -0
  750. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_agent_server_specific_mounts.py +0 -0
  751. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_artifacts.py +0 -0
  752. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_cli.py +0 -0
  753. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_cli_helper.py +0 -0
  754. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_components.py +0 -0
  755. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_context_provider.py +0 -0
  756. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_context_security.py +0 -0
  757. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dashboard_api.py +0 -0
  758. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dashboard_collector.py +0 -0
  759. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dashboard_graph.py +0 -0
  760. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dashboard_launcher.py +0 -0
  761. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dashboard_service.py +0 -0
  762. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dspy_engine.py +0 -0
  763. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dspy_engine_mcp.py +0 -0
  764. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dspy_engine_multioutput.py +0 -0
  765. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_dspy_streaming_events.py +0 -0
  766. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_engine_context.py +0 -0
  767. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_engines.py +0 -0
  768. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_filtering_validation.py +0 -0
  769. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_logging_config.py +0 -0
  770. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_client.py +0 -0
  771. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_config.py +0 -0
  772. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_coverage_summary.md +0 -0
  773. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_imports.py +0 -0
  774. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_manager.py +0 -0
  775. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_server_config_typeddict.py +0 -0
  776. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_mcp_tool_handlers.py +0 -0
  777. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator.py +0 -0
  778. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_and_gate.py +0 -0
  779. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_batchspec.py +0 -0
  780. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_combined.py +0 -0
  781. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_component.py +0 -0
  782. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_context_injection.py +0 -0
  783. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_joinspec.py +0 -0
  784. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_orchestrator_mcp.py +0 -0
  785. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_output_groups.py +0 -0
  786. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_registry.py +0 -0
  787. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_runtime.py +0 -0
  788. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_service.py +0 -0
  789. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_service_extended.py +0 -0
  790. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_store.py +0 -0
  791. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_store_graph.py +0 -0
  792. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_subscription.py +0 -0
  793. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_telemetry.py +0 -0
  794. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_trace_clearing.py +0 -0
  795. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_unified_tracing.py +0 -0
  796. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_utilities.py +0 -0
  797. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_version_endpoint.py +0 -0
  798. {flock_core-0.5.10 → flock_core-0.5.11}/tests/test_visibility.py +0 -0
  799. {flock_core-0.5.10 → 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()`)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.5.10
3
+ Version: 0.5.11
4
4
  Summary: Flock: A declrative framework for building and orchestrating AI agents.
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License: MIT
@@ -287,63 +287,6 @@ asyncio.run(main())
287
287
 
288
288
  ---
289
289
 
290
- ## Context Provider Primer (Security + Cost)
291
-
292
- Context Providers are the security and efficiency layer between agents and the blackboard. They decide what each agent sees in its historical context and always enforce visibility rules.
293
-
294
- Why use them
295
- - Enforce access control (visibility is applied before engines see data)
296
- - Cut context size (often 90%+) by filtering to what matters
297
- - Specialize per agent or set a global default
298
-
299
- Copy/paste examples
300
- ```python
301
- from flock import Flock
302
- from flock.context_provider import FilteredContextProvider
303
- from flock.store import FilterConfig
304
-
305
- # Global: show only urgent items (limit context size)
306
- flock = Flock(
307
- "openai/gpt-4.1",
308
- context_provider=FilteredContextProvider(FilterConfig(tags={"urgent"}), limit=50)
309
- )
310
-
311
- # Per-agent: override global for a specific role
312
- senior = flock.agent("senior").consumes(LogEntry).publishes(Analysis)
313
- senior.context_provider = FilteredContextProvider(
314
- FilterConfig(tags={"ERROR", "WARN"}),
315
- limit=200
316
- )
317
- ```
318
-
319
- Learn more: docs/guides/context-providers.md
320
-
321
- ---
322
-
323
- ## Persistent Blackboard History
324
-
325
- 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:
326
-
327
- - **Long-lived artifacts** — every field (payload, tags, partition keys, visibility) is stored for replay, audits, and postmortems
328
- - **Historical APIs** — `/api/v1/artifacts`, `/summary`, and `/agents/{agent_id}/history-summary` expose pagination, filtering, and consumption counts
329
- - **Dashboard module** — the new **Historical Blackboard** experience preloads persisted history, enriches the graph with consumer metadata, and highlights retention windows
330
- - **Operational tooling** — CLI helpers (`init-sqlite-store`, `sqlite-maintenance --delete-before ... --vacuum`) make schema setup and retention policies scriptable
331
-
332
- Quick start:
333
-
334
- ```python
335
- from flock import Flock
336
- from flock.store import SQLiteBlackboardStore
337
-
338
- store = SQLiteBlackboardStore(".flock/blackboard.db")
339
- await store.ensure_schema()
340
- flock = Flock("openai/gpt-4.1", store=store)
341
- ```
342
-
343
- 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.
344
-
345
- ---
346
-
347
290
  ## Core Concepts
348
291
 
349
292
  ### Typed Artifacts (The Vocabulary)
@@ -673,6 +616,28 @@ agent.context_provider = FilteredContextProvider(
673
616
 
674
617
  **📖 [Learn more: Context Providers Guide](https://whiteducksoftware.github.io/flock/guides/context-providers/) | [Steal production code →](examples/08-context-provider/)**
675
618
 
619
+ ### Persistent Blackboard History
620
+
621
+ The in-memory store is great for local development, but production teams need durability. The `SQLiteBlackboardStore` turns the blackboard into a persistent event log with first-class ergonomics:
622
+
623
+ **What you get:**
624
+ - **Long-lived artifacts** — Every field (payload, tags, partition keys, visibility) stored for replay, audits, and postmortems
625
+ - **Historical APIs** — `/api/v1/artifacts`, `/summary`, and `/agents/{agent_id}/history-summary` expose pagination, filtering, and consumption counts
626
+ - **Dashboard integration** — The **Historical Blackboard** view preloads persisted history, enriches the graph with consumer metadata, and highlights retention windows
627
+ - **Operational tooling** — CLI helpers (`init-sqlite-store`, `sqlite-maintenance --delete-before ... --vacuum`) make schema setup and retention policies scriptable
628
+
629
+ **Quick start:**
630
+ ```python
631
+ from flock import Flock
632
+ from flock.store import SQLiteBlackboardStore
633
+
634
+ store = SQLiteBlackboardStore(".flock/blackboard.db")
635
+ await store.ensure_schema()
636
+ flock = Flock("openai/gpt-4.1", store=store)
637
+ ```
638
+
639
+ **Try it:** Run `examples/02-the-blackboard/01_persistent_pizza.py` to generate history, then launch `examples/03-the-dashboard/04_persistent_pizza_dashboard.py` to explore previous runs, consumption trails, and retention banners.
640
+
676
641
  ### Batching Pattern: Parallel Execution Control
677
642
 
678
643
  **A key differentiator:** The separation of `publish()` and `run_until_idle()` enables parallel execution.
@@ -800,6 +765,35 @@ agent.best_of(150, ...) # ⚠️ Warns: "best_of(150) is very high - high LLM c
800
765
 
801
766
  ## Production-Ready Observability
802
767
 
768
+ ### Sophisticated REST API
769
+
770
+ **Production-ready HTTP endpoints with comprehensive OpenAPI documentation:**
771
+
772
+ Flock includes a fully-featured REST API for programmatic access to the blackboard, agents, and workflow orchestration. Perfect for integration with external systems, building custom UIs, or monitoring production deployments.
773
+
774
+ **Key endpoints:**
775
+ - `POST /api/v1/artifacts` - Publish artifacts to the blackboard
776
+ - `GET /api/v1/artifacts` - Query artifacts with filtering, pagination, and consumption metadata
777
+ - `POST /api/v1/agents/{name}/run` - Direct agent invocation
778
+ - `GET /api/v1/correlations/{correlation_id}/status` - Workflow completion tracking
779
+ - `GET /api/v1/agents` - List all registered agents with subscriptions
780
+ - `GET /health` and `GET /metrics` - Production monitoring
781
+
782
+ **Start the API server:**
783
+ ```python
784
+ await flock.serve(dashboard=True) # API + Dashboard on port 8344
785
+ # API docs: http://localhost:8344/docs
786
+ ```
787
+
788
+ **Features:**
789
+ - ✅ **OpenAPI 3.0** - Interactive documentation at `/docs`
790
+ - ✅ **Pydantic validation** - Type-safe request/response models
791
+ - ✅ **Correlation tracking** - Monitor workflow completion with polling
792
+ - ✅ **Consumption metadata** - Full artifact lineage and agent execution trails
793
+ - ✅ **Production monitoring** - Health checks and Prometheus-compatible metrics
794
+
795
+ **📖 [Explore the API →](http://localhost:8344/docs)** (start the server first!)
796
+
803
797
  ### Real-Time Dashboard
804
798
 
805
799
  **Start the dashboard with one line:**
@@ -254,63 +254,6 @@ asyncio.run(main())
254
254
 
255
255
  ---
256
256
 
257
- ## Context Provider Primer (Security + Cost)
258
-
259
- Context Providers are the security and efficiency layer between agents and the blackboard. They decide what each agent sees in its historical context and always enforce visibility rules.
260
-
261
- Why use them
262
- - Enforce access control (visibility is applied before engines see data)
263
- - Cut context size (often 90%+) by filtering to what matters
264
- - Specialize per agent or set a global default
265
-
266
- Copy/paste examples
267
- ```python
268
- from flock import Flock
269
- from flock.context_provider import FilteredContextProvider
270
- from flock.store import FilterConfig
271
-
272
- # Global: show only urgent items (limit context size)
273
- flock = Flock(
274
- "openai/gpt-4.1",
275
- context_provider=FilteredContextProvider(FilterConfig(tags={"urgent"}), limit=50)
276
- )
277
-
278
- # Per-agent: override global for a specific role
279
- senior = flock.agent("senior").consumes(LogEntry).publishes(Analysis)
280
- senior.context_provider = FilteredContextProvider(
281
- FilterConfig(tags={"ERROR", "WARN"}),
282
- limit=200
283
- )
284
- ```
285
-
286
- Learn more: docs/guides/context-providers.md
287
-
288
- ---
289
-
290
- ## Persistent Blackboard History
291
-
292
- 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:
293
-
294
- - **Long-lived artifacts** — every field (payload, tags, partition keys, visibility) is stored for replay, audits, and postmortems
295
- - **Historical APIs** — `/api/v1/artifacts`, `/summary`, and `/agents/{agent_id}/history-summary` expose pagination, filtering, and consumption counts
296
- - **Dashboard module** — the new **Historical Blackboard** experience preloads persisted history, enriches the graph with consumer metadata, and highlights retention windows
297
- - **Operational tooling** — CLI helpers (`init-sqlite-store`, `sqlite-maintenance --delete-before ... --vacuum`) make schema setup and retention policies scriptable
298
-
299
- Quick start:
300
-
301
- ```python
302
- from flock import Flock
303
- from flock.store import SQLiteBlackboardStore
304
-
305
- store = SQLiteBlackboardStore(".flock/blackboard.db")
306
- await store.ensure_schema()
307
- flock = Flock("openai/gpt-4.1", store=store)
308
- ```
309
-
310
- 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.
311
-
312
- ---
313
-
314
257
  ## Core Concepts
315
258
 
316
259
  ### Typed Artifacts (The Vocabulary)
@@ -640,6 +583,28 @@ agent.context_provider = FilteredContextProvider(
640
583
 
641
584
  **📖 [Learn more: Context Providers Guide](https://whiteducksoftware.github.io/flock/guides/context-providers/) | [Steal production code →](examples/08-context-provider/)**
642
585
 
586
+ ### Persistent Blackboard History
587
+
588
+ The in-memory store is great for local development, but production teams need durability. The `SQLiteBlackboardStore` turns the blackboard into a persistent event log with first-class ergonomics:
589
+
590
+ **What you get:**
591
+ - **Long-lived artifacts** — Every field (payload, tags, partition keys, visibility) stored for replay, audits, and postmortems
592
+ - **Historical APIs** — `/api/v1/artifacts`, `/summary`, and `/agents/{agent_id}/history-summary` expose pagination, filtering, and consumption counts
593
+ - **Dashboard integration** — The **Historical Blackboard** view preloads persisted history, enriches the graph with consumer metadata, and highlights retention windows
594
+ - **Operational tooling** — CLI helpers (`init-sqlite-store`, `sqlite-maintenance --delete-before ... --vacuum`) make schema setup and retention policies scriptable
595
+
596
+ **Quick start:**
597
+ ```python
598
+ from flock import Flock
599
+ from flock.store import SQLiteBlackboardStore
600
+
601
+ store = SQLiteBlackboardStore(".flock/blackboard.db")
602
+ await store.ensure_schema()
603
+ flock = Flock("openai/gpt-4.1", store=store)
604
+ ```
605
+
606
+ **Try it:** Run `examples/02-the-blackboard/01_persistent_pizza.py` to generate history, then launch `examples/03-the-dashboard/04_persistent_pizza_dashboard.py` to explore previous runs, consumption trails, and retention banners.
607
+
643
608
  ### Batching Pattern: Parallel Execution Control
644
609
 
645
610
  **A key differentiator:** The separation of `publish()` and `run_until_idle()` enables parallel execution.
@@ -767,6 +732,35 @@ agent.best_of(150, ...) # ⚠️ Warns: "best_of(150) is very high - high LLM c
767
732
 
768
733
  ## Production-Ready Observability
769
734
 
735
+ ### Sophisticated REST API
736
+
737
+ **Production-ready HTTP endpoints with comprehensive OpenAPI documentation:**
738
+
739
+ Flock includes a fully-featured REST API for programmatic access to the blackboard, agents, and workflow orchestration. Perfect for integration with external systems, building custom UIs, or monitoring production deployments.
740
+
741
+ **Key endpoints:**
742
+ - `POST /api/v1/artifacts` - Publish artifacts to the blackboard
743
+ - `GET /api/v1/artifacts` - Query artifacts with filtering, pagination, and consumption metadata
744
+ - `POST /api/v1/agents/{name}/run` - Direct agent invocation
745
+ - `GET /api/v1/correlations/{correlation_id}/status` - Workflow completion tracking
746
+ - `GET /api/v1/agents` - List all registered agents with subscriptions
747
+ - `GET /health` and `GET /metrics` - Production monitoring
748
+
749
+ **Start the API server:**
750
+ ```python
751
+ await flock.serve(dashboard=True) # API + Dashboard on port 8344
752
+ # API docs: http://localhost:8344/docs
753
+ ```
754
+
755
+ **Features:**
756
+ - ✅ **OpenAPI 3.0** - Interactive documentation at `/docs`
757
+ - ✅ **Pydantic validation** - Type-safe request/response models
758
+ - ✅ **Correlation tracking** - Monitor workflow completion with polling
759
+ - ✅ **Consumption metadata** - Full artifact lineage and agent execution trails
760
+ - ✅ **Production monitoring** - Health checks and Prometheus-compatible metrics
761
+
762
+ **📖 [Explore the API →](http://localhost:8344/docs)** (start the server first!)
763
+
770
764
  ### Real-Time Dashboard
771
765
 
772
766
  **Start the dashboard with one line:**
@@ -45,6 +45,34 @@ INFO: Uvicorn running on http://127.0.0.1:8344
45
45
  [Dashboard] Browser launched successfully
46
46
  ```
47
47
 
48
+ ### Non-Blocking Mode (New!)
49
+
50
+ Need to publish messages **after** starting the dashboard? Use non-blocking mode:
51
+
52
+ ```python
53
+ # Start dashboard in background
54
+ await flock.serve(dashboard=True, blocking=False)
55
+
56
+ # Now you can publish messages and run logic!
57
+ await flock.publish(my_message)
58
+ await flock.run_until_idle()
59
+
60
+ # Dashboard stays alive for inspection
61
+ ```
62
+
63
+ **Perfect for:**
64
+ - 🎯 Demo scripts that populate data after server starts
65
+ - 🧪 Testing scenarios where you control execution flow
66
+ - 📊 Scripts that need to perform setup after dashboard is running
67
+
68
+ **Example:** See [`examples/02-dashboard/02_non_blocking_serve.py`](https://github.com/whiteducksoftware/flock/blob/main/examples/02-dashboard/02_non_blocking_serve.py) for a complete demo that publishes multiple pizza orders after starting the dashboard.
69
+
70
+ **How it works:**
71
+ - `blocking=True` (default): Server runs forever, blocks execution
72
+ - `blocking=False`: Returns immediately, server runs in background
73
+ - Automatic cleanup when task completes or is cancelled
74
+ - Works with both dashboard and non-dashboard modes
75
+
48
76
  <p align="center">
49
77
  <img alt="Flock Blackboard View" src="../img/flock_ui_blackboard_view.png" width="1000">
50
78
  <i>Blackboard View: Track data lineage and transformations across the system</i>
@@ -40,6 +40,14 @@ Comprehensive guides for building production-ready multi-agent systems with Floc
40
40
 
41
41
  [:octicons-arrow-right-24: Dashboard Guide](dashboard.md)
42
42
 
43
+ - **🌐 REST API**
44
+
45
+ ---
46
+
47
+ Production-ready HTTP endpoints with OpenAPI documentation for integration.
48
+
49
+ [:octicons-arrow-right-24: REST API Guide](rest-api.md)
50
+
43
51
  </div>
44
52
 
45
53
  ---
@@ -124,6 +132,7 @@ Comprehensive observability with OpenTelemetry and DuckDB.
124
132
  - **[Time-Based Access](visibility.md#5-aftervisibility-time-delayed)** - Temporal constraints
125
133
 
126
134
  ### Observability
135
+ - **[REST API](rest-api.md)** - HTTP endpoints for integration and monitoring
127
136
  - **[Trace Capture](tracing/auto-tracing.md)** - Automatic trace collection
128
137
  - **[Trace Analysis](tracing/how_to_use_tracing_effectively.md)** - Debugging workflows
129
138
  - **[Dashboard Viewer](tracing/trace-module.md)** - Visual trace exploration
@@ -139,6 +148,8 @@ Looking for specific tasks? Here are quick links:
139
148
  - **Enable parallel execution** → [Batching Pattern](blackboard.md)
140
149
  - **Debug agent execution** → [Tracing Effectively](tracing/how_to_use_tracing_effectively.md)
141
150
  - **Add real-time monitoring** → [Dashboard Guide](dashboard.md)
151
+ - **Integrate with external systems** → [REST API Guide](rest-api.md)
152
+ - **Track workflow completion** → [Correlation Status](rest-api.md#correlation-status-workflow-tracking)
142
153
  - **Implement multi-tenancy** → [Tenant Visibility](visibility.md#3-tenantvisibility-multi-tenancy)
143
154
  - **Query artifacts** → [Blackboard Guide](blackboard.md)
144
155