flock-core 0.5.0b28__py3-none-any.whl → 0.5.0b51__py3-none-any.whl

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 (469) hide show
  1. flock/__init__.py +12 -217
  2. flock/agent.py +678 -0
  3. flock/api/themes.py +71 -0
  4. flock/artifacts.py +79 -0
  5. flock/cli.py +75 -0
  6. flock/components.py +173 -0
  7. flock/dashboard/__init__.py +28 -0
  8. flock/dashboard/collector.py +283 -0
  9. flock/dashboard/events.py +182 -0
  10. flock/dashboard/launcher.py +230 -0
  11. flock/dashboard/service.py +537 -0
  12. flock/dashboard/websocket.py +235 -0
  13. flock/engines/__init__.py +6 -0
  14. flock/engines/dspy_engine.py +856 -0
  15. flock/examples.py +128 -0
  16. flock/frontend/README.md +678 -0
  17. flock/frontend/docs/DESIGN_SYSTEM.md +1980 -0
  18. flock/frontend/index.html +12 -0
  19. flock/frontend/package-lock.json +4347 -0
  20. flock/frontend/package.json +48 -0
  21. flock/frontend/src/App.tsx +79 -0
  22. flock/frontend/src/__tests__/e2e/critical-scenarios.test.tsx +587 -0
  23. flock/frontend/src/__tests__/integration/filtering-e2e.test.tsx +387 -0
  24. flock/frontend/src/__tests__/integration/graph-rendering.test.tsx +640 -0
  25. flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +699 -0
  26. flock/frontend/src/components/common/BuildInfo.tsx +39 -0
  27. flock/frontend/src/components/common/EmptyState.module.css +115 -0
  28. flock/frontend/src/components/common/EmptyState.tsx +128 -0
  29. flock/frontend/src/components/common/ErrorBoundary.module.css +169 -0
  30. flock/frontend/src/components/common/ErrorBoundary.tsx +118 -0
  31. flock/frontend/src/components/common/KeyboardShortcutsDialog.css +251 -0
  32. flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +151 -0
  33. flock/frontend/src/components/common/LoadingSpinner.module.css +97 -0
  34. flock/frontend/src/components/common/LoadingSpinner.tsx +29 -0
  35. flock/frontend/src/components/controls/PublishControl.css +547 -0
  36. flock/frontend/src/components/controls/PublishControl.test.tsx +543 -0
  37. flock/frontend/src/components/controls/PublishControl.tsx +432 -0
  38. flock/frontend/src/components/details/DetailWindowContainer.tsx +62 -0
  39. flock/frontend/src/components/details/LiveOutputTab.test.tsx +792 -0
  40. flock/frontend/src/components/details/LiveOutputTab.tsx +220 -0
  41. flock/frontend/src/components/details/MessageHistoryTab.tsx +299 -0
  42. flock/frontend/src/components/details/NodeDetailWindow.test.tsx +501 -0
  43. flock/frontend/src/components/details/NodeDetailWindow.tsx +218 -0
  44. flock/frontend/src/components/details/RunStatusTab.tsx +307 -0
  45. flock/frontend/src/components/details/tabs.test.tsx +1015 -0
  46. flock/frontend/src/components/filters/CorrelationIDFilter.module.css +102 -0
  47. flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +197 -0
  48. flock/frontend/src/components/filters/CorrelationIDFilter.tsx +121 -0
  49. flock/frontend/src/components/filters/FilterBar.module.css +29 -0
  50. flock/frontend/src/components/filters/FilterBar.test.tsx +133 -0
  51. flock/frontend/src/components/filters/FilterBar.tsx +33 -0
  52. flock/frontend/src/components/filters/FilterPills.module.css +79 -0
  53. flock/frontend/src/components/filters/FilterPills.test.tsx +173 -0
  54. flock/frontend/src/components/filters/FilterPills.tsx +67 -0
  55. flock/frontend/src/components/filters/TimeRangeFilter.module.css +91 -0
  56. flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +154 -0
  57. flock/frontend/src/components/filters/TimeRangeFilter.tsx +105 -0
  58. flock/frontend/src/components/graph/AgentNode.test.tsx +75 -0
  59. flock/frontend/src/components/graph/AgentNode.tsx +322 -0
  60. flock/frontend/src/components/graph/GraphCanvas.tsx +406 -0
  61. flock/frontend/src/components/graph/MessageFlowEdge.tsx +128 -0
  62. flock/frontend/src/components/graph/MessageNode.test.tsx +62 -0
  63. flock/frontend/src/components/graph/MessageNode.tsx +116 -0
  64. flock/frontend/src/components/graph/MiniMap.tsx +47 -0
  65. flock/frontend/src/components/graph/TransformEdge.tsx +123 -0
  66. flock/frontend/src/components/layout/DashboardLayout.css +407 -0
  67. flock/frontend/src/components/layout/DashboardLayout.tsx +300 -0
  68. flock/frontend/src/components/layout/Header.module.css +88 -0
  69. flock/frontend/src/components/layout/Header.tsx +52 -0
  70. flock/frontend/src/components/modules/EventLogModule.test.tsx +401 -0
  71. flock/frontend/src/components/modules/EventLogModule.tsx +396 -0
  72. flock/frontend/src/components/modules/EventLogModuleWrapper.tsx +17 -0
  73. flock/frontend/src/components/modules/ModuleRegistry.test.ts +333 -0
  74. flock/frontend/src/components/modules/ModuleRegistry.ts +85 -0
  75. flock/frontend/src/components/modules/ModuleWindow.tsx +155 -0
  76. flock/frontend/src/components/modules/registerModules.ts +20 -0
  77. flock/frontend/src/components/settings/AdvancedSettings.tsx +175 -0
  78. flock/frontend/src/components/settings/AppearanceSettings.tsx +185 -0
  79. flock/frontend/src/components/settings/GraphSettings.tsx +110 -0
  80. flock/frontend/src/components/settings/SettingsPanel.css +327 -0
  81. flock/frontend/src/components/settings/SettingsPanel.tsx +131 -0
  82. flock/frontend/src/components/settings/ThemeSelector.tsx +298 -0
  83. flock/frontend/src/hooks/useKeyboardShortcuts.ts +148 -0
  84. flock/frontend/src/hooks/useModulePersistence.test.ts +442 -0
  85. flock/frontend/src/hooks/useModulePersistence.ts +154 -0
  86. flock/frontend/src/hooks/useModules.ts +139 -0
  87. flock/frontend/src/hooks/usePersistence.ts +139 -0
  88. flock/frontend/src/main.tsx +13 -0
  89. flock/frontend/src/services/api.ts +213 -0
  90. flock/frontend/src/services/indexeddb.test.ts +793 -0
  91. flock/frontend/src/services/indexeddb.ts +794 -0
  92. flock/frontend/src/services/layout.test.ts +437 -0
  93. flock/frontend/src/services/layout.ts +146 -0
  94. flock/frontend/src/services/themeApplicator.ts +140 -0
  95. flock/frontend/src/services/themeService.ts +77 -0
  96. flock/frontend/src/services/websocket.test.ts +595 -0
  97. flock/frontend/src/services/websocket.ts +685 -0
  98. flock/frontend/src/store/filterStore.test.ts +242 -0
  99. flock/frontend/src/store/filterStore.ts +103 -0
  100. flock/frontend/src/store/graphStore.test.ts +186 -0
  101. flock/frontend/src/store/graphStore.ts +414 -0
  102. flock/frontend/src/store/moduleStore.test.ts +253 -0
  103. flock/frontend/src/store/moduleStore.ts +57 -0
  104. flock/frontend/src/store/settingsStore.ts +188 -0
  105. flock/frontend/src/store/streamStore.ts +68 -0
  106. flock/frontend/src/store/uiStore.test.ts +54 -0
  107. flock/frontend/src/store/uiStore.ts +110 -0
  108. flock/frontend/src/store/wsStore.ts +34 -0
  109. flock/frontend/src/styles/index.css +15 -0
  110. flock/frontend/src/styles/scrollbar.css +47 -0
  111. flock/frontend/src/styles/variables.css +488 -0
  112. flock/frontend/src/test/setup.ts +1 -0
  113. flock/frontend/src/types/filters.ts +14 -0
  114. flock/frontend/src/types/graph.ts +55 -0
  115. flock/frontend/src/types/modules.ts +7 -0
  116. flock/frontend/src/types/theme.ts +55 -0
  117. flock/frontend/src/utils/mockData.ts +85 -0
  118. flock/frontend/src/utils/performance.ts +16 -0
  119. flock/frontend/src/utils/transforms.test.ts +860 -0
  120. flock/frontend/src/utils/transforms.ts +323 -0
  121. flock/frontend/src/vite-env.d.ts +17 -0
  122. flock/frontend/tsconfig.json +27 -0
  123. flock/frontend/tsconfig.node.json +11 -0
  124. flock/frontend/vite.config.ts +25 -0
  125. flock/frontend/vitest.config.ts +11 -0
  126. flock/{core/util → helper}/cli_helper.py +4 -3
  127. flock/{core/logging → logging}/__init__.py +2 -3
  128. flock/{core/logging → logging}/formatters/enum_builder.py +3 -4
  129. flock/{core/logging → logging}/formatters/theme_builder.py +19 -44
  130. flock/{core/logging → logging}/formatters/themed_formatter.py +69 -115
  131. flock/{core/logging → logging}/logging.py +77 -61
  132. flock/{core/logging → logging}/telemetry.py +20 -26
  133. flock/{core/logging → logging}/telemetry_exporter/base_exporter.py +2 -2
  134. flock/{core/logging → logging}/telemetry_exporter/file_exporter.py +6 -9
  135. flock/{core/logging → logging}/telemetry_exporter/sqlite_exporter.py +2 -3
  136. flock/{core/logging → logging}/trace_and_logged.py +20 -24
  137. flock/mcp/__init__.py +91 -0
  138. flock/{core/mcp/mcp_client.py → mcp/client.py} +103 -154
  139. flock/{core/mcp/mcp_config.py → mcp/config.py} +62 -117
  140. flock/mcp/manager.py +255 -0
  141. flock/mcp/servers/sse/__init__.py +1 -1
  142. flock/mcp/servers/sse/flock_sse_server.py +11 -53
  143. flock/mcp/servers/stdio/__init__.py +1 -1
  144. flock/mcp/servers/stdio/flock_stdio_server.py +8 -48
  145. flock/mcp/servers/streamable_http/flock_streamable_http_server.py +17 -62
  146. flock/mcp/servers/websockets/flock_websocket_server.py +7 -40
  147. flock/{core/mcp/flock_mcp_tool.py → mcp/tool.py} +16 -26
  148. flock/mcp/types/__init__.py +42 -0
  149. flock/{core/mcp → mcp}/types/callbacks.py +9 -15
  150. flock/{core/mcp → mcp}/types/factories.py +7 -6
  151. flock/{core/mcp → mcp}/types/handlers.py +13 -18
  152. flock/{core/mcp → mcp}/types/types.py +70 -74
  153. flock/{core/mcp → mcp}/util/helpers.py +1 -1
  154. flock/orchestrator.py +645 -0
  155. flock/registry.py +148 -0
  156. flock/runtime.py +262 -0
  157. flock/service.py +140 -0
  158. flock/store.py +69 -0
  159. flock/subscription.py +111 -0
  160. flock/themes/andromeda.toml +1 -1
  161. flock/themes/apple-system-colors.toml +1 -1
  162. flock/themes/arcoiris.toml +1 -1
  163. flock/themes/atomonelight.toml +1 -1
  164. flock/themes/ayu copy.toml +1 -1
  165. flock/themes/ayu-light.toml +1 -1
  166. flock/themes/belafonte-day.toml +1 -1
  167. flock/themes/belafonte-night.toml +1 -1
  168. flock/themes/blulocodark.toml +1 -1
  169. flock/themes/breeze.toml +1 -1
  170. flock/themes/broadcast.toml +1 -1
  171. flock/themes/brogrammer.toml +1 -1
  172. flock/themes/builtin-dark.toml +1 -1
  173. flock/themes/builtin-pastel-dark.toml +1 -1
  174. flock/themes/catppuccin-latte.toml +1 -1
  175. flock/themes/catppuccin-macchiato.toml +1 -1
  176. flock/themes/catppuccin-mocha.toml +1 -1
  177. flock/themes/cga.toml +1 -1
  178. flock/themes/chalk.toml +1 -1
  179. flock/themes/ciapre.toml +1 -1
  180. flock/themes/coffee-theme.toml +1 -1
  181. flock/themes/cyberpunkscarletprotocol.toml +1 -1
  182. flock/themes/dark+.toml +1 -1
  183. flock/themes/darkermatrix.toml +1 -1
  184. flock/themes/darkside.toml +1 -1
  185. flock/themes/desert.toml +1 -1
  186. flock/themes/django.toml +1 -1
  187. flock/themes/djangosmooth.toml +1 -1
  188. flock/themes/doomone.toml +1 -1
  189. flock/themes/dotgov.toml +1 -1
  190. flock/themes/dracula+.toml +1 -1
  191. flock/themes/duckbones.toml +1 -1
  192. flock/themes/encom.toml +1 -1
  193. flock/themes/espresso.toml +1 -1
  194. flock/themes/everblush.toml +1 -1
  195. flock/themes/fairyfloss.toml +1 -1
  196. flock/themes/fideloper.toml +1 -1
  197. flock/themes/fishtank.toml +1 -1
  198. flock/themes/flexoki-light.toml +1 -1
  199. flock/themes/floraverse.toml +1 -1
  200. flock/themes/framer.toml +1 -1
  201. flock/themes/galizur.toml +1 -1
  202. flock/themes/github.toml +1 -1
  203. flock/themes/grass.toml +1 -1
  204. flock/themes/grey-green.toml +1 -1
  205. flock/themes/gruvboxlight.toml +1 -1
  206. flock/themes/guezwhoz.toml +1 -1
  207. flock/themes/harper.toml +1 -1
  208. flock/themes/hax0r-blue.toml +1 -1
  209. flock/themes/hopscotch.256.toml +1 -1
  210. flock/themes/ic-green-ppl.toml +1 -1
  211. flock/themes/iceberg-dark.toml +1 -1
  212. flock/themes/japanesque.toml +1 -1
  213. flock/themes/jubi.toml +1 -1
  214. flock/themes/kibble.toml +1 -1
  215. flock/themes/kolorit.toml +1 -1
  216. flock/themes/kurokula.toml +1 -1
  217. flock/themes/materialdesigncolors.toml +1 -1
  218. flock/themes/matrix.toml +1 -1
  219. flock/themes/mellifluous.toml +1 -1
  220. flock/themes/midnight-in-mojave.toml +1 -1
  221. flock/themes/monokai-remastered.toml +1 -1
  222. flock/themes/monokai-soda.toml +1 -1
  223. flock/themes/neon.toml +1 -1
  224. flock/themes/neopolitan.toml +1 -1
  225. flock/themes/nord-light.toml +1 -1
  226. flock/themes/ocean.toml +1 -1
  227. flock/themes/onehalfdark.toml +1 -1
  228. flock/themes/onehalflight.toml +1 -1
  229. flock/themes/palenighthc.toml +1 -1
  230. flock/themes/paulmillr.toml +1 -1
  231. flock/themes/pencildark.toml +1 -1
  232. flock/themes/pnevma.toml +1 -1
  233. flock/themes/purple-rain.toml +1 -1
  234. flock/themes/purplepeter.toml +1 -1
  235. flock/themes/raycast-dark.toml +1 -1
  236. flock/themes/red-sands.toml +1 -1
  237. flock/themes/relaxed.toml +1 -1
  238. flock/themes/retro.toml +1 -1
  239. flock/themes/rose-pine.toml +1 -1
  240. flock/themes/royal.toml +1 -1
  241. flock/themes/ryuuko.toml +1 -1
  242. flock/themes/sakura.toml +1 -1
  243. flock/themes/scarlet-protocol.toml +1 -1
  244. flock/themes/seoulbones-dark.toml +1 -1
  245. flock/themes/shades-of-purple.toml +1 -1
  246. flock/themes/smyck.toml +1 -1
  247. flock/themes/softserver.toml +1 -1
  248. flock/themes/solarized-darcula.toml +1 -1
  249. flock/themes/square.toml +1 -1
  250. flock/themes/sugarplum.toml +1 -1
  251. flock/themes/thayer-bright.toml +1 -1
  252. flock/themes/tokyonight.toml +1 -1
  253. flock/themes/tomorrow.toml +1 -1
  254. flock/themes/ubuntu.toml +1 -1
  255. flock/themes/ultradark.toml +1 -1
  256. flock/themes/ultraviolent.toml +1 -1
  257. flock/themes/unikitty.toml +1 -1
  258. flock/themes/urple.toml +1 -1
  259. flock/themes/vesper.toml +1 -1
  260. flock/themes/vimbones.toml +1 -1
  261. flock/themes/wildcherry.toml +1 -1
  262. flock/themes/wilmersdorf.toml +1 -1
  263. flock/themes/wryan.toml +1 -1
  264. flock/themes/xcodedarkhc.toml +1 -1
  265. flock/themes/xcodelight.toml +1 -1
  266. flock/themes/zenbones-light.toml +1 -1
  267. flock/themes/zenwritten-dark.toml +1 -1
  268. flock/utilities.py +301 -0
  269. flock/{components/utility → utility}/output_utility_component.py +68 -53
  270. flock/visibility.py +107 -0
  271. flock_core-0.5.0b51.dist-info/METADATA +747 -0
  272. flock_core-0.5.0b51.dist-info/RECORD +508 -0
  273. flock_core-0.5.0b51.dist-info/entry_points.txt +2 -0
  274. {flock_core-0.5.0b28.dist-info → flock_core-0.5.0b51.dist-info}/licenses/LICENSE +1 -1
  275. flock/adapter/__init__.py +0 -14
  276. flock/adapter/azure_adapter.py +0 -68
  277. flock/adapter/chroma_adapter.py +0 -73
  278. flock/adapter/faiss_adapter.py +0 -97
  279. flock/adapter/pinecone_adapter.py +0 -51
  280. flock/adapter/vector_base.py +0 -47
  281. flock/cli/assets/release_notes.md +0 -140
  282. flock/cli/config.py +0 -8
  283. flock/cli/constants.py +0 -36
  284. flock/cli/create_agent.py +0 -1
  285. flock/cli/create_flock.py +0 -280
  286. flock/cli/execute_flock.py +0 -620
  287. flock/cli/load_agent.py +0 -1
  288. flock/cli/load_examples.py +0 -1
  289. flock/cli/load_flock.py +0 -192
  290. flock/cli/load_release_notes.py +0 -20
  291. flock/cli/loaded_flock_cli.py +0 -254
  292. flock/cli/manage_agents.py +0 -459
  293. flock/cli/registry_management.py +0 -889
  294. flock/cli/runner.py +0 -41
  295. flock/cli/settings.py +0 -857
  296. flock/cli/utils.py +0 -135
  297. flock/cli/view_results.py +0 -29
  298. flock/cli/yaml_editor.py +0 -396
  299. flock/components/__init__.py +0 -30
  300. flock/components/evaluation/__init__.py +0 -9
  301. flock/components/evaluation/declarative_evaluation_component.py +0 -606
  302. flock/components/routing/__init__.py +0 -15
  303. flock/components/routing/conditional_routing_component.py +0 -494
  304. flock/components/routing/default_routing_component.py +0 -103
  305. flock/components/routing/llm_routing_component.py +0 -206
  306. flock/components/utility/__init__.py +0 -22
  307. flock/components/utility/example_utility_component.py +0 -250
  308. flock/components/utility/feedback_utility_component.py +0 -206
  309. flock/components/utility/memory_utility_component.py +0 -550
  310. flock/components/utility/metrics_utility_component.py +0 -700
  311. flock/config.py +0 -61
  312. flock/core/__init__.py +0 -110
  313. flock/core/agent/__init__.py +0 -16
  314. flock/core/agent/default_agent.py +0 -216
  315. flock/core/agent/flock_agent_components.py +0 -104
  316. flock/core/agent/flock_agent_execution.py +0 -101
  317. flock/core/agent/flock_agent_integration.py +0 -260
  318. flock/core/agent/flock_agent_lifecycle.py +0 -186
  319. flock/core/agent/flock_agent_serialization.py +0 -381
  320. flock/core/api/__init__.py +0 -10
  321. flock/core/api/custom_endpoint.py +0 -45
  322. flock/core/api/endpoints.py +0 -254
  323. flock/core/api/main.py +0 -162
  324. flock/core/api/models.py +0 -97
  325. flock/core/api/run_store.py +0 -224
  326. flock/core/api/runner.py +0 -44
  327. flock/core/api/service.py +0 -214
  328. flock/core/component/__init__.py +0 -15
  329. flock/core/component/agent_component_base.py +0 -309
  330. flock/core/component/evaluation_component.py +0 -62
  331. flock/core/component/routing_component.py +0 -74
  332. flock/core/component/utility_component.py +0 -69
  333. flock/core/config/flock_agent_config.py +0 -58
  334. flock/core/config/scheduled_agent_config.py +0 -40
  335. flock/core/context/context.py +0 -213
  336. flock/core/context/context_manager.py +0 -37
  337. flock/core/context/context_vars.py +0 -10
  338. flock/core/evaluation/utils.py +0 -396
  339. flock/core/execution/batch_executor.py +0 -369
  340. flock/core/execution/evaluation_executor.py +0 -438
  341. flock/core/execution/local_executor.py +0 -31
  342. flock/core/execution/opik_executor.py +0 -103
  343. flock/core/execution/temporal_executor.py +0 -164
  344. flock/core/flock.py +0 -634
  345. flock/core/flock_agent.py +0 -336
  346. flock/core/flock_factory.py +0 -613
  347. flock/core/flock_scheduler.py +0 -166
  348. flock/core/flock_server_manager.py +0 -136
  349. flock/core/interpreter/python_interpreter.py +0 -689
  350. flock/core/mcp/__init__.py +0 -1
  351. flock/core/mcp/flock_mcp_server.py +0 -680
  352. flock/core/mcp/mcp_client_manager.py +0 -201
  353. flock/core/mcp/types/__init__.py +0 -1
  354. flock/core/mixin/dspy_integration.py +0 -403
  355. flock/core/mixin/prompt_parser.py +0 -125
  356. flock/core/orchestration/__init__.py +0 -15
  357. flock/core/orchestration/flock_batch_processor.py +0 -94
  358. flock/core/orchestration/flock_evaluator.py +0 -113
  359. flock/core/orchestration/flock_execution.py +0 -295
  360. flock/core/orchestration/flock_initialization.py +0 -149
  361. flock/core/orchestration/flock_server_manager.py +0 -67
  362. flock/core/orchestration/flock_web_server.py +0 -117
  363. flock/core/registry/__init__.py +0 -45
  364. flock/core/registry/agent_registry.py +0 -69
  365. flock/core/registry/callable_registry.py +0 -139
  366. flock/core/registry/component_discovery.py +0 -142
  367. flock/core/registry/component_registry.py +0 -64
  368. flock/core/registry/config_mapping.py +0 -64
  369. flock/core/registry/decorators.py +0 -137
  370. flock/core/registry/registry_hub.py +0 -205
  371. flock/core/registry/server_registry.py +0 -57
  372. flock/core/registry/type_registry.py +0 -86
  373. flock/core/serialization/__init__.py +0 -13
  374. flock/core/serialization/callable_registry.py +0 -52
  375. flock/core/serialization/flock_serializer.py +0 -832
  376. flock/core/serialization/json_encoder.py +0 -41
  377. flock/core/serialization/secure_serializer.py +0 -175
  378. flock/core/serialization/serializable.py +0 -342
  379. flock/core/serialization/serialization_utils.py +0 -412
  380. flock/core/util/file_path_utils.py +0 -223
  381. flock/core/util/hydrator.py +0 -309
  382. flock/core/util/input_resolver.py +0 -164
  383. flock/core/util/loader.py +0 -59
  384. flock/core/util/splitter.py +0 -219
  385. flock/di.py +0 -27
  386. flock/platform/docker_tools.py +0 -49
  387. flock/platform/jaeger_install.py +0 -86
  388. flock/webapp/__init__.py +0 -1
  389. flock/webapp/app/__init__.py +0 -0
  390. flock/webapp/app/api/__init__.py +0 -0
  391. flock/webapp/app/api/agent_management.py +0 -241
  392. flock/webapp/app/api/execution.py +0 -709
  393. flock/webapp/app/api/flock_management.py +0 -129
  394. flock/webapp/app/api/registry_viewer.py +0 -30
  395. flock/webapp/app/chat.py +0 -665
  396. flock/webapp/app/config.py +0 -104
  397. flock/webapp/app/dependencies.py +0 -117
  398. flock/webapp/app/main.py +0 -1070
  399. flock/webapp/app/middleware.py +0 -113
  400. flock/webapp/app/models_ui.py +0 -7
  401. flock/webapp/app/services/__init__.py +0 -0
  402. flock/webapp/app/services/feedback_file_service.py +0 -363
  403. flock/webapp/app/services/flock_service.py +0 -337
  404. flock/webapp/app/services/sharing_models.py +0 -81
  405. flock/webapp/app/services/sharing_store.py +0 -762
  406. flock/webapp/app/templates/theme_mapper.html +0 -326
  407. flock/webapp/app/theme_mapper.py +0 -812
  408. flock/webapp/app/utils.py +0 -85
  409. flock/webapp/run.py +0 -215
  410. flock/webapp/static/css/chat.css +0 -301
  411. flock/webapp/static/css/components.css +0 -167
  412. flock/webapp/static/css/header.css +0 -39
  413. flock/webapp/static/css/layout.css +0 -46
  414. flock/webapp/static/css/sidebar.css +0 -127
  415. flock/webapp/static/css/two-pane.css +0 -48
  416. flock/webapp/templates/base.html +0 -200
  417. flock/webapp/templates/chat.html +0 -152
  418. flock/webapp/templates/chat_settings.html +0 -19
  419. flock/webapp/templates/flock_editor.html +0 -16
  420. flock/webapp/templates/index.html +0 -12
  421. flock/webapp/templates/partials/_agent_detail_form.html +0 -93
  422. flock/webapp/templates/partials/_agent_list.html +0 -18
  423. flock/webapp/templates/partials/_agent_manager_view.html +0 -51
  424. flock/webapp/templates/partials/_agent_tools_checklist.html +0 -14
  425. flock/webapp/templates/partials/_chat_container.html +0 -15
  426. flock/webapp/templates/partials/_chat_messages.html +0 -57
  427. flock/webapp/templates/partials/_chat_settings_form.html +0 -85
  428. flock/webapp/templates/partials/_create_flock_form.html +0 -50
  429. flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -17
  430. flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -16
  431. flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -28
  432. flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -16
  433. flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -22
  434. flock/webapp/templates/partials/_env_vars_table.html +0 -23
  435. flock/webapp/templates/partials/_execution_form.html +0 -118
  436. flock/webapp/templates/partials/_execution_view_container.html +0 -28
  437. flock/webapp/templates/partials/_flock_file_list.html +0 -23
  438. flock/webapp/templates/partials/_flock_properties_form.html +0 -52
  439. flock/webapp/templates/partials/_flock_upload_form.html +0 -16
  440. flock/webapp/templates/partials/_header_flock_status.html +0 -5
  441. flock/webapp/templates/partials/_load_manager_view.html +0 -49
  442. flock/webapp/templates/partials/_registry_table.html +0 -25
  443. flock/webapp/templates/partials/_registry_viewer_content.html +0 -70
  444. flock/webapp/templates/partials/_results_display.html +0 -78
  445. flock/webapp/templates/partials/_settings_env_content.html +0 -9
  446. flock/webapp/templates/partials/_settings_theme_content.html +0 -14
  447. flock/webapp/templates/partials/_settings_view.html +0 -36
  448. flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -11
  449. flock/webapp/templates/partials/_share_link_snippet.html +0 -35
  450. flock/webapp/templates/partials/_sidebar.html +0 -74
  451. flock/webapp/templates/partials/_streaming_results_container.html +0 -195
  452. flock/webapp/templates/partials/_structured_data_view.html +0 -40
  453. flock/webapp/templates/partials/_theme_preview.html +0 -36
  454. flock/webapp/templates/registry_viewer.html +0 -84
  455. flock/webapp/templates/shared_run_page.html +0 -140
  456. flock/workflow/__init__.py +0 -0
  457. flock/workflow/activities.py +0 -196
  458. flock/workflow/agent_activities.py +0 -24
  459. flock/workflow/agent_execution_activity.py +0 -202
  460. flock/workflow/flock_workflow.py +0 -214
  461. flock/workflow/temporal_config.py +0 -96
  462. flock/workflow/temporal_setup.py +0 -68
  463. flock_core-0.5.0b28.dist-info/METADATA +0 -274
  464. flock_core-0.5.0b28.dist-info/RECORD +0 -561
  465. flock_core-0.5.0b28.dist-info/entry_points.txt +0 -2
  466. /flock/{core/logging → logging}/formatters/themes.py +0 -0
  467. /flock/{core/logging → logging}/span_middleware/baggage_span_processor.py +0 -0
  468. /flock/{core/mcp → mcp}/util/__init__.py +0 -0
  469. {flock_core-0.5.0b28.dist-info → flock_core-0.5.0b51.dist-info}/WHEEL +0 -0
