meshagent-cli 0.46.2__tar.gz → 0.46.4__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.
Files changed (154) hide show
  1. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/PKG-INFO +17 -17
  2. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/ask.py +1 -1
  3. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/ask_test.py +24 -24
  4. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/chatbot.py +5 -5
  5. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create_test.py +9 -0
  6. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/helper.py +4 -4
  7. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/mailbot.py +4 -4
  8. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/mailboxes.py +1 -2
  9. meshagent_cli-0.46.4/meshagent/cli/mailboxes_test.py +43 -0
  10. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/process.py +147 -56
  11. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/process_test.py +305 -95
  12. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/queue.py +2 -2
  13. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/queue_test.py +70 -2
  14. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/root_commands.py +20 -45
  15. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/root_commands_test.py +126 -5
  16. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/task_runner.py +5 -5
  17. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tool_integrations.py +1 -1
  18. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tool_integrations_test.py +19 -19
  19. meshagent_cli-0.46.4/meshagent/cli/version.py +1 -0
  20. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/worker.py +4 -4
  21. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent_cli.egg-info/PKG-INFO +17 -17
  22. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent_cli.egg-info/SOURCES.txt +1 -0
  23. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent_cli.egg-info/requires.txt +16 -16
  24. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/pyproject.toml +16 -16
  25. meshagent_cli-0.46.2/meshagent/cli/version.py +0 -1
  26. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/LICENSE +0 -0
  27. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/README.md +0 -0
  28. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/__init__.py +0 -0
  29. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/_filedrop.py +0 -0
  30. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/agent.py +0 -0
  31. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/agent_cli_options_test.py +0 -0
  32. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/agent_package_cli.py +0 -0
  33. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/agent_package_cli_test.py +0 -0
  34. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/agents.py +0 -0
  35. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/agents_test.py +0 -0
  36. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/async_typer.py +0 -0
  37. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/async_typer_test.py +0 -0
  38. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/auth.py +0 -0
  39. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/auth_async.py +0 -0
  40. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/auth_async_test.py +0 -0
  41. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/auth_test.py +0 -0
  42. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/call.py +0 -0
  43. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/cli.py +0 -0
  44. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/cli_mcp.py +0 -0
  45. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/cli_test.py +0 -0
  46. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/common_options.py +0 -0
  47. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/config.py +0 -0
  48. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/config_test.py +0 -0
  49. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/containers.py +0 -0
  50. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/containers_test.py +0 -0
  51. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create.py +0 -0
  52. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create_project_templates/__init__.py +0 -0
  53. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create_project_templates/python/backend-agent/server.py +0 -0
  54. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create_project_templates/python/contact-form/server.py +0 -0
  55. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create_project_templates/python/task-queue-dashboard/server.py +0 -0
  56. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/create_project_templates/python/webserver/server.py +0 -0
  57. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/dataset.py +0 -0
  58. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/dataset_test.py +0 -0
  59. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/developer.py +0 -0
  60. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/developer_test.py +0 -0
  61. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/doctor.py +0 -0
  62. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/doctor_dockerfiles/__init__.py +0 -0
  63. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/doctor_templates/__init__.py +0 -0
  64. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/doctor_test.py +0 -0
  65. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/feeds.py +0 -0
  66. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/helper_test.py +0 -0
  67. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/helpers.py +0 -0
  68. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/host.py +0 -0
  69. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/iam.py +0 -0
  70. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/iam_test.py +0 -0
  71. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/image.py +0 -0
  72. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/image_test.py +0 -0
  73. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/launch.py +0 -0
  74. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/launch_test.py +0 -0
  75. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/llm.py +0 -0
  76. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/llm_test.py +0 -0
  77. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/local_settings.py +0 -0
  78. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/local_settings_test.py +0 -0
  79. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/mailbot_test.py +0 -0
  80. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/meeting_transcriber.py +0 -0
  81. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/memory.py +0 -0
  82. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/memory_test.py +0 -0
  83. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/meshagent_images.py +0 -0
  84. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/meshagent_images_test.py +0 -0
  85. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/messaging.py +0 -0
  86. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/messaging_test.py +0 -0
  87. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/multi.py +0 -0
  88. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/oci_archive.py +0 -0
  89. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/oci_archive_test.py +0 -0
  90. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/participant_token.py +0 -0
  91. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/port.py +0 -0
  92. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/port_test.py +0 -0
  93. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/preamble_rules.py +0 -0
  94. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/preamble_rules_test.py +0 -0
  95. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/process_live_test.py +0 -0
  96. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/projects.py +0 -0
  97. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/projects_test.py +0 -0
  98. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/registry.py +0 -0
  99. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/registry_test.py +0 -0
  100. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/room.py +0 -0
  101. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/room_connect.py +0 -0
  102. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/room_connect_test.py +0 -0
  103. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/room_services.py +0 -0
  104. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/room_services_test.py +0 -0
  105. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/rooms.py +0 -0
  106. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/rooms_test.py +0 -0
  107. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/routes.py +0 -0
  108. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/routes_test.py +0 -0
  109. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/scheduled_tasks.py +0 -0
  110. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/scheduled_tasks_test.py +0 -0
  111. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/secrets.py +0 -0
  112. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/secrets_test.py +0 -0
  113. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/service_accounts.py +0 -0
  114. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/service_accounts_test.py +0 -0
  115. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/services.py +0 -0
  116. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/services_test.py +0 -0
  117. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/sessions.py +0 -0
  118. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/sessions_test.py +0 -0
  119. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/sqlite.py +0 -0
  120. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/sqlite_test.py +0 -0
  121. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/storage.py +0 -0
  122. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/storage_test.py +0 -0
  123. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/subscriptions.py +0 -0
  124. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/sync.py +0 -0
  125. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/sync_test.py +0 -0
  126. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/task_runner_test.py +0 -0
  127. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/test.py +0 -0
  128. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/testing.py +0 -0
  129. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/thread_inspect.py +0 -0
  130. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/thread_inspect_test.py +0 -0
  131. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/thread_sidebar.py +0 -0
  132. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tool_call_summary.py +0 -0
  133. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tool_call_summary_test.py +0 -0
  134. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/__init__.py +0 -0
  135. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/auth_switch.py +0 -0
  136. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/auth_switch_test.py +0 -0
  137. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/create.py +0 -0
  138. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/deploy_room.py +0 -0
  139. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/deploy_room_test.py +0 -0
  140. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/project_activate.py +0 -0
  141. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/project_activate_test.py +0 -0
  142. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/setup.py +0 -0
  143. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/setup_splash_frames.py +0 -0
  144. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/tui/setup_test.py +0 -0
  145. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/version_check.py +0 -0
  146. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/version_check_test.py +0 -0
  147. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/voicebot.py +0 -0
  148. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/webserver.py +0 -0
  149. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/webserver_test.py +0 -0
  150. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent/cli/worker_test.py +0 -0
  151. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent_cli.egg-info/dependency_links.txt +0 -0
  152. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent_cli.egg-info/entry_points.txt +0 -0
  153. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/meshagent_cli.egg-info/top_level.txt +0 -0
  154. {meshagent_cli-0.46.2 → meshagent_cli-0.46.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-cli
3
- Version: 0.46.2
3
+ Version: 0.46.4
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.46.2
26
- Requires-Dist: meshagent-codex==0.46.2
25
+ Requires-Dist: meshagent-llm-proxy==0.46.4
26
+ Requires-Dist: meshagent-codex==0.46.4
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.46.2; extra == "all"
36
- Requires-Dist: meshagent-api[all]==0.46.2; extra == "all"
37
- Requires-Dist: meshagent-commoncrawl==0.46.2; extra == "all"
38
- Requires-Dist: meshagent-scrapy==0.46.2; extra == "all"
39
- Requires-Dist: meshagent-computers==0.46.2; extra == "all"
40
- Requires-Dist: meshagent-openai==0.46.2; extra == "all"
41
- Requires-Dist: meshagent-anthropic==0.46.2; extra == "all"
42
- Requires-Dist: meshagent-otel==0.46.2; extra == "all"
43
- Requires-Dist: meshagent-mcp==0.46.2; extra == "all"
44
- Requires-Dist: meshagent-tools==0.46.2; extra == "all"
35
+ Requires-Dist: meshagent-agents[all]==0.46.4; extra == "all"
36
+ Requires-Dist: meshagent-api[all]==0.46.4; extra == "all"
37
+ Requires-Dist: meshagent-commoncrawl==0.46.4; extra == "all"
38
+ Requires-Dist: meshagent-scrapy==0.46.4; extra == "all"
39
+ Requires-Dist: meshagent-computers==0.46.4; extra == "all"
40
+ Requires-Dist: meshagent-openai==0.46.4; extra == "all"
41
+ Requires-Dist: meshagent-anthropic==0.46.4; extra == "all"
42
+ Requires-Dist: meshagent-otel==0.46.4; extra == "all"
43
+ Requires-Dist: meshagent-mcp==0.46.4; extra == "all"
44
+ Requires-Dist: meshagent-tools==0.46.4; 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.46.2; extra == "mcp-service"
49
- Requires-Dist: meshagent-api==0.46.2; extra == "mcp-service"
50
- Requires-Dist: meshagent-mcp==0.46.2; extra == "mcp-service"
51
- Requires-Dist: meshagent-tools==0.46.2; extra == "mcp-service"
48
+ Requires-Dist: meshagent-agents[all]==0.46.4; extra == "mcp-service"
49
+ Requires-Dist: meshagent-api==0.46.4; extra == "mcp-service"
50
+ Requires-Dist: meshagent-mcp==0.46.4; extra == "mcp-service"
51
+ Requires-Dist: meshagent-tools==0.46.4; extra == "mcp-service"
52
52
  Requires-Dist: supabase-auth~=2.28.0; extra == "mcp-service"
53
53
  Dynamic: license-file
54
54
 
@@ -151,7 +151,7 @@ from meshagent.tools.storage import StorageToolLocalMount, StorageToolkit
151
151
 
152
152
  _MESHAGENT_PROJECT_ID_HEADER = "Meshagent-Project-Id"
153
153
  _MESHAGENT_TOKEN_ENV = "MESHAGENT_TOKEN"
154
- _DEFAULT_ASK_MODEL = "gpt-5.5"
154
+ _DEFAULT_ASK_MODEL = "gpt-5.6-sol"
155
155
  _ASK_ACTIVE_STATUS_STATES = {"queued", "in_progress", "running", "pending"}
156
156
  _ASK_TERMINAL_STATUS_STATES = {
157
157
  "completed",
@@ -61,7 +61,7 @@ class _PromptSendSession:
61
61
 
62
62
  class _FakeAskAdapter(LLMAdapter[object]):
63
63
  def default_model(self) -> str:
64
- return "gpt-5.5"
64
+ return "gpt-5.6-sol"
65
65
 
66
66
  def create_session(self, *, usage_callback=None) -> AgentSessionContext:
67
67
  return AgentSessionContext()
@@ -87,7 +87,7 @@ class _FakeAskAdapter(LLMAdapter[object]):
87
87
  del on_behalf_of
88
88
  del tool_choice
89
89
  del options
90
- assert model == "gpt-5.5"
90
+ assert model == "gpt-5.6-sol"
91
91
  thread_id = str(context.metadata["thread_id"])
92
92
  turn_id = str(context.metadata["turn_id"])
93
93
  assert event_handler is not None
@@ -259,7 +259,7 @@ async def test_build_ask_toolkits_mounts_create_samples_read_only(tmp_path) -> N
259
259
  sample_file.write_text("print('hello from sample')\n", encoding="utf-8")
260
260
 
261
261
  toolkits = ask_module._build_ask_toolkits(
262
- model="gpt-5.5",
262
+ model="gpt-5.6-sol",
263
263
  current_working_directory=str(project_dir),
264
264
  create_samples_path=str(samples_dir),
265
265
  )
@@ -464,7 +464,7 @@ def test_format_ask_tool_call_entry_hides_traceback_logs_for_failed_tools() -> N
464
464
  async def test_run_ask_process_returns_text_output() -> None:
465
465
  result = await ask_module._run_ask_process(
466
466
  prompt="hi",
467
- model="gpt-5.5",
467
+ model="gpt-5.6-sol",
468
468
  llm_adapter=_FakeAskAdapter(),
469
469
  )
470
470
 
@@ -481,7 +481,7 @@ async def test_run_ask_process_streams_text_deltas() -> None:
481
481
 
482
482
  result = await ask_module._run_ask_process(
483
483
  prompt="hi",
484
- model="gpt-5.5",
484
+ model="gpt-5.6-sol",
485
485
  llm_adapter=_FakeAskAdapter(),
486
486
  on_message=_on_message,
487
487
  )
@@ -500,7 +500,7 @@ async def test_run_ask_process_awaits_async_text_delta_callback() -> None:
500
500
 
501
501
  result = await ask_module._run_ask_process(
502
502
  prompt="hi",
503
- model="gpt-5.5",
503
+ model="gpt-5.6-sol",
504
504
  llm_adapter=_FakeAskAdapter(),
505
505
  on_message=_on_message,
506
506
  )
@@ -512,7 +512,7 @@ async def test_run_ask_process_awaits_async_text_delta_callback() -> None:
512
512
  @pytest.mark.asyncio
513
513
  async def test_ask_session_reuses_process_for_multiple_prompts() -> None:
514
514
  async with ask_module._AskSession(
515
- model="gpt-5.5",
515
+ model="gpt-5.6-sol",
516
516
  llm_adapter=_FakeAskAdapter(),
517
517
  ) as session:
518
518
  first = await session.ask(prompt="first")
@@ -527,7 +527,7 @@ async def test_ask_session_emits_custom_event_status_messages() -> None:
527
527
  statuses: list[str | None] = []
528
528
 
529
529
  async with ask_module._AskSession(
530
- model="gpt-5.5",
530
+ model="gpt-5.6-sol",
531
531
  llm_adapter=_FakeStatusAskAdapter(),
532
532
  ) as session:
533
533
  result = await session.ask(
@@ -1559,7 +1559,7 @@ def test_agent_file_content_delta_preserves_pdf_uri_for_tui_hydration() -> None:
1559
1559
  @pytest.mark.asyncio
1560
1560
  async def test_ask_session_adds_cwd_storage_and_builtin_tools() -> None:
1561
1561
  session = ask_module._AskSession(
1562
- model="gpt-5.5",
1562
+ model="gpt-5.6-sol",
1563
1563
  llm_adapter=_FakeAskAdapter(),
1564
1564
  current_working_directory="/tmp/ask-project",
1565
1565
  )
@@ -1585,7 +1585,7 @@ async def test_ask_session_adds_cwd_storage_and_builtin_tools() -> None:
1585
1585
  @pytest.mark.asyncio
1586
1586
  async def test_ask_session_adds_noninteractive_instruction_for_non_tty_mode() -> None:
1587
1587
  session = ask_module._AskSession(
1588
- model="gpt-5.5",
1588
+ model="gpt-5.6-sol",
1589
1589
  llm_adapter=_FakeAskAdapter(),
1590
1590
  current_working_directory="/tmp/ask-project",
1591
1591
  interactive=False,
@@ -1636,7 +1636,7 @@ def test_suppress_ask_process_logs_restores_logger_state() -> None:
1636
1636
 
1637
1637
  def test_build_ask_adapter_uses_websocket_mode_for_openai() -> None:
1638
1638
  adapter = ask_module._build_ask_adapter(
1639
- model="gpt-5.5",
1639
+ model="gpt-5.6-sol",
1640
1640
  project_id="project-123",
1641
1641
  access_token="oauth-token",
1642
1642
  )
@@ -1735,11 +1735,11 @@ async def test_ask_command_uses_oauth_token_and_renders_markdown_by_default(
1735
1735
  await ask_module.ask(
1736
1736
  project_id="project-123",
1737
1737
  message="hello",
1738
- model="gpt-5.5",
1738
+ model="gpt-5.6-sol",
1739
1739
  )
1740
1740
 
1741
1741
  assert captured == {
1742
- "model": "gpt-5.5",
1742
+ "model": "gpt-5.6-sol",
1743
1743
  "project_id": "project-123",
1744
1744
  "access_token": "oauth-token",
1745
1745
  }
@@ -1782,7 +1782,7 @@ def test_meshagent_ask_cli_invocation_prints_streamed_response(
1782
1782
  "--format",
1783
1783
  "text",
1784
1784
  "--model",
1785
- "gpt-5.5",
1785
+ "gpt-5.6-sol",
1786
1786
  ],
1787
1787
  )
1788
1788
 
@@ -1790,7 +1790,7 @@ def test_meshagent_ask_cli_invocation_prints_streamed_response(
1790
1790
  captured_stdout = result.output or capsys.readouterr().out
1791
1791
  assert captured_stdout == "hello world\n"
1792
1792
  assert captured == {
1793
- "model": "gpt-5.5",
1793
+ "model": "gpt-5.6-sol",
1794
1794
  "project_id": "project-123",
1795
1795
  "access_token": "cli-token",
1796
1796
  }
@@ -1914,11 +1914,11 @@ async def test_ask_command_prints_markdown_without_streaming(monkeypatch) -> Non
1914
1914
  project_id="project-123",
1915
1915
  message="hello",
1916
1916
  format="markdown",
1917
- model="gpt-5.5",
1917
+ model="gpt-5.6-sol",
1918
1918
  )
1919
1919
 
1920
1920
  assert captured == {
1921
- "model": "gpt-5.5",
1921
+ "model": "gpt-5.6-sol",
1922
1922
  "project_id": "project-123",
1923
1923
  "access_token": "oauth-token",
1924
1924
  }
@@ -1966,13 +1966,13 @@ async def test_ask_command_launches_tui_when_prompt_missing_in_tty(monkeypatch)
1966
1966
  await ask_module.ask(
1967
1967
  project_id="project-123",
1968
1968
  message=None,
1969
- model="gpt-5.5",
1969
+ model="gpt-5.6-sol",
1970
1970
  )
1971
1971
 
1972
- assert captured["model"] == "gpt-5.5"
1972
+ assert captured["model"] == "gpt-5.6-sol"
1973
1973
  assert captured["project_id"] == "project-123"
1974
1974
  assert captured["access_token"] == "oauth-token"
1975
- assert captured["tui_model"] == "gpt-5.5"
1975
+ assert captured["tui_model"] == "gpt-5.6-sol"
1976
1976
  assert captured["preamble_rule"] is True
1977
1977
 
1978
1978
 
@@ -1998,7 +1998,7 @@ async def test_ask_command_requires_message_when_not_tty(monkeypatch) -> None:
1998
1998
  await ask_module.ask(
1999
1999
  project_id="project-123",
2000
2000
  message=None,
2001
- model="gpt-5.5",
2001
+ model="gpt-5.6-sol",
2002
2002
  )
2003
2003
 
2004
2004
  assert exc.value.exit_code == 1
@@ -2027,7 +2027,7 @@ async def test_ask_command_requires_oauth_access_token(monkeypatch) -> None:
2027
2027
  await ask_module.ask(
2028
2028
  project_id="project-123",
2029
2029
  message="hello",
2030
- model="gpt-5.5",
2030
+ model="gpt-5.6-sol",
2031
2031
  )
2032
2032
 
2033
2033
  assert exc.value.exit_code == 1
@@ -2076,11 +2076,11 @@ async def test_ask_command_prefers_meshagent_token_over_oauth(monkeypatch) -> No
2076
2076
  project_id="project-123",
2077
2077
  message="hello",
2078
2078
  format="text",
2079
- model="gpt-5.5",
2079
+ model="gpt-5.6-sol",
2080
2080
  )
2081
2081
 
2082
2082
  assert captured == {
2083
- "model": "gpt-5.5",
2083
+ "model": "gpt-5.6-sol",
2084
2084
  "project_id": "project-123",
2085
2085
  "access_token": "room-token",
2086
2086
  }
@@ -2859,7 +2859,7 @@ async def join(
2859
2859
  ] = [],
2860
2860
  model: Annotated[
2861
2861
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
2862
- ] = "gpt-5.5",
2862
+ ] = "gpt-5.6-sol",
2863
2863
  image_generation: Annotated[
2864
2864
  Optional[str], typer.Option(..., help="Name of an image gen model")
2865
2865
  ] = None,
@@ -3268,7 +3268,7 @@ async def service(
3268
3268
  ] = [],
3269
3269
  model: Annotated[
3270
3270
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
3271
- ] = "gpt-5.5",
3271
+ ] = "gpt-5.6-sol",
3272
3272
  image_generation: Annotated[
3273
3273
  Optional[str], typer.Option(..., help="Name of an image gen model")
3274
3274
  ] = None,
@@ -3639,7 +3639,7 @@ async def spec(
3639
3639
  ] = [],
3640
3640
  model: Annotated[
3641
3641
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
3642
- ] = "gpt-5.5",
3642
+ ] = "gpt-5.6-sol",
3643
3643
  image_generation: Annotated[
3644
3644
  Optional[str], typer.Option(..., help="Name of an image gen model")
3645
3645
  ] = None,
