meshagent-cli 0.44.4__tar.gz → 0.44.6__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.4 → meshagent_cli-0.44.6}/PKG-INFO +17 -17
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/root_commands.py +3 -46
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/root_commands_test.py +5 -192
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tool_integrations.py +5 -387
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tool_integrations_test.py +138 -396
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/setup.py +15 -340
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/setup_test.py +29 -149
- meshagent_cli-0.44.6/meshagent/cli/version.py +1 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent_cli.egg-info/PKG-INFO +17 -17
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent_cli.egg-info/requires.txt +16 -16
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/pyproject.toml +16 -16
- meshagent_cli-0.44.4/meshagent/cli/version.py +0 -1
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/LICENSE +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/README.md +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/__init__.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/_filedrop.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/agent.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/agent_cli_options_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/agent_package_cli.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/agent_package_cli_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/agents.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/agents_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/api_keys.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/api_keys_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/ask.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/ask_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/async_typer.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/async_typer_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/auth.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/auth_async.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/auth_async_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/auth_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/call.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/chatbot.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/cli.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/cli_mcp.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/cli_secrets.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/cli_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/common_options.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/config.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/config_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/containers.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/containers_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/create.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/create_project_templates/__init__.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/create_project_templates/python/backend-agent/server.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/create_project_templates/python/contact-form/server.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/create_project_templates/python/webserver/server.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/create_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/dataset.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/dataset_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/developer.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/developer_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/doctor.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/doctor_dockerfiles/__init__.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/doctor_templates/__init__.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/doctor_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/feeds.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/helper.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/helper_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/helpers.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/host.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/image.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/image_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/launch.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/launch_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/llm.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/llm_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/local_settings.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/local_settings_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/mailbot.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/mailbot_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/mailboxes.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/meeting_transcriber.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/memory.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/memory_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/meshagent_images.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/meshagent_images_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/messaging.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/multi.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/oauth2.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/oauth2_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/oci_archive.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/oci_archive_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/participant_token.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/port.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/port_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/preamble_rules.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/preamble_rules_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/process.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/process_live_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/process_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/projects.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/projects_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/queue.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/queue_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/registry.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/registry_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/room.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/room_connect.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/room_connect_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/room_services.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/rooms.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/rooms_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/routes.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/scheduled_tasks.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/scheduled_tasks_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/services.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/services_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/sessions.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/sessions_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/storage.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/storage_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/subscriptions.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/sync.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/sync_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/task_runner.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/task_runner_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/thread_inspect.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/thread_inspect_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/thread_sidebar.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tool_call_summary.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tool_call_summary_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/__init__.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/auth_switch.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/auth_switch_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/create.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/deploy_room.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/deploy_room_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/project_activate.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/project_activate_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/tui/setup_splash_frames.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/version_check.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/version_check_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/voicebot.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/webhook.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/webserver.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/webserver_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/worker.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent/cli/worker_test.py +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent_cli.egg-info/SOURCES.txt +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent_cli.egg-info/dependency_links.txt +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent_cli.egg-info/entry_points.txt +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/meshagent_cli.egg-info/top_level.txt +0 -0
- {meshagent_cli-0.44.4 → meshagent_cli-0.44.6}/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.6
|
|
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.6
|
|
26
|
+
Requires-Dist: meshagent-codex==0.44.6
|
|
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.6; extra == "all"
|
|
36
|
+
Requires-Dist: meshagent-api[all]==0.44.6; extra == "all"
|
|
37
|
+
Requires-Dist: meshagent-commoncrawl==0.44.6; extra == "all"
|
|
38
|
+
Requires-Dist: meshagent-scrapy==0.44.6; extra == "all"
|
|
39
|
+
Requires-Dist: meshagent-computers==0.44.6; extra == "all"
|
|
40
|
+
Requires-Dist: meshagent-openai==0.44.6; extra == "all"
|
|
41
|
+
Requires-Dist: meshagent-anthropic==0.44.6; extra == "all"
|
|
42
|
+
Requires-Dist: meshagent-otel==0.44.6; extra == "all"
|
|
43
|
+
Requires-Dist: meshagent-mcp==0.44.6; extra == "all"
|
|
44
|
+
Requires-Dist: meshagent-tools==0.44.6; 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.6; extra == "mcp-service"
|
|
49
|
+
Requires-Dist: meshagent-api==0.44.6; extra == "mcp-service"
|
|
50
|
+
Requires-Dist: meshagent-mcp==0.44.6; extra == "mcp-service"
|
|
51
|
+
Requires-Dist: meshagent-tools==0.44.6; extra == "mcp-service"
|
|
52
52
|
Requires-Dist: supabase-auth~=2.28.0; extra == "mcp-service"
|
|
53
53
|
Dynamic: license-file
|
|
54
54
|
|
|
@@ -98,18 +98,14 @@ def _setup_command(
|
|
|
98
98
|
)
|
|
99
99
|
from meshagent.cli.tool_integrations import (
|
|
100
100
|
CODEX_DEFAULT_PROFILE_ID,
|
|
101
|
-
clear_codex_default_profile_if_meshagent_project,
|
|
102
101
|
configure_codex_default_integration,
|
|
103
102
|
clear_claude_code_integration,
|
|
104
|
-
configure_codex_integration,
|
|
105
103
|
configure_claude_code_integration,
|
|
106
104
|
find_existing_codex_profiles,
|
|
107
|
-
find_current_codex_default_profile,
|
|
108
105
|
has_claude_code_cli,
|
|
109
106
|
has_codex_cli,
|
|
110
107
|
inspect_claude_code_integration,
|
|
111
108
|
remove_codex_integration,
|
|
112
|
-
replace_codex_integration,
|
|
113
109
|
)
|
|
114
110
|
from meshagent.cli.tui.setup import (
|
|
115
111
|
SetupClaudeConfiguration,
|
|
@@ -195,46 +191,16 @@ def _setup_command(
|
|
|
195
191
|
finally:
|
|
196
192
|
await client.close()
|
|
197
193
|
|
|
198
|
-
async def configure_codex_profile(profile_id: str) -> None:
|
|
199
|
-
configure_codex_integration(
|
|
200
|
-
profile_id=profile_id,
|
|
201
|
-
api_url=resolve_api_url(),
|
|
202
|
-
meshagent_executable=current_meshagent_executable,
|
|
203
|
-
)
|
|
204
|
-
|
|
205
|
-
async def replace_codex_profile(profile_id: str) -> None:
|
|
206
|
-
replace_codex_integration(
|
|
207
|
-
profile_id=profile_id,
|
|
208
|
-
api_url=resolve_api_url(),
|
|
209
|
-
meshagent_executable=current_meshagent_executable,
|
|
210
|
-
)
|
|
211
|
-
|
|
212
194
|
async def remove_codex_profile(profile_id: str) -> None:
|
|
213
195
|
remove_codex_integration(profile_id=profile_id)
|
|
214
196
|
|
|
215
|
-
async def list_existing_codex_profiles(
|
|
216
|
-
return find_existing_codex_profiles(
|
|
217
|
-
project_id=project_id,
|
|
218
|
-
api_url=resolve_api_url(),
|
|
219
|
-
)
|
|
220
|
-
|
|
221
|
-
async def get_current_codex_default_profile(project_id: str) -> str | None:
|
|
222
|
-
return find_current_codex_default_profile(
|
|
223
|
-
project_id=project_id,
|
|
224
|
-
api_url=resolve_api_url(),
|
|
225
|
-
)
|
|
197
|
+
async def list_existing_codex_profiles() -> list[str]:
|
|
198
|
+
return find_existing_codex_profiles()
|
|
226
199
|
|
|
227
200
|
async def configure_codex_default_profile(
|
|
228
201
|
project_id: str,
|
|
229
|
-
profile_id: str
|
|
202
|
+
profile_id: str,
|
|
230
203
|
) -> None:
|
|
231
|
-
if profile_id is None:
|
|
232
|
-
clear_codex_default_profile_if_meshagent_project(
|
|
233
|
-
project_id=project_id,
|
|
234
|
-
api_url=resolve_api_url(),
|
|
235
|
-
)
|
|
236
|
-
return
|
|
237
|
-
|
|
238
204
|
configure_codex_default_integration(
|
|
239
205
|
project_id=project_id,
|
|
240
206
|
provider_id=profile_id,
|
|
@@ -298,18 +264,9 @@ def _setup_command(
|
|
|
298
264
|
list_existing_codex_profiles_operation=(
|
|
299
265
|
list_existing_codex_profiles if codex_available else None
|
|
300
266
|
),
|
|
301
|
-
configure_codex_profile_operation=(
|
|
302
|
-
configure_codex_profile if codex_available else None
|
|
303
|
-
),
|
|
304
|
-
replace_codex_profile_operation=(
|
|
305
|
-
replace_codex_profile if codex_available else None
|
|
306
|
-
),
|
|
307
267
|
remove_codex_profile_operation=(
|
|
308
268
|
remove_codex_profile if codex_available else None
|
|
309
269
|
),
|
|
310
|
-
get_current_codex_default_profile_operation=(
|
|
311
|
-
get_current_codex_default_profile if codex_available else None
|
|
312
|
-
),
|
|
313
270
|
configure_codex_default_profile_operation=(
|
|
314
271
|
configure_codex_default_profile if codex_available else None
|
|
315
272
|
),
|
|
@@ -54,7 +54,6 @@ def test_version_command_prints_unavailable_server_version(
|
|
|
54
54
|
|
|
55
55
|
def test_setup_command_launches_ask_after_success(monkeypatch) -> None:
|
|
56
56
|
launched: list[dict[str, object]] = []
|
|
57
|
-
existing_codex_profile_requests: list[str] = []
|
|
58
57
|
|
|
59
58
|
async def _fake_get_active_project() -> str | None:
|
|
60
59
|
return None
|
|
@@ -70,17 +69,12 @@ def test_setup_command_launches_ask_after_success(monkeypatch) -> None:
|
|
|
70
69
|
assert kwargs["has_claude_code_cli"] is True
|
|
71
70
|
assert kwargs["default_codex_profile_name"] == "meshagent"
|
|
72
71
|
assert callable(kwargs["list_existing_codex_profiles_operation"])
|
|
73
|
-
assert callable(kwargs["configure_codex_profile_operation"])
|
|
74
|
-
assert callable(kwargs["replace_codex_profile_operation"])
|
|
75
72
|
assert callable(kwargs["remove_codex_profile_operation"])
|
|
76
|
-
assert callable(kwargs["get_current_codex_default_profile_operation"])
|
|
77
73
|
assert callable(kwargs["configure_codex_default_profile_operation"])
|
|
78
74
|
assert callable(kwargs["configure_claude_operation"])
|
|
79
75
|
assert callable(kwargs["inspect_claude_configuration_operation"])
|
|
80
76
|
assert callable(kwargs["clear_claude_operation"])
|
|
81
|
-
assert await kwargs["list_existing_codex_profiles_operation"](
|
|
82
|
-
"project-123"
|
|
83
|
-
) == ["meshagent"]
|
|
77
|
+
assert await kwargs["list_existing_codex_profiles_operation"]() == ["meshagent"]
|
|
84
78
|
return SetupWizardResult(
|
|
85
79
|
status="completed",
|
|
86
80
|
message="done",
|
|
@@ -149,9 +143,7 @@ def test_setup_command_launches_ask_after_success(monkeypatch) -> None:
|
|
|
149
143
|
)
|
|
150
144
|
monkeypatch.setattr(
|
|
151
145
|
"meshagent.cli.tool_integrations.find_existing_codex_profiles",
|
|
152
|
-
lambda *,
|
|
153
|
-
existing_codex_profile_requests.append(project_id or "") or ["meshagent"]
|
|
154
|
-
),
|
|
146
|
+
lambda *, config_path=None: ["meshagent"],
|
|
155
147
|
)
|
|
156
148
|
monkeypatch.setattr(
|
|
157
149
|
"meshagent.cli.helper.CustomMeshagentClient",
|
|
@@ -178,7 +170,6 @@ def test_setup_command_launches_ask_after_success(monkeypatch) -> None:
|
|
|
178
170
|
"model": "gpt-5.5",
|
|
179
171
|
}
|
|
180
172
|
]
|
|
181
|
-
assert existing_codex_profile_requests == ["project-123"]
|
|
182
173
|
|
|
183
174
|
|
|
184
175
|
def test_setup_command_launches_create_after_sample_selection(monkeypatch) -> None:
|
|
@@ -265,10 +256,7 @@ def test_setup_command_passes_current_cli_path_to_claude_configuration(
|
|
|
265
256
|
assert kwargs["has_codex_cli"] is False
|
|
266
257
|
assert kwargs["has_claude_code_cli"] is True
|
|
267
258
|
assert kwargs["list_existing_codex_profiles_operation"] is None
|
|
268
|
-
assert kwargs["configure_codex_profile_operation"] is None
|
|
269
|
-
assert kwargs["replace_codex_profile_operation"] is None
|
|
270
259
|
assert kwargs["remove_codex_profile_operation"] is None
|
|
271
|
-
assert kwargs["get_current_codex_default_profile_operation"] is None
|
|
272
260
|
assert kwargs["configure_codex_default_profile_operation"] is None
|
|
273
261
|
assert callable(kwargs["configure_claude_operation"])
|
|
274
262
|
assert callable(kwargs["inspect_claude_configuration_operation"])
|
|
@@ -341,9 +329,7 @@ def test_setup_command_passes_current_cli_path_to_claude_configuration(
|
|
|
341
329
|
def test_setup_command_passes_codex_default_profile_operations(
|
|
342
330
|
monkeypatch,
|
|
343
331
|
) -> None:
|
|
344
|
-
current_default_requests: list[dict[str, str | None]] = []
|
|
345
332
|
configured_defaults: list[dict[str, str | None]] = []
|
|
346
|
-
cleared_defaults: list[dict[str, str | None]] = []
|
|
347
333
|
|
|
348
334
|
async def _fake_get_active_project() -> str | None:
|
|
349
335
|
return None
|
|
@@ -354,36 +340,14 @@ def test_setup_command_passes_codex_default_profile_operations(
|
|
|
354
340
|
async def _fake_run_setup_wizard_tui(**kwargs) -> SetupWizardResult:
|
|
355
341
|
assert kwargs["has_codex_cli"] is True
|
|
356
342
|
assert kwargs["has_claude_code_cli"] is False
|
|
357
|
-
assert callable(kwargs["replace_codex_profile_operation"])
|
|
358
343
|
assert callable(kwargs["remove_codex_profile_operation"])
|
|
359
|
-
assert callable(kwargs["get_current_codex_default_profile_operation"])
|
|
360
344
|
assert callable(kwargs["configure_codex_default_profile_operation"])
|
|
361
|
-
assert (
|
|
362
|
-
await kwargs["get_current_codex_default_profile_operation"]("project-123")
|
|
363
|
-
== "meshagent"
|
|
364
|
-
)
|
|
365
345
|
await kwargs["configure_codex_default_profile_operation"](
|
|
366
346
|
"project-123",
|
|
367
|
-
"meshagent
|
|
347
|
+
"meshagent",
|
|
368
348
|
)
|
|
369
|
-
await kwargs["configure_codex_default_profile_operation"]("project-123", None)
|
|
370
349
|
return SetupWizardResult(status="canceled", message="Setup canceled.")
|
|
371
350
|
|
|
372
|
-
def _fake_find_current_codex_default_profile(
|
|
373
|
-
*,
|
|
374
|
-
project_id: str | None = None,
|
|
375
|
-
api_url: str | None = None,
|
|
376
|
-
config_path=None,
|
|
377
|
-
) -> str | None:
|
|
378
|
-
current_default_requests.append(
|
|
379
|
-
{
|
|
380
|
-
"project_id": project_id,
|
|
381
|
-
"api_url": api_url,
|
|
382
|
-
"config_path": None if config_path is None else str(config_path),
|
|
383
|
-
}
|
|
384
|
-
)
|
|
385
|
-
return "meshagent"
|
|
386
|
-
|
|
387
351
|
def _fake_configure_codex_default_integration(
|
|
388
352
|
*,
|
|
389
353
|
project_id: str | None = None,
|
|
@@ -404,21 +368,6 @@ def test_setup_command_passes_codex_default_profile_operations(
|
|
|
404
368
|
)
|
|
405
369
|
assert kwargs == {}
|
|
406
370
|
|
|
407
|
-
def _fake_clear_codex_default_profile_if_meshagent_project(
|
|
408
|
-
*,
|
|
409
|
-
project_id: str | None = None,
|
|
410
|
-
api_url: str | None = None,
|
|
411
|
-
config_path=None,
|
|
412
|
-
) -> bool:
|
|
413
|
-
cleared_defaults.append(
|
|
414
|
-
{
|
|
415
|
-
"project_id": project_id,
|
|
416
|
-
"api_url": api_url,
|
|
417
|
-
"config_path": None if config_path is None else str(config_path),
|
|
418
|
-
}
|
|
419
|
-
)
|
|
420
|
-
return True
|
|
421
|
-
|
|
422
371
|
monkeypatch.setattr(
|
|
423
372
|
"meshagent.cli.helper.get_active_project",
|
|
424
373
|
_fake_get_active_project,
|
|
@@ -439,21 +388,10 @@ def test_setup_command_passes_codex_default_profile_operations(
|
|
|
439
388
|
"meshagent.cli.tool_integrations.has_claude_code_cli",
|
|
440
389
|
lambda: False,
|
|
441
390
|
)
|
|
442
|
-
monkeypatch.setattr(
|
|
443
|
-
"meshagent.cli.tool_integrations.find_current_codex_default_profile",
|
|
444
|
-
_fake_find_current_codex_default_profile,
|
|
445
|
-
)
|
|
446
391
|
monkeypatch.setattr(
|
|
447
392
|
"meshagent.cli.tool_integrations.configure_codex_default_integration",
|
|
448
393
|
_fake_configure_codex_default_integration,
|
|
449
394
|
)
|
|
450
|
-
monkeypatch.setattr(
|
|
451
|
-
(
|
|
452
|
-
"meshagent.cli.tool_integrations."
|
|
453
|
-
"clear_codex_default_profile_if_meshagent_project"
|
|
454
|
-
),
|
|
455
|
-
_fake_clear_codex_default_profile_if_meshagent_project,
|
|
456
|
-
)
|
|
457
395
|
monkeypatch.setattr(
|
|
458
396
|
"meshagent.cli.local_settings.resolve_api_url",
|
|
459
397
|
lambda *, api_url=None: "https://api.meshagent.com",
|
|
@@ -473,29 +411,15 @@ def test_setup_command_passes_codex_default_profile_operations(
|
|
|
473
411
|
assert callback is not None
|
|
474
412
|
callback()
|
|
475
413
|
|
|
476
|
-
assert current_default_requests == [
|
|
477
|
-
{
|
|
478
|
-
"project_id": "project-123",
|
|
479
|
-
"api_url": "https://api.meshagent.com",
|
|
480
|
-
"config_path": None,
|
|
481
|
-
}
|
|
482
|
-
]
|
|
483
414
|
assert configured_defaults == [
|
|
484
415
|
{
|
|
485
416
|
"project_id": "project-123",
|
|
486
|
-
"provider_id": "meshagent
|
|
417
|
+
"provider_id": "meshagent",
|
|
487
418
|
"api_url": "https://api.meshagent.com",
|
|
488
419
|
"meshagent_executable": "/tmp/current/bin/meshagent",
|
|
489
420
|
"config_path": None,
|
|
490
421
|
}
|
|
491
422
|
]
|
|
492
|
-
assert cleared_defaults == [
|
|
493
|
-
{
|
|
494
|
-
"project_id": "project-123",
|
|
495
|
-
"api_url": "https://api.meshagent.com",
|
|
496
|
-
"config_path": None,
|
|
497
|
-
}
|
|
498
|
-
]
|
|
499
423
|
|
|
500
424
|
|
|
501
425
|
def test_setup_command_does_not_launch_ask_when_not_completed(monkeypatch) -> None:
|
|
@@ -510,10 +434,7 @@ def test_setup_command_does_not_launch_ask_when_not_completed(monkeypatch) -> No
|
|
|
510
434
|
assert kwargs["has_codex_cli"] is False
|
|
511
435
|
assert kwargs["has_claude_code_cli"] is False
|
|
512
436
|
assert kwargs["list_existing_codex_profiles_operation"] is None
|
|
513
|
-
assert kwargs["configure_codex_profile_operation"] is None
|
|
514
|
-
assert kwargs["replace_codex_profile_operation"] is None
|
|
515
437
|
assert kwargs["remove_codex_profile_operation"] is None
|
|
516
|
-
assert kwargs["get_current_codex_default_profile_operation"] is None
|
|
517
438
|
assert kwargs["configure_codex_default_profile_operation"] is None
|
|
518
439
|
assert kwargs["configure_claude_operation"] is None
|
|
519
440
|
assert kwargs["inspect_claude_configuration_operation"] is None
|
|
@@ -565,85 +486,9 @@ def test_setup_command_does_not_launch_ask_when_not_completed(monkeypatch) -> No
|
|
|
565
486
|
assert launched is False
|
|
566
487
|
|
|
567
488
|
|
|
568
|
-
def
|
|
489
|
+
def test_setup_command_passes_codex_remove_operation(
|
|
569
490
|
monkeypatch,
|
|
570
491
|
) -> None:
|
|
571
|
-
captured: dict[str, str | None] = {}
|
|
572
|
-
|
|
573
|
-
async def _fake_get_active_project() -> str | None:
|
|
574
|
-
return None
|
|
575
|
-
|
|
576
|
-
async def _fake_get_access_token() -> str | None:
|
|
577
|
-
return None
|
|
578
|
-
|
|
579
|
-
async def _fake_run_setup_wizard_tui(**kwargs) -> SetupWizardResult:
|
|
580
|
-
assert kwargs["has_codex_cli"] is True
|
|
581
|
-
assert callable(kwargs["configure_codex_profile_operation"])
|
|
582
|
-
await kwargs["configure_codex_profile_operation"]("meshagent-work")
|
|
583
|
-
return SetupWizardResult(status="canceled", message="Setup canceled.")
|
|
584
|
-
|
|
585
|
-
def _fake_configure_codex_integration(
|
|
586
|
-
*,
|
|
587
|
-
profile_id: str,
|
|
588
|
-
api_url: str | None = None,
|
|
589
|
-
meshagent_executable: str | None = None,
|
|
590
|
-
**kwargs,
|
|
591
|
-
) -> None:
|
|
592
|
-
captured["profile_id"] = profile_id
|
|
593
|
-
captured["api_url"] = api_url
|
|
594
|
-
captured["meshagent_executable"] = meshagent_executable
|
|
595
|
-
assert kwargs == {}
|
|
596
|
-
|
|
597
|
-
monkeypatch.setattr(
|
|
598
|
-
"meshagent.cli.helper.get_active_project",
|
|
599
|
-
_fake_get_active_project,
|
|
600
|
-
)
|
|
601
|
-
monkeypatch.setattr(
|
|
602
|
-
"meshagent.cli.tui.setup.run_setup_wizard_tui",
|
|
603
|
-
_fake_run_setup_wizard_tui,
|
|
604
|
-
)
|
|
605
|
-
monkeypatch.setattr(
|
|
606
|
-
"meshagent.cli.auth_async.get_access_token",
|
|
607
|
-
_fake_get_access_token,
|
|
608
|
-
)
|
|
609
|
-
monkeypatch.setattr(
|
|
610
|
-
"meshagent.cli.tool_integrations.has_codex_cli",
|
|
611
|
-
lambda: True,
|
|
612
|
-
)
|
|
613
|
-
monkeypatch.setattr(
|
|
614
|
-
"meshagent.cli.tool_integrations.configure_codex_integration",
|
|
615
|
-
_fake_configure_codex_integration,
|
|
616
|
-
)
|
|
617
|
-
monkeypatch.setattr(
|
|
618
|
-
"meshagent.cli.local_settings.resolve_api_url",
|
|
619
|
-
lambda *, api_url=None: "https://api.meshagent.com",
|
|
620
|
-
)
|
|
621
|
-
monkeypatch.setattr(
|
|
622
|
-
root_commands,
|
|
623
|
-
"_current_meshagent_executable",
|
|
624
|
-
lambda: "/tmp/current/bin/meshagent",
|
|
625
|
-
)
|
|
626
|
-
monkeypatch.setattr(
|
|
627
|
-
root_commands,
|
|
628
|
-
"_run_async",
|
|
629
|
-
lambda coro: asyncio.run(coro),
|
|
630
|
-
)
|
|
631
|
-
|
|
632
|
-
callback = root_commands.setup_command.callback
|
|
633
|
-
assert callback is not None
|
|
634
|
-
callback()
|
|
635
|
-
|
|
636
|
-
assert captured == {
|
|
637
|
-
"profile_id": "meshagent-work",
|
|
638
|
-
"api_url": "https://api.meshagent.com",
|
|
639
|
-
"meshagent_executable": "/tmp/current/bin/meshagent",
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
def test_setup_command_passes_codex_replace_and_remove_operations(
|
|
644
|
-
monkeypatch,
|
|
645
|
-
) -> None:
|
|
646
|
-
replaced: list[dict[str, str | None]] = []
|
|
647
492
|
removed: list[str] = []
|
|
648
493
|
|
|
649
494
|
async def _fake_get_active_project() -> str | None:
|
|
@@ -654,28 +499,10 @@ def test_setup_command_passes_codex_replace_and_remove_operations(
|
|
|
654
499
|
|
|
655
500
|
async def _fake_run_setup_wizard_tui(**kwargs) -> SetupWizardResult:
|
|
656
501
|
assert kwargs["has_codex_cli"] is True
|
|
657
|
-
assert callable(kwargs["replace_codex_profile_operation"])
|
|
658
502
|
assert callable(kwargs["remove_codex_profile_operation"])
|
|
659
|
-
await kwargs["replace_codex_profile_operation"]("meshagent")
|
|
660
503
|
await kwargs["remove_codex_profile_operation"]("meshagent-work")
|
|
661
504
|
return SetupWizardResult(status="canceled", message="Setup canceled.")
|
|
662
505
|
|
|
663
|
-
def _fake_replace_codex_integration(
|
|
664
|
-
*,
|
|
665
|
-
profile_id: str,
|
|
666
|
-
api_url: str | None = None,
|
|
667
|
-
meshagent_executable: str | None = None,
|
|
668
|
-
**kwargs,
|
|
669
|
-
) -> None:
|
|
670
|
-
replaced.append(
|
|
671
|
-
{
|
|
672
|
-
"profile_id": profile_id,
|
|
673
|
-
"api_url": api_url,
|
|
674
|
-
"meshagent_executable": meshagent_executable,
|
|
675
|
-
}
|
|
676
|
-
)
|
|
677
|
-
assert kwargs == {}
|
|
678
|
-
|
|
679
506
|
def _fake_remove_codex_integration(*, profile_id: str, **kwargs) -> bool:
|
|
680
507
|
removed.append(profile_id)
|
|
681
508
|
assert kwargs == {}
|
|
@@ -701,10 +528,6 @@ def test_setup_command_passes_codex_replace_and_remove_operations(
|
|
|
701
528
|
"meshagent.cli.tool_integrations.has_claude_code_cli",
|
|
702
529
|
lambda: False,
|
|
703
530
|
)
|
|
704
|
-
monkeypatch.setattr(
|
|
705
|
-
"meshagent.cli.tool_integrations.replace_codex_integration",
|
|
706
|
-
_fake_replace_codex_integration,
|
|
707
|
-
)
|
|
708
531
|
monkeypatch.setattr(
|
|
709
532
|
"meshagent.cli.tool_integrations.remove_codex_integration",
|
|
710
533
|
_fake_remove_codex_integration,
|
|
@@ -728,13 +551,6 @@ def test_setup_command_passes_codex_replace_and_remove_operations(
|
|
|
728
551
|
assert callback is not None
|
|
729
552
|
callback()
|
|
730
553
|
|
|
731
|
-
assert replaced == [
|
|
732
|
-
{
|
|
733
|
-
"profile_id": "meshagent",
|
|
734
|
-
"api_url": "https://api.meshagent.com",
|
|
735
|
-
"meshagent_executable": "/tmp/current/bin/meshagent",
|
|
736
|
-
}
|
|
737
|
-
]
|
|
738
554
|
assert removed == ["meshagent-work"]
|
|
739
555
|
|
|
740
556
|
|
|
@@ -836,10 +652,7 @@ def test_setup_command_passes_api_url_to_login_operation(monkeypatch) -> None:
|
|
|
836
652
|
assert kwargs["has_codex_cli"] is False
|
|
837
653
|
assert kwargs["has_claude_code_cli"] is False
|
|
838
654
|
assert kwargs["list_existing_codex_profiles_operation"] is None
|
|
839
|
-
assert kwargs["configure_codex_profile_operation"] is None
|
|
840
|
-
assert kwargs["replace_codex_profile_operation"] is None
|
|
841
655
|
assert kwargs["remove_codex_profile_operation"] is None
|
|
842
|
-
assert kwargs["get_current_codex_default_profile_operation"] is None
|
|
843
656
|
assert kwargs["configure_codex_default_profile_operation"] is None
|
|
844
657
|
assert kwargs["configure_claude_operation"] is None
|
|
845
658
|
assert kwargs["inspect_claude_configuration_operation"] is None
|