flock/cli/load_flock.py DELETED
@@ -1,192 +0,0 @@
1
- """Load a Flock from a file."""
2
-
3
- from pathlib import Path
4
-
5
- import questionary
6
- from rich.console import Console
7
- from rich.markdown import Markdown
8
-
9
- from flock.cli.loaded_flock_cli import start_loaded_flock_cli
10
- from flock.core.flock import Flock
11
- from flock.core.logging.logging import get_logger
12
-
13
- logger = get_logger("cli.load_flock")
14
-
15
-
16
- def filter(file_path) -> bool:
17
- """Filter function for file selection."""
18
- path = Path(file_path)
19
- if path.is_dir():
20
- return True
21
- return path.is_file() and (
22
- path.suffix == ".flock"
23
- or path.suffix == ".yaml"
24
- or path.suffix == ".yml"
25
- )
26
-
27
-
28
- def load_flock():
29
- """Load a Flock from a file."""
30
- console = Console()
31
-
32
- console.print(
33
- "\nPlease select a *.flock, *.yaml, or *.yml file\n", style="bold green"
34
- )
35
-
36
- result = questionary.path("", file_filter=filter).ask()
37
-
38
- if not result:
39
- return
40
-
41
- selected_file = Path(result)
42
- if selected_file.is_file():
43
- console.print(f"Selected file: {selected_file}", style="bold green")
44
-
45
- try:
46
- # Try loading with detailed error handling
47
- try:
48
- logger.info(f"Attempting to load Flock from: {result}")
49
- flock = Flock.load_from_file(result)
50
- except ImportError as e:
51
- # Handle missing module path errors
52
- if "No module named" in str(e):
53
- console.print(
54
- f"[yellow]Warning: Module import failed: {e}[/]"
55
- )
56
- console.print(
57
- "[yellow]Trying file path fallback mechanism...[/]"
58
- )
59
- # Re-try loading with fallback
60
- flock = Flock.load_from_file(result)
61
- else:
62
- raise # Re-raise if it's not a missing module error
63
- except KeyError as e:
64
- # This could be caused by missing tool references
65
- if "__callable_ref__" in str(e):
66
- console.print(
67
- f"[yellow]Warning: Tool reference error: {e}[/]"
68
- )
69
- console.print(
70
- "[yellow]This may be due to missing tool registrations. Attempting to scan for tools...[/]"
71
- )
72
- # Scan for tools and retry
73
- from flock.cli.registry_management import (
74
- auto_registration_scanner,
75
- )
76
-
77
- auto_registration_scanner()
78
- # Try loading again
79
- flock = Flock.load_from_file(result)
80
- else:
81
- raise # Re-raise if it's not a tool reference error
82
-
83
- console.line()
84
- console.print(
85
- Markdown("# Flock loaded successfully"), style="bold green"
86
- )
87
- console.line()
88
-
89
- # Instead of just running the Flock, start our enhanced CLI
90
- start_loaded_flock_cli(
91
- flock, server_name=f"Flock - {selected_file.name}"
92
- )
93
-
94
- except Exception as e:
95
- console.print(f"Error loading Flock: {e!s}", style="bold red")
96
- logger.error(f"Failed to load Flock: {e}", exc_info=True)
97
-
98
- # Add more detailed error information for specific errors
99
- if "No module named" in str(e):
100
- console.print(
101
- "\n[yellow]This error might be due to missing module paths.[/]"
102
- )
103
- console.print(
104
- "[yellow]Component references may need to be updated with file paths.[/]"
105
- )
106
-
107
- # Show the option to scan the directory for components
108
- fix_paths = questionary.confirm(
109
- "Would you like to scan directories for components to fix missing imports?",
110
- default=True,
111
- ).ask()
112
-
113
- if fix_paths:
114
- from flock.cli.registry_management import (
115
- auto_registration_scanner,
116
- )
117
-
118
- auto_registration_scanner()
119
-
120
- # Try loading again
121
- console.print(
122
- "\n[yellow]Attempting to load Flock again...[/]"
123
- )
124
- try:
125
- flock = Flock.load_from_file(result)
126
- console.line()
127
- console.print(
128
- Markdown(
129
- "# Flock loaded successfully after component scan"
130
- ),
131
- style="bold green",
132
- )
133
- console.line()
134
-
135
- start_loaded_flock_cli(
136
- flock, server_name=f"Flock - {selected_file.name}"
137
- )
138
- return
139
- except Exception as e2:
140
- console.print(
141
- f"Error loading Flock after scan: {e2!s}",
142
- style="bold red",
143
- )
144
-
145
- # Handle tool reference issues
146
- elif "__callable_ref__" in str(e) or "callable" in str(e).lower():
147
- console.print(
148
- "\n[yellow]This error might be due to missing tool registrations.[/]"
149
- )
150
-
151
- # Show the option to scan the directory for tools
152
- fix_tools = questionary.confirm(
153
- "Would you like to scan directories for tools to fix missing references?",
154
- default=True,
155
- ).ask()
156
-
157
- if fix_tools:
158
- from flock.cli.registry_management import (
159
- auto_registration_scanner,
160
- )
161
-
162
- console.print(
163
- "\n[yellow]Scanning for tools and callables...[/]"
164
- )
165
- auto_registration_scanner()
166
-
167
- # Try loading again
168
- console.print(
169
- "\n[yellow]Attempting to load Flock again...[/]"
170
- )
171
- try:
172
- flock = Flock.load_from_file(result)
173
- console.line()
174
- console.print(
175
- Markdown(
176
- "# Flock loaded successfully after tool scan"
177
- ),
178
- style="bold green",
179
- )
180
- console.line()
181
-
182
- start_loaded_flock_cli(
183
- flock, server_name=f"Flock - {selected_file.name}"
184
- )
185
- return
186
- except Exception as e2:
187
- console.print(
188
- f"Error loading Flock after tool scan: {e2!s}",
189
- style="bold red",
190
- )
191
-
192
- input("\nPress Enter to continue...")
@@ -1,20 +0,0 @@
1
- from pathlib import Path
2
-
3
-
4
- def load_release_notes():
5
- """Load release notes."""
6
- from rich.console import Console
7
- from rich.markdown import Markdown
8
-
9
- from flock.core.util.cli_helper import display_hummingbird, init_console
10
-
11
- console = Console()
12
- file_path = Path(__file__).parent / "assets" / "release_notes.md"
13
-
14
- init_console()
15
- console.print(Markdown("# *'Hummingbird'* Release Notes"))
16
- display_hummingbird()
17
- with open(file_path) as file:
18
- release_notes = file.read()
19
-
20
- console.print(Markdown(release_notes))
@@ -1,254 +0,0 @@
1
- """CLI interface for working with a loaded Flock instance.
2
-
3
- This module provides a CLI interface for a Flock instance that has already been loaded,
4
- allowing users to execute, edit, or manage agents from the existing configuration.
5
- """
6
-
7
- import questionary
8
- from rich.console import Console
9
- from rich.panel import Panel
10
-
11
- from flock.cli.constants import (
12
- CLI_REGISTRY_MANAGEMENT,
13
- CLI_SETTINGS,
14
- )
15
- from flock.core.flock import Flock
16
- from flock.core.logging.logging import get_logger
17
- from flock.core.util.cli_helper import init_console
18
-
19
- # Import future modules we'll create
20
- # These will be implemented later
21
- try:
22
- from flock.cli.yaml_editor import yaml_editor
23
-
24
- yaml_editor_available = True
25
- except ImportError:
26
- yaml_editor_available = False
27
-
28
- try:
29
- from flock.cli.manage_agents import manage_agents
30
-
31
- manage_agents_available = True
32
- except ImportError:
33
- manage_agents_available = False
34
-
35
- try:
36
- from flock.cli.execute_flock import execute_flock, execute_flock_batch
37
-
38
- execute_flock_available = True
39
- except ImportError:
40
- execute_flock_available = False
41
-
42
- try:
43
- from flock.cli.view_results import view_results
44
-
45
- view_results_available = True
46
- except ImportError:
47
- view_results_available = False
48
-
49
- # Create console instance
50
- console = Console()
51
- logger = get_logger("cli.loaded_flock")
52
-
53
-
54
- def start_loaded_flock_cli(
55
- flock: Flock,
56
- server_name: str = "Flock CLI",
57
- show_results: bool = False,
58
- edit_mode: bool = False,
59
- ) -> None:
60
- """Start a CLI interface with a loaded Flock instance.
61
-
62
- Args:
63
- flock: The loaded Flock instance
64
- server_name: Optional name for the CLI interface
65
- show_results: Whether to initially show results of previous runs
66
- edit_mode: Whether to open directly in edit mode
67
- """
68
- if not flock:
69
- console.print("[bold red]Error: No Flock instance provided.[/]")
70
- return
71
-
72
- agent_names = list(flock._agents.keys())
73
-
74
- # Directly go to specific modes if requested
75
- if edit_mode and yaml_editor_available:
76
- yaml_editor(flock)
77
- return
78
-
79
- if show_results and view_results_available:
80
- view_results(flock)
81
- return
82
-
83
- # Main CLI loop
84
- while True:
85
- # Initialize console for each loop iteration
86
- init_console()
87
-
88
- # Display header with Flock information
89
- console.print(Panel(f"[bold green]{server_name}[/]"), justify="center")
90
- console.print(
91
- f"Flock loaded with [bold cyan]{len(agent_names)}[/] agents: {', '.join(agent_names)}"
92
- )
93
- console.line()
94
-
95
- # Main menu choices
96
- choices = [
97
- questionary.Separator(line=" "),
98
- "Execute Flock",
99
- "Execute Flock - Batch Mode",
100
- "Start Web Server",
101
- "Start Web Server with UI",
102
- "Manage Agents",
103
- "View Results of Past Runs",
104
- ]
105
-
106
- # Add YAML Editor option if available
107
- if yaml_editor_available:
108
- choices.append("Edit YAML Configurations")
109
-
110
- # Add remaining options
111
- choices.extend([questionary.Separator(), CLI_REGISTRY_MANAGEMENT])
112
- choices.extend(
113
- [
114
- questionary.Separator(),
115
- CLI_SETTINGS,
116
- questionary.Separator(),
117
- "Exit",
118
- ]
119
- )
120
-
121
- # Display menu and get choice
122
- choice = questionary.select(
123
- "What would you like to do?",
124
- choices=choices,
125
- ).ask()
126
-
127
- # Handle menu selection
128
- if choice == "Execute Flock":
129
- if execute_flock_available:
130
- execute_flock(flock)
131
- else:
132
- console.print(
133
- "[yellow]Execute Flock functionality not yet implemented.[/]"
134
- )
135
- input("\nPress Enter to continue...")
136
-
137
- elif choice == "Execute Flock - Batch Mode":
138
- if execute_flock_available:
139
- execute_flock_batch(flock)
140
- else:
141
- console.print(
142
- "[yellow]Batch execution functionality not yet implemented.[/]"
143
- )
144
- input("\nPress Enter to continue...")
145
-
146
- elif choice == "Start Web Server":
147
- _start_web_server(flock, create_ui=False)
148
-
149
- elif choice == "Start Web Server with UI":
150
- _start_web_server(flock, create_ui=True)
151
-
152
- elif choice == "Manage Agents":
153
- if manage_agents_available:
154
- manage_agents(flock)
155
- else:
156
- console.print(
157
- "[yellow]Manage Agents functionality not yet implemented.[/]"
158
- )
159
- input("\nPress Enter to continue...")
160
-
161
- elif choice == "View Results of Past Runs":
162
- if view_results_available:
163
- view_results(flock)
164
- else:
165
- console.print(
166
- "[yellow]View Results functionality not yet implemented.[/]"
167
- )
168
- input("\nPress Enter to continue...")
169
-
170
- elif choice == CLI_REGISTRY_MANAGEMENT:
171
- from flock.cli.registry_management import manage_registry
172
-
173
- manage_registry()
174
-
175
- elif choice == "Edit YAML Configurations" and yaml_editor_available:
176
- yaml_editor(flock)
177
-
178
- elif choice == CLI_SETTINGS:
179
- from flock.cli.settings import settings_editor
180
-
181
- settings_editor()
182
-
183
- elif choice == "Exit":
184
- break
185
-
186
- # Pause after each action unless we're exiting
187
- if choice != "Exit" and not choice.startswith("Start Web Server"):
188
- input("\nPress Enter to continue...")
189
-
190
-
191
- def _start_web_server(flock: Flock, create_ui: bool = False) -> None:
192
- """Start a web server with the loaded Flock instance."""
193
- host = "127.0.0.1"
194
- port = 8344
195
- # server_name = flock.name + " API" # Use flock name by default for server_name
196
-
197
- console.print("\n[bold]Web Server Configuration[/]")
198
-
199
- host_input = questionary.text(
200
- "Host (default: 127.0.0.1):", default=host
201
- ).ask()
202
- if host_input:
203
- host = host_input
204
-
205
- port_input = questionary.text(
206
- "Port (default: 8344):", default=str(port)
207
- ).ask()
208
- if port_input and port_input.isdigit():
209
- port = int(port_input)
210
-
211
- server_name_input = questionary.text(
212
- "Server name (default: FlockName API):", default=f"{flock.name or 'Flock'} API"
213
- ).ask()
214
- # if server_name_input: # server_name will be set by flock.start_api if not passed, or use its default
215
- # server_name = server_name_input
216
-
217
- ui_theme_to_pass = None
218
- if create_ui:
219
- try:
220
- from flock.webapp.app.config import (
221
- DEFAULT_THEME_NAME,
222
- list_available_themes,
223
- )
224
- available_themes = list_available_themes()
225
- theme_choices = ["default (current environment setting)", "random"] + sorted(available_themes)
226
-
227
- selected_theme_choice = questionary.select(
228
- "Select UI theme:",
229
- choices=theme_choices,
230
- default="default (current environment setting)"
231
- ).ask()
232
-
233
- if selected_theme_choice == "random":
234
- ui_theme_to_pass = "random"
235
- elif selected_theme_choice and selected_theme_choice != "default (current environment setting)":
236
- ui_theme_to_pass = selected_theme_choice
237
- # If "default" or None, ui_theme_to_pass remains None, Flock.start_api will use its logic
238
-
239
- except ImportError:
240
- logger.warning("Could not import webapp theme configuration for CLI selection. Theme will use default.")
241
- ui_theme_to_pass = None # Fallback if webapp components not there
242
-
243
- console.print(
244
- f"\nStarting web server on {host}:{port} {'with UI' if create_ui else 'without UI'}{' (Theme: ' + (ui_theme_to_pass if ui_theme_to_pass else 'default') + ')' if create_ui else ''}..."
245
- )
246
-
247
- # Call the Flock instance's own start_api method directly
248
- flock.start_api(
249
- host=host,
250
- port=port,
251
- server_name=server_name_input, # Pass the chosen server name
252
- create_ui=create_ui,
253
- ui_theme=ui_theme_to_pass,
254
- )