deepagents-cli 0.0.52a1__tar.gz → 0.0.53__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 (304) hide show
  1. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/CHANGELOG.md +87 -10
  2. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/PKG-INFO +27 -26
  3. deepagents_cli-0.0.53/deepagents_cli/_constants.py +14 -0
  4. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_env_vars.py +49 -0
  5. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_server_config.py +3 -4
  6. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_version.py +1 -1
  7. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/agent.py +56 -47
  8. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/app.py +1855 -314
  9. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/app.tcss +35 -1
  10. deepagents_cli-0.0.53/deepagents_cli/auth_store.py +363 -0
  11. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/clipboard.py +64 -37
  12. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/command_registry.py +19 -0
  13. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/config.py +93 -14
  14. deepagents_cli-0.0.53/deepagents_cli/deploy/__init__.py +27 -0
  15. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/bundler.py +26 -0
  16. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/commands.py +246 -0
  17. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/config.py +109 -2
  18. deepagents_cli-0.0.53/deepagents_cli/deploy/context_hub.py +341 -0
  19. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/templates.py +188 -33
  20. deepagents_cli-0.0.53/deepagents_cli/event_bus.py +411 -0
  21. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/extras_info.py +91 -10
  22. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/hooks.py +3 -0
  23. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/integrations/sandbox_factory.py +1 -1
  24. deepagents_cli-0.0.53/deepagents_cli/iterm_cursor_guide.py +176 -0
  25. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/local_context.py +7 -2
  26. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/main.py +134 -24
  27. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_auth.py +16 -8
  28. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_commands.py +3 -1
  29. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_tools.py +16 -5
  30. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_trust.py +2 -3
  31. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/model_config.py +961 -36
  32. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/non_interactive.py +1 -1
  33. deepagents_cli-0.0.53/deepagents_cli/onboarding.py +188 -0
  34. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/remote_client.py +3 -2
  35. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/sessions.py +4 -3
  36. deepagents_cli-0.0.53/deepagents_cli/state_migration.py +136 -0
  37. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/textual_adapter.py +101 -18
  38. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/theme.py +25 -11
  39. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/ui.py +41 -0
  40. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/update_check.py +230 -26
  41. deepagents_cli-0.0.53/deepagents_cli/widgets/agent_selector.py +420 -0
  42. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/approval.py +5 -9
  43. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/ask_user.py +82 -17
  44. deepagents_cli-0.0.53/deepagents_cli/widgets/auth.py +633 -0
  45. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/chat_input.py +80 -19
  46. deepagents_cli-0.0.53/deepagents_cli/widgets/launch_init.py +363 -0
  47. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/message_store.py +2 -1
  48. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/messages.py +147 -40
  49. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/model_selector.py +216 -41
  50. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/status.py +65 -17
  51. deepagents_cli-0.0.53/deepagents_cli/widgets/theme_selector.py +331 -0
  52. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/thread_selector.py +76 -18
  53. deepagents_cli-0.0.53/deepagents_cli/widgets/update_progress.py +277 -0
  54. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/welcome.py +148 -37
  55. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/pyproject.toml +20 -22
  56. deepagents_cli-0.0.53/tests/integration_tests/test_context_hub.py +206 -0
  57. deepagents_cli-0.0.53/tests/integration_tests/test_deploy_hub.py +191 -0
  58. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/conftest.py +17 -4
  59. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/deploy/test_bundler.py +90 -0
  60. deepagents_cli-0.0.53/tests/unit_tests/deploy/test_commands.py +199 -0
  61. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/deploy/test_config.py +140 -2
  62. deepagents_cli-0.0.53/tests/unit_tests/deploy/test_context_hub.py +535 -0
  63. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/deploy/test_frontend_bundle.py +6 -0
  64. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/deploy/test_frontend_config.py +1 -0
  65. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_agent.py +74 -0
  66. deepagents_cli-0.0.53/tests/unit_tests/test_agent_selector.py +466 -0
  67. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_app.py +2253 -186
  68. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_approval.py +20 -8
  69. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_args.py +1 -7
  70. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_ask_user.py +135 -13
  71. deepagents_cli-0.0.53/tests/unit_tests/test_auth_store.py +266 -0
  72. deepagents_cli-0.0.53/tests/unit_tests/test_auth_widgets.py +390 -0
  73. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_charset.py +14 -0
  74. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_chat_input.py +189 -0
  75. deepagents_cli-0.0.53/tests/unit_tests/test_clipboard.py +274 -0
  76. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_command_registry.py +40 -0
  77. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_config.py +216 -5
  78. deepagents_cli-0.0.53/tests/unit_tests/test_event_bus.py +445 -0
  79. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_exception_handling.py +0 -31
  80. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_extras_info.py +78 -0
  81. deepagents_cli-0.0.53/tests/unit_tests/test_iterm_cursor_guide.py +256 -0
  82. deepagents_cli-0.0.53/tests/unit_tests/test_launch_init.py +336 -0
  83. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_local_context.py +21 -0
  84. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_main.py +22 -0
  85. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_main_args.py +129 -16
  86. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_mcp_auth.py +15 -5
  87. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_mcp_tools.py +14 -1
  88. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_message_store.py +21 -0
  89. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_messages.py +269 -63
  90. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_model_config.py +1294 -4
  91. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_model_selector.py +371 -5
  92. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_model_switch.py +81 -45
  93. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_notification_center.py +2 -2
  94. deepagents_cli-0.0.53/tests/unit_tests/test_onboarding.py +241 -0
  95. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_reload.py +133 -0
  96. deepagents_cli-0.0.53/tests/unit_tests/test_startup_fast_paths.py +213 -0
  97. deepagents_cli-0.0.53/tests/unit_tests/test_state_migration.py +204 -0
  98. deepagents_cli-0.0.53/tests/unit_tests/test_status.py +430 -0
  99. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_textual_adapter.py +402 -5
  100. deepagents_cli-0.0.53/tests/unit_tests/test_theme.py +2398 -0
  101. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_thread_selector.py +41 -1
  102. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_update_available.py +2 -2
  103. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_update_check.py +227 -2
  104. deepagents_cli-0.0.53/tests/unit_tests/test_update_progress.py +116 -0
  105. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_welcome.py +204 -0
  106. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/uv.lock +113 -92
  107. deepagents_cli-0.0.52a1/deepagents_cli/deploy/__init__.py +0 -18
  108. deepagents_cli-0.0.52a1/deepagents_cli/widgets/agent_selector.py +0 -188
  109. deepagents_cli-0.0.52a1/deepagents_cli/widgets/theme_selector.py +0 -182
  110. deepagents_cli-0.0.52a1/tests/unit_tests/deploy/test_commands.py +0 -75
  111. deepagents_cli-0.0.52a1/tests/unit_tests/test_agent_selector.py +0 -208
  112. deepagents_cli-0.0.52a1/tests/unit_tests/test_status.py +0 -210
  113. deepagents_cli-0.0.52a1/tests/unit_tests/test_theme.py +0 -1050
  114. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/.gitignore +0 -0
  115. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/DEV.md +0 -0
  116. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/Makefile +0 -0
  117. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/README.md +0 -0
  118. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/THREAT_MODEL.md +0 -0
  119. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/__init__.py +0 -0
  120. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/__main__.py +0 -0
  121. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_ask_user_types.py +0 -0
  122. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_cli_context.py +0 -0
  123. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_debug.py +0 -0
  124. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_git.py +0 -0
  125. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_session_stats.py +0 -0
  126. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_testing_models.py +0 -0
  127. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/_textual_patches.py +0 -0
  128. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/ask_user.py +0 -0
  129. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/built_in_skills/__init__.py +0 -0
  130. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/built_in_skills/remember/SKILL.md +0 -0
  131. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/built_in_skills/skill-creator/SKILL.md +0 -0
  132. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/built_in_skills/skill-creator/scripts/init_skill.py +0 -0
  133. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/built_in_skills/skill-creator/scripts/quick_validate.py +0 -0
  134. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/configurable_model.py +0 -0
  135. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/default_agent_prompt.md +0 -0
  136. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/assets/anonymous-B9UzAXQd.js +0 -0
  137. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/assets/clerk-5xHgyQyG.js +0 -0
  138. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/assets/highlighted-body-OFNGDK62-rX-7qT8o.js +0 -0
  139. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/assets/index-DM3gptpu.js +0 -0
  140. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/assets/index-Ddy7F6KI.css +0 -0
  141. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/assets/supabase-S6NACDgm.js +0 -0
  142. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/index.html +0 -0
  143. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/logo-dark.svg +0 -0
  144. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/deploy/frontend_dist/logo-light.svg +0 -0
  145. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/editor.py +0 -0
  146. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/file_ops.py +0 -0
  147. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/formatting.py +0 -0
  148. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/input.py +0 -0
  149. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/integrations/__init__.py +0 -0
  150. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/integrations/sandbox_provider.py +0 -0
  151. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_providers/__init__.py +0 -0
  152. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_providers/_registry.py +0 -0
  153. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_providers/base.py +0 -0
  154. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_providers/github.py +0 -0
  155. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/mcp_providers/slack.py +0 -0
  156. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/media_utils.py +0 -0
  157. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/notifications.py +0 -0
  158. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/offload.py +0 -0
  159. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/output.py +0 -0
  160. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/project_utils.py +0 -0
  161. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/py.typed +0 -0
  162. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/server.py +0 -0
  163. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/server_graph.py +0 -0
  164. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/server_manager.py +0 -0
  165. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/skills/__init__.py +0 -0
  166. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/skills/commands.py +0 -0
  167. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/skills/invocation.py +0 -0
  168. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/skills/load.py +0 -0
  169. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/subagents.py +0 -0
  170. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/system_prompt.md +0 -0
  171. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/terminal_capabilities.py +0 -0
  172. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/token_state.py +0 -0
  173. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/tool_display.py +0 -0
  174. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/tools.py +0 -0
  175. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/unicode_security.py +0 -0
  176. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/__init__.py +0 -0
  177. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/_links.py +0 -0
  178. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/autocomplete.py +0 -0
  179. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/diff.py +0 -0
  180. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/history.py +0 -0
  181. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/loading.py +0 -0
  182. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/mcp_viewer.py +0 -0
  183. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/notification_center.py +0 -0
  184. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/notification_detail.py +0 -0
  185. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/notification_settings.py +0 -0
  186. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/tool_renderers.py +0 -0
  187. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/tool_widgets.py +0 -0
  188. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/deepagents_cli/widgets/update_available.py +0 -0
  189. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/deploy-content-writer/.env.example +0 -0
  190. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/deploy-content-writer/skills/blog-post/SKILL.md +0 -0
  191. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/deploy-content-writer/skills/social-media/SKILL.md +0 -0
  192. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/deploy-content-writer/user/context.md +0 -0
  193. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/deploy-content-writer/user/preferences.md +0 -0
  194. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/arxiv-search/SKILL.md +0 -0
  195. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  196. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/langgraph-docs/SKILL.md +0 -0
  197. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/skill-creator/SKILL.md +0 -0
  198. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  199. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  200. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/examples/skills/web-research/SKILL.md +0 -0
  201. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/.nvmrc +0 -0
  202. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/index.html +0 -0
  203. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/package-lock.json +0 -0
  204. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/package.json +0 -0
  205. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/postcss.config.js +0 -0
  206. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/public/logo-dark.svg +0 -0
  207. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/public/logo-light.svg +0 -0
  208. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/App.tsx +0 -0
  209. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/ThemeProvider.tsx +0 -0
  210. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/auth/anonymous.tsx +0 -0
  211. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/auth/clerk.tsx +0 -0
  212. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/auth/loader.tsx +0 -0
  213. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/auth/supabase.tsx +0 -0
  214. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/auth/types.ts +0 -0
  215. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/AppHeader.tsx +0 -0
  216. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/FilePanels.tsx +0 -0
  217. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/MessageList.tsx +0 -0
  218. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/SubagentActivity.tsx +0 -0
  219. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/ThreadPicker.tsx +0 -0
  220. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/TodosPanel.tsx +0 -0
  221. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/ToolCallCard.tsx +0 -0
  222. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/toolcalls/FileToolCard.tsx +0 -0
  223. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/toolcalls/SearchCard.tsx +0 -0
  224. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/toolcalls/ThinkCard.tsx +0 -0
  225. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/toolcalls/TodosCard.tsx +0 -0
  226. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/components/toolcalls/index.ts +0 -0
  227. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/constants.ts +0 -0
  228. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/index.css +0 -0
  229. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/main.tsx +0 -0
  230. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/runtimeConfig.ts +0 -0
  231. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/types.ts +0 -0
  232. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/src/vite-env.d.ts +0 -0
  233. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/tsconfig.json +0 -0
  234. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/frontend/vite.config.ts +0 -0
  235. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/images/cli.png +0 -0
  236. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/scripts/check_imports.py +0 -0
  237. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/scripts/debug_server.sh +0 -0
  238. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/scripts/install.sh +0 -0
  239. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/README.md +0 -0
  240. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/__init__.py +0 -0
  241. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/benchmarks/__init__.py +0 -0
  242. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -0
  243. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/benchmarks/test_startup_benchmarks.py +0 -0
  244. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/conftest.py +0 -0
  245. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/test_acp_mode.py +0 -0
  246. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/test_compact_resume.py +0 -0
  247. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/test_sandbox_factory.py +0 -0
  248. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/integration_tests/test_sandbox_operations.py +0 -0
  249. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/__init__.py +0 -0
  250. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/deploy/__init__.py +0 -0
  251. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/skills/__init__.py +0 -0
  252. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/skills/test_commands.py +0 -0
  253. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/skills/test_load.py +0 -0
  254. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/skills/test_skills_json.py +0 -0
  255. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_agent_friendly.py +0 -0
  256. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_ask_user_middleware.py +0 -0
  257. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_autocomplete.py +0 -0
  258. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_compact_tool.py +0 -0
  259. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_configurable_model.py +0 -0
  260. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_debug.py +0 -0
  261. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_editor.py +0 -0
  262. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_end_to_end.py +0 -0
  263. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_env_vars.py +0 -0
  264. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_file_ops.py +0 -0
  265. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_formatting.py +0 -0
  266. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_git.py +0 -0
  267. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_history.py +0 -0
  268. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_hooks.py +0 -0
  269. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_imports.py +0 -0
  270. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_input_parsing.py +0 -0
  271. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_links.py +0 -0
  272. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_loading.py +0 -0
  273. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_main_acp_mode.py +0 -0
  274. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_mcp_commands.py +0 -0
  275. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_mcp_trust.py +0 -0
  276. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_mcp_viewer.py +0 -0
  277. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_media_utils.py +0 -0
  278. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_non_interactive.py +0 -0
  279. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_notification_detail.py +0 -0
  280. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_notifications.py +0 -0
  281. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_offload.py +0 -0
  282. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_offload_dict_messages.py +0 -0
  283. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_output.py +0 -0
  284. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_remote_client.py +0 -0
  285. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_sandbox_factory.py +0 -0
  286. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_server.py +0 -0
  287. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_server_config.py +0 -0
  288. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_server_graph.py +0 -0
  289. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_server_helpers.py +0 -0
  290. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_server_manager.py +0 -0
  291. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_session_stats.py +0 -0
  292. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_sessions.py +0 -0
  293. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_shell_allow_list.py +0 -0
  294. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_skill_invocation.py +0 -0
  295. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_subagents.py +0 -0
  296. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_terminal_capabilities.py +0 -0
  297. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_textual_patches.py +0 -0
  298. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_token_tracker.py +0 -0
  299. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_tool_display.py +0 -0
  300. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_ui.py +0 -0
  301. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_unicode_security.py +0 -0
  302. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/test_version.py +0 -0
  303. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/tools/__init__.py +0 -0
  304. {deepagents_cli-0.0.52a1 → deepagents_cli-0.0.53}/tests/unit_tests/tools/test_fetch_url.py +0 -0