@@ -4013,7 +4013,7 @@ async def deploy(
4013
4013
  ] = [],
4014
4014
  model: Annotated[
4015
4015
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
4016
- ] = "gpt-5.5",
4016
+ ] = "gpt-5.6-sol",
4017
4017
  image_generation: Annotated[
4018
4018
  Optional[str], typer.Option(..., help="Name of an image gen model")
4019
4019
  ] = None,
@@ -6072,7 +6072,7 @@ async def run(
6072
6072
  ] = [],
6073
6073
  model: Annotated[
6074
6074
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
6075
- ] = "gpt-5.5",
6075
+ ] = "gpt-5.6-sol",
6076
6076
  image_generation: Annotated[
6077
6077
  Optional[str], typer.Option(..., help="Name of an image gen model")
6078
6078
  ] = None,
@@ -1976,6 +1976,15 @@ def test_init_creates_flutter_webserver_non_interactively(tmp_path) -> None:
1976
1976
  dev_sh = (tmp_path / "scripts" / "dev.sh").read_text(encoding="utf-8")
1977
1977
  deploy_sh = (tmp_path / "scripts" / "deploy.sh").read_text(encoding="utf-8")
1978
1978
  _assert_template_dockerfile(tmp_path)
1979
+ dockerfile = (tmp_path / "Dockerfile").read_text(encoding="utf-8")
1980
+ assert "ghcr.io/cirruslabs/flutter" not in dockerfile
1981
+ assert (
1982
+ "FROM --platform=${FLUTTER_IMAGE_PLATFORM} ubuntu:24.04 AS build" in dockerfile
1983
+ )
1984
+ assert "ARG FLUTTER_VERSION=3.44.6" in dockerfile
1985
+ assert (
1986
+ "a6320fd72e9a2690c08e2a6a70874a30cb120dee7c78f49d2c628bd7c9e20525" in dockerfile
1987
+ )
1979
1988
  assert 'PUB_CACHE="${PUB_CACHE:-$ROOT/.pub-cache}"' in install_sh
