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,6 +1,6 @@
1
1
  """Handler functions."""
2
2
 
3
- from collections.abc import Callable
3
+ from typing import Any
4
4
 
5
5
  from mcp import CreateMessageRequest
6
6
  from mcp.client.session import ClientResponse
@@ -22,8 +22,7 @@ from mcp.types import (
22
22
  ToolListChangedNotification,
23
23
  )
24
24
 
25
- from flock.core.logging.logging import FlockLogger
26
- from flock.core.mcp.mcp_client import Any
25
+ from flock.logging.logging import FlockLogger
27
26
 
28
27
 
29
28
  async def handle_incoming_exception(
@@ -50,7 +49,7 @@ async def handle_progress_notification(
50
49
  progress = params.progress
51
50
  total = params.total or "Unknown"
52
51
  progress_token = params.progressToken
53
- metadata = params.meta or {}
52
+ metadata: dict[str, Any] = params.meta or {} # type: ignore[assignment]
54
53
 
55
54
  message = f"PROGRESS_NOTIFICATION: Server '{server_name}' reports Progress: {progress}/{total}. (Token: {progress_token}) (Meta Data: {metadata})"
56
55
 
@@ -66,7 +65,7 @@ async def handle_cancellation_notification(
66
65
  params = n.params
67
66
  request_id_to_cancel = params.requestId
68
67
  reason = params.reason or "no reason given"
69
- metadata = params.meta or {}
68
+ metadata: dict[str, Any] = params.meta or {} # type: ignore[assignment]
70
69
 
71
70
  message = f"CANCELLATION_REQUEST: Server '{server_name}' requests to cancel request with id: {request_id_to_cancel}. Reason: {reason}. (Metadata: {metadata})"
72
71
 
@@ -83,7 +82,7 @@ async def handle_resource_update_notification(
83
82
  # its resource_contents_cache
84
83
 
85
84
  params = n.params
86
- metadata = params.meta or {}
85
+ metadata: dict[str, Any] = params.meta or {} # type: ignore[assignment]
87
86
  uri = params.uri
88
87
 
89
88
  message = f"RESOURCE_UPDATE: Server '{associated_client.config.name}' reports change on resoure at: {uri}. (Meta Data: {metadata})"
@@ -102,8 +101,8 @@ async def handle_resource_list_changed_notification(
102
101
  # This also means that the associated client needs to invalidate
103
102
  # its resource_contents_cache
104
103
 
105
- params = n.params or {}
106
- metadata = params.meta or {}
104
+ params: Any = n.params or {}
105
+ metadata: dict[str, Any] = params.meta or {}
107
106
 
108
107
  message = f"TOOLS_LIST_CHANGED: Server '{associated_client.config.name}' reports a change in their tools list: {metadata}. Resetting Tools Cache for associated clients."
109
108
 
@@ -117,8 +116,8 @@ async def handle_tool_list_changed_notification(
117
116
  associated_client: Any,
118
117
  ) -> None:
119
118
  """Handle an incoming ToolListChangedNotification."""
120
- params = n.params or {}
121
- metadata = params.meta or {}
119
+ params: Any = n.params or {}
120
+ metadata: dict[str, Any] = params.meta or {}
122
121
 
123
122
  message = f"TOOLS_LIST_CHANGED: Server '{associated_client.config.name}' reports a change in their tools list: {metadata}. Resetting Tools Cache for associated clients."
124
123
 
@@ -126,7 +125,7 @@ async def handle_tool_list_changed_notification(
126
125
  await associated_client.invalidate_tool_cache()
127
126
 
128
127
 
129
- _SERVER_NOTIFICATION_MAP: dict[type[ServerNotification], Callable] = {
128
+ _SERVER_NOTIFICATION_MAP: Any = {
130
129
  ResourceListChangedNotification: handle_resource_list_changed_notification,
131
130
  ResourceUpdatedNotification: handle_resource_update_notification,
132
131
  LoggingMessageNotification: lambda n, log, client: handle_logging_message(
@@ -159,7 +158,7 @@ async def handle_logging_message(
159
158
  level = params.level
160
159
  method = logger.debug
161
160
  logger_name = params.logger if params.logger else "unknown_remote_logger"
162
- metadata = params.meta or {}
161
+ metadata: dict[str, Any] = params.meta or {} # type: ignore[assignment]
163
162
 
164
163
  str_level = "DEBUG"
165
164
  prefix = f"Message from Remote MCP Logger '{logger_name}' for server '{server_name}': "
@@ -206,7 +205,6 @@ async def handle_incoming_request(
206
205
  case CreateMessageRequest(params=req.request.root.params):
207
206
  with req:
208
207
  # invoke user's sampling callback
209
- # type: ignore
210
208
  response = await associated_client.sampling_callback(
211
209
  ctx, req.request.root.params
212
210
  )
@@ -214,7 +212,6 @@ async def handle_incoming_request(
214
212
  await req.respond(client_resp)
215
213
  case ListRootsRequest():
216
214
  with req:
217
- # type: ignore
218
215
  response = await associated_client.list_roots_callback(ctx)
219
216
  client_resp = ClientResponse.validate_python(response)
220
217
  await req.respond(client_resp)
@@ -223,15 +220,13 @@ async def handle_incoming_request(
223
220
  return
224
221
  except Exception as e:
225
222
  # 1) Log the error and stacktrace
226
- logger_to_use.error(
223
+ logger_to_use.exception(
227
224
  f"Error in fallback handle_incoming_request (id={req.request_id}): {e}"
228
225
  )
229
226
  # 2) If the request wasn't already completed, send a JSON-RPC error back
230
227
  if not getattr(req, "_completed", False):
231
228
  with req:
232
- err = ErrorData(
233
- code=INTERNAL_ERROR, message=f"Client-side error: {e}"
234
- )
229
+ err = ErrorData(code=INTERNAL_ERROR, message=f"Client-side error: {e}")
235
230
  client_err = ClientResponse.validate_python(err)
236
231
  await req.respond(client_err)
237
232
  return
@@ -15,32 +15,53 @@ from anyio.streams.memory import (
15
15
  from mcp import (
16
16
  ClientSession,
17
17
  CreateMessageResult,
18
+ )
19
+ from mcp import (
18
20
  StdioServerParameters as _MCPStdioServerParameters,
19
21
  )
20
22
  from mcp.shared.context import RequestContext
21
23
  from mcp.shared.session import RequestResponder
22
24
  from mcp.types import (
23
25
  CancelledNotification as _MCPCancelledNotification,
26
+ )
27
+ from mcp.types import (
24
28
  ClientResult,
25
29
  CreateMessageRequestParams,
26
30
  ErrorData,
27
31
  JSONRPCMessage,
28
32
  ListRootsResult,
33
+ ServerRequest,
34
+ )
35
+ from mcp.types import (
29
36
  LoggingMessageNotification as _MCPLoggingMessageNotification,
37
+ )
38
+ from mcp.types import (
30
39
  LoggingMessageNotificationParams as _MCPLoggingMessageNotificationParams,
40
+ )
41
+ from mcp.types import (
31
42
  ProgressNotification as _MCPProgressNotification,
43
+ )
44
+ from mcp.types import (
32
45
  PromptListChangedNotification as _MCPPromptListChangedNotification,
46
+ )
47
+ from mcp.types import (
33
48
  ResourceListChangedNotification as _MCPResourceListChangedNotification,
49
+ )
50
+ from mcp.types import (
34
51
  ResourceUpdatedNotification as _MCPResourceUpdateNotification,
52
+ )
53
+ from mcp.types import (
35
54
  Root as _MCPRoot,
55
+ )
56
+ from mcp.types import (
36
57
  ServerNotification as _MCPServerNotification,
37
- ServerRequest,
58
+ )
59
+ from mcp.types import (
38
60
  ToolListChangedNotification as _MCPToolListChangedNotification,
39
61
  )
40
62
  from pydantic import AnyUrl, BaseModel, ConfigDict, Field
41
63
 
42
- from flock.core.mcp.util.helpers import get_default_env
43
- from flock.core.serialization.serializable import Serializable
64
+ from flock.mcp.util.helpers import get_default_env
44
65
 
45
66
 
46
67
  class ServerNotification(_MCPServerNotification):
@@ -75,9 +96,7 @@ class PromptListChangedNotification(_MCPPromptListChangedNotification):
75
96
  """A notification message sent by the server side informing a client about a change in the list of offered Prompts."""
76
97
 
77
98
 
78
- class FlockLoggingMessageNotificationParams(
79
- _MCPLoggingMessageNotificationParams
80
- ):
99
+ class FlockLoggingMessageNotificationParams(_MCPLoggingMessageNotificationParams):
81
100
  """Parameters contained within a Logging Message Notification."""
82
101
 
83
102
 
@@ -85,7 +104,7 @@ class MCPRoot(_MCPRoot):
85
104
  """Wrapper for mcp.types.Root."""
86
105
 
87
106
 
88
- class ServerParameters(BaseModel, Serializable):
107
+ class ServerParameters(BaseModel):
89
108
  """Base Type for server parameters."""
90
109
 
91
110
  model_config = ConfigDict(
@@ -93,17 +112,12 @@ class ServerParameters(BaseModel, Serializable):
93
112
  )
94
113
 
95
114
  transport_type: Literal["stdio", "websockets", "sse", "streamable_http"] = Field(
96
- ...,
97
- description="which type of transport these connection params are used for."
115
+ ..., description="which type of transport these connection params are used for."
98
116
  )
99
117
 
100
118
  def to_dict(self, path_type: str = "relative"):
101
119
  """Serialize."""
102
- return self.model_dump(
103
- exclude_defaults=False,
104
- exclude_none=True,
105
- mode="json"
106
- )
120
+ return self.model_dump(exclude_defaults=False, exclude_none=True, mode="json")
107
121
 
108
122
  @classmethod
109
123
  def from_dict(cls, data: dict[str, Any]):
@@ -114,10 +128,7 @@ class ServerParameters(BaseModel, Serializable):
114
128
  class StdioServerParameters(_MCPStdioServerParameters, ServerParameters):
115
129
  """Base Type for Stdio Server parameters."""
116
130
 
117
- transport_type: Literal["stdio"] = Field(
118
- default="stdio",
119
- description="Use stdio params."
120
- )
131
+ transport_type: Literal["stdio"] = Field(default="stdio", description="Use stdio params.")
121
132
 
122
133
  env: dict[str, str] | None = Field(
123
134
  default_factory=get_default_env,
@@ -129,28 +140,23 @@ class WebsocketServerParameters(ServerParameters):
129
140
  """Base Type for Websocket Server params."""
130
141
 
131
142
  transport_type: Literal["websockets"] = Field(
132
- default="websockets",
133
- description="Use websocket params."
143
+ default="websockets", description="Use websocket params."
134
144
  )
135
145
 
136
146
  url: str | AnyUrl = Field(..., description="Url the server listens at.")
137
147
 
148
+
138
149
  class StreamableHttpServerParameters(ServerParameters):
139
150
  """Base Type for StreamableHttp params."""
140
151
 
141
152
  transport_type: Literal["streamable_http"] = Field(
142
- default="streamable_http",
143
- description="Use streamable http params."
153
+ default="streamable_http", description="Use streamable http params."
144
154
  )
145
155
 
146
- url: str | AnyUrl = Field(
147
- ...,
148
- description="The url the server listens at."
149
- )
156
+ url: str | AnyUrl = Field(..., description="The url the server listens at.")
150
157
 
151
158
  headers: dict[str, Any] | None = Field(
152
- default=None,
153
- description="Additional headers to pass to the client."
159
+ default=None, description="Additional headers to pass to the client."
154
160
  )
155
161
 
156
162
  timeout: float | int = Field(
@@ -159,19 +165,13 @@ class StreamableHttpServerParameters(ServerParameters):
159
165
  )
160
166
 
161
167
  sse_read_timeout: float | int = Field(
162
- default=60*5,
163
- description="How long the client will wait before disconnecting from the server."
168
+ default=60 * 5,
169
+ description="How long the client will wait before disconnecting from the server.",
164
170
  )
165
171
 
166
- terminate_on_close: bool = Field(
167
- default=True,
168
- description="Terminate connection on close"
169
- )
172
+ terminate_on_close: bool = Field(default=True, description="Terminate connection on close")
170
173
 
171
- auth: httpx.Auth | None = Field(
172
- default=None,
173
- description="Httpx Auth Scheme"
174
- )
174
+ auth: httpx.Auth | None = Field(default=None, description="Httpx Auth Scheme")
175
175
 
176
176
  @classmethod
177
177
  def from_dict(cls, data: dict[str, Any]):
@@ -188,7 +188,7 @@ class StreamableHttpServerParameters(ServerParameters):
188
188
  mod = importlib.import_module(impl["module_path"])
189
189
  real_cls = getattr(mod, impl["classname"])
190
190
  if params:
191
- auth_obj = real_cls(**{k: v for k, v in params.items()})
191
+ auth_obj = real_cls(**dict(params.items()))
192
192
  else:
193
193
  # assume that the implementation handles it.
194
194
  auth_obj = real_cls()
@@ -196,9 +196,9 @@ class StreamableHttpServerParameters(ServerParameters):
196
196
  raise ValueError("No concrete implementation for auth provided.")
197
197
 
198
198
  data["auth"] = auth_obj
199
- return cls(**{k: v for k, v in data.items()})
199
+ return cls(**dict(data.items()))
200
200
 
201
- def to_dict(self, path_type = "relative"):
201
+ def to_dict(self, path_type="relative"):
202
202
  """Serialize the object."""
203
203
  exclude = ["auth"]
204
204
 
@@ -224,24 +224,24 @@ class StreamableHttpServerParameters(ServerParameters):
224
224
  except Exception:
225
225
  params = None
226
226
 
227
- data["auth"] = {
228
- "implementation": {
229
- "class_name": type(self.auth).__name__,
230
- "module_path": type(self.auth).__module__,
231
- "file_path": file_path,
232
- },
233
- "params": params,
234
- }
227
+ data["auth"] = {
228
+ "implementation": {
229
+ "class_name": type(self.auth).__name__,
230
+ "module_path": type(self.auth).__module__,
231
+ "file_path": file_path,
232
+ },
233
+ "params": params,
234
+ }
235
+ else:
236
+ data["auth"] = None
235
237
 
236
238
  return data
237
239
 
240
+
238
241
  class SseServerParameters(ServerParameters):
239
242
  """Base Type for SSE Server params."""
240
243
 
241
- transport_type: Literal["sse"] = Field(
242
- default="sse",
243
- description="Use sse server params."
244
- )
244
+ transport_type: Literal["sse"] = Field(default="sse", description="Use sse server params.")
245
245
 
246
246
  url: str | AnyUrl = Field(..., description="The url the server listens at.")
247
247
 
@@ -256,10 +256,7 @@ class SseServerParameters(ServerParameters):
256
256
  description="How long the client will wait before disconnecting from the server.",
257
257
  )
258
258
 
259
- auth: httpx.Auth | None = Field(
260
- default=None,
261
- description="Httpx Auth Scheme."
262
- )
259
+ auth: httpx.Auth | None = Field(default=None, description="Httpx Auth Scheme.")
263
260
 
264
261
  @classmethod
265
262
  def from_dict(cls, data: dict[str, Any]):
@@ -267,7 +264,7 @@ class SseServerParameters(ServerParameters):
267
264
  # find and import the concrete implementation for
268
265
  # the auth object.
269
266
  auth_obj: httpx.Auth | None = None
270
- auth_impl = data.pop("auth", None) # get the specs for the auth class
267
+ auth_impl = data.pop("auth", None) # get the specs for the auth class
271
268
  if auth_impl:
272
269
  # find the concrete implementation
273
270
  impl = auth_impl.pop("implementation", None)
@@ -276,7 +273,7 @@ class SseServerParameters(ServerParameters):
276
273
  mod = importlib.import_module(impl["module_path"])
277
274
  real_cls = getattr(mod, impl["class_name"])
278
275
  if params:
279
- auth_obj = real_cls(**{k: v for k, v in params.items()})
276
+ auth_obj = real_cls(**dict(params.items()))
280
277
  else:
281
278
  # assume that implementation handles it
282
279
  auth_obj = real_cls()
@@ -284,9 +281,9 @@ class SseServerParameters(ServerParameters):
284
281
  raise ValueError("No concrete implementation for auth provided.")
285
282
 
286
283
  data["auth"] = auth_obj
287
- return cls(**{k: v for k, v in data.items()})
284
+ return cls(**dict(data.items()))
288
285
 
289
- def to_dict(self, path_type = "relative"):
286
+ def to_dict(self, path_type="relative"):
290
287
  """Serialize the object."""
291
288
  exclude = ["auth"]
292
289
 
@@ -312,17 +309,20 @@ class SseServerParameters(ServerParameters):
312
309
  except Exception:
313
310
  params = None
314
311
 
315
- data["auth"] = {
316
- "implementation": {
317
- "class_name": type(self.auth).__name__,
318
- "module_path": type(self.auth).__module__,
319
- "file_path": file_path,
320
- },
321
- "params": params,
322
- }
312
+ data["auth"] = {
313
+ "implementation": {
314
+ "class_name": type(self.auth).__name__,
315
+ "module_path": type(self.auth).__module__,
316
+ "file_path": file_path,
317
+ },
318
+ "params": params,
319
+ }
320
+ else:
321
+ data["auth"] = None
323
322
 
324
323
  return data
325
324
 
325
+
326
326
  MCPCLientInitFunction = Callable[
327
327
  ...,
328
328
  AbstractAsyncContextManager[
@@ -351,10 +351,6 @@ FlockLoggingMCPCallback = Callable[
351
351
  ]
352
352
 
353
353
  FlockMessageHandlerMCPCallback = Callable[
354
- [
355
- RequestResponder[ServerRequest, ClientResult]
356
- | ServerNotification
357
- | Exception
358
- ],
354
+ [RequestResponder[ServerRequest, ClientResult] | ServerNotification | Exception],
359
355
  Awaitable[None],
360
356
  ]
@@ -18,6 +18,6 @@ def get_default_env() -> dict[str, str]:
18
18
  def cache_key_generator(agent_id: str, run_id: str, *args, **kwargs) -> str:
19
19
  """Helper function to generate cache keys for Flock MCP caches."""
20
20
  args_digest = hashlib.md5(
21
- json.dumps(kwargs, sort_keys=True).encode()
21
+ json.dumps(kwargs, sort_keys=True).encode(), usedforsecurity=False
22
22
  ).hexdigest()
23
23
  return f"{agent_id}:{run_id}:{args_digest}"