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,73 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from pathlib import Path
4
- from typing import Any
5
-
6
- from .vector_base import VectorAdapter, VectorHit
7
-
8
-
9
- class ChromaAdapter(VectorAdapter):
10
- """Adapter for Chroma vector DB (local or HTTP)."""
11
-
12
- def __init__(
13
- self,
14
- *,
15
- collection: str = "flock_memories",
16
- host: str | None = None,
17
- port: int = 8000,
18
- path: str | None = "./vector_store",
19
- ) -> None:
20
- super().__init__()
21
- try:
22
- import chromadb
23
- from chromadb.config import Settings
24
- except ImportError as e:
25
- raise RuntimeError("chromadb is required for ChromaAdapter") from e
26
-
27
- if host:
28
- client = chromadb.HttpClient(host=host, port=port)
29
- else:
30
- p = Path(path or "./vector_store")
31
- p.mkdir(parents=True, exist_ok=True)
32
- client = chromadb.PersistentClient(settings=Settings(path=str(p)))
33
-
34
- self._collection = client.get_or_create_collection(collection)
35
-
36
- # -------------------------------
37
- # VectorAdapter implementation
38
- # -------------------------------
39
- def add(
40
- self,
41
- *,
42
- id: str,
43
- content: str,
44
- embedding: list[float],
45
- metadata: dict[str, Any] | None = None,
46
- ) -> None:
47
- self._collection.add(
48
- ids=[id],
49
- documents=[content],
50
- embeddings=[embedding],
51
- metadatas=[metadata or {}],
52
- )
53
-
54
- def query(self, *, embedding: list[float], k: int) -> list[VectorHit]:
55
- res = self._collection.query(
56
- query_embeddings=[embedding],
57
- n_results=k,
58
- include=["documents", "metadatas", "distances", "ids"],
59
- )
60
- hits: list[VectorHit] = []
61
- if res and res["ids"]:
62
- for idx in range(len(res["ids"][0])):
63
- dist = res["distances"][0][idx]
64
- score = 1 - dist # Convert L2 → similarity
65
- hits.append(
66
- VectorHit(
67
- id=res["ids"][0][idx],
68
- content=res["documents"][0][idx],
69
- metadata=res["metadatas"][0][idx],
70
- score=score,
71
- )
72
- )
73
- return hits
@@ -1,97 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from pathlib import Path
4
- from typing import Any
5
-
6
- import numpy as np
7
-
8
- from .vector_base import VectorAdapter, VectorHit
9
-
10
-
11
- class FAISSAdapter(VectorAdapter):
12
- """Simple on-disk FAISS vector store.
13
-
14
- Index is stored in `index_path` (flat L2). Metadata & content are kept in a
15
- parallel JSONL file for quick prototyping; not optimised for massive scale.
16
- """
17
-
18
- def __init__(self, *, index_path: str = "./faiss.index") -> None:
19
- super().__init__()
20
- try:
21
- import faiss # type: ignore
22
- except ImportError as e:
23
- raise RuntimeError("faiss library is required for FAISSAdapter") from e
24
-
25
- self._faiss = __import__("faiss") # lazy alias
26
- self._index_path = Path(index_path)
27
- self._meta_path = self._index_path.with_suffix(".meta.jsonl")
28
- self._metadata: dict[int, dict[str, Any]] = {}
29
-
30
- if self._index_path.exists():
31
- self._index = self._faiss.read_index(str(self._index_path))
32
- # Load metadata
33
- if self._meta_path.exists():
34
- import json
35
-
36
- with open(self._meta_path) as f:
37
- for line_no, line in enumerate(f):
38
- self._metadata[line_no] = json.loads(line)
39
- else:
40
- self._index = None # created on first add
41
-
42
- # -----------------------------
43
- def _ensure_index(self, dim: int):
44
- if self._index is None:
45
- self._index = self._faiss.IndexFlatL2(dim)
46
-
47
- def add(
48
- self,
49
- *,
50
- id: str,
51
- content: str,
52
- embedding: list[float],
53
- metadata: dict[str, Any] | None = None,
54
- ) -> None:
55
- import json
56
-
57
- vec = np.array([embedding], dtype="float32")
58
- self._ensure_index(vec.shape[1])
59
- self._index.add(vec)
60
- # Row id is current size - 1
61
- row_id = self._index.ntotal - 1
62
- self._metadata[row_id] = {
63
- "id": id,
64
- "content": content,
65
- "metadata": metadata or {},
66
- }
67
- # Append metadata to file for persistence
68
- self._meta_path.parent.mkdir(parents=True, exist_ok=True)
69
- with open(self._meta_path, "a") as f:
70
- f.write(json.dumps(self._metadata[row_id]) + "\n")
71
- # Persist index lazily every 100 inserts
72
- if row_id % 100 == 0:
73
- self._faiss.write_index(self._index, str(self._index_path))
74
-
75
- def query(self, *, embedding: list[float], k: int) -> list[VectorHit]:
76
- if self._index is None or self._index.ntotal == 0:
77
- return []
78
- vec = np.array([embedding], dtype="float32")
79
- distances, indices = self._index.search(vec, k)
80
- hits: list[VectorHit] = []
81
- for dist, idx in zip(distances[0], indices[0]):
82
- if idx == -1:
83
- continue
84
- meta = self._metadata.get(idx, {})
85
- hits.append(
86
- VectorHit(
87
- id=meta.get("id", str(idx)),
88
- content=meta.get("content"),
89
- metadata=meta.get("metadata", {}),
90
- score=1 - float(dist), # approximate similarity
91
- )
92
- )
93
- return hits
94
-
95
- def close(self) -> None:
96
- if self._index is not None:
97
- self._faiss.write_index(self._index, str(self._index_path))
@@ -1,51 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import Any
4
-
5
- from .vector_base import VectorAdapter, VectorHit
6
-
7
-
8
- class PineconeAdapter(VectorAdapter):
9
- """Adapter for Pinecone vector DB."""
10
-
11
- def __init__(
12
- self,
13
- *,
14
- api_key: str,
15
- environment: str,
16
- index: str,
17
- ) -> None:
18
- super().__init__()
19
- try:
20
- import pinecone
21
- except ImportError as e:
22
- raise RuntimeError("pinecone-client is required for PineconeAdapter") from e
23
-
24
- pinecone.init(api_key=api_key, environment=environment)
25
- self._index = pinecone.Index(index)
26
-
27
- # -------------------------------
28
- def add(
29
- self,
30
- *,
31
- id: str,
32
- content: str,
33
- embedding: list[float],
34
- metadata: dict[str, Any] | None = None,
35
- ) -> None:
36
- meta = {"content": content, **(metadata or {})}
37
- self._index.upsert(vectors=[(id, embedding, meta)])
38
-
39
- def query(self, *, embedding: list[float], k: int) -> list[VectorHit]:
40
- res = self._index.query(vector=embedding, top_k=k, include_values=False, include_metadata=True)
41
- hits: list[VectorHit] = []
42
- for match in res.matches or []:
43
- hits.append(
44
- VectorHit(
45
- id=match.id,
46
- content=match.metadata.get("content") if match.metadata else None,
47
- metadata={k: v for k, v in (match.metadata or {}).items() if k != "content"},
48
- score=match.score,
49
- )
50
- )
51
- return hits
@@ -1,47 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from abc import ABC, abstractmethod
4
- from dataclasses import dataclass
5
- from typing import Any
6
-
7
-
8
- @dataclass
9
- class VectorHit:
10
- """Result object returned from vector search."""
11
-
12
- id: str
13
- content: str | None
14
- metadata: dict[str, Any]
15
- score: float # similarity score (higher = more similar)
16
-
17
-
18
- class VectorAdapter(ABC):
19
- """Protocol for vector-store adapters."""
20
-
21
- def __init__(self, **kwargs):
22
- """Store-specific kwargs are passed through subclass constructor."""
23
- super().__init__()
24
-
25
- # ----------------------
26
- # CRUD operations
27
- # ----------------------
28
- @abstractmethod
29
- def add(
30
- self,
31
- *,
32
- id: str,
33
- content: str,
34
- embedding: list[float],
35
- metadata: dict[str, Any] | None = None,
36
- ) -> None: # pragma: no cover – interface
37
- """Insert or upsert a single document."""
38
-
39
- @abstractmethod
40
- def query(
41
- self, *, embedding: list[float], k: int
42
- ) -> list[VectorHit]: # pragma: no cover – interface
43
- """Return top-k most similar hits."""
44
-
45
- def close(self) -> None: # Optional override
46
- """Free resources / flush buffers."""
47
- return
@@ -1,140 +0,0 @@
1
- # Flock v0.3 - Hummingbird
2
-
3
- We're excited to announce Flock v0.3, codenamed **"Hummingbird"**! This release brings a fundamental redesign of Flock's core architecture, introducing **unprecedented modularity and flexibility** to AI agent development.
4
-
5
- Modules and evaluators were the last missing pieces to fully modularize Flock.
6
-
7
- Worried this might lead to hard-to-manage boilerplate? No problem! **FlockFactory** provides pre-configured agents, making interaction with modules and evaluators **purely optional**, so you can focus on **what** the agent does, not **how** it works.
8
-
9
- But if you want **total control** over your agent, feel free to dive into these new additions. They unlock **crazy new possibilities** in Flock!
10
-
11
- Like a hummingbird, modules are small and nimble code packages. Put enough of them inside a flock, and... well, even we don't know what happens next.
12
-
13
- ### Other notable additions:
14
- - **CLI Interface** – Flock now has a command-line interface
15
- - **REST API Server** – Expose your agents via HTTP endpoints
16
- - **Color-coded logging** – Better debugging experience
17
- - **New examples**
18
- - ...and much more!
19
-
20
- ---
21
-
22
- ## Core Changes
23
-
24
- ### New Module System
25
- - **Pluggable modules system á la FastAPI**
26
- - **Easy-to-implement** module interface
27
- - **Configuration system** for clean parameter management
28
-
29
- ### New Evaluator System
30
- - **Pluggable evaluation system**
31
- - Built-in support for multiple evaluation strategies:
32
- - **Declarative Evaluator** – The default way Flock is designed
33
- - **Natural Language Evaluator** – Use "classic" prompting
34
- - **Zep Evaluator** – Add or query data
35
- - **Easily extendable** with custom evaluation approaches
36
-
37
- ### New Router System
38
- - **Pluggable router system** for dynamic agent chaining
39
- - Built-in support for multiple routing strategies:
40
- - **Default Router** – Uses the agent's hand_off property
41
- - **LLM Router** – Uses an LLM to determine the next agent
42
- - **Agent Router** – Uses a dedicated agent to make routing decisions
43
- - **Easily extendable** with custom routing approaches
44
-
45
- ### REST API Server
46
- - **FastAPI-based** HTTP server for exposing agents
47
- - **Synchronous and asynchronous** execution modes
48
- - **Run status tracking** with unique run IDs
49
- - **Agent discovery** endpoint to list available agents
50
- - **Simple integration** with existing Flock instances
51
-
52
- ### Auto-Handoff Feature
53
- - **Dynamic agent chaining** without explicit handoff definitions
54
- - **LLM-powered routing** to determine the best next agent
55
- - **Emergent behavior** in multi-agent systems
56
- - **Simple to use** with the "auto_handoff" string value
57
-
58
- ### New high end examples like the Repository Analyzer
59
- - **Automatic documentation generation** for any codebase
60
- - **Rule-based version** using custom evaluators
61
- - **LLM-based version** for more flexible and powerful analysis
62
- - **Comprehensive documentation** including overview, architecture, components, and more
63
-
64
- ### FlockFactory
65
- - Provides **pre-configured agents**, so you don't have to manage modules and evaluators manually!
66
-
67
- ### Built-in Modules
68
- - **Memory Module** – Persistent agent memory
69
- - **Output Module** – Advanced output formatting and storage
70
- - **Metrics Module** – Detailed performance tracking
71
- - **Zep Module** – Uses Zep for Knowledge Graphs
72
- - **Azure Search Tools** – Integration with Azure AI Search for vector search and document retrieval
73
-
74
- ---
75
-
76
- ## Breaking Changes
77
- - **Removed callback handlers** from `FlockAgent` in favor of modules
78
- - **Changed agent initialization** pattern to support evaluators
79
- - **Simplified module lifecycle hooks** (removed redundant pre/post hooks)
80
-
81
- ---
82
-
83
- ## Small Changes & Fixes
84
-
85
- ### Theme Designer
86
-
87
- ### Color Coded Logging
88
-
89
- ---
90
-
91
- ## Code Rundown
92
-
93
- ### Old way:
94
- ```python
95
- agent = FlockAgent(
96
- name="bloggy",
97
- input="blog_idea",
98
- output="funny_blog_title, blog_headers",
99
- )
100
- flock.add_agent(bloggy)
101
- ```
102
-
103
- ### New way:
104
- ```python
105
- bloggy = FlockFactory.create_default_agent(
106
- name="bloggy",
107
- input="blog_idea",
108
- output="funny_blog_title, blog_headers",
109
- )
110
- flock.add_agent(bloggy)
111
- ```
112
-
113
- See? **Basically nothing changed!** Just more modular and flexible.
114
-
115
- ---
116
-
117
- ## What's Next?
118
-
119
- ### Coming in v0.3 updates:
120
- - **More modules** (built-in RAG coming soon!)
121
- - **More evaluators**
122
- - **CLI management tool improvements**
123
- - **Finishing documentation**
124
-
125
- ### Looking ahead to v0.4 – *Magpie*:
126
- - **Flock WebUI** – Real-time monitoring, no-code agent creation & management
127
- - **Seamless deployment** – Kubernetes, Docker, and enterprise-ready solutions
128
-
129
- ---
130
-
131
- ## Installation
132
-
133
- ```bash
134
- pip install flock-core>=0.3.0
135
- ```
136
-
137
- ---
138
-
139
- **Full documentation**: [https://whiteducksoftware.github.io/flock](https://whiteducksoftware.github.io/flock)
140
- **GitHub**: [https://github.com/whiteducksoftware/flock](https://github.com/whiteducksoftware/flock)
flock/cli/config.py DELETED
@@ -1,8 +0,0 @@
1
- def init_config_file():
2
- """Initialize the config file."""
3
- pass
4
-
5
-
6
- def load_config_file():
7
- """Load the config file."""
8
- pass
flock/cli/constants.py DELETED
@@ -1,36 +0,0 @@
1
- """Constants for the CLI module."""
2
-
3
- CLI_CFG_FILE = ".env"
4
- CLI_DEFAULT_ENV_VARS = {
5
- "FLICK_API_KEY": "flock-api-key",
6
- "FLICK_API_URL": "https://api.flock.com",
7
- "FLICK_API_VERSION": "v1",
8
- "FLICK_API_KEY": "flock-api-key",
9
- "FLICK_API_URL": "https://api.flock.com",
10
- "FLICK_API_VERSION": "v1",
11
- }
12
- CLI_DEFAULT_FOLDER = ".flock"
13
-
14
- CLI_CREATE_AGENT = "Create an agent"
15
- CLI_CREATE_FLOCK = "Create a new Flock"
16
- CLI_LOAD_AGENT = "Load an agent"
17
- CLI_LOAD_FLOCK = "Load a *.flock file"
18
- CLI_THEME_BUILDER = "Theme builder"
19
- CLI_LOAD_EXAMPLE = "Load a example"
20
- CLI_SETTINGS = "Settings"
21
- CLI_NOTES = "'Magpie' release notes"
22
- CLI_START_WEB_SERVER = "Start web server"
23
- CLI_REGISTRY_MANAGEMENT = "Registry management"
24
- CLI_EXIT = "Exit"
25
- CLI_CHOICES = [
26
- CLI_CREATE_AGENT,
27
- CLI_CREATE_FLOCK,
28
- CLI_LOAD_AGENT,
29
- CLI_LOAD_FLOCK,
30
- CLI_LOAD_EXAMPLE,
31
- CLI_THEME_BUILDER,
32
- CLI_REGISTRY_MANAGEMENT,
33
- CLI_SETTINGS,
34
- CLI_START_WEB_SERVER,
35
- CLI_EXIT,
36
- ]
flock/cli/create_agent.py DELETED
@@ -1 +0,0 @@
1
- # TODO