1980
1989
  assert "command -v flutter" in install_sh
1981
1990
  assert "command -v docker" not in install_sh
@@ -87,7 +87,6 @@ DEPRECATED_REQUIRE_OPTION_ALIASES = {
87
87
  "--require-uuid": "--uuid",
88
88
  "--require-table-read": "--table-read",
89
89
  "--require-table-write": "--table-write",
90
- "--require-document-authoring": "--document-authoring",
91
90
  "--require-discovery": "--discovery",
92
91
  }
93
92
 
@@ -299,17 +298,18 @@ class CustomMeshagentClient(Meshagent):
299
298
  return await super().connect_room(project_id=project_id, room=room)
300
299
 
301
300
 
302
- async def get_client():
301
+ async def get_client(*, api_url: str | None = None):
302
+ resolved_api_url = resolve_api_url(api_url=api_url)
303
303
  key = os.getenv("MESHAGENT_API_KEY") or os.getenv("MESHAGENT_TOKEN")
304
304
  if key is not None or os.getenv("MESHAGENT_SESSION_ID") is not None:
305
305
  return CustomMeshagentClient(
306
- base_url=resolve_api_url(),
306
+ base_url=resolved_api_url,
307
307
  token=key,
308
308
  )
309
309
  else:
310
310
  access_token = await auth_async.get_access_token()
