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.
- flock/__init__.py +12 -217
- flock/agent.py +1079 -0
- flock/api/themes.py +71 -0
- flock/artifacts.py +86 -0
- flock/cli.py +147 -0
- flock/components.py +189 -0
- flock/dashboard/__init__.py +30 -0
- flock/dashboard/collector.py +559 -0
- flock/dashboard/events.py +188 -0
- flock/dashboard/graph_builder.py +563 -0
- flock/dashboard/launcher.py +235 -0
- flock/dashboard/models/graph.py +156 -0
- flock/dashboard/service.py +991 -0
- flock/dashboard/static_v2/assets/index-DFRnI_mt.js +111 -0
- flock/dashboard/static_v2/assets/index-fPLNdmp1.css +1 -0
- flock/dashboard/static_v2/index.html +13 -0
- flock/dashboard/websocket.py +246 -0
- flock/engines/__init__.py +6 -0
- flock/engines/dspy_engine.py +932 -0
- flock/examples.py +131 -0
- flock/frontend/README.md +778 -0
- flock/frontend/docs/DESIGN_SYSTEM.md +1980 -0
- flock/frontend/index.html +12 -0
- flock/frontend/package-lock.json +4337 -0
- flock/frontend/package.json +48 -0
- flock/frontend/src/App.tsx +139 -0
- flock/frontend/src/__tests__/integration/graph-snapshot.test.tsx +647 -0
- flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +699 -0
- flock/frontend/src/components/common/BuildInfo.tsx +39 -0
- flock/frontend/src/components/common/EmptyState.module.css +115 -0
- flock/frontend/src/components/common/EmptyState.tsx +128 -0
- flock/frontend/src/components/common/ErrorBoundary.module.css +169 -0
- flock/frontend/src/components/common/ErrorBoundary.tsx +118 -0
- flock/frontend/src/components/common/KeyboardShortcutsDialog.css +251 -0
- flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +151 -0
- flock/frontend/src/components/common/LoadingSpinner.module.css +97 -0
- flock/frontend/src/components/common/LoadingSpinner.tsx +29 -0
- flock/frontend/src/components/controls/PublishControl.css +547 -0
- flock/frontend/src/components/controls/PublishControl.test.tsx +543 -0
- flock/frontend/src/components/controls/PublishControl.tsx +432 -0
- flock/frontend/src/components/details/DetailWindowContainer.tsx +58 -0
- flock/frontend/src/components/details/LiveOutputTab.test.tsx +792 -0
- flock/frontend/src/components/details/LiveOutputTab.tsx +220 -0
- flock/frontend/src/components/details/MessageDetailWindow.tsx +439 -0
- flock/frontend/src/components/details/MessageHistoryTab.tsx +374 -0
- flock/frontend/src/components/details/NodeDetailWindow.test.tsx +501 -0
- flock/frontend/src/components/details/NodeDetailWindow.tsx +218 -0
- flock/frontend/src/components/details/RunStatusTab.tsx +348 -0
- flock/frontend/src/components/details/tabs.test.tsx +1015 -0
- flock/frontend/src/components/filters/ArtifactTypeFilter.tsx +21 -0
- flock/frontend/src/components/filters/CorrelationIDFilter.module.css +102 -0
- flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +197 -0
- flock/frontend/src/components/filters/CorrelationIDFilter.tsx +121 -0
- flock/frontend/src/components/filters/FilterFlyout.module.css +104 -0
- flock/frontend/src/components/filters/FilterFlyout.tsx +80 -0
- flock/frontend/src/components/filters/FilterPills.module.css +220 -0
- flock/frontend/src/components/filters/FilterPills.test.tsx +189 -0
- flock/frontend/src/components/filters/FilterPills.tsx +143 -0
- flock/frontend/src/components/filters/ProducerFilter.tsx +21 -0
- flock/frontend/src/components/filters/SavedFiltersControl.module.css +60 -0
- flock/frontend/src/components/filters/SavedFiltersControl.test.tsx +158 -0
- flock/frontend/src/components/filters/SavedFiltersControl.tsx +159 -0
- flock/frontend/src/components/filters/TagFilter.tsx +21 -0
- flock/frontend/src/components/filters/TimeRangeFilter.module.css +115 -0
- flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +154 -0
- flock/frontend/src/components/filters/TimeRangeFilter.tsx +110 -0
- flock/frontend/src/components/filters/VisibilityFilter.tsx +21 -0
- flock/frontend/src/components/graph/AgentNode.test.tsx +77 -0
- flock/frontend/src/components/graph/AgentNode.tsx +324 -0
- flock/frontend/src/components/graph/GraphCanvas.tsx +613 -0
- flock/frontend/src/components/graph/MessageFlowEdge.tsx +128 -0
- flock/frontend/src/components/graph/MessageNode.test.tsx +64 -0
- flock/frontend/src/components/graph/MessageNode.tsx +129 -0
- flock/frontend/src/components/graph/MiniMap.tsx +47 -0
- flock/frontend/src/components/graph/TransformEdge.tsx +123 -0
- flock/frontend/src/components/layout/DashboardLayout.css +420 -0
- flock/frontend/src/components/layout/DashboardLayout.tsx +287 -0
- flock/frontend/src/components/layout/Header.module.css +88 -0
- flock/frontend/src/components/layout/Header.tsx +52 -0
- flock/frontend/src/components/modules/HistoricalArtifactsModule.module.css +288 -0
- flock/frontend/src/components/modules/HistoricalArtifactsModule.tsx +450 -0
- flock/frontend/src/components/modules/HistoricalArtifactsModuleWrapper.tsx +13 -0
- flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +140 -0
- flock/frontend/src/components/modules/ModuleRegistry.test.ts +333 -0
- flock/frontend/src/components/modules/ModuleRegistry.ts +93 -0
- flock/frontend/src/components/modules/ModuleWindow.tsx +223 -0
- flock/frontend/src/components/modules/TraceModuleJaeger.tsx +1971 -0
- flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +13 -0
- flock/frontend/src/components/modules/registerModules.ts +29 -0
- flock/frontend/src/components/settings/AdvancedSettings.tsx +175 -0
- flock/frontend/src/components/settings/AppearanceSettings.tsx +185 -0
- flock/frontend/src/components/settings/GraphSettings.tsx +110 -0
- flock/frontend/src/components/settings/MultiSelect.tsx +235 -0
- flock/frontend/src/components/settings/SettingsPanel.css +327 -0
- flock/frontend/src/components/settings/SettingsPanel.tsx +131 -0
- flock/frontend/src/components/settings/ThemeSelector.tsx +298 -0
- flock/frontend/src/components/settings/TracingSettings.tsx +404 -0
- flock/frontend/src/hooks/useKeyboardShortcuts.ts +148 -0
- flock/frontend/src/hooks/useModulePersistence.test.ts +442 -0
- flock/frontend/src/hooks/useModulePersistence.ts +154 -0
- flock/frontend/src/hooks/useModules.ts +157 -0
- flock/frontend/src/hooks/usePersistence.ts +141 -0
- flock/frontend/src/main.tsx +13 -0
- flock/frontend/src/services/api.ts +337 -0
- flock/frontend/src/services/graphService.test.ts +330 -0
- flock/frontend/src/services/graphService.ts +75 -0
- flock/frontend/src/services/indexeddb.test.ts +793 -0
- flock/frontend/src/services/indexeddb.ts +848 -0
- flock/frontend/src/services/layout.test.ts +437 -0
- flock/frontend/src/services/layout.ts +357 -0
- flock/frontend/src/services/themeApplicator.ts +140 -0
- flock/frontend/src/services/themeService.ts +77 -0
- flock/frontend/src/services/websocket.ts +650 -0
- flock/frontend/src/store/filterStore.test.ts +250 -0
- flock/frontend/src/store/filterStore.ts +272 -0
- flock/frontend/src/store/graphStore.test.ts +570 -0
- flock/frontend/src/store/graphStore.ts +462 -0
- flock/frontend/src/store/moduleStore.test.ts +253 -0
- flock/frontend/src/store/moduleStore.ts +75 -0
- flock/frontend/src/store/settingsStore.ts +188 -0
- flock/frontend/src/store/streamStore.ts +68 -0
- flock/frontend/src/store/uiStore.test.ts +54 -0
- flock/frontend/src/store/uiStore.ts +122 -0
- flock/frontend/src/store/wsStore.ts +34 -0
- flock/frontend/src/styles/index.css +15 -0
- flock/frontend/src/styles/scrollbar.css +47 -0
- flock/frontend/src/styles/variables.css +488 -0
- flock/frontend/src/test/setup.ts +1 -0
- flock/frontend/src/types/filters.ts +47 -0
- flock/frontend/src/types/graph.ts +95 -0
- flock/frontend/src/types/modules.ts +10 -0
- flock/frontend/src/types/theme.ts +55 -0
- flock/frontend/src/utils/artifacts.ts +24 -0
- flock/frontend/src/utils/mockData.ts +98 -0
- flock/frontend/src/utils/performance.ts +16 -0
- flock/frontend/src/vite-env.d.ts +17 -0
- flock/frontend/tsconfig.json +27 -0
- flock/frontend/tsconfig.node.json +11 -0
- flock/frontend/vite.config.ts +25 -0
- flock/frontend/vitest.config.ts +11 -0
- flock/{core/util → helper}/cli_helper.py +9 -5
- flock/{core/logging → logging}/__init__.py +2 -3
- flock/logging/auto_trace.py +159 -0
- flock/{core/logging → logging}/formatters/enum_builder.py +3 -4
- flock/{core/logging → logging}/formatters/theme_builder.py +19 -44
- flock/{core/logging → logging}/formatters/themed_formatter.py +69 -107
- flock/{core/logging → logging}/logging.py +78 -61
- flock/{core/logging → logging}/telemetry.py +66 -26
- flock/{core/logging → logging}/telemetry_exporter/base_exporter.py +2 -2
- flock/logging/telemetry_exporter/duckdb_exporter.py +216 -0
- flock/{core/logging → logging}/telemetry_exporter/file_exporter.py +13 -10
- flock/{core/logging → logging}/telemetry_exporter/sqlite_exporter.py +2 -3
- flock/logging/trace_and_logged.py +304 -0
- flock/mcp/__init__.py +91 -0
- flock/{core/mcp/mcp_client.py → mcp/client.py} +131 -158
- flock/{core/mcp/mcp_config.py → mcp/config.py} +86 -132
- flock/mcp/manager.py +286 -0
- flock/mcp/servers/sse/__init__.py +1 -1
- flock/mcp/servers/sse/flock_sse_server.py +16 -58
- flock/mcp/servers/stdio/__init__.py +1 -1
- flock/mcp/servers/stdio/flock_stdio_server.py +13 -53
- flock/mcp/servers/streamable_http/flock_streamable_http_server.py +22 -67
- flock/mcp/servers/websockets/flock_websocket_server.py +12 -45
- flock/{core/mcp/flock_mcp_tool_base.py → mcp/tool.py} +24 -78
- flock/mcp/types/__init__.py +42 -0
- flock/{core/mcp → mcp}/types/callbacks.py +12 -15
- flock/{core/mcp → mcp}/types/factories.py +7 -6
- flock/{core/mcp → mcp}/types/handlers.py +13 -18
- flock/{core/mcp → mcp}/types/types.py +70 -74
- flock/{core/mcp → mcp}/util/helpers.py +3 -3
- flock/orchestrator.py +970 -0
- flock/registry.py +148 -0
- flock/runtime.py +262 -0
- flock/service.py +277 -0
- flock/store.py +1214 -0
- flock/subscription.py +111 -0
- flock/themes/andromeda.toml +1 -1
- flock/themes/apple-system-colors.toml +1 -1
- flock/themes/arcoiris.toml +1 -1
- flock/themes/atomonelight.toml +1 -1
- flock/themes/ayu copy.toml +1 -1
- flock/themes/ayu-light.toml +1 -1
- flock/themes/belafonte-day.toml +1 -1
- flock/themes/belafonte-night.toml +1 -1
- flock/themes/blulocodark.toml +1 -1
- flock/themes/breeze.toml +1 -1
- flock/themes/broadcast.toml +1 -1
- flock/themes/brogrammer.toml +1 -1
- flock/themes/builtin-dark.toml +1 -1
- flock/themes/builtin-pastel-dark.toml +1 -1
- flock/themes/catppuccin-latte.toml +1 -1
- flock/themes/catppuccin-macchiato.toml +1 -1
- flock/themes/catppuccin-mocha.toml +1 -1
- flock/themes/cga.toml +1 -1
- flock/themes/chalk.toml +1 -1
- flock/themes/ciapre.toml +1 -1
- flock/themes/coffee-theme.toml +1 -1
- flock/themes/cyberpunkscarletprotocol.toml +1 -1
- flock/themes/dark+.toml +1 -1
- flock/themes/darkermatrix.toml +1 -1
- flock/themes/darkmatrix.toml +2 -2
- flock/themes/darkside.toml +1 -1
- flock/themes/deep.toml +2 -2
- flock/themes/desert.toml +1 -1
- flock/themes/django.toml +1 -1
- flock/themes/djangosmooth.toml +1 -1
- flock/themes/doomone.toml +1 -1
- flock/themes/dotgov.toml +1 -1
- flock/themes/dracula+.toml +1 -1
- flock/themes/duckbones.toml +1 -1
- flock/themes/encom.toml +1 -1
- flock/themes/espresso.toml +1 -1
- flock/themes/everblush.toml +1 -1
- flock/themes/fairyfloss.toml +1 -1
- flock/themes/fideloper.toml +1 -1
- flock/themes/fishtank.toml +1 -1
- flock/themes/flexoki-light.toml +1 -1
- flock/themes/floraverse.toml +1 -1
- flock/themes/framer.toml +1 -1
- flock/themes/galizur.toml +1 -1
- flock/themes/github.toml +1 -1
- flock/themes/grass.toml +1 -1
- flock/themes/grey-green.toml +1 -1
- flock/themes/gruvboxlight.toml +1 -1
- flock/themes/guezwhoz.toml +1 -1
- flock/themes/harper.toml +1 -1
- flock/themes/hax0r-blue.toml +1 -1
- flock/themes/hopscotch.256.toml +1 -1
- flock/themes/ic-green-ppl.toml +1 -1
- flock/themes/iceberg-dark.toml +1 -1
- flock/themes/japanesque.toml +1 -1
- flock/themes/jubi.toml +1 -1
- flock/themes/kibble.toml +1 -1
- flock/themes/kolorit.toml +1 -1
- flock/themes/kurokula.toml +1 -1
- flock/themes/materialdesigncolors.toml +1 -1
- flock/themes/matrix.toml +1 -1
- flock/themes/mellifluous.toml +1 -1
- flock/themes/midnight-in-mojave.toml +1 -1
- flock/themes/monokai-remastered.toml +1 -1
- flock/themes/monokai-soda.toml +1 -1
- flock/themes/neon.toml +1 -1
- flock/themes/neopolitan.toml +5 -5
- flock/themes/nord-light.toml +1 -1
- flock/themes/ocean.toml +1 -1
- flock/themes/onehalfdark.toml +1 -1
- flock/themes/onehalflight.toml +1 -1
- flock/themes/palenighthc.toml +1 -1
- flock/themes/paulmillr.toml +1 -1
- flock/themes/pencildark.toml +1 -1
- flock/themes/pnevma.toml +1 -1
- flock/themes/purple-rain.toml +1 -1
- flock/themes/purplepeter.toml +1 -1
- flock/themes/raycast-dark.toml +1 -1
- flock/themes/red-sands.toml +1 -1
- flock/themes/relaxed.toml +1 -1
- flock/themes/retro.toml +1 -1
- flock/themes/rose-pine.toml +1 -1
- flock/themes/royal.toml +1 -1
- flock/themes/ryuuko.toml +1 -1
- flock/themes/sakura.toml +1 -1
- flock/themes/scarlet-protocol.toml +1 -1
- flock/themes/seoulbones-dark.toml +1 -1
- flock/themes/shades-of-purple.toml +1 -1
- flock/themes/smyck.toml +1 -1
- flock/themes/softserver.toml +1 -1
- flock/themes/solarized-darcula.toml +1 -1
- flock/themes/square.toml +1 -1
- flock/themes/sugarplum.toml +1 -1
- flock/themes/thayer-bright.toml +1 -1
- flock/themes/tokyonight.toml +1 -1
- flock/themes/tomorrow.toml +1 -1
- flock/themes/ubuntu.toml +1 -1
- flock/themes/ultradark.toml +1 -1
- flock/themes/ultraviolent.toml +1 -1
- flock/themes/unikitty.toml +1 -1
- flock/themes/urple.toml +1 -1
- flock/themes/vesper.toml +1 -1
- flock/themes/vimbones.toml +1 -1
- flock/themes/wildcherry.toml +1 -1
- flock/themes/wilmersdorf.toml +1 -1
- flock/themes/wryan.toml +1 -1
- flock/themes/xcodedarkhc.toml +1 -1
- flock/themes/xcodelight.toml +1 -1
- flock/themes/zenbones-light.toml +1 -1
- flock/themes/zenwritten-dark.toml +1 -1
- flock/utilities.py +301 -0
- flock/utility/output_utility_component.py +226 -0
- flock/visibility.py +107 -0
- flock_core-0.5.0.dist-info/METADATA +964 -0
- flock_core-0.5.0.dist-info/RECORD +525 -0
- flock_core-0.5.0.dist-info/entry_points.txt +2 -0
- {flock_core-0.4.542.dist-info → flock_core-0.5.0.dist-info}/licenses/LICENSE +1 -1
- flock/adapter/__init__.py +0 -14
- flock/adapter/azure_adapter.py +0 -68
- flock/adapter/chroma_adapter.py +0 -73
- flock/adapter/faiss_adapter.py +0 -97
- flock/adapter/pinecone_adapter.py +0 -51
- flock/adapter/vector_base.py +0 -47
- flock/cli/assets/release_notes.md +0 -140
- flock/cli/config.py +0 -8
- flock/cli/constants.py +0 -36
- flock/cli/create_agent.py +0 -1
- flock/cli/create_flock.py +0 -280
- flock/cli/execute_flock.py +0 -620
- flock/cli/load_agent.py +0 -1
- flock/cli/load_examples.py +0 -1
- flock/cli/load_flock.py +0 -192
- flock/cli/load_release_notes.py +0 -20
- flock/cli/loaded_flock_cli.py +0 -254
- flock/cli/manage_agents.py +0 -459
- flock/cli/registry_management.py +0 -889
- flock/cli/runner.py +0 -41
- flock/cli/settings.py +0 -857
- flock/cli/utils.py +0 -135
- flock/cli/view_results.py +0 -29
- flock/cli/yaml_editor.py +0 -396
- flock/config.py +0 -56
- flock/core/__init__.py +0 -44
- flock/core/api/__init__.py +0 -10
- flock/core/api/custom_endpoint.py +0 -45
- flock/core/api/endpoints.py +0 -262
- flock/core/api/main.py +0 -162
- flock/core/api/models.py +0 -101
- flock/core/api/run_store.py +0 -224
- flock/core/api/runner.py +0 -44
- flock/core/api/service.py +0 -214
- flock/core/config/flock_agent_config.py +0 -11
- flock/core/config/scheduled_agent_config.py +0 -40
- flock/core/context/context.py +0 -214
- flock/core/context/context_manager.py +0 -40
- flock/core/context/context_vars.py +0 -11
- flock/core/evaluation/utils.py +0 -395
- flock/core/execution/batch_executor.py +0 -369
- flock/core/execution/evaluation_executor.py +0 -438
- flock/core/execution/local_executor.py +0 -31
- flock/core/execution/opik_executor.py +0 -103
- flock/core/execution/temporal_executor.py +0 -166
- flock/core/flock.py +0 -1003
- flock/core/flock_agent.py +0 -1258
- flock/core/flock_evaluator.py +0 -60
- flock/core/flock_factory.py +0 -513
- flock/core/flock_module.py +0 -207
- flock/core/flock_registry.py +0 -702
- flock/core/flock_router.py +0 -83
- flock/core/flock_scheduler.py +0 -166
- flock/core/flock_server_manager.py +0 -136
- flock/core/interpreter/python_interpreter.py +0 -689
- flock/core/logging/live_capture.py +0 -137
- flock/core/logging/trace_and_logged.py +0 -59
- flock/core/mcp/__init__.py +0 -1
- flock/core/mcp/flock_mcp_server.py +0 -640
- flock/core/mcp/mcp_client_manager.py +0 -201
- flock/core/mcp/types/__init__.py +0 -1
- flock/core/mixin/dspy_integration.py +0 -445
- flock/core/mixin/prompt_parser.py +0 -125
- flock/core/serialization/__init__.py +0 -13
- flock/core/serialization/callable_registry.py +0 -52
- flock/core/serialization/flock_serializer.py +0 -854
- flock/core/serialization/json_encoder.py +0 -41
- flock/core/serialization/secure_serializer.py +0 -175
- flock/core/serialization/serializable.py +0 -342
- flock/core/serialization/serialization_utils.py +0 -409
- flock/core/util/file_path_utils.py +0 -223
- flock/core/util/hydrator.py +0 -309
- flock/core/util/input_resolver.py +0 -141
- flock/core/util/loader.py +0 -59
- flock/core/util/splitter.py +0 -219
- flock/di.py +0 -41
- flock/evaluators/__init__.py +0 -1
- flock/evaluators/declarative/__init__.py +0 -1
- flock/evaluators/declarative/declarative_evaluator.py +0 -217
- flock/evaluators/memory/memory_evaluator.py +0 -90
- flock/evaluators/test/test_case_evaluator.py +0 -38
- flock/evaluators/zep/zep_evaluator.py +0 -59
- flock/modules/__init__.py +0 -1
- flock/modules/assertion/__init__.py +0 -1
- flock/modules/assertion/assertion_module.py +0 -286
- flock/modules/callback/__init__.py +0 -1
- flock/modules/callback/callback_module.py +0 -91
- flock/modules/enterprise_memory/README.md +0 -99
- flock/modules/enterprise_memory/enterprise_memory_module.py +0 -526
- flock/modules/mem0/__init__.py +0 -1
- flock/modules/mem0/mem0_module.py +0 -126
- flock/modules/mem0_async/__init__.py +0 -1
- flock/modules/mem0_async/async_mem0_module.py +0 -126
- flock/modules/memory/__init__.py +0 -1
- flock/modules/memory/memory_module.py +0 -429
- flock/modules/memory/memory_parser.py +0 -125
- flock/modules/memory/memory_storage.py +0 -736
- flock/modules/output/__init__.py +0 -1
- flock/modules/output/output_module.py +0 -196
- flock/modules/performance/__init__.py +0 -1
- flock/modules/performance/metrics_module.py +0 -678
- flock/modules/zep/__init__.py +0 -1
- flock/modules/zep/zep_module.py +0 -192
- flock/platform/docker_tools.py +0 -49
- flock/platform/jaeger_install.py +0 -86
- flock/routers/__init__.py +0 -1
- flock/routers/agent/__init__.py +0 -1
- flock/routers/agent/agent_router.py +0 -236
- flock/routers/agent/handoff_agent.py +0 -58
- flock/routers/conditional/conditional_router.py +0 -486
- flock/routers/default/__init__.py +0 -1
- flock/routers/default/default_router.py +0 -80
- flock/routers/feedback/feedback_router.py +0 -114
- flock/routers/list_generator/list_generator_router.py +0 -166
- flock/routers/llm/__init__.py +0 -1
- flock/routers/llm/llm_router.py +0 -365
- flock/tools/__init__.py +0 -0
- flock/tools/azure_tools.py +0 -781
- flock/tools/code_tools.py +0 -167
- flock/tools/file_tools.py +0 -149
- flock/tools/github_tools.py +0 -157
- flock/tools/markdown_tools.py +0 -205
- flock/tools/system_tools.py +0 -9
- flock/tools/text_tools.py +0 -810
- flock/tools/web_tools.py +0 -92
- flock/tools/zendesk_tools.py +0 -501
- flock/webapp/__init__.py +0 -1
- flock/webapp/app/__init__.py +0 -0
- flock/webapp/app/api/__init__.py +0 -0
- flock/webapp/app/api/agent_management.py +0 -237
- flock/webapp/app/api/execution.py +0 -503
- flock/webapp/app/api/flock_management.py +0 -125
- flock/webapp/app/api/registry_viewer.py +0 -29
- flock/webapp/app/chat.py +0 -662
- flock/webapp/app/config.py +0 -104
- flock/webapp/app/dependencies.py +0 -117
- flock/webapp/app/main.py +0 -1086
- flock/webapp/app/middleware.py +0 -113
- flock/webapp/app/models_ui.py +0 -7
- flock/webapp/app/services/__init__.py +0 -0
- flock/webapp/app/services/feedback_file_service.py +0 -363
- flock/webapp/app/services/flock_service.py +0 -345
- flock/webapp/app/services/sharing_models.py +0 -81
- flock/webapp/app/services/sharing_store.py +0 -597
- flock/webapp/app/templates/theme_mapper.html +0 -326
- flock/webapp/app/theme_mapper.py +0 -811
- flock/webapp/app/utils.py +0 -85
- flock/webapp/run.py +0 -219
- flock/webapp/static/css/chat.css +0 -301
- flock/webapp/static/css/components.css +0 -167
- flock/webapp/static/css/header.css +0 -39
- flock/webapp/static/css/layout.css +0 -281
- flock/webapp/static/css/sidebar.css +0 -127
- flock/webapp/static/css/two-pane.css +0 -48
- flock/webapp/templates/base.html +0 -389
- flock/webapp/templates/chat.html +0 -152
- flock/webapp/templates/chat_settings.html +0 -19
- flock/webapp/templates/flock_editor.html +0 -16
- flock/webapp/templates/index.html +0 -12
- flock/webapp/templates/partials/_agent_detail_form.html +0 -93
- flock/webapp/templates/partials/_agent_list.html +0 -18
- flock/webapp/templates/partials/_agent_manager_view.html +0 -51
- flock/webapp/templates/partials/_agent_tools_checklist.html +0 -14
- flock/webapp/templates/partials/_chat_container.html +0 -15
- flock/webapp/templates/partials/_chat_messages.html +0 -57
- flock/webapp/templates/partials/_chat_settings_form.html +0 -85
- flock/webapp/templates/partials/_create_flock_form.html +0 -50
- flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -17
- flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -16
- flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -28
- flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -16
- flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -22
- flock/webapp/templates/partials/_env_vars_table.html +0 -23
- flock/webapp/templates/partials/_execution_form.html +0 -127
- flock/webapp/templates/partials/_execution_view_container.html +0 -28
- flock/webapp/templates/partials/_flock_file_list.html +0 -23
- flock/webapp/templates/partials/_flock_properties_form.html +0 -52
- flock/webapp/templates/partials/_flock_upload_form.html +0 -16
- flock/webapp/templates/partials/_header_flock_status.html +0 -5
- flock/webapp/templates/partials/_live_logs.html +0 -13
- flock/webapp/templates/partials/_load_manager_view.html +0 -49
- flock/webapp/templates/partials/_registry_table.html +0 -25
- flock/webapp/templates/partials/_registry_viewer_content.html +0 -70
- flock/webapp/templates/partials/_results_display.html +0 -78
- flock/webapp/templates/partials/_settings_env_content.html +0 -9
- flock/webapp/templates/partials/_settings_theme_content.html +0 -14
- flock/webapp/templates/partials/_settings_view.html +0 -36
- flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -11
- flock/webapp/templates/partials/_share_link_snippet.html +0 -35
- flock/webapp/templates/partials/_sidebar.html +0 -74
- flock/webapp/templates/partials/_structured_data_view.html +0 -40
- flock/webapp/templates/partials/_theme_preview.html +0 -36
- flock/webapp/templates/registry_viewer.html +0 -84
- flock/webapp/templates/shared_run_page.html +0 -140
- flock/workflow/__init__.py +0 -0
- flock/workflow/activities.py +0 -237
- flock/workflow/agent_activities.py +0 -24
- flock/workflow/agent_execution_activity.py +0 -240
- flock/workflow/flock_workflow.py +0 -225
- flock/workflow/temporal_config.py +0 -96
- flock/workflow/temporal_setup.py +0 -60
- flock_core-0.4.542.dist-info/METADATA +0 -676
- flock_core-0.4.542.dist-info/RECORD +0 -572
- flock_core-0.4.542.dist-info/entry_points.txt +0 -2
- /flock/{core/logging → logging}/formatters/themes.py +0 -0
- /flock/{core/logging → logging}/span_middleware/baggage_span_processor.py +0 -0
- /flock/{core/mcp → mcp}/util/__init__.py +0 -0
- {flock_core-0.4.542.dist-info → flock_core-0.5.0.dist-info}/WHEEL +0 -0
|
@@ -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
|
-
|
|
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.
|
|
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
|
|
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(**
|
|
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(**
|
|
199
|
+
return cls(**dict(data.items()))
|
|
200
200
|
|
|
201
|
-
def to_dict(self, path_type
|
|
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
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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)
|
|
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(**
|
|
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(**
|
|
284
|
+
return cls(**dict(data.items()))
|
|
288
285
|
|
|
289
|
-
def to_dict(self, path_type
|
|
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
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|
]
|
|
@@ -17,7 +17,7 @@ def get_default_env() -> dict[str, str]:
|
|
|
17
17
|
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
).hexdigest()
|
|
20
|
+
# merge args and kwargs into a single string
|
|
21
|
+
merged = json.dumps({"args": args, "kwargs": kwargs}, sort_keys=True)
|
|
22
|
+
args_digest = hashlib.md5(merged.encode(), usedforsecurity=False).hexdigest()
|
|
23
23
|
return f"{agent_id}:{run_id}:{args_digest}"
|