@@ -1,4 +1,81 @@
1
- # Changelog
1
+ # Deep Agents CLI Changelog
2
+
3
+ ## [0.0.53](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.52...deepagents-cli==0.0.53) (2026-05-10)
4
+
5
+ ### Features
6
+
7
+ * `/copy` slash command ([#3225](https://github.com/langchain-ai/deepagents/issues/3225)) ([646df53](https://github.com/langchain-ai/deepagents/commit/646df5364274ba11c1104038095ed4478c076c40))
8
+ * Per-terminal theme selection ([#3248](https://github.com/langchain-ai/deepagents/issues/3248)) ([e2251f1](https://github.com/langchain-ai/deepagents/commit/e2251f17c0cc9363d6ed2385436ade22a8e74cd2))
9
+ * Incognito shell command mode ([#3252](https://github.com/langchain-ai/deepagents/issues/3252)) ([56aee50](https://github.com/langchain-ai/deepagents/commit/56aee504b5f8196d569757794e2e7e61cf9bef18))
10
+ * Live progress UI and periodic recheck for self-updates ([#3280](https://github.com/langchain-ai/deepagents/issues/3280)) ([3e9e805](https://github.com/langchain-ai/deepagents/commit/3e9e80597d9e2edc7685400023a2cad15a84a6b8))
11
+ * Ollama model discovery via probe ([#3286](https://github.com/langchain-ai/deepagents/issues/3286)) ([c1dd6c8](https://github.com/langchain-ai/deepagents/commit/c1dd6c8a0f8b423edc75be243fc0487e4c900703))
12
+
13
+ ### Bug Fixes
14
+
15
+ * Re-render assistant messages after streaming to fix fenced code disappearance ([#3293](https://github.com/langchain-ai/deepagents/issues/3293)) ([01b0a44](https://github.com/langchain-ai/deepagents/commit/01b0a44353a891a2ff10b3a2e2f6e23cc0879c9b))
16
+ * Show `Resuming...` banner immediately on thread resume ([#3297](https://github.com/langchain-ai/deepagents/issues/3297)) ([3bb2782](https://github.com/langchain-ai/deepagents/commit/3bb2782ae8bd42d9521b611ebdfc42456b7d41a2))
17
+ * Show pending token placeholder during streaming and restore on early exit ([#3288](https://github.com/langchain-ai/deepagents/issues/3288)) ([882232d](https://github.com/langchain-ai/deepagents/commit/882232dbc4ffbaf0bedeb12f0f3119024352ac43))
18
+
19
+ ## [0.0.52](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.51...deepagents-cli==0.0.52) (2026-05-08)
20
+
21
+ ### Features
22
+
23
+ * New environment variables
24
+ * Launch theme env var ([#3176](https://github.com/langchain-ai/deepagents/issues/3176)) ([47a3e4e](https://github.com/langchain-ai/deepagents/commit/47a3e4e219bf43a08697fceabfaddcadc464c97b))
25
+ * Splash tips visibility env var ([#3179](https://github.com/langchain-ai/deepagents/issues/3179)) ([c9be71c](https://github.com/langchain-ai/deepagents/commit/c9be71ce431aadbf24424411a57fada2ed560c93))
26
+ * Splash version visibility env var ([#3173](https://github.com/langchain-ai/deepagents/issues/3173)) ([f57d09e](https://github.com/langchain-ai/deepagents/commit/f57d09e46b965091525817d1e17741ec61aa6274))
27
+ * Startup splash env var overrides ([#3175](https://github.com/langchain-ai/deepagents/issues/3175)) ([8d3d197](https://github.com/langchain-ai/deepagents/commit/8d3d197941c878a409795b870c308f4b761dea5b))
28
+ * TUI footer visibility env vars ([#3171](https://github.com/langchain-ai/deepagents/issues/3171)) ([8f5796b](https://github.com/langchain-ai/deepagents/commit/8f5796b3704c95c6f775445496177d955eec2da3))
29
+ * Emit `user.name.set` hook during onboarding ([#3177](https://github.com/langchain-ai/deepagents/issues/3177)) ([43a494e](https://github.com/langchain-ai/deepagents/commit/43a494ed2fe44b7ba3a03d9833301ff3fc485b73))
30
+ * External event listener via Unix domain socket ([#3207](https://github.com/langchain-ai/deepagents/issues/3207)) ([ffeac22](https://github.com/langchain-ai/deepagents/commit/ffeac22f8e5572681ca1ad7c4f2e55ef57207577))
31
+ * Strip provider-specific model prefixes in status bar footer ([#3222](https://github.com/langchain-ai/deepagents/issues/3222)) ([eaa1d82](https://github.com/langchain-ai/deepagents/commit/eaa1d821c96246471b274663e714878fdd2f67bb))
32
+ * (Deploy) `ContextHubBackend` for iteration in `deepagents-deploy` ([#2923](https://github.com/langchain-ai/deepagents/issues/2923)) ([fb0f0ba](https://github.com/langchain-ai/deepagents/commit/fb0f0ba08a58c3d2ae5db2435c07e3b826f395fa))
33
+ * (Deploy) Auto-wire issues board with context hub repo handle ([#3231](https://github.com/langchain-ai/deepagents/issues/3231)) ([94628fe](https://github.com/langchain-ai/deepagents/commit/94628fef98aefb5389ab56c8acee31726d6385dc))
34
+
35
+ ### Bug Fixes
36
+
37
+ * Allow multiple-choice labels to wrap in narrow ask-user menus ([#3257](https://github.com/langchain-ai/deepagents/issues/3257)) ([79a38d9](https://github.com/langchain-ai/deepagents/commit/79a38d9a3a18f28903717a0d4efa8ad66caee129))
38
+ * Catch `WorkerCancelled` in `await_prewarm_imports` ([#3178](https://github.com/langchain-ai/deepagents/issues/3178)) ([aa0d0f7](https://github.com/langchain-ai/deepagents/commit/aa0d0f732680a917bfc407f61f689326006be163))
39
+ * Halt turn immediately when `ask_user` is cancelled ([#3258](https://github.com/langchain-ai/deepagents/issues/3258)) ([00d9b99](https://github.com/langchain-ai/deepagents/commit/00d9b99ce748d34cb150e08e2c46be6d648b3170))
40
+ * Only restore iTerm2 cursor guide when it was enabled at startup ([#3256](https://github.com/langchain-ai/deepagents/issues/3256)) ([2620ff5](https://github.com/langchain-ai/deepagents/commit/2620ff56d1d89275e604e756abe54c1408414167))
41
+ * Pause input cursor blink when terminal loses OS focus ([#3246](https://github.com/langchain-ai/deepagents/issues/3246)) ([8582b83](https://github.com/langchain-ai/deepagents/commit/8582b8355d5c0c70f45cee9522e4c8e02264005e))
42
+ * Scroll tall `ask_user prompts` to top of viewport ([#3238](https://github.com/langchain-ai/deepagents/issues/3238)) ([705daa7](https://github.com/langchain-ai/deepagents/commit/705daa7e651153cb2cf80455131fcfe4311973b9))
43
+ * Suppress noisy network warnings from interrupt cleanup ([#3250](https://github.com/langchain-ai/deepagents/issues/3250)) ([4e4a8fe](https://github.com/langchain-ai/deepagents/commit/4e4a8fedd1ed72606ac0df336859ba5d7180021f))
44
+
45
+ ## [0.0.51](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.50...deepagents-cli==0.0.51) (2026-05-05)
46
+
47
+ ### Features
48
+
49
+ * `/reload` skill diff report ([#3153](https://github.com/langchain-ai/deepagents/issues/3153)) ([7c3278a](https://github.com/langchain-ai/deepagents/commit/7c3278a46fe1bace82224f43d8e1b7a023d0086a))
50
+ * Surface MCP config discovery paths and format in help screens ([#3152](https://github.com/langchain-ai/deepagents/issues/3152)) ([ce6887c](https://github.com/langchain-ai/deepagents/commit/ce6887c89bacee63bdd74ab9d26097e2e418ff43))
51
+
52
+ ## [0.0.50](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.49...deepagents-cli==0.0.50) (2026-05-04)
53
+
54
+ ### Bug Fixes
55
+
56
+ * Show detached HEAD commit in local context ([#3144](https://github.com/langchain-ai/deepagents/issues/3144)) ([569d4f0](https://github.com/langchain-ai/deepagents/commit/569d4f0d7d699bace7820eb171a6bd605b2a1a18))
57
+
58
+ ## [0.0.49](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.48...deepagents-cli==0.0.49) (2026-05-04)
59
+
60
+ ### Features
61
+
62
+ * First-run onboarding flow ([#3102](https://github.com/langchain-ai/deepagents/issues/3102)) ([a71f852](https://github.com/langchain-ai/deepagents/commit/a71f852df3e491326b8eaa03ee7cb7b3b94fe73d))
63
+ * In-TUI API key entry via `/auth` ([#3123](https://github.com/langchain-ai/deepagents/issues/3123)) ([eedbc3a](https://github.com/langchain-ai/deepagents/commit/eedbc3a8b5f88059636e497f72c7cec5a420f998))
64
+ * Richer provider auth states, hosted Ollama auth ([#3111](https://github.com/langchain-ai/deepagents/issues/3111)) ([eeaeb76](https://github.com/langchain-ai/deepagents/commit/eeaeb7663515eb0cfa8f0389e7f8446e95e84911))
65
+ * Set-as-default in `/agents` picker, harden persistence ([#3126](https://github.com/langchain-ai/deepagents/issues/3126)) ([4751e33](https://github.com/langchain-ai/deepagents/commit/4751e33fbad5945a740cae03bda758223201433b))
66
+
67
+ ### Bug Fixes
68
+
69
+ * Gate async task tools by actual names ([#3094](https://github.com/langchain-ai/deepagents/issues/3094)) ([aae8dfe](https://github.com/langchain-ai/deepagents/commit/aae8dfebab184586322129ec162e083ebfd372cc))
70
+ * Hide approval menu on selection ([#3097](https://github.com/langchain-ai/deepagents/issues/3097)) ([7dafd30](https://github.com/langchain-ai/deepagents/commit/7dafd3049ad7725353bbf12bf80f476b52916208))
71
+ * Move internal state under hidden directory ([#3106](https://github.com/langchain-ai/deepagents/issues/3106)) ([ef4c717](https://github.com/langchain-ai/deepagents/commit/ef4c71763086a4e4899ba7ced6f9eb478d38069e))
72
+ * Preserve recent agent across thread resume ([#3108](https://github.com/langchain-ai/deepagents/issues/3108)) ([442a0d4](https://github.com/langchain-ai/deepagents/commit/442a0d474aa1e767d542cb01f6e338431c18e5a8))
73
+
74
+ ## [0.0.48](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.47...deepagents-cli==0.0.48) (2026-05-01)
75
+
76
+ ### Bug Fixes
77
+
78
+ * Apply `--model-params` on `/model` re-select ([#3072](https://github.com/langchain-ai/deepagents/issues/3072)) ([50546dd](https://github.com/langchain-ai/deepagents/commit/50546dd3d368af297084929ee3aa91ccf8496fca))
2
79
 
3
80
  ## [0.0.47](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.46...deepagents-cli==0.0.47) (2026-05-01)
4
81
 
@@ -34,7 +111,7 @@
34
111
 
35
112
  ### Features
36
113
 
37
- * Bundled chat frontend for deepagent deploy ([#2940](https://github.com/langchain-ai/deepagents/issues/2940)) ([9bde0c7](https://github.com/langchain-ai/deepagents/commit/9bde0c7835ded20e80466d8361f40784141d68d8))
114
+ * (Deploy) Bundled chat frontend for deepagent deploy ([#2940](https://github.com/langchain-ai/deepagents/issues/2940)) ([9bde0c7](https://github.com/langchain-ai/deepagents/commit/9bde0c7835ded20e80466d8361f40784141d68d8))
38
115
 
39
116
  ## [0.0.42](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.41...deepagents-cli==0.0.42) (2026-04-29)
40
117
 
@@ -53,9 +130,9 @@
53
130
 
54
131
  * `--startup-cmd` flag ([#2841](https://github.com/langchain-ai/deepagents/issues/2841)) ([8adcc2c](https://github.com/langchain-ai/deepagents/commit/8adcc2c2e612346c263d02d1ec5c33e0d63da5a3))
55
132
  * Actionable notifications, update modal ([#2855](https://github.com/langchain-ai/deepagents/issues/2855)) ([5fcd368](https://github.com/langchain-ai/deepagents/commit/5fcd368088079a84f151e0a3f5e4b9ac29c360c1))
56
- * Custom auth via `[auth]` in `deepagents deploy` ([#2734](https://github.com/langchain-ai/deepagents/issues/2734)) ([417ddaa](https://github.com/langchain-ai/deepagents/commit/417ddaab4804a54a8f83721bb8577d65cfa3659f))
57
133
  * Refresh footer git branch after shell commands ([#2851](https://github.com/langchain-ai/deepagents/issues/2851)) ([ee4fddd](https://github.com/langchain-ai/deepagents/commit/ee4fddde9454ee8f7ede98ee9a346da6c5ccd3d9))
58
134
  * Rework `/version`, add release-age and editable-install guard ([#2854](https://github.com/langchain-ai/deepagents/issues/2854)) ([1ae053f](https://github.com/langchain-ai/deepagents/commit/1ae053f347679e58562d2b81eb6d6e6e9bbf0b07))
135
+ * (Deploy) Custom auth via `[auth]` in `deepagents deploy` ([#2734](https://github.com/langchain-ai/deepagents/issues/2734)) ([417ddaa](https://github.com/langchain-ai/deepagents/commit/417ddaab4804a54a8f83721bb8577d65cfa3659f))
59
136
 
60
137
  ### Bug Fixes
61
138
 
@@ -80,7 +157,7 @@
80
157
  ### Features
81
158
 
82
159
  * Inline argument hints for slash commands ([#2181](https://github.com/langchain-ai/deepagents/issues/2181)) ([6b58e06](https://github.com/langchain-ai/deepagents/commit/6b58e06b06f6fb360d85c54eac31953d1e47dd7a))
83
- * Subagents for `deepagents deploy` ([#2786](https://github.com/langchain-ai/deepagents/issues/2786)) ([7dd5565](https://github.com/langchain-ai/deepagents/commit/7dd5565e30ab91a2cd2ca10fcd227e590451f13c))
160
+ * (Deploy) Subagents for `deepagents deploy` ([#2786](https://github.com/langchain-ai/deepagents/issues/2786)) ([7dd5565](https://github.com/langchain-ai/deepagents/commit/7dd5565e30ab91a2cd2ca10fcd227e590451f13c))
84
161
 
85
162
  ### Bug Fixes
86
163
 
@@ -90,7 +167,7 @@
90
167
 
91
168
  ### Features
92
169
 
93
- * User scoped memory for `deepagents deploy` ([#2708](https://github.com/langchain-ai/deepagents/issues/2708)) ([23bfca6](https://github.com/langchain-ai/deepagents/commit/23bfca6e46e6f3e4fba6657d858ddd5a0b06626f))
170
+ * (Deploy) User scoped memory for `deepagents deploy` ([#2708](https://github.com/langchain-ai/deepagents/issues/2708)) ([23bfca6](https://github.com/langchain-ai/deepagents/commit/23bfca6e46e6f3e4fba6657d858ddd5a0b06626f))
94
171
 
95
172
  ### Performance Improvements
96
173
 
@@ -100,21 +177,21 @@
100
177
 
101
178
  ### Features
102
179
 
103
- * Permissions for `deepagents deploy` ([#2651](https://github.com/langchain-ai/deepagents/issues/2651)) ([5d93b73](https://github.com/langchain-ai/deepagents/commit/5d93b736af6ffb165f33569233d533ced95a6943))
180
+ * (Deploy) Permissions for `deepagents deploy` ([#2651](https://github.com/langchain-ai/deepagents/issues/2651)) ([5d93b73](https://github.com/langchain-ai/deepagents/commit/5d93b736af6ffb165f33569233d533ced95a6943))
104
181
 
105
182
  ### Bug Fixes
106
183
 
107
- * Add missing model provider deps to `deepagents deploy` bundler [closes [#2647](https://github.com/langchain-ai/deepagents/issues/2647)] ([#2660](https://github.com/langchain-ai/deepagents/issues/2660)) ([b710a69](https://github.com/langchain-ai/deepagents/commit/b710a69b12e49479045eaa54dfb709326473500b))
108
184
  * `AGENTS.md` in system prompt twice ([#2652](https://github.com/langchain-ai/deepagents/issues/2652)) ([9052be9](https://github.com/langchain-ai/deepagents/commit/9052be98d9f4ef9b11a88c9b1df3fae5e5ac666c))
109
- * Harden `deepagents deploy` config parsing and add unit tests ([#2636](https://github.com/langchain-ai/deepagents/issues/2636)) ([0469d14](https://github.com/langchain-ai/deepagents/commit/0469d1429d129e604fc1b622263923162f719314))
110
- * Load `deepagents deploy` project `.env` before deploy/dev config validation ([#2644](https://github.com/langchain-ai/deepagents/issues/2644)) ([8299091](https://github.com/langchain-ai/deepagents/commit/829909166606f8a9d9571b00da725845bad08da7))
185
+ * (Deploy) Harden `deepagents deploy` config parsing and add unit tests ([#2636](https://github.com/langchain-ai/deepagents/issues/2636)) ([0469d14](https://github.com/langchain-ai/deepagents/commit/0469d1429d129e604fc1b622263923162f719314))
186
+ * (Deploy) Load `deepagents deploy` project `.env` before deploy/dev config validation ([#2644](https://github.com/langchain-ai/deepagents/issues/2644)) ([8299091](https://github.com/langchain-ai/deepagents/commit/829909166606f8a9d9571b00da725845bad08da7))
187
+ * (Deploy) Add missing model provider deps to `deepagents deploy` bundler [closes [#2647](https://github.com/langchain-ai/deepagents/issues/2647)] ([#2660](https://github.com/langchain-ai/deepagents/issues/2660)) ([b710a69](https://github.com/langchain-ai/deepagents/commit/b710a69b12e49479045eaa54dfb709326473500b))
111
188
 
112
189
  ## [0.0.36](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.35...deepagents-cli==0.0.36) (2026-04-09)
113
190
 
114
191
  ### Features
115
192
 
116
- * `deepagents deploy` ([#2491](https://github.com/langchain-ai/deepagents/issues/2491)) ([01dc60e](https://github.com/langchain-ai/deepagents/commit/01dc60e394ecb56bd5336e447d32caeed8a67ec2))
117
193
  * Warn on missing tavily key, add `/notifications` ([#2555](https://github.com/langchain-ai/deepagents/issues/2555)) ([3dff3ed](https://github.com/langchain-ai/deepagents/commit/3dff3ed6835eae9f8b420b8a73c054127faaf7d2))
194
+ * (Deploy) `deepagents deploy` ([#2491](https://github.com/langchain-ai/deepagents/issues/2491)) ([01dc60e](https://github.com/langchain-ai/deepagents/commit/01dc60e394ecb56bd5336e447d32caeed8a67ec2))
118
195
 
119
196
  ### Bug Fixes
120
197
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepagents-cli
3
- Version: 0.0.52a1
3
+ Version: 0.0.53
4
4
  Summary: Terminal interface for Deep Agents - interactive AI agent with file operations, shell access, and sub-agent capabilities.
5
5
  Project-URL: Homepage, https://docs.langchain.com/oss/python/deepagents/overview
6
6
  Project-URL: Documentation, https://reference.langchain.com/python/deepagents/
@@ -27,18 +27,19 @@ Classifier: Topic :: Terminals
27
27
  Requires-Python: <4.0,>=3.11
28
28
  Requires-Dist: aiosqlite<1.0.0,>=0.19.0
29
29
  Requires-Dist: deepagents-acp>=0.0.4
30
- Requires-Dist: deepagents==0.5.6
30
+ Requires-Dist: deepagents==0.5.9
31
31
  Requires-Dist: httpx<1.0.0,>=0.28.1
32
- Requires-Dist: langchain-anthropic<2.0.0,>=1.4.2
32
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.4.3
33
33
  Requires-Dist: langchain-google-genai<5.0.0,>=4.2.2
34
34
  Requires-Dist: langchain-mcp-adapters<1.0.0,>=0.2.2
35
35
  Requires-Dist: langchain-openai<2.0.0,>=1.2.1
36
- Requires-Dist: langchain<2.0.0,>=1.3.0a1
37
- Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.1.0a1
38
- Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.15
39
- Requires-Dist: langgraph-sdk<1.0.0,>=0.3.11
40
- Requires-Dist: langgraph<2.0.0,>=1.2.0a7
41
- Requires-Dist: langsmith[sandbox]>=0.7.32
36
+ Requires-Dist: langchain<2.0.0,>=1.2.17
37
+ Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.0.3
38
+ Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.24
39
+ Requires-Dist: langgraph-prebuilt<2.0.0,>=1.0.13
40
+ Requires-Dist: langgraph-sdk<1.0.0,>=0.3.13
41
+ Requires-Dist: langgraph<2.0.0,>=1.1.10
42
+ Requires-Dist: langsmith[sandbox]>=0.8.0
42
43
  Requires-Dist: markdownify<2.0.0,>=0.13.0
43
44
  Requires-Dist: packaging>=23.0
44
45
  Requires-Dist: pillow<13.0.0,>=10.0.0
@@ -47,9 +48,9 @@ Requires-Dist: pyperclip<2.0.0,>=1.11.0
47
48
  Requires-Dist: python-dotenv<2.0.0,>=1.0.0
48
49
  Requires-Dist: pyyaml>=6.0.0
49
50
  Requires-Dist: requests<3.0.0,>=2.0.0
50
- Requires-Dist: rich<15.0.0,>=14.0.0
51
- Requires-Dist: tavily-python<1.0.0,>=0.7.21
52
- Requires-Dist: textual-autocomplete<5.0.0,>=3.0.0
51
+ Requires-Dist: rich<16.0.0,>=14.2.0
52
+ Requires-Dist: tavily-python<1.0.0,>=0.7.24
53
+ Requires-Dist: textual-autocomplete<5.0.0,>=4.0.6
53
54
  Requires-Dist: textual-speedups<1.0.0,>=0.2.1
54
55
  Requires-Dist: textual<9.0.0,>=8.2.5
55
56
  Requires-Dist: tomli-w<2.0.0,>=1.0.0
@@ -57,24 +58,24 @@ Requires-Dist: uuid-utils<1.0.0,>=0.10.0
57
58
  Provides-Extra: agentcore
58
59
  Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.2; extra == 'agentcore'
59
60
  Provides-Extra: all-providers
60
- Requires-Dist: langchain-anthropic<2.0.0,>=1.4.2; extra == 'all-providers'
61
- Requires-Dist: langchain-aws<2.0.0,>=1.4.5; extra == 'all-providers'
61
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.4.3; extra == 'all-providers'
62
+ Requires-Dist: langchain-aws<2.0.0,>=1.4.6; extra == 'all-providers'
62
63
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.0; extra == 'all-providers'
63
64
  Requires-Dist: langchain-cohere<1.0.0,>=0.5.1; extra == 'all-providers'
64
65
  Requires-Dist: langchain-deepseek<2.0.0,>=1.0.1; extra == 'all-providers'
65
- Requires-Dist: langchain-fireworks<2.0.0,>=1.2.0; extra == 'all-providers'
66
+ Requires-Dist: langchain-fireworks<2.0.0,>=1.3.1; extra == 'all-providers'
66
67
  Requires-Dist: langchain-google-genai<5.0.0,>=4.2.2; extra == 'all-providers'
67
- Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.2; extra == 'all-providers'
68
+ Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.3; extra == 'all-providers'
68
69
  Requires-Dist: langchain-groq<2.0.0,>=1.1.2; extra == 'all-providers'
69
70
  Requires-Dist: langchain-huggingface<2.0.0,>=1.2.2; extra == 'all-providers'
70
71
  Requires-Dist: langchain-ibm<2.0.0,>=1.0.7; extra == 'all-providers'
71
72
  Requires-Dist: langchain-litellm<2.0.0,>=0.6.4; extra == 'all-providers'
72
- Requires-Dist: langchain-mistralai<2.0.0,>=1.1.2; extra == 'all-providers'
73
+ Requires-Dist: langchain-mistralai<2.0.0,>=1.1.4; extra == 'all-providers'
73
74
  Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.2.1; extra == 'all-providers'
74
75
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'all-providers'
75
76
  Requires-Dist: langchain-openai<2.0.0,>=1.2.1; extra == 'all-providers'
76
- Requires-Dist: langchain-openrouter<2.0.0,>=0.2.1; extra == 'all-providers'
77
- Requires-Dist: langchain-perplexity<2.0.0,>=1.1.0; extra == 'all-providers'
77
+ Requires-Dist: langchain-openrouter<2.0.0,>=0.2.3; extra == 'all-providers'
78
+ Requires-Dist: langchain-perplexity<2.0.0,>=1.2.0; extra == 'all-providers'
78
79
  Requires-Dist: langchain-xai<2.0.0,>=1.2.2; extra == 'all-providers'
79
80
  Provides-Extra: all-sandboxes
80
81
  Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.2; extra == 'all-sandboxes'
@@ -82,11 +83,11 @@ Requires-Dist: langchain-daytona>=0.0.5; extra == 'all-sandboxes'
82
83
  Requires-Dist: langchain-modal>=0.0.3; extra == 'all-sandboxes'
83
84
  Requires-Dist: langchain-runloop>=0.0.4; extra == 'all-sandboxes'
84
85
  Provides-Extra: anthropic
85
- Requires-Dist: langchain-anthropic<2.0.0,>=1.4.2; extra == 'anthropic'
86
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.4.3; extra == 'anthropic'
86
87
  Provides-Extra: baseten
87
88
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.0; extra == 'baseten'
88
89
  Provides-Extra: bedrock
89
- Requires-Dist: langchain-aws<2.0.0,>=1.4.5; extra == 'bedrock'
90
+ Requires-Dist: langchain-aws<2.0.0,>=1.4.6; extra == 'bedrock'
90
91
  Provides-Extra: cohere
91
92
  Requires-Dist: langchain-cohere<1.0.0,>=0.5.1; extra == 'cohere'
92
93
  Provides-Extra: daytona
@@ -94,7 +95,7 @@ Requires-Dist: langchain-daytona>=0.0.5; extra == 'daytona'
94
95
  Provides-Extra: deepseek
95
96
  Requires-Dist: langchain-deepseek<2.0.0,>=1.0.1; extra == 'deepseek'
96
97
  Provides-Extra: fireworks
97
- Requires-Dist: langchain-fireworks<2.0.0,>=1.2.0; extra == 'fireworks'
98
+ Requires-Dist: langchain-fireworks<2.0.0,>=1.3.1; extra == 'fireworks'
98
99
  Provides-Extra: google-genai
99
100
  Requires-Dist: langchain-google-genai<5.0.0,>=4.2.2; extra == 'google-genai'
100
101
  Provides-Extra: groq
@@ -106,7 +107,7 @@ Requires-Dist: langchain-ibm<2.0.0,>=1.0.7; extra == 'ibm'
106
107
  Provides-Extra: litellm
107
108
  Requires-Dist: langchain-litellm<2.0.0,>=0.6.4; extra == 'litellm'
108
109
  Provides-Extra: mistralai
109
- Requires-Dist: langchain-mistralai<2.0.0,>=1.1.2; extra == 'mistralai'
110
+ Requires-Dist: langchain-mistralai<2.0.0,>=1.1.4; extra == 'mistralai'
110
111
  Provides-Extra: modal
111
112
  Requires-Dist: langchain-modal>=0.0.3; extra == 'modal'
112
113
  Provides-Extra: nvidia
@@ -116,13 +117,13 @@ Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'ollama'
116
117
  Provides-Extra: openai
117
118
  Requires-Dist: langchain-openai<2.0.0,>=1.2.1; extra == 'openai'
118
119
  Provides-Extra: openrouter
119
- Requires-Dist: langchain-openrouter<2.0.0,>=0.2.1; extra == 'openrouter'
120
+ Requires-Dist: langchain-openrouter<2.0.0,>=0.2.3; extra == 'openrouter'
120
121
  Provides-Extra: perplexity
121
- Requires-Dist: langchain-perplexity<2.0.0,>=1.1.0; extra == 'perplexity'
122
+ Requires-Dist: langchain-perplexity<2.0.0,>=1.2.0; extra == 'perplexity'
122
123
  Provides-Extra: runloop
123
124
  Requires-Dist: langchain-runloop>=0.0.4; extra == 'runloop'
124
125
  Provides-Extra: vertexai
125
- Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.2; extra == 'vertexai'
126
+ Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.3; extra == 'vertexai'
126
127
  Provides-Extra: xai
127
128
  Requires-Dist: langchain-xai<2.0.0,>=1.2.2; extra == 'xai'
128
129
  Description-Content-Type: text/markdown
@@ -0,0 +1,14 @@
1
+ """Lightweight shared constants for the CLI.
2
+
3
+ This module is intentionally dependency-free (no third-party imports, no
4
+ sibling-module imports) so any other module — including the startup-critical
5
+ `main.py` and the heavy `agent.py` — can import from it without triggering a
6
+ chain of expensive imports.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Final
12
+
13
+ DEFAULT_AGENT_NAME: Final[str] = "agent"
14
+ """Default agent / assistant identifier when no `-a` flag is given."""
@@ -33,6 +33,11 @@ import os
33
33
  AUTO_UPDATE = "DEEPAGENTS_CLI_AUTO_UPDATE"
34
34
  """Enable automatic CLI updates ('1', 'true', or 'yes')."""
35
35
 
36
+ DANGEROUSLY_OVERRIDE_STARTUP_SUBHEADER = (
37
+ "DEEPAGENTS_CLI_DANGEROUSLY_OVERRIDE_STARTUP_SUBHEADER"
38
+ )
39
+ """Override the startup splash subheader text when set."""
40
+
36
41
  DEBUG = "DEEPAGENTS_CLI_DEBUG"
37
42
  """Enable verbose debug logging and preserve the server subprocess log.
38
43
 
@@ -48,15 +53,44 @@ center UI can be exercised without waiting for real conditions. Does not
48
53
  auto-open the update modal (use `DEEPAGENTS_CLI_DEBUG_UPDATE` for that). Any
49
54
  non-empty value enables the flag (including `"0"` or `"false"`)."""
50
55
 
56
+ DEBUG_ONBOARDING = "DEEPAGENTS_CLI_DEBUG_ONBOARDING"
57
+ """Force the onboarding flow to open on every interactive startup.
58
+
59
+ Parsed by `is_env_truthy`: accepts `1`, `true`, `yes`, `on` as enabled."""
60
+
51
61
  DEBUG_UPDATE = "DEEPAGENTS_CLI_DEBUG_UPDATE"
52
62
  """Inject a sample update-available notification and auto-open the update modal
53
63
  at launch so the update-available flow can be exercised without waiting for a
54
64
  real PyPI release. Any non-empty value enables the flag (including `"0"` or
55
65
  `"false"`)."""
56
66
 
67
+ EXTERNAL_EVENT_SOCKET = "DEEPAGENTS_CLI_EXTERNAL_EVENT_SOCKET"
68
+ """Enable the local Unix-socket external event listener.
69
+
70
+ Parsed by `is_env_truthy`; off by default. Wire format and behavior are
71
+ considered experimental until the listener is documented in the CLI README."""
72
+
73
+ EXTERNAL_EVENT_SOCKET_PATH = "DEEPAGENTS_CLI_EXTERNAL_EVENT_SOCKET_PATH"
74
+ """Override the default Unix-socket path for the external event listener."""
75
+
57
76
  EXTRA_SKILLS_DIRS = "DEEPAGENTS_CLI_EXTRA_SKILLS_DIRS"
58
77
  """Colon-separated paths added to the skill containment allowlist."""
59
78
 
79
+ HIDE_CWD = "DEEPAGENTS_CLI_HIDE_CWD"
80
+ """Hide local path displays in the TUI footer and startup splash when enabled."""
81
+
82
+ HIDE_GIT_BRANCH = "DEEPAGENTS_CLI_HIDE_GIT_BRANCH"
83
+ """Hide the current git branch in the TUI footer when enabled."""
84
+
85
+ HIDE_LANGSMITH_TRACING = "DEEPAGENTS_CLI_HIDE_LANGSMITH_TRACING"
86
+ """Hide LangSmith tracing project/thread info in the startup splash when enabled."""
87
+
88
+ HIDE_SPLASH_TIPS = "DEEPAGENTS_CLI_HIDE_SPLASH_TIPS"
89
+ """Hide rotating tips in the startup splash when enabled."""
90
+
91
+ HIDE_SPLASH_VERSION = "DEEPAGENTS_CLI_HIDE_SPLASH_VERSION"
92
+ """Hide version and local-install details in the splash screen when enabled."""
93
+
60
94
  KITTY_KEYBOARD = "DEEPAGENTS_CLI_KITTY_KEYBOARD"
61
95
  """Override kitty-keyboard detection (`1` forces on, `0` forces off)."""
62
96
 
@@ -66,12 +100,27 @@ LANGSMITH_PROJECT = "DEEPAGENTS_CLI_LANGSMITH_PROJECT"
66
100
  NO_UPDATE_CHECK = "DEEPAGENTS_CLI_NO_UPDATE_CHECK"
67
101
  """Disable automatic update checking when set."""
68
102
 
103
+ OLLAMA_DISCOVERY = "DEEPAGENTS_CLI_OLLAMA_DISCOVERY"
104
+ """Toggle Ollama model and profile discovery probes.
105
+
106
+ Defaults to enabled. Suppress the probe when the daemon is intentionally
107
+ offline or the probe latency is undesirable. The probe is lazy and never
108
+ runs on the startup hot path. When enabled, discovery may call `/api/tags`
109
+ and `/api/show`. See `_ollama_discovery_enabled` for accepted truthy/falsy
110
+ values."""
111
+
69
112
  SERVER_ENV_PREFIX = "DEEPAGENTS_CLI_SERVER_"
70
113
  """Environment variable prefix used to pass CLI config to the server subprocess."""
71
114
 
72
115
  SHELL_ALLOW_LIST = "DEEPAGENTS_CLI_SHELL_ALLOW_LIST"
73
116
  """Comma-separated shell commands to allow (or 'recommended'/'all')."""
74
117
 
118
+ SHOW_HEADER = "DEEPAGENTS_CLI_SHOW_HEADER"
119
+ """Show Textual's native header bar at the top of the TUI when enabled."""
120
+
121
+ THEME = "DEEPAGENTS_CLI_THEME"
122
+ """Force the CLI to launch with this theme name when set."""
123
+
75
124
  USER_ID = "DEEPAGENTS_CLI_USER_ID"
76
125
  """Attach a user identifier to LangSmith trace metadata."""
77
126
 
@@ -18,6 +18,7 @@ from dataclasses import dataclass
18
18
  from pathlib import Path
19
19
  from typing import TYPE_CHECKING, Any
20
20
 
21
+ from deepagents_cli._constants import DEFAULT_AGENT_NAME as DEFAULT_ASSISTANT_ID
21
22
  from deepagents_cli._env_vars import SERVER_ENV_PREFIX
22
23
 
23
24
  if TYPE_CHECKING:
@@ -25,8 +26,6 @@ if TYPE_CHECKING:
25
26
 
26
27
  logger = logging.getLogger(__name__)
27
28
 
28
- _DEFAULT_ASSISTANT_ID = "agent"
29
-
30
29
 
31
30
  def _read_env_bool(suffix: str, *, default: bool = False) -> bool:
32
31
  """Read a `DEEPAGENTS_CLI_SERVER_*` boolean from the environment.
@@ -114,7 +113,7 @@ class ServerConfig:
114
113
 
115
114
  model: str | None = None
116
115
  model_params: dict[str, Any] | None = None
117
- assistant_id: str = _DEFAULT_ASSISTANT_ID
116
+ assistant_id: str = DEFAULT_ASSISTANT_ID
118
117
  system_prompt: str | None = None
119
118
  auto_approve: bool = False
120
119
  interrupt_shell_only: bool = False
@@ -206,7 +205,7 @@ class ServerConfig:
206
205
  return cls(
207
206
  model=_read_env_str("MODEL"),
208
207
  model_params=_read_env_json("MODEL_PARAMS"),
209
- assistant_id=_read_env_str("ASSISTANT_ID") or _DEFAULT_ASSISTANT_ID,
208
+ assistant_id=_read_env_str("ASSISTANT_ID") or DEFAULT_ASSISTANT_ID,
210
209
  system_prompt=_read_env_str("SYSTEM_PROMPT"),
211
210
  auto_approve=_read_env_bool("AUTO_APPROVE"),
212
211
  interrupt_shell_only=_read_env_bool("INTERRUPT_SHELL_ONLY"),
@@ -1,6 +1,6 @@
1
1
  """Version information and lightweight constants for `deepagents-cli`."""
2
2
 
3
- __version__ = "0.0.52a1" # x-release-please-version
3
+ __version__ = "0.0.53" # x-release-please-version
4
4
 
5
5
  DOCS_URL = "https://docs.langchain.com/oss/python/deepagents/cli"
6
6
  """URL for `deepagents-cli` documentation."""
@@ -52,6 +52,7 @@ if TYPE_CHECKING:
52
52
  from langchain.agents.middleware.types import AgentMiddleware
53
53
 
54
54
  from deepagents_cli import theme
55
+ from deepagents_cli._constants import DEFAULT_AGENT_NAME
55
56
  from deepagents_cli.config import (
56
57
  _ShellAllowAll,
57
58
  config,
@@ -80,9 +81,6 @@ from deepagents_cli.unicode_security import (
80
81
 
81
82
  logger = logging.getLogger(__name__)
82
83
 
83
- DEFAULT_AGENT_NAME = "agent"
84
- """The default agent name used when no `-a` flag is provided."""
85
-
86
84
  REQUIRE_COMPACT_TOOL_APPROVAL: bool = True
87
85
  """When `True`, `compact_conversation` requires HITL approval like other gated tools."""
88
86
 
@@ -269,12 +267,28 @@ def load_async_subagents(config_path: Path | None = None) -> list[AsyncSubAgent]
269
267
  return agents
270
268
 
271
269
 
270
+ def _is_agent_dir_entry(entry: Path) -> bool:
271
+ """Return whether a `~/.deepagents/` entry should be listed as an agent.
272
+
273
+ Filters out symlinks (so dangling links don't masquerade as agents)
274
+ and dot-prefixed names — `.state/` (CLI internal state) plus any
275
+ other hidden directory the user may have placed there.
276
+
277
+ `OSError` from `is_dir`/`is_symlink` propagates so callers can log
278
+ with the failing entry's name as context.
279
+ """
280
+ if entry.name.startswith("."):
281
+ return False
282
+ return entry.is_dir() and not entry.is_symlink()
283
+
284
+
272
285
  def get_available_agent_names() -> list[str]:
273
286
  """Return a sorted list of available agent names from `~/.deepagents/`.
274
287
 
275
288
  Scans the user's `.deepagents` directory and returns each real
276
289
  subdirectory found there. Symlinks excluded so a dangling link does not
277
- masquerade as an agent.
290
+ masquerade as an agent. Dot-prefixed entries (e.g., `.state/`) are
291
+ skipped so CLI internal state never appears as an agent.
278
292
 
279
293
  Filesystem errors (missing parent, permission denied, broken entries) are
280
294
  logged and surfaced as an empty list rather than raised — the caller shows
@@ -296,7 +310,7 @@ def get_available_agent_names() -> list[str]:
296
310
  names: list[str] = []
297
311
  for entry in entries:
298
312
  try:
299
- if entry.is_dir() and not entry.is_symlink():
313
+ if _is_agent_dir_entry(entry):
300
314
  names.append(entry.name)
301
315
  except OSError:
302
316
  logger.debug(
@@ -315,8 +329,9 @@ def list_agents(*, output_format: OutputFormat = "text") -> None:
315
329
  output_format: Output format — `'text'` (Rich) or `'json'`.
316
330
  """
317
331
  agents_dir = settings.user_deepagents_dir
332
+ names = get_available_agent_names()
318
333
 
319
- if not agents_dir.exists() or not any(agents_dir.iterdir()):
334
+ if not names:
320
335
  if output_format == "json":
321
336
  from deepagents_cli.output import write_json
322
337
 
@@ -334,17 +349,16 @@ def list_agents(*, output_format: OutputFormat = "text") -> None:
334
349
  from deepagents_cli.output import write_json
335
350
 
336
351
  agents = []
337
- for agent_path in sorted(agents_dir.iterdir()):
338
- if agent_path.is_dir():
339
- agent_name = agent_path.name
340
- agents.append(
341
- {
342
- "name": agent_name,
343
- "path": str(agent_path),
344
- "has_agents_md": (agent_path / "AGENTS.md").exists(),
345
- "is_default": agent_name == DEFAULT_AGENT_NAME,
346
- }
347
- )
352
+ for name in names:
353
+ agent_path = agents_dir / name
354
+ agents.append(
355
+ {
356
+ "name": name,
357
+ "path": str(agent_path),
358
+ "has_agents_md": (agent_path / "AGENTS.md").exists(),
359
+ "is_default": name == DEFAULT_AGENT_NAME,
360
+ }
361
+ )
348
362
  write_json("list", agents)
349
363
  return
350
364
 
@@ -352,33 +366,28 @@ def list_agents(*, output_format: OutputFormat = "text") -> None:
352
366
 
353
367
  console.print("\n[bold]Available Agents:[/bold]\n", style=theme.PRIMARY)
354
368
 
355
- for agent_path in sorted(agents_dir.iterdir()):
356
- if agent_path.is_dir():
357
- agent_name = escape_markup(agent_path.name)
358
- agent_md = agent_path / "AGENTS.md"
359
- is_default = agent_path.name == DEFAULT_AGENT_NAME
360
- default_label = " [dim](default)[/dim]" if is_default else ""
361
-
362
- bullet = get_glyphs().bullet
363
- if agent_md.exists():
364
- console.print(
365
- f" {bullet} [bold]{agent_name}[/bold]{default_label}",
366
- style=theme.PRIMARY,
367
- )
368
- console.print(
369
- f" {escape_markup(str(agent_path))}",
370
- style=theme.MUTED,
371
- )
372
- else:
373
- console.print(
374
- f" {bullet} [bold]{agent_name}[/bold]{default_label}"
375
- " [dim](incomplete)[/dim]",
376
- style=theme.WARNING,
377
- )
378
- console.print(
379
- f" {escape_markup(str(agent_path))}",
380
- style=theme.MUTED,
381
- )
369
+ bullet = get_glyphs().bullet
370
+ for name in names:
371
+ agent_path = agents_dir / name
372
+ agent_name = escape_markup(name)
373
+ is_default = name == DEFAULT_AGENT_NAME
374
+ default_label = " [dim](default)[/dim]" if is_default else ""
375
+
376
+ if (agent_path / "AGENTS.md").exists():
377
+ console.print(
378
+ f" {bullet} [bold]{agent_name}[/bold]{default_label}",
379
+ style=theme.PRIMARY,
380
+ )
381
+ else:
382
+ console.print(
383
+ f" {bullet} [bold]{agent_name}[/bold]{default_label}"
384
+ " [dim](incomplete)[/dim]",
385
+ style=theme.WARNING,
386
+ )
387
+ console.print(
388
+ f" {escape_markup(str(agent_path))}",
389
+ style=theme.MUTED,
390
+ )
382
391
 
383
392
  console.print()
384
393
 
@@ -881,9 +890,9 @@ def _add_interrupt_on() -> dict[str, InterruptOnConfig]:
881
890
  "web_search": web_search_interrupt_config,
882
891
  "fetch_url": fetch_url_interrupt_config,
883
892
  "task": task_interrupt_config,
884
- "launch_async_subagent": async_subagent_interrupt_config,
885
- "update_async_subagent": async_subagent_interrupt_config,
886
- "cancel_async_subagent": async_subagent_interrupt_config,
893
+ "start_async_task": async_subagent_interrupt_config,
894
+ "update_async_task": async_subagent_interrupt_config,
895
+ "cancel_async_task": async_subagent_interrupt_config,
887
896
  }
888
897
 
889
898
  if REQUIRE_COMPACT_TOOL_APPROVAL: