flock-core 0.5.0b28__py3-none-any.whl → 0.5.56b0__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 +678 -0
- flock/api/themes.py +71 -0
- flock/artifacts.py +79 -0
- flock/cli.py +75 -0
- flock/components.py +173 -0
- flock/dashboard/__init__.py +28 -0
- flock/dashboard/collector.py +283 -0
- flock/dashboard/events.py +182 -0
- flock/dashboard/launcher.py +230 -0
- flock/dashboard/service.py +537 -0
- flock/dashboard/websocket.py +235 -0
- flock/engines/__init__.py +6 -0
- flock/engines/dspy_engine.py +856 -0
- flock/examples.py +128 -0
- flock/{core/util → helper}/cli_helper.py +4 -3
- flock/{core/logging → logging}/__init__.py +2 -3
- 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 -115
- flock/{core/logging → logging}/logging.py +77 -61
- flock/{core/logging → logging}/telemetry.py +20 -26
- flock/{core/logging → logging}/telemetry_exporter/base_exporter.py +2 -2
- flock/{core/logging → logging}/telemetry_exporter/file_exporter.py +6 -9
- flock/{core/logging → logging}/telemetry_exporter/sqlite_exporter.py +2 -3
- flock/{core/logging → logging}/trace_and_logged.py +20 -24
- flock/mcp/__init__.py +91 -0
- flock/{core/mcp/mcp_client.py → mcp/client.py} +103 -154
- flock/{core/mcp/mcp_config.py → mcp/config.py} +62 -117
- flock/mcp/manager.py +255 -0
- flock/mcp/servers/sse/__init__.py +1 -1
- flock/mcp/servers/sse/flock_sse_server.py +11 -53
- flock/mcp/servers/stdio/__init__.py +1 -1
- flock/mcp/servers/stdio/flock_stdio_server.py +8 -48
- flock/mcp/servers/streamable_http/flock_streamable_http_server.py +17 -62
- flock/mcp/servers/websockets/flock_websocket_server.py +7 -40
- flock/{core/mcp/flock_mcp_tool.py → mcp/tool.py} +16 -26
- flock/mcp/types/__init__.py +42 -0
- flock/{core/mcp → mcp}/types/callbacks.py +9 -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 +1 -1
- flock/orchestrator.py +645 -0
- flock/registry.py +148 -0
- flock/runtime.py +262 -0
- flock/service.py +140 -0
- flock/store.py +69 -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/darkside.toml +1 -1
- 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 +1 -1
- 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/{components/utility → utility}/output_utility_component.py +68 -53
- flock/visibility.py +107 -0
- flock_core-0.5.56b0.dist-info/METADATA +747 -0
- flock_core-0.5.56b0.dist-info/RECORD +398 -0
- flock_core-0.5.56b0.dist-info/entry_points.txt +2 -0
- {flock_core-0.5.0b28.dist-info → flock_core-0.5.56b0.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/components/__init__.py +0 -30
- flock/components/evaluation/__init__.py +0 -9
- flock/components/evaluation/declarative_evaluation_component.py +0 -606
- flock/components/routing/__init__.py +0 -15
- flock/components/routing/conditional_routing_component.py +0 -494
- flock/components/routing/default_routing_component.py +0 -103
- flock/components/routing/llm_routing_component.py +0 -206
- flock/components/utility/__init__.py +0 -22
- flock/components/utility/example_utility_component.py +0 -250
- flock/components/utility/feedback_utility_component.py +0 -206
- flock/components/utility/memory_utility_component.py +0 -550
- flock/components/utility/metrics_utility_component.py +0 -700
- flock/config.py +0 -61
- flock/core/__init__.py +0 -110
- flock/core/agent/__init__.py +0 -16
- flock/core/agent/default_agent.py +0 -216
- flock/core/agent/flock_agent_components.py +0 -104
- flock/core/agent/flock_agent_execution.py +0 -101
- flock/core/agent/flock_agent_integration.py +0 -260
- flock/core/agent/flock_agent_lifecycle.py +0 -186
- flock/core/agent/flock_agent_serialization.py +0 -381
- flock/core/api/__init__.py +0 -10
- flock/core/api/custom_endpoint.py +0 -45
- flock/core/api/endpoints.py +0 -254
- flock/core/api/main.py +0 -162
- flock/core/api/models.py +0 -97
- flock/core/api/run_store.py +0 -224
- flock/core/api/runner.py +0 -44
- flock/core/api/service.py +0 -214
- flock/core/component/__init__.py +0 -15
- flock/core/component/agent_component_base.py +0 -309
- flock/core/component/evaluation_component.py +0 -62
- flock/core/component/routing_component.py +0 -74
- flock/core/component/utility_component.py +0 -69
- flock/core/config/flock_agent_config.py +0 -58
- flock/core/config/scheduled_agent_config.py +0 -40
- flock/core/context/context.py +0 -213
- flock/core/context/context_manager.py +0 -37
- flock/core/context/context_vars.py +0 -10
- flock/core/evaluation/utils.py +0 -396
- 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 -164
- flock/core/flock.py +0 -634
- flock/core/flock_agent.py +0 -336
- flock/core/flock_factory.py +0 -613
- 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/mcp/__init__.py +0 -1
- flock/core/mcp/flock_mcp_server.py +0 -680
- flock/core/mcp/mcp_client_manager.py +0 -201
- flock/core/mcp/types/__init__.py +0 -1
- flock/core/mixin/dspy_integration.py +0 -403
- flock/core/mixin/prompt_parser.py +0 -125
- flock/core/orchestration/__init__.py +0 -15
- flock/core/orchestration/flock_batch_processor.py +0 -94
- flock/core/orchestration/flock_evaluator.py +0 -113
- flock/core/orchestration/flock_execution.py +0 -295
- flock/core/orchestration/flock_initialization.py +0 -149
- flock/core/orchestration/flock_server_manager.py +0 -67
- flock/core/orchestration/flock_web_server.py +0 -117
- flock/core/registry/__init__.py +0 -45
- flock/core/registry/agent_registry.py +0 -69
- flock/core/registry/callable_registry.py +0 -139
- flock/core/registry/component_discovery.py +0 -142
- flock/core/registry/component_registry.py +0 -64
- flock/core/registry/config_mapping.py +0 -64
- flock/core/registry/decorators.py +0 -137
- flock/core/registry/registry_hub.py +0 -205
- flock/core/registry/server_registry.py +0 -57
- flock/core/registry/type_registry.py +0 -86
- flock/core/serialization/__init__.py +0 -13
- flock/core/serialization/callable_registry.py +0 -52
- flock/core/serialization/flock_serializer.py +0 -832
- 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 -412
- flock/core/util/file_path_utils.py +0 -223
- flock/core/util/hydrator.py +0 -309
- flock/core/util/input_resolver.py +0 -164
- flock/core/util/loader.py +0 -59
- flock/core/util/splitter.py +0 -219
- flock/di.py +0 -27
- flock/platform/docker_tools.py +0 -49
- flock/platform/jaeger_install.py +0 -86
- 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 -241
- flock/webapp/app/api/execution.py +0 -709
- flock/webapp/app/api/flock_management.py +0 -129
- flock/webapp/app/api/registry_viewer.py +0 -30
- flock/webapp/app/chat.py +0 -665
- flock/webapp/app/config.py +0 -104
- flock/webapp/app/dependencies.py +0 -117
- flock/webapp/app/main.py +0 -1070
- 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 -337
- flock/webapp/app/services/sharing_models.py +0 -81
- flock/webapp/app/services/sharing_store.py +0 -762
- flock/webapp/app/templates/theme_mapper.html +0 -326
- flock/webapp/app/theme_mapper.py +0 -812
- flock/webapp/app/utils.py +0 -85
- flock/webapp/run.py +0 -215
- 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 -46
- flock/webapp/static/css/sidebar.css +0 -127
- flock/webapp/static/css/two-pane.css +0 -48
- flock/webapp/templates/base.html +0 -200
- 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 -118
- 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/_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/_streaming_results_container.html +0 -195
- 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 -196
- flock/workflow/agent_activities.py +0 -24
- flock/workflow/agent_execution_activity.py +0 -202
- flock/workflow/flock_workflow.py +0 -214
- flock/workflow/temporal_config.py +0 -96
- flock/workflow/temporal_setup.py +0 -68
- flock_core-0.5.0b28.dist-info/METADATA +0 -274
- flock_core-0.5.0b28.dist-info/RECORD +0 -561
- flock_core-0.5.0b28.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.5.0b28.dist-info → flock_core-0.5.56b0.dist-info}/WHEEL +0 -0
flock/__init__.py
CHANGED
|
@@ -1,221 +1,16 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Public package API for flock."""
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import os
|
|
5
|
-
import sys
|
|
3
|
+
from __future__ import annotations
|
|
6
4
|
|
|
5
|
+
from flock.cli import main
|
|
6
|
+
from flock.orchestrator import Flock, start_orchestrator
|
|
7
|
+
from flock.registry import flock_tool, flock_type
|
|
7
8
|
|
|
8
|
-
def main(): # noqa: C901
|
|
9
|
-
"""Main function."""
|
|
10
|
-
# Parse command line arguments
|
|
11
|
-
parser = argparse.ArgumentParser(
|
|
12
|
-
description="Flock - Declarative LLM Orchestration at Scale"
|
|
13
|
-
)
|
|
14
|
-
parser.add_argument(
|
|
15
|
-
"--web",
|
|
16
|
-
action="store_true",
|
|
17
|
-
help="Start the web interface instead of the CLI",
|
|
18
|
-
)
|
|
19
|
-
parser.add_argument(
|
|
20
|
-
"--chat",
|
|
21
|
-
action="store_true",
|
|
22
|
-
help="Start a chat interface. If --web is also used, enables chat within the web app; otherwise, starts standalone chat.",
|
|
23
|
-
)
|
|
24
|
-
parser.add_argument(
|
|
25
|
-
"--theme",
|
|
26
|
-
type=str,
|
|
27
|
-
default=None,
|
|
28
|
-
help="Specify the theme name for the web interface (if --web is used).",
|
|
29
|
-
)
|
|
30
|
-
args = parser.parse_args()
|
|
31
9
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
)
|
|
40
|
-
os.environ["FLOCK_WEB_THEME"] = args.theme
|
|
41
|
-
else:
|
|
42
|
-
# Ensure it's not set if no theme arg is passed
|
|
43
|
-
if "FLOCK_WEB_THEME" in os.environ:
|
|
44
|
-
del os.environ["FLOCK_WEB_THEME"]
|
|
45
|
-
|
|
46
|
-
if args.chat: # --web --chat
|
|
47
|
-
print("INFO: Starting web application with chat feature enabled.")
|
|
48
|
-
os.environ["FLOCK_CHAT_ENABLED"] = "true"
|
|
49
|
-
else: # Just --web
|
|
50
|
-
print("INFO: Starting web application.")
|
|
51
|
-
if "FLOCK_CHAT_ENABLED" in os.environ:
|
|
52
|
-
del os.environ["FLOCK_CHAT_ENABLED"]
|
|
53
|
-
|
|
54
|
-
# Ensure standalone chat mode is not active
|
|
55
|
-
if "FLOCK_START_MODE" in os.environ:
|
|
56
|
-
del os.environ["FLOCK_START_MODE"]
|
|
57
|
-
|
|
58
|
-
# Import and run the standalone webapp main function
|
|
59
|
-
from flock.webapp.run import main as run_webapp_main
|
|
60
|
-
run_webapp_main()
|
|
61
|
-
|
|
62
|
-
except ImportError:
|
|
63
|
-
print(
|
|
64
|
-
"Error: Could not import webapp components. Ensure web dependencies are installed.",
|
|
65
|
-
file=sys.stderr,
|
|
66
|
-
)
|
|
67
|
-
sys.exit(1)
|
|
68
|
-
except Exception as e:
|
|
69
|
-
print(f"Error starting webapp: {e}", file=sys.stderr)
|
|
70
|
-
sys.exit(1)
|
|
71
|
-
return
|
|
72
|
-
|
|
73
|
-
elif args.chat: # Standalone chat mode (args.web is false)
|
|
74
|
-
try:
|
|
75
|
-
print("INFO: Starting standalone chat application.")
|
|
76
|
-
os.environ["FLOCK_START_MODE"] = "chat"
|
|
77
|
-
|
|
78
|
-
# Clear web-specific env vars that might conflict or not apply
|
|
79
|
-
if "FLOCK_WEB_THEME" in os.environ:
|
|
80
|
-
del os.environ["FLOCK_WEB_THEME"]
|
|
81
|
-
if "FLOCK_CHAT_ENABLED" in os.environ:
|
|
82
|
-
del os.environ["FLOCK_CHAT_ENABLED"]
|
|
83
|
-
|
|
84
|
-
# Handle --theme if passed with --chat only
|
|
85
|
-
if args.theme:
|
|
86
|
-
print(f"INFO: Standalone chat mode started with --theme '{args.theme}'. FLOCK_WEB_THEME will be set.")
|
|
87
|
-
os.environ["FLOCK_WEB_THEME"] = args.theme
|
|
88
|
-
|
|
89
|
-
from flock.webapp.run import main as run_webapp_main
|
|
90
|
-
run_webapp_main() # The webapp main needs to interpret FLOCK_START_MODE="chat"
|
|
91
|
-
|
|
92
|
-
except ImportError:
|
|
93
|
-
print("Error: Could not import webapp components for chat. Ensure web dependencies are installed.", file=sys.stderr)
|
|
94
|
-
sys.exit(1)
|
|
95
|
-
except Exception as e:
|
|
96
|
-
print(f"Error starting standalone chat application: {e}", file=sys.stderr)
|
|
97
|
-
sys.exit(1)
|
|
98
|
-
return
|
|
99
|
-
|
|
100
|
-
# Otherwise, run the CLI interface
|
|
101
|
-
import questionary
|
|
102
|
-
from rich.console import Console
|
|
103
|
-
from rich.panel import Panel
|
|
104
|
-
|
|
105
|
-
from flock.cli.config import init_config_file, load_config_file
|
|
106
|
-
from flock.cli.constants import ( # noqa: F401
|
|
107
|
-
CLI_CFG_FILE,
|
|
108
|
-
CLI_CREATE_AGENT,
|
|
109
|
-
CLI_CREATE_FLOCK,
|
|
110
|
-
CLI_EXIT,
|
|
111
|
-
CLI_LOAD_AGENT,
|
|
112
|
-
CLI_LOAD_EXAMPLE,
|
|
113
|
-
CLI_LOAD_FLOCK,
|
|
114
|
-
CLI_NOTES,
|
|
115
|
-
CLI_REGISTRY_MANAGEMENT,
|
|
116
|
-
CLI_SETTINGS,
|
|
117
|
-
CLI_START_WEB_SERVER,
|
|
118
|
-
CLI_THEME_BUILDER,
|
|
119
|
-
)
|
|
120
|
-
from flock.cli.load_flock import load_flock
|
|
121
|
-
from flock.cli.load_release_notes import load_release_notes
|
|
122
|
-
from flock.cli.settings import settings_editor
|
|
123
|
-
from flock.core.logging.formatters.theme_builder import theme_builder
|
|
124
|
-
from flock.core.util.cli_helper import init_console
|
|
125
|
-
|
|
126
|
-
console = Console()
|
|
127
|
-
|
|
128
|
-
# Show a welcome message on first run with the new tool serialization format
|
|
129
|
-
cfg_file = os.path.expanduser(f"~/.flock/{CLI_CFG_FILE}")
|
|
130
|
-
if not os.path.exists(cfg_file):
|
|
131
|
-
# Create the directory if it doesn't exist
|
|
132
|
-
os.makedirs(os.path.dirname(cfg_file), exist_ok=True)
|
|
133
|
-
|
|
134
|
-
init_config_file()
|
|
135
|
-
else:
|
|
136
|
-
# Load the config file
|
|
137
|
-
load_config_file()
|
|
138
|
-
|
|
139
|
-
feature_flag_file = os.path.expanduser("~/.flock/tool_serialization_notice")
|
|
140
|
-
if not os.path.exists(feature_flag_file):
|
|
141
|
-
# Create the directory if it doesn't exist
|
|
142
|
-
os.makedirs(os.path.dirname(feature_flag_file), exist_ok=True)
|
|
143
|
-
|
|
144
|
-
# Show the notice about the new tool serialization
|
|
145
|
-
console.print(
|
|
146
|
-
Panel(
|
|
147
|
-
"[bold green]Flock 0.4.0b 'Magpie'- Flock CLI Management Console BETA[/]\n\n"
|
|
148
|
-
"Flock now offers a tool for managing your flock:\n"
|
|
149
|
-
"- Serialization and deserialization of Flock instances\n"
|
|
150
|
-
"- Execution of Flock instances\n"
|
|
151
|
-
"- Managing components, types, and agents via the registry management\n"
|
|
152
|
-
"- Starting a web server to interact with your flock\n"
|
|
153
|
-
"plannes featues: deployment on docker, kubernetes, and more!"
|
|
154
|
-
),
|
|
155
|
-
justify="center",
|
|
156
|
-
)
|
|
157
|
-
console.line()
|
|
158
|
-
|
|
159
|
-
# Create the flag file to prevent showing this notice again
|
|
160
|
-
with open(feature_flag_file, "w") as f:
|
|
161
|
-
f.write("Tool serialization notice shown")
|
|
162
|
-
|
|
163
|
-
input("Press Enter to continue to the main menu...")
|
|
164
|
-
console.clear()
|
|
165
|
-
|
|
166
|
-
while True:
|
|
167
|
-
init_console()
|
|
168
|
-
|
|
169
|
-
# console.print("Flock Management Console\n", style="bold green")
|
|
170
|
-
console.print(
|
|
171
|
-
Panel("[bold green]Flock Management Console[/]"), justify="center"
|
|
172
|
-
)
|
|
173
|
-
console.line()
|
|
174
|
-
|
|
175
|
-
result = questionary.select(
|
|
176
|
-
"What do you want to do?",
|
|
177
|
-
choices=[
|
|
178
|
-
questionary.Separator(line=" "),
|
|
179
|
-
# CLI_CREATE_AGENT,
|
|
180
|
-
CLI_CREATE_FLOCK,
|
|
181
|
-
# CLI_LOAD_AGENT,
|
|
182
|
-
CLI_LOAD_FLOCK,
|
|
183
|
-
# CLI_LOAD_EXAMPLE,
|
|
184
|
-
questionary.Separator(),
|
|
185
|
-
CLI_REGISTRY_MANAGEMENT,
|
|
186
|
-
questionary.Separator(),
|
|
187
|
-
CLI_THEME_BUILDER,
|
|
188
|
-
CLI_SETTINGS,
|
|
189
|
-
questionary.Separator(),
|
|
190
|
-
CLI_NOTES,
|
|
191
|
-
CLI_EXIT,
|
|
192
|
-
],
|
|
193
|
-
).ask()
|
|
194
|
-
|
|
195
|
-
if result == CLI_LOAD_FLOCK:
|
|
196
|
-
load_flock()
|
|
197
|
-
elif result == CLI_CREATE_FLOCK:
|
|
198
|
-
# This will be implemented in a separate create_flock.py
|
|
199
|
-
from flock.cli.create_flock import create_flock
|
|
200
|
-
|
|
201
|
-
create_flock()
|
|
202
|
-
elif result == CLI_THEME_BUILDER:
|
|
203
|
-
theme_builder()
|
|
204
|
-
elif result == CLI_REGISTRY_MANAGEMENT:
|
|
205
|
-
# Import registry management when needed
|
|
206
|
-
from flock.cli.registry_management import manage_registry
|
|
207
|
-
|
|
208
|
-
manage_registry()
|
|
209
|
-
elif result == CLI_SETTINGS:
|
|
210
|
-
settings_editor()
|
|
211
|
-
elif result == CLI_NOTES:
|
|
212
|
-
load_release_notes()
|
|
213
|
-
elif result == CLI_EXIT:
|
|
214
|
-
break
|
|
215
|
-
input("\nPress Enter to continue...\n\n")
|
|
216
|
-
|
|
217
|
-
console.clear()
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
if __name__ == "__main__":
|
|
221
|
-
main()
|
|
10
|
+
__all__ = [
|
|
11
|
+
"Flock",
|
|
12
|
+
"flock_tool",
|
|
13
|
+
"flock_type",
|
|
14
|
+
"main",
|
|
15
|
+
"start_orchestrator",
|
|
16
|
+
]
|