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