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
@@ -1,96 +0,0 @@
1
- # src/flock/config/temporal_config.py
2
-
3
- """Pydantic models for configuring Temporal execution settings."""
4
-
5
- from __future__ import annotations
6
-
7
- from datetime import timedelta
8
- from typing import TYPE_CHECKING
9
-
10
- # Conditionally import for type hinting only
11
- if TYPE_CHECKING:
12
- from temporalio.common import RetryPolicy
13
-
14
- # Note: Importing temporalio types directly into config models can complicate serialization
15
- # if these models are meant to be purely data containers (e.g., for YAML/JSON).
16
- # We define the structure and provide a helper method to convert to the actual Temporal object.
17
- # Be careful if using workflow/activity decorators directly on methods within these config models.
18
- from pydantic import BaseModel, Field
19
-
20
-
21
- class TemporalRetryPolicyConfig(BaseModel):
22
- """Configuration parameters for Temporal Retry Policies."""
23
-
24
- initial_interval: timedelta = Field(
25
- default=timedelta(seconds=1),
26
- description="Initial delay before the first retry.",
27
- )
28
- backoff_coefficient: float = Field(
29
- default=2.0, description="Multiplier for the delay between retries."
30
- )
31
- maximum_interval: timedelta | None = Field(
32
- default=timedelta(seconds=100),
33
- description="Maximum delay between retries.",
34
- )
35
- maximum_attempts: int = Field(
36
- default=3,
37
- description="Maximum number of retry attempts (0 means no retries after first failure).",
38
- )
39
- non_retryable_error_types: list[str] = Field(
40
- default_factory=list,
41
- description="List of error type names (strings) that should not be retried.",
42
- )
43
-
44
- # Helper to convert to actual Temporalio object when needed (e.g., in workflow/executor)
45
- def to_temporalio_policy(self) -> RetryPolicy:
46
- # Import locally to avoid making temporalio a hard dependency of the config module itself
47
- # The type hint RetryPolicy is now available due to TYPE_CHECKING block
48
- from temporalio.common import RetryPolicy
49
-
50
- return RetryPolicy(
51
- initial_interval=self.initial_interval,
52
- backoff_coefficient=self.backoff_coefficient,
53
- maximum_interval=self.maximum_interval,
54
- maximum_attempts=self.maximum_attempts,
55
- non_retryable_error_types=self.non_retryable_error_types,
56
- )
57
-
58
-
59
- class TemporalWorkflowConfig(BaseModel):
60
- """Configuration specific to Temporal Workflow Execution for a Flock."""
61
-
62
- task_queue: str = Field(
63
- default="flock-queue",
64
- description="Default task queue for the workflow execution.",
65
- )
66
- workflow_execution_timeout: timedelta | None = Field(
67
- default=None, # Default to no timeout (Temporal server default)
68
- description="Total time limit for the workflow execution.",
69
- )
70
- workflow_run_timeout: timedelta | None = Field(
71
- default=None, # Default to no timeout (Temporal server default)
72
- description="Time limit for a single workflow run attempt.",
73
- )
74
- # Default retry policy for activities if not specified per-agent
75
- default_activity_retry_policy: TemporalRetryPolicyConfig = Field(
76
- default_factory=TemporalRetryPolicyConfig,
77
- description="Default retry policy applied to activities if not overridden by the agent.",
78
- )
79
-
80
-
81
- class TemporalActivityConfig(BaseModel):
82
- """Configuration specific to Temporal Activity Execution (per Agent)."""
83
-
84
- task_queue: str | None = Field(
85
- default=None,
86
- description="Specific task queue for this agent's activity execution (overrides workflow default).",
87
- )
88
- start_to_close_timeout: timedelta | None = Field(
89
- default=timedelta(minutes=5), # Default to 5 minutes
90
- description="Time limit for a single activity attempt.",
91
- )
92
- retry_policy: TemporalRetryPolicyConfig | None = Field(
93
- default=None,
94
- description="Specific retry policy for this activity (overrides workflow default).",
95
- )
96
- # Other timeouts like schedule_to_start, heartbeat_timeout could be added here if needed
@@ -1,68 +0,0 @@
1
- import uuid
2
- from typing import Optional
3
-
4
- from temporalio.client import Client
5
- from temporalio.worker import Worker
6
- from flock.config import TEMPORAL_SERVER_URL
7
-
8
-
9
- async def create_temporal_client(server_address: Optional[str] = None) -> Client:
10
- """Create a Temporal client using configured server address.
11
-
12
- Args:
13
- server_address: Optional override for the Temporal server endpoint. If not
14
- provided, falls back to flock.config.TEMPORAL_SERVER_URL.
15
- """
16
- address = server_address or TEMPORAL_SERVER_URL
17
- client = await Client.connect(address)
18
- return client
19
-
20
-
21
- async def setup_worker(
22
- client: Client, task_queue: str, workflow: type, activities: list
23
- ) -> Worker:
24
- """Creates and configures a worker instance, but does not run it.
25
-
26
- Args:
27
- client: The Temporal client to associate with the worker.
28
- task_queue: The task queue the worker should listen on.
29
- workflow: The workflow class definition.
30
- activities: A list of activity functions.
31
-
32
- Returns:
33
- A configured Worker instance.
34
- """
35
- # Creates and configures the worker instance
36
- worker = Worker(
37
- client,
38
- task_queue=task_queue,
39
- workflows=[workflow],
40
- activities=activities,
41
- )
42
- return worker # Return the configured worker instance
43
-
44
-
45
- async def run_worker(client: Client, task_queue: str, workflows, activities):
46
- worker = Worker(
47
- client,
48
- task_queue=task_queue,
49
- workflows=workflows,
50
- activities=activities,
51
- )
52
- await worker.run()
53
-
54
-
55
- async def run_activity(client: Client, name: str, func, param):
56
- run_id = f"{name}_{uuid.uuid4().hex[:4]}"
57
-
58
- try:
59
- result = await client.execute_activity(
60
- func,
61
- param,
62
- id=run_id,
63
- task_queue="flock-queue",
64
- start_to_close_timeout=300, # e.g., 5 minutes
65
- )
66
- return result
67
- except Exception:
68
- raise
@@ -1,274 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: flock-core
3
- Version: 0.5.0b28
4
- Summary: Declarative LLM Orchestration at Scale
5
- Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
- License-File: LICENSE
7
- Classifier: License :: OSI Approved :: MIT License
8
- Classifier: Operating System :: OS Independent
9
- Classifier: Programming Language :: Python :: 3
10
- Requires-Python: >=3.10
11
- Requires-Dist: aiosqlite>=0.21.0
12
- Requires-Dist: azure-data-tables>=12.7.0
13
- Requires-Dist: azure-storage-blob>=12.25.1
14
- Requires-Dist: chromadb>=0.6.3
15
- Requires-Dist: cloudpickle>=3.1.1
16
- Requires-Dist: croniter>=6.0.0
17
- Requires-Dist: datasets>=3.2.0
18
- Requires-Dist: devtools>=0.12.2
19
- Requires-Dist: dspy>=3.0.0
20
- Requires-Dist: fastapi>=0.115.8
21
- Requires-Dist: httpx>=0.28.1
22
- Requires-Dist: litellm>=1.75.3
23
- Requires-Dist: loguru>=0.7.3
24
- Requires-Dist: markdown2>=2.5.3
25
- Requires-Dist: mcp>=1.7.1
26
- Requires-Dist: msgpack>=1.1.0
27
- Requires-Dist: neo4j>=5.28.1
28
- Requires-Dist: openai==1.75.0
29
- Requires-Dist: opentelemetry-api>=1.30.0
30
- Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
31
- Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
32
- Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
33
- Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
34
- Requires-Dist: opentelemetry-sdk>=1.30.0
35
- Requires-Dist: opik>=1.7.26
36
- Requires-Dist: pandas>=2.2.3
37
- Requires-Dist: pillow>=10.4.0
38
- Requires-Dist: prometheus-client>=0.21.1
39
- Requires-Dist: psutil>=6.1.1
40
- Requires-Dist: pydantic-settings>=2.7.1
41
- Requires-Dist: pydantic>=2.10.5
42
- Requires-Dist: python-box>=7.3.2
43
- Requires-Dist: python-decouple>=3.8
44
- Requires-Dist: python-dotenv>=1.0.1
45
- Requires-Dist: pyyaml>=6.0
46
- Requires-Dist: questionary>=2.1.0
47
- Requires-Dist: rich>=13.7.0
48
- Requires-Dist: rouge-score>=0.1.2
49
- Requires-Dist: sentence-transformers>=3.4.1
50
- Requires-Dist: temporalio>=1.9.0
51
- Requires-Dist: thefuzz>=0.22.1
52
- Requires-Dist: tiktoken>=0.8.0
53
- Requires-Dist: toml>=0.10.2
54
- Requires-Dist: tqdm>=4.60.1
55
- Requires-Dist: uvicorn>=0.29.0
56
- Requires-Dist: wd-di>=0.2.14
57
- Requires-Dist: websockets>=13.0.1
58
- Requires-Dist: werkzeug>=3.1.3
59
- Requires-Dist: xlsxwriter>=3.2.3
60
- Provides-Extra: memory
61
- Requires-Dist: matplotlib>=3.10.0; extra == 'memory'
62
- Requires-Dist: mem0ai[graph]>=0.1.101; extra == 'memory'
63
- Requires-Dist: zep-python>=2.0.2; extra == 'memory'
64
- Description-Content-Type: text/markdown
65
-
66
- <p align="center">
67
- <!-- Placeholder for your Flock Logo/Banner - Replace URL -->
68
- <img alt="Flock Banner" src="https://raw.githubusercontent.com/whiteducksoftware/flock/master/docs/assets/images/flock.png" width="600">
69
- </p>
70
- <p align="center">
71
- <!-- Update badges -->
72
- <a href="https://pypi.org/project/flock-core/" target="_blank"><img alt="PyPI Version" src="https://img.shields.io/pypi/v/flock-core?style=for-the-badge&logo=pypi&label=pip%20version"></a>
73
- <img alt="Python Version" src="https://img.shields.io/badge/python-3.10%2B-blue?style=for-the-badge&logo=python">
74
- <a href="https://github.com/whiteducksoftware/flock/actions/workflows/deploy-whiteduck-pypi.yml" target="_blank"><img alt="CI Status" src="https://img.shields.io/github/actions/workflow/status/whiteducksoftware/flock/deploy-whiteduck-pypi.yml?branch=master&style=for-the-badge&logo=githubactions&logoColor=white"></a>
75
- <a href="https://github.com/whiteducksoftware/flock/blob/master/LICENSE" target="_blank"><img alt="License" src="https://img.shields.io/pypi/l/flock-core?style=for-the-badge"></a>
76
- <a href="https://whiteduck.de" target="_blank"><img alt="Built by white duck" src="https://img.shields.io/badge/Built%20by-white%20duck%20GmbH-white?style=for-the-badge&labelColor=black"></a>
77
- <a href="https://www.linkedin.com/company/whiteduck" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white&label=whiteduck"></a>
78
- <a href="https://bsky.app/profile/whiteduck-gmbh.bsky.social" target="_blank"><img alt="Bluesky" src="https://img.shields.io/badge/bluesky-Follow-blue?style=for-the-badge&logo=bluesky&logoColor=%23fff&color=%23333&labelColor=%230285FF&label=whiteduck-gmbh"></a>
79
- </p>
80
-
81
-
82
- ---
83
-
84
-
85
- ## The Problem You Know Too Well
86
-
87
- 🤯 **Prompt Hell**: Brittle 500-line prompts that break with every model update.
88
- 💥 **System Failures**: One bad LLM response crashes your entire workflow
89
- 🧪 **Testing Nightmares**: "How do I unit test a prompt?" (You don't.)
90
- 🧪 **Measuring Quality**: "How do I know my prompts are close to optimal?" (You also don't.)
91
- 📄 **Output Chaos**: Parsing unstructured LLM responses into reliable data
92
- ⛓️ **Orchestration Limits**: Moving beyond simple chains and DAGs? Good luck
93
- 🚀 **Production Gap**: Jupyter notebooks don't scale to enterprise systems
94
-
95
- *After building dozens of AI systems for enterprise clients, we realized the tooling was fundamentally broken.*
96
-
97
-
98
- **Build with agents, not against them.**
99
-
100
-
101
- ## The Flock Solution
102
-
103
- **What if you could just skip that 'prompt engineering' step?**
104
-
105
- Flock is an agent framework for declarative AI workflows. You define what goes in and what should come out, the how is handled by the agent.
106
- No brittle prompts. No guesswork. Just reliable, testable AI agents.
107
-
108
-
109
- ✅ **Declarative Contracts**: Define inputs/outputs with Pydantic models. Flock handles the LLM complexity.
110
- ⚡ **Built-in Resilience**: Automatic retries, state persistence, and workflow resumption via Temporal.io
111
- 🧪 **Actually Testable**: Clear contracts make agents unit-testable like any other code
112
- 🧪 **Optimal Quality**: Agents posses multiple self-optimization algorithms based on latest research
113
- 🚀 **Dynamic Workflows**: Self-correcting loops, conditional routing, and intelligent decision-making
114
- 🔧 **Zero-Config Production**: Deploy as REST APIs with one command. Scale without rewriting.
115
-
116
- **Ready to see it in action?**
117
-
118
- ## ⚡ Quick Start
119
-
120
- ```python
121
- from flock.core import Flock, DefaultAgent
122
-
123
- # 1. Create the main orchestrator
124
- my_flock = Flock(model="openai/gpt-4.1")
125
-
126
- # 2. Declaratively define an agent
127
- brainstorm_agent = DefaultAgent(
128
- name="idea_generator",
129
- input="topic",
130
- output="catchy_title, key_points",
131
- )
132
-
133
- # 3. Add the agent to the Flock
134
- my_flock.add_agent(brainstorm_agent)
135
-
136
- # 4. Run the agent!
137
- input_data = {"topic": "The future of AI agents"}
138
- result = my_flock.run(start_agent="idea_generator", input=input_data)
139
-
140
- # The result is a Box object (dot-accessible dict)
141
- print(f"Generated Title: {result.catchy_title}")
142
- print(f"Key Points: {result.key_points}")
143
- ```
144
-
145
- **No 20-line prompt fiddling. Just structured output, every time.**
146
-
147
- ![image](https://github.com/user-attachments/assets/37a897cb-910f-49fc-89d4-510a780ad775)
148
-
149
- **Explore more examples →** [**Flock Showcase Repository**](https://github.com/whiteducksoftware/flock-showcase)
150
-
151
-
152
-
153
- ## 💾 Installation - Use Flock in your project
154
-
155
- Get started with the core Flock library:
156
-
157
- ```bash
158
- # Using uv (recommended)
159
- uv pip install flock-core
160
-
161
- # Using pip
162
- pip install flock-core
163
- ```
164
-
165
- Extras: Install optional dependencies for specific features:
166
-
167
- ```bash
168
- # Flock tools and mcp server
169
- uv pip install flock-mcp
170
- ```
171
-
172
- ## 🔑 Installation - Develop Flock
173
-
174
- ```bash
175
- git clone https://github.com/whiteducksoftware/flock.git
176
- cd flock
177
-
178
- # One-liner dev setup after cloning
179
- pip install poethepoet && poe install
180
- ```
181
-
182
- Additional provided `poe` tasks and commands:
183
-
184
- ```bash
185
- poe install # Install the project
186
- poe build # Build the project
187
- poe docs # Serve the docs
188
- poe format # Format the code
189
- poe lint # Lint the code
190
- ```
191
-
192
- ## 🔑 Environment Setup
193
-
194
- Flock uses environment variables (typically in a .env file) for configuration, especially API keys. Create a .env file in your project root:
195
-
196
- ```bash
197
- # .env - Example
198
-
199
- # --- LLM Provider API Keys (Required by most examples) ---
200
- # Add keys for providers you use (OpenAI, Anthropic, Gemini, Azure, etc.)
201
- # Refer to litellm docs (https://docs.litellm.ai/docs/providers) for names
202
- OPENAI_API_KEY="your-openai-api-key"
203
- # ANTHROPIC_API_KEY="your-anthropic-api-key"
204
-
205
- # --- Tool-Specific Keys (Optional) ---
206
- # TAVILY_API_KEY="your-tavily-search-key"
207
- # GITHUB_PAT="your-github-personal-access-token"
208
-
209
- # --- Default Flock Settings (Optional) ---
210
- DEFAULT_MODEL="openai/gpt-4o" # Default LLM if agent doesn't specify
211
-
212
- # --- Flock CLI Settings (Managed by `flock settings`) ---
213
- # SHOW_SECRETS="False"
214
- # VARS_PER_PAGE="20"
215
- ```
216
-
217
- Be sure that the .env file is added to your .gitignore!
218
-
219
-
220
- ## 🐤 New in Flock 0.5.0 `Kea` 🐤
221
-
222
- Keas are one of the smartest birds in the world famous for figuring out multi-step puzzles, unlatching doors, and coordinating in small groups to get what it wants.
223
-
224
- <Insert Kea Logo>
225
-
226
- ### Self-optimizing agents
227
-
228
- ### Everything you need to evaluate and optimize agents
229
-
230
- ### Benchmarks
231
-
232
- ### Smooth Jupyter experience
233
-
234
- ### Multi-Threading and Thread Safety
235
-
236
-
237
- --------------------------------
238
-
239
- ## 📚 Examples & Tutorials
240
-
241
- For a comprehensive set of examples, ranging from basic usage to complex projects and advanced features, please visit our dedicated showcase repository:
242
-
243
- ➡️ [github.com/whiteducksoftware/flock-showcase](https://github.com/whiteducksoftware/flock-showcase) ⬅️
244
-
245
- The showcase includes:
246
-
247
- - Step-by-step guides for core concepts.
248
- - Examples of tool usage, routing, memory, and more.
249
- - Complete mini-projects demonstrating practical applications.
250
-
251
- ## 📖 Documentation
252
-
253
- Full documentation, including API references and conceptual explanations, can be found at:
254
-
255
- ➡️ [whiteducksoftware.github.io/flock/](https://whiteducksoftware.github.io/flock/) ⬅️
256
-
257
- ## 🤝 Contributing
258
-
259
- We welcome contributions! Please see the CONTRIBUTING.md file (if available) or open an issue/pull request on GitHub.
260
-
261
- Ways to contribute:
262
-
263
- - Report bugs or suggest features.
264
- - Improve documentation.
265
- - Contribute new Modules, Evaluators, or Routers.
266
- - Add examples to the flock-showcase repository.
267
-
268
- ## 📜 License
269
-
270
- Flock is licensed under the MIT License. See the LICENSE file for details.
271
-
272
- ## 🏢 About
273
-
274
- Flock is developed and maintained by white duck GmbH, your partner for cloud-native solutions and AI integration.