meshagent-cli 0.44.11__tar.gz → 0.44.13__tar.gz
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.
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/PKG-INFO +17 -17
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/agent.py +1 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/chatbot.py +2 -2
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/cli_mcp.py +4 -4
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create_project_templates/python/backend-agent/server.py +2 -2
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create_project_templates/python/webserver/server.py +2 -2
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create_test.py +2 -2
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/messaging.py +14 -2
- meshagent_cli-0.44.13/meshagent/cli/messaging_test.py +36 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/process.py +2 -2
- meshagent_cli-0.44.13/meshagent/cli/sessions.py +663 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/sessions_test.py +275 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/test.py +2 -2
- meshagent_cli-0.44.13/meshagent/cli/version.py +1 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent_cli.egg-info/PKG-INFO +17 -17
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent_cli.egg-info/SOURCES.txt +1 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent_cli.egg-info/requires.txt +16 -16
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/pyproject.toml +16 -16
- meshagent_cli-0.44.11/meshagent/cli/sessions.py +0 -349
- meshagent_cli-0.44.11/meshagent/cli/version.py +0 -1
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/LICENSE +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/README.md +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/__init__.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/_filedrop.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/agent_cli_options_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/agent_package_cli.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/agent_package_cli_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/agents.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/agents_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/api_keys.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/api_keys_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/ask.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/ask_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/async_typer.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/async_typer_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/auth.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/auth_async.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/auth_async_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/auth_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/call.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/cli.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/cli_secrets.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/cli_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/common_options.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/config.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/config_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/containers.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/containers_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create_project_templates/__init__.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create_project_templates/python/contact-form/server.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/create_project_templates/python/task-queue-dashboard/server.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/dataset.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/dataset_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/developer.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/developer_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/doctor.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/doctor_dockerfiles/__init__.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/doctor_templates/__init__.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/doctor_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/feeds.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/helper.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/helper_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/helpers.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/host.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/image.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/image_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/launch.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/launch_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/llm.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/llm_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/local_settings.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/local_settings_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/mailbot.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/mailbot_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/mailboxes.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/meeting_transcriber.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/memory.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/memory_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/meshagent_images.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/meshagent_images_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/multi.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/oauth2.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/oauth2_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/oci_archive.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/oci_archive_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/participant_token.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/port.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/port_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/preamble_rules.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/preamble_rules_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/process_live_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/process_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/projects.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/projects_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/queue.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/queue_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/registry.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/registry_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/room.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/room_connect.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/room_connect_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/room_services.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/rooms.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/rooms_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/root_commands.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/root_commands_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/routes.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/scheduled_tasks.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/scheduled_tasks_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/services.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/services_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/storage.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/storage_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/subscriptions.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/sync.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/sync_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/task_runner.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/task_runner_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/testing.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/thread_inspect.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/thread_inspect_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/thread_sidebar.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tool_call_summary.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tool_call_summary_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tool_integrations.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tool_integrations_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/__init__.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/auth_switch.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/auth_switch_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/create.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/deploy_room.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/deploy_room_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/project_activate.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/project_activate_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/setup.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/setup_splash_frames.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/tui/setup_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/version_check.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/version_check_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/voicebot.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/webhook.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/webserver.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/webserver_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/worker.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent/cli/worker_test.py +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent_cli.egg-info/dependency_links.txt +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent_cli.egg-info/entry_points.txt +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/meshagent_cli.egg-info/top_level.txt +0 -0
- {meshagent_cli-0.44.11 → meshagent_cli-0.44.13}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meshagent-cli
|
|
3
|
-
Version: 0.44.
|
|
3
|
+
Version: 0.44.13
|
|
4
4
|
Summary: CLI for Meshagent
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Project-URL: Documentation, https://docs.meshagent.com
|
|
@@ -22,8 +22,8 @@ Requires-Dist: openpyxl~=3.1
|
|
|
22
22
|
Requires-Dist: xlsxwriter~=3.2
|
|
23
23
|
Requires-Dist: pathspec<2,>=1.0.3
|
|
24
24
|
Requires-Dist: zstandard~=0.25.0
|
|
25
|
-
Requires-Dist: meshagent-llm-proxy==0.44.
|
|
26
|
-
Requires-Dist: meshagent-codex==0.44.
|
|
25
|
+
Requires-Dist: meshagent-llm-proxy==0.44.13
|
|
26
|
+
Requires-Dist: meshagent-codex==0.44.13
|
|
27
27
|
Requires-Dist: rich~=14.3.0
|
|
28
28
|
Requires-Dist: sounddevice~=0.5
|
|
29
29
|
Requires-Dist: textual<9.0,>=8.2.3
|
|
@@ -32,23 +32,23 @@ Requires-Dist: prompt-toolkit~=3.0.52
|
|
|
32
32
|
Requires-Dist: ascii-magic~=2.3
|
|
33
33
|
Requires-Dist: pillow~=11.3.0
|
|
34
34
|
Provides-Extra: all
|
|
35
|
-
Requires-Dist: meshagent-agents[all]==0.44.
|
|
36
|
-
Requires-Dist: meshagent-api[all]==0.44.
|
|
37
|
-
Requires-Dist: meshagent-commoncrawl==0.44.
|
|
38
|
-
Requires-Dist: meshagent-scrapy==0.44.
|
|
39
|
-
Requires-Dist: meshagent-computers==0.44.
|
|
40
|
-
Requires-Dist: meshagent-openai==0.44.
|
|
41
|
-
Requires-Dist: meshagent-anthropic==0.44.
|
|
42
|
-
Requires-Dist: meshagent-otel==0.44.
|
|
43
|
-
Requires-Dist: meshagent-mcp==0.44.
|
|
44
|
-
Requires-Dist: meshagent-tools==0.44.
|
|
35
|
+
Requires-Dist: meshagent-agents[all]==0.44.13; extra == "all"
|
|
36
|
+
Requires-Dist: meshagent-api[all]==0.44.13; extra == "all"
|
|
37
|
+
Requires-Dist: meshagent-commoncrawl==0.44.13; extra == "all"
|
|
38
|
+
Requires-Dist: meshagent-scrapy==0.44.13; extra == "all"
|
|
39
|
+
Requires-Dist: meshagent-computers==0.44.13; extra == "all"
|
|
40
|
+
Requires-Dist: meshagent-openai==0.44.13; extra == "all"
|
|
41
|
+
Requires-Dist: meshagent-anthropic==0.44.13; extra == "all"
|
|
42
|
+
Requires-Dist: meshagent-otel==0.44.13; extra == "all"
|
|
43
|
+
Requires-Dist: meshagent-mcp==0.44.13; extra == "all"
|
|
44
|
+
Requires-Dist: meshagent-tools==0.44.13; extra == "all"
|
|
45
45
|
Requires-Dist: supabase-auth~=2.28.0; extra == "all"
|
|
46
46
|
Requires-Dist: prompt-toolkit~=3.0.52; extra == "all"
|
|
47
47
|
Provides-Extra: mcp-service
|
|
48
|
-
Requires-Dist: meshagent-agents[all]==0.44.
|
|
49
|
-
Requires-Dist: meshagent-api==0.44.
|
|
50
|
-
Requires-Dist: meshagent-mcp==0.44.
|
|
51
|
-
Requires-Dist: meshagent-tools==0.44.
|
|
48
|
+
Requires-Dist: meshagent-agents[all]==0.44.13; extra == "mcp-service"
|
|
49
|
+
Requires-Dist: meshagent-api==0.44.13; extra == "mcp-service"
|
|
50
|
+
Requires-Dist: meshagent-mcp==0.44.13; extra == "mcp-service"
|
|
51
|
+
Requires-Dist: meshagent-tools==0.44.13; extra == "mcp-service"
|
|
52
52
|
Requires-Dist: supabase-auth~=2.28.0; extra == "mcp-service"
|
|
53
53
|
Dynamic: license-file
|
|
54
54
|
|
|
@@ -2019,7 +2019,7 @@ def build_process_agent(
|
|
|
2019
2019
|
from meshagent.agents.messages import TurnStart, TurnSteer
|
|
2020
2020
|
from meshagent.agents.process import AgentSupervisor, LLMAgentProcess
|
|
2021
2021
|
from meshagent.tools import RoomToolContext, Toolkit
|
|
2022
|
-
from meshagent.tools.hosting import _RemoteToolkitWrapper,
|
|
2022
|
+
from meshagent.tools.hosting import _RemoteToolkitWrapper, start_hosted_toolkit
|
|
2023
2023
|
|
|
2024
2024
|
requirements = []
|
|
2025
2025
|
toolkits = []
|
|
@@ -2284,7 +2284,7 @@ def build_process_agent(
|
|
|
2284
2284
|
|
|
2285
2285
|
self._exposed_toolkits = await self.get_exposed_toolkits()
|
|
2286
2286
|
for toolkit in self._exposed_toolkits:
|
|
2287
|
-
hosted_toolkit = await
|
|
2287
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
2288
2288
|
room=room,
|
|
2289
2289
|
toolkit=toolkit,
|
|
2290
2290
|
)
|
|
@@ -13,7 +13,7 @@ from meshagent.cli import async_typer
|
|
|
13
13
|
from meshagent.cli.helper import resolve_project_id, resolve_room, resolve_key
|
|
14
14
|
|
|
15
15
|
from meshagent.tools import Toolkit
|
|
16
|
-
from meshagent.tools.hosting import
|
|
16
|
+
from meshagent.tools.hosting import start_hosted_toolkit
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
from meshagent.api.services import ServiceHost
|
|
@@ -203,7 +203,7 @@ async def sse(
|
|
|
203
203
|
description=toolkit.description,
|
|
204
204
|
)
|
|
205
205
|
|
|
206
|
-
hosted_toolkit = await
|
|
206
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
207
207
|
room=client,
|
|
208
208
|
toolkit=toolkit,
|
|
209
209
|
)
|
|
@@ -320,7 +320,7 @@ async def streamable_http(
|
|
|
320
320
|
description=toolkit.description,
|
|
321
321
|
)
|
|
322
322
|
|
|
323
|
-
hosted_toolkit = await
|
|
323
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
324
324
|
room=client,
|
|
325
325
|
toolkit=toolkit,
|
|
326
326
|
)
|
|
@@ -422,7 +422,7 @@ async def stdio(
|
|
|
422
422
|
description=toolkit.description,
|
|
423
423
|
)
|
|
424
424
|
|
|
425
|
-
hosted_toolkit = await
|
|
425
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
426
426
|
room=client,
|
|
427
427
|
toolkit=toolkit,
|
|
428
428
|
)
|
|
@@ -9,7 +9,7 @@ import aiofiles
|
|
|
9
9
|
import aiofiles.os
|
|
10
10
|
from meshagent.api import RoomClient, WebSocketClientProtocol, websocket_room_url
|
|
11
11
|
from meshagent.tools import FunctionTool, Toolkit, ToolContext
|
|
12
|
-
from meshagent.tools.hosting import
|
|
12
|
+
from meshagent.tools.hosting import start_hosted_toolkit
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
PROOF_PATH = Path(__file__).with_name("agent-proof.json")
|
|
@@ -108,7 +108,7 @@ async def main() -> None:
|
|
|
108
108
|
|
|
109
109
|
async def run_agent_toolkit_proof(room: RoomClient) -> None:
|
|
110
110
|
probe = os.environ.get("MESHAGENT_CREATE_DEV_PROBE")
|
|
111
|
-
hosted_toolkit = await
|
|
111
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
112
112
|
room=room,
|
|
113
113
|
toolkit=PythonAgentToolkit(),
|
|
114
114
|
)
|
|
@@ -12,7 +12,7 @@ import aiofiles.os
|
|
|
12
12
|
from aiohttp import web
|
|
13
13
|
from meshagent.api import RoomClient, WebSocketClientProtocol, websocket_room_url
|
|
14
14
|
from meshagent.tools import FunctionTool, Toolkit, ToolContext
|
|
15
|
-
from meshagent.tools.hosting import
|
|
15
|
+
from meshagent.tools.hosting import start_hosted_toolkit
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
CONTENT_PATH = Path(__file__).with_name("dev-content.json")
|
|
@@ -189,7 +189,7 @@ async def run_dev_content_toolkit() -> None:
|
|
|
189
189
|
token=token,
|
|
190
190
|
)
|
|
191
191
|
async with RoomClient(protocol_factory=protocol.create_factory()) as room:
|
|
192
|
-
hosted_toolkit = await
|
|
192
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
193
193
|
room=room,
|
|
194
194
|
toolkit=PythonContentToolkit(),
|
|
195
195
|
)
|
|
@@ -335,7 +335,7 @@ def test_init_creates_python_backend_agent_by_default_in_non_tty(tmp_path) -> No
|
|
|
335
335
|
assert 'name="ping"' in server_py
|
|
336
336
|
assert 'name="status"' in server_py
|
|
337
337
|
assert 'name="echo"' in server_py
|
|
338
|
-
assert "
|
|
338
|
+
assert "start_hosted_toolkit" in server_py
|
|
339
339
|
assert "agent-proof.json" in server_py
|
|
340
340
|
assert "ThreadingHTTPServer" not in server_py
|
|
341
341
|
_assert_runtime_image_mount_deploy_yaml(
|
|
@@ -501,7 +501,7 @@ def test_init_creates_python_webserver_non_interactively(tmp_path) -> None:
|
|
|
501
501
|
assert 'name="create"' in server_py
|
|
502
502
|
assert 'name="update"' in server_py
|
|
503
503
|
assert 'name="search"' in server_py
|
|
504
|
-
assert "
|
|
504
|
+
assert "start_hosted_toolkit" in server_py
|
|
505
505
|
assert "dev-content.json" in server_py
|
|
506
506
|
assert "MESHAGENT_CREATE_DEV_PROBE" in server_py
|
|
507
507
|
assert "room.agents.invoke_tool" in server_py
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import typer
|
|
2
3
|
from rich import print
|
|
3
4
|
from typing import Annotated
|
|
@@ -19,6 +20,17 @@ from meshagent.cli.helper import (
|
|
|
19
20
|
app = async_typer.AsyncTyper(help="Send and receive messages in a room")
|
|
20
21
|
|
|
21
22
|
|
|
23
|
+
async def wait_for_messaging_participants(client: RoomClient, *, timeout: float = 3.0):
|
|
24
|
+
deadline = asyncio.get_running_loop().time() + timeout
|
|
25
|
+
while True:
|
|
26
|
+
participants = client.messaging.get_participants()
|
|
27
|
+
if participants:
|
|
28
|
+
return participants
|
|
29
|
+
if asyncio.get_running_loop().time() >= deadline:
|
|
30
|
+
return participants
|
|
31
|
+
await asyncio.sleep(0.25)
|
|
32
|
+
|
|
33
|
+
|
|
22
34
|
@app.async_command("list", help="List messaging-enabled participants")
|
|
23
35
|
async def messaging_list_participants_command(
|
|
24
36
|
*,
|
|
@@ -47,7 +59,7 @@ async def messaging_list_participants_command(
|
|
|
47
59
|
# Must enable before we can see who else is enabled
|
|
48
60
|
await client.messaging.enable()
|
|
49
61
|
|
|
50
|
-
participants = client
|
|
62
|
+
participants = await wait_for_messaging_participants(client)
|
|
51
63
|
output = []
|
|
52
64
|
for p in participants:
|
|
53
65
|
output.append({"id": p.id, "role": p.role, "attributes": p._attributes})
|
|
@@ -94,7 +106,7 @@ async def messaging_send_command(
|
|
|
94
106
|
|
|
95
107
|
# Find the participant we want to message
|
|
96
108
|
participant = None
|
|
97
|
-
for p in client
|
|
109
|
+
for p in await wait_for_messaging_participants(client):
|
|
98
110
|
if p.id == to_participant_id:
|
|
99
111
|
participant = p
|
|
100
112
|
break
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from meshagent.cli.messaging import wait_for_messaging_participants
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class _FakeMessaging:
|
|
7
|
+
def __init__(self, snapshots):
|
|
8
|
+
self.snapshots = list(snapshots)
|
|
9
|
+
|
|
10
|
+
def get_participants(self):
|
|
11
|
+
if not self.snapshots:
|
|
12
|
+
return []
|
|
13
|
+
return self.snapshots.pop(0)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class _FakeClient:
|
|
17
|
+
def __init__(self, snapshots):
|
|
18
|
+
self.messaging = _FakeMessaging(snapshots)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@pytest.mark.asyncio
|
|
22
|
+
async def test_wait_for_messaging_participants_waits_for_discovery(monkeypatch):
|
|
23
|
+
sleep_calls = []
|
|
24
|
+
|
|
25
|
+
async def fake_sleep(delay):
|
|
26
|
+
sleep_calls.append(delay)
|
|
27
|
+
|
|
28
|
+
monkeypatch.setattr("meshagent.cli.messaging.asyncio.sleep", fake_sleep)
|
|
29
|
+
|
|
30
|
+
participant = object()
|
|
31
|
+
client = _FakeClient([[], [participant]])
|
|
32
|
+
|
|
33
|
+
result = await wait_for_messaging_participants(client, timeout=1)
|
|
34
|
+
|
|
35
|
+
assert result == [participant]
|
|
36
|
+
assert sleep_calls == [0.25]
|
|
@@ -5409,7 +5409,7 @@ def build_process_agent(
|
|
|
5409
5409
|
)
|
|
5410
5410
|
from meshagent.codex.supervisor import CodexBackend
|
|
5411
5411
|
from meshagent.tools import RoomToolContext, Toolkit
|
|
5412
|
-
from meshagent.tools.hosting import _RemoteToolkitWrapper,
|
|
5412
|
+
from meshagent.tools.hosting import _RemoteToolkitWrapper, start_hosted_toolkit
|
|
5413
5413
|
|
|
5414
5414
|
requirements = []
|
|
5415
5415
|
toolkits = []
|
|
@@ -6136,7 +6136,7 @@ def build_process_agent(
|
|
|
6136
6136
|
for toolkit in self._exposed_toolkits:
|
|
6137
6137
|
if room is None:
|
|
6138
6138
|
continue
|
|
6139
|
-
hosted_toolkit = await
|
|
6139
|
+
hosted_toolkit = await start_hosted_toolkit(
|
|
6140
6140
|
room=room,
|
|
6141
6141
|
toolkit=toolkit,
|
|
6142
6142
|
)
|