311
311
  return CustomMeshagentClient(
312
- base_url=resolve_api_url(),
312
+ base_url=resolved_api_url,
313
313
  token=access_token,
314
314
  )
315
315
 
@@ -659,7 +659,7 @@ async def join(
659
659
  ] = [],
660
660
  model: Annotated[
661
661
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
662
- ] = "gpt-5.5",
662
+ ] = "gpt-5.6-sol",
663
663
  require_shell: Annotated[
664
664
  Optional[bool],
665
665
  typer.Option("--shell", help="Enable function shell tool calling"),
@@ -976,7 +976,7 @@ async def service(
976
976
  ] = [],
977
977
  model: Annotated[
978
978
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
979
- ] = "gpt-5.5",
979
+ ] = "gpt-5.6-sol",
980
980
  require_shell: Annotated[
981
981
  Optional[bool],
982
982
  typer.Option("--shell", help="Enable function shell tool calling"),
@@ -1270,7 +1270,7 @@ async def spec(
1270
1270
  ] = [],
1271
1271
  model: Annotated[
1272
1272
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
1273
- ] = "gpt-5.5",
1273
+ ] = "gpt-5.6-sol",
1274
1274
  require_shell: Annotated[
1275
1275
  Optional[bool],
1276
1276
  typer.Option("--shell", help="Enable function shell tool calling"),
@@ -1575,7 +1575,7 @@ async def deploy(
1575
1575
  ] = [],
1576
1576
  model: Annotated[
1577
1577
  str, typer.Option(..., help="Name of the LLM model to use for the chatbot")
1578
- ] = "gpt-5.5",
1578
+ ] = "gpt-5.6-sol",
1579
1579
  require_shell: Annotated[
1580
1580
  Optional[bool],
1581
1581
  typer.Option("--shell", help="Enable function shell tool calling"),
@@ -265,8 +265,7 @@ async def mailbox_list(
265
265
  else:
266
266
  mailboxes = await client.list_mailboxes(
267
267
  project_id=project_id,
268
- count=count,
269
- offset=offset,
268
+ page_size=count,
270
269
  filter=filter,
271
270
  )
272
271
 
@@ -0,0 +1,43 @@
1
+ import pytest
2
+
3
+ from meshagent.cli import mailboxes
4
+
5
+
6
+ @pytest.mark.asyncio
7
+ async def test_mailbox_list_project_uses_page_size_client_argument(
8
+ monkeypatch: pytest.MonkeyPatch,
9
+ ):
10
+ captured: dict[str, object] = {}
11
+
12
+ class FakeClient:
13
+ async def list_mailboxes(self, **kwargs):
14
+ captured["list_mailboxes"] = kwargs
15
+ return []
16
+
17
+ async def close(self):
18
+ captured["closed"] = True
19
+
20
+ async def fake_get_client():
21
+ return FakeClient()
22
+
23
+ async def fake_resolve_project_id(project_id=None):
24
+ return project_id or "project-1"
25
+
26
+ monkeypatch.setattr(mailboxes, "get_client", fake_get_client)
27
+ monkeypatch.setattr(mailboxes, "resolve_project_id", fake_resolve_project_id)
28
+
29
+ await mailboxes.mailbox_list(
30
+ project_id="project-1",
31
+ room=None,
32
+ filter="support",
33
+ count=25,
34
+ offset=9,
35
+ o="json",
36
+ )
37
+
38
+ assert captured["list_mailboxes"] == {
39
+ "project_id": "project-1",
40
+ "page_size": 25,
41
+ "filter": "support",
42
+ }
43
+ assert captured["closed"] is True