deepagents-code 0.1.29__tar.gz → 0.1.31__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 (322) hide show
  1. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/CHANGELOG.md +38 -0
  2. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/COMMANDS.md +2 -1
  3. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/Makefile +5 -1
  4. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/PKG-INFO +8 -3
  5. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_build_info.py +1 -1
  6. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_cli_context.py +0 -13
  7. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_env_vars.py +21 -0
  8. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_version.py +1 -1
  9. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/agent.py +10 -5
  10. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/app.py +703 -145
  11. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/command_registry.py +7 -0
  12. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/config.py +55 -8
  13. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/config_commands.py +160 -89
  14. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/config_manifest.py +18 -1
  15. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/configurable_model.py +134 -26
  16. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/extras_info.py +5 -4
  17. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/main.py +1 -5
  18. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_auth.py +100 -16
  19. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_tools.py +76 -19
  20. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/model_config.py +80 -0
  21. deepagents_code-0.1.31/deepagents_code/paste_collapse.py +103 -0
  22. deepagents_code-0.1.31/deepagents_code/reasoning_effort.py +575 -0
  23. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/resume_state.py +22 -42
  24. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/textual_adapter.py +16 -30
  25. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/tool_display.py +10 -1
  26. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/ui.py +5 -4
  27. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/update_check.py +45 -0
  28. deepagents_code-0.1.31/deepagents_code/widgets/_links.py +261 -0
  29. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/auth.py +48 -5
  30. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/chat_input.py +195 -26
  31. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/cwd_switch.py +46 -4
  32. deepagents_code-0.1.31/deepagents_code/widgets/effort_selector.py +189 -0
  33. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/install_confirm.py +1 -1
  34. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/message_store.py +8 -3
  35. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/messages.py +761 -52
  36. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/model_selector.py +262 -82
  37. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/status.py +88 -11
  38. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/thread_selector.py +7 -4
  39. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/welcome.py +1 -0
  40. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/pyproject.toml +8 -3
  41. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/scripts/install.sh +26 -7
  42. deepagents_code-0.1.31/tests/unit_tests/smoke_tests/conftest.py +28 -0
  43. deepagents_code-0.1.31/tests/unit_tests/smoke_tests/snapshots/system_prompt_interactive_local.md +537 -0
  44. deepagents_code-0.1.31/tests/unit_tests/smoke_tests/test_system_prompt.py +199 -0
  45. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_agent.py +39 -0
  46. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_app.py +1260 -60
  47. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_auth_widgets.py +29 -5
  48. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_autocomplete.py +7 -1
  49. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_chat_input.py +585 -0
  50. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_config.py +330 -0
  51. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_config_manifest.py +145 -3
  52. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_configurable_model.py +75 -7
  53. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_cwd_switch.py +69 -1
  54. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_extras_info.py +13 -5
  55. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_install_script.py +50 -3
  56. deepagents_code-0.1.31/tests/unit_tests/test_links.py +298 -0
  57. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_auth.py +182 -5
  58. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_tools.py +239 -0
  59. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_message_store.py +35 -0
  60. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_messages.py +1271 -55
  61. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_model_config.py +159 -1
  62. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_model_selector.py +591 -10
  63. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_model_switch.py +149 -0
  64. deepagents_code-0.1.31/tests/unit_tests/test_reasoning_effort.py +640 -0
  65. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_resume_state.py +8 -41
  66. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_status.py +174 -2
  67. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_textual_adapter.py +30 -49
  68. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_thread_selector.py +160 -8
  69. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_update_check.py +152 -0
  70. deepagents_code-0.1.31/tests/unit_tests/widgets/__init__.py +0 -0
  71. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/uv.lock +152 -95
  72. deepagents_code-0.1.29/deepagents_code/widgets/_links.py +0 -116
  73. deepagents_code-0.1.29/tests/unit_tests/test_links.py +0 -70
  74. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/.gitignore +0 -0
  75. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/AGENTS.md +0 -0
  76. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/ARCHITECTURE.md +0 -0
  77. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/DEVELOPMENT.md +0 -0
  78. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/README.md +0 -0
  79. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/THREAT_MODEL.md +0 -0
  80. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/__init__.py +0 -0
  81. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/__main__.py +0 -0
  82. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_ask_user_types.py +0 -0
  83. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_constants.py +0 -0
  84. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_debug.py +0 -0
  85. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_git.py +0 -0
  86. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_paths.py +0 -0
  87. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_server_config.py +0 -0
  88. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_session_stats.py +0 -0
  89. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_startup_error.py +0 -0
  90. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_testing_models.py +0 -0
  91. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/_textual_patches.py +0 -0
  92. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/app.tcss +0 -0
  93. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/approval_mode.py +0 -0
  94. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/ask_user.py +0 -0
  95. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/auth_commands.py +0 -0
  96. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/auth_display.py +0 -0
  97. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/auth_store.py +0 -0
  98. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/built_in_skills/__init__.py +0 -0
  99. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/built_in_skills/remember/SKILL.md +0 -0
  100. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/built_in_skills/skill-creator/SKILL.md +0 -0
  101. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/built_in_skills/skill-creator/scripts/init_skill.py +0 -0
  102. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/built_in_skills/skill-creator/scripts/quick_validate.py +0 -0
  103. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/clipboard.py +0 -0
  104. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/default_agent_prompt.md +0 -0
  105. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/doctor.py +0 -0
  106. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/editor.py +0 -0
  107. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/event_bus.py +0 -0
  108. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/file_ops.py +0 -0
  109. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/formatting.py +0 -0
  110. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/goal_rubric.py +0 -0
  111. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/goal_tools.py +0 -0
  112. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/hooks.py +0 -0
  113. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/input.py +0 -0
  114. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/integrations/__init__.py +0 -0
  115. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/integrations/openai_codex.py +0 -0
  116. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/integrations/sandbox_config.py +0 -0
  117. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/integrations/sandbox_factory.py +0 -0
  118. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/integrations/sandbox_provider.py +0 -0
  119. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/integrations/sandbox_registry.py +0 -0
  120. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/iterm_cursor_guide.py +0 -0
  121. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/local_context.py +0 -0
  122. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/managed_tools.py +0 -0
  123. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_commands.py +0 -0
  124. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_disabled.py +0 -0
  125. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_login_service.py +0 -0
  126. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_oauth_ui.py +0 -0
  127. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_providers/__init__.py +0 -0
  128. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_providers/_registry.py +0 -0
  129. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_providers/base.py +0 -0
  130. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_providers/github.py +0 -0
  131. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_providers/slack.py +0 -0
  132. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/mcp_trust.py +0 -0
  133. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/media_utils.py +0 -0
  134. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/memory_guard.py +0 -0
  135. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/non_interactive.py +0 -0
  136. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/notifications.py +0 -0
  137. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/offload.py +0 -0
  138. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/onboarding.py +0 -0
  139. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/output.py +0 -0
  140. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/project_utils.py +0 -0
  141. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/py.typed +0 -0
  142. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/remote_client.py +0 -0
  143. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/server.py +0 -0
  144. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/server_graph.py +0 -0
  145. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/server_manager.py +0 -0
  146. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/sessions.py +0 -0
  147. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/skills/__init__.py +0 -0
  148. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/skills/commands.py +0 -0
  149. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/skills/invocation.py +0 -0
  150. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/skills/load.py +0 -0
  151. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/state_migration.py +0 -0
  152. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/subagents.py +0 -0
  153. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/system_prompt.md +0 -0
  154. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/terminal_capabilities.py +0 -0
  155. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/terminal_escape.py +0 -0
  156. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/theme.py +0 -0
  157. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/tools.py +0 -0
  158. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/tools_commands.py +0 -0
  159. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/unicode_security.py +0 -0
  160. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/__init__.py +0 -0
  161. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/_js_eval_display.py +0 -0
  162. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/agent_selector.py +0 -0
  163. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/approval.py +0 -0
  164. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/ask_user.py +0 -0
  165. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/autocomplete.py +0 -0
  166. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/codex_auth.py +0 -0
  167. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/diff.py +0 -0
  168. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/goal_review.py +0 -0
  169. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/history.py +0 -0
  170. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/launch_init.py +0 -0
  171. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/loading.py +0 -0
  172. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/mcp_login.py +0 -0
  173. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/mcp_reconnect.py +0 -0
  174. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/mcp_viewer.py +0 -0
  175. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/notification_center.py +0 -0
  176. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/notification_detail.py +0 -0
  177. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/notification_settings.py +0 -0
  178. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/restart_prompt.py +0 -0
  179. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/subagent_panel.py +0 -0
  180. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/theme_selector.py +0 -0
  181. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/tool_renderers.py +0 -0
  182. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/tool_widgets.py +0 -0
  183. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/update_available.py +0 -0
  184. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/update_confirm.py +0 -0
  185. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/deepagents_code/widgets/update_progress.py +0 -0
  186. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/arxiv-search/SKILL.md +0 -0
  187. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  188. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/langgraph-docs/SKILL.md +0 -0
  189. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/skill-creator/SKILL.md +0 -0
  190. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  191. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  192. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/examples/skills/web-research/SKILL.md +0 -0
  193. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/hatch_build.py +0 -0
  194. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/images/tui.png +0 -0
  195. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/scripts/check_imports.py +0 -0
  196. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/scripts/debug_server.sh +0 -0
  197. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/scripts/generate_commands_catalog.py +0 -0
  198. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/README.md +0 -0
  199. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/__init__.py +0 -0
  200. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/benchmarks/__init__.py +0 -0
  201. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -0
  202. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/benchmarks/test_startup_benchmarks.py +0 -0
  203. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/conftest.py +0 -0
  204. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/test_acp_mode.py +0 -0
  205. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/test_auto_approve_remote.py +0 -0
  206. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/test_compact_resume.py +0 -0
  207. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/test_sandbox_factory.py +0 -0
  208. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/integration_tests/test_sandbox_operations.py +0 -0
  209. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/__init__.py +0 -0
  210. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/conftest.py +0 -0
  211. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/data/coding_agent_v1_validator.json +0 -0
  212. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/skills/__init__.py +0 -0
  213. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/skills/test_commands.py +0 -0
  214. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/skills/test_load.py +0 -0
  215. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/skills/test_skills_json.py +0 -0
  216. {deepagents_code-0.1.29/tests/unit_tests/tools → deepagents_code-0.1.31/tests/unit_tests/smoke_tests}/__init__.py +0 -0
  217. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_agent_friendly.py +0 -0
  218. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_agent_selector.py +0 -0
  219. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_approval.py +0 -0
  220. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_approval_mode.py +0 -0
  221. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_args.py +0 -0
  222. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_ask_user.py +0 -0
  223. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_ask_user_middleware.py +0 -0
  224. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_auth_commands.py +0 -0
  225. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_auth_display.py +0 -0
  226. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_auth_store.py +0 -0
  227. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_charset.py +0 -0
  228. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_clipboard.py +0 -0
  229. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_coding_agent_metadata.py +0 -0
  230. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_command_registry.py +0 -0
  231. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_compact_tool.py +0 -0
  232. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_cursor_blink.py +0 -0
  233. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_debug.py +0 -0
  234. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_doctor.py +0 -0
  235. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_editor.py +0 -0
  236. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_end_to_end.py +0 -0
  237. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_env_vars.py +0 -0
  238. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_event_bus.py +0 -0
  239. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_exception_handling.py +0 -0
  240. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_file_ops.py +0 -0
  241. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_formatting.py +0 -0
  242. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_git.py +0 -0
  243. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_goal_review.py +0 -0
  244. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_goal_rubric.py +0 -0
  245. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_goal_tools.py +0 -0
  246. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_hatch_build.py +0 -0
  247. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_history.py +0 -0
  248. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_hooks.py +0 -0
  249. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_imports.py +0 -0
  250. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_input_parsing.py +0 -0
  251. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_install_command.py +0 -0
  252. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_install_confirm.py +0 -0
  253. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_iterm_cursor_guide.py +0 -0
  254. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_launch_init.py +0 -0
  255. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_loading.py +0 -0
  256. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_local_context.py +0 -0
  257. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_main.py +0 -0
  258. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_main_acp_mode.py +0 -0
  259. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_main_args.py +0 -0
  260. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_managed_tools.py +0 -0
  261. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_commands.py +0 -0
  262. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_disabled.py +0 -0
  263. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_login_modal.py +0 -0
  264. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_login_service.py +0 -0
  265. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_oauth_ui.py +0 -0
  266. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_reconnect.py +0 -0
  267. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_trust.py +0 -0
  268. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_mcp_viewer.py +0 -0
  269. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_media_utils.py +0 -0
  270. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_memory_guard.py +0 -0
  271. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_non_interactive.py +0 -0
  272. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_notification_center.py +0 -0
  273. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_notification_detail.py +0 -0
  274. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_notifications.py +0 -0
  275. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_offload.py +0 -0
  276. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_offload_dict_messages.py +0 -0
  277. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_onboarding.py +0 -0
  278. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_openai_codex_integration.py +0 -0
  279. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_output.py +0 -0
  280. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_paths.py +0 -0
  281. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_reload.py +0 -0
  282. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_remote_client.py +0 -0
  283. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_restart_prompt.py +0 -0
  284. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_rubric_cli.py +0 -0
  285. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_sandbox_config.py +0 -0
  286. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_sandbox_factory.py +0 -0
  287. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_sandbox_provider.py +0 -0
  288. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_sandbox_registry.py +0 -0
  289. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_server.py +0 -0
  290. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_server_config.py +0 -0
  291. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_server_graph.py +0 -0
  292. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_server_helpers.py +0 -0
  293. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_server_manager.py +0 -0
  294. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_session_stats.py +0 -0
  295. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_sessions.py +0 -0
  296. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_shell_allow_list.py +0 -0
  297. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_skill_invocation.py +0 -0
  298. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_startup_fast_paths.py +0 -0
  299. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_state_migration.py +0 -0
  300. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_subagent_panel.py +0 -0
  301. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_subagent_stream.py +0 -0
  302. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_subagents.py +0 -0
  303. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_terminal_capabilities.py +0 -0
  304. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_terminal_escape.py +0 -0
  305. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_terminal_progress_preference.py +0 -0
  306. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_textual_patches.py +0 -0
  307. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_theme.py +0 -0
  308. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_tool_display.py +0 -0
  309. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_tool_renderers.py +0 -0
  310. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_tools_commands.py +0 -0
  311. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_tracing_replicas.py +0 -0
  312. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_ui.py +0 -0
  313. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_unicode_security.py +0 -0
  314. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_update_available.py +0 -0
  315. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_update_confirm.py +0 -0
  316. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_update_progress.py +0 -0
  317. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_version.py +0 -0
  318. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/test_welcome.py +0 -0
  319. {deepagents_code-0.1.29/tests/unit_tests/widgets → deepagents_code-0.1.31/tests/unit_tests/tools}/__init__.py +0 -0
  320. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/tools/test_current_thread.py +0 -0
  321. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/tools/test_fetch_url.py +0 -0
  322. {deepagents_code-0.1.29 → deepagents_code-0.1.31}/tests/unit_tests/widgets/test_diff.py +0 -0
@@ -2,6 +2,44 @@
2
2
 
3
3
  # Deep Agents Code Changelog
4
4
 
5
+ ## [0.1.31](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.30...deepagents-code==0.1.31) (2026-07-03)
6
+
7
+ ### Features
8
+
9
+ * Collapse large pastes into compact placeholders ([#4447](https://github.com/langchain-ai/deepagents/issues/4447)) ([9ae927d](https://github.com/langchain-ai/deepagents/commit/9ae927d73ebf30ba50bbb7ec0c1076a0937e5cb7))
10
+ * Show model name instead of spec in switcher ([#4460](https://github.com/langchain-ai/deepagents/issues/4460)) ([0059620](https://github.com/langchain-ai/deepagents/commit/005962088ad31b16745c399e4ab2e725e97f7858))
11
+ * Offer abort during resume ([#4188](https://github.com/langchain-ai/deepagents/issues/4188)) ([a4c25cd](https://github.com/langchain-ai/deepagents/commit/a4c25cd74de9902fd0ea9440b5dda2d4248bb3d2))
12
+ * Persistent banner when installation is stale ([#4459](https://github.com/langchain-ai/deepagents/issues/4459)) ([b74c185](https://github.com/langchain-ai/deepagents/commit/b74c18591a8ce9a49a5fee43b07e602ca9fbf68a))
13
+ * Show `"Took <duration>"` after `execute` finishes ([#4301](https://github.com/langchain-ai/deepagents/issues/4301)) ([a5240eb](https://github.com/langchain-ai/deepagents/commit/a5240ebe3654e72fa5beb4070224f52f944768c8))
14
+ * Unify `config show`/`list` around effective values ([#4174](https://github.com/langchain-ai/deepagents/issues/4174)) ([ccd9d21](https://github.com/langchain-ai/deepagents/commit/ccd9d216e77855a28b88850beb525f47ce8b686a))
15
+
16
+ ### Bug Fixes
17
+
18
+ * Make execute command expandable in code TUI transcript ([#4428](https://github.com/langchain-ai/deepagents/issues/4428)) ([d999181](https://github.com/langchain-ai/deepagents/commit/d999181e8424498681f1e442c71380bf6b82b0aa))
19
+ * Allow suppressing LangSmith key override warning ([#4436](https://github.com/langchain-ai/deepagents/issues/4436)) ([ddcae5e](https://github.com/langchain-ai/deepagents/commit/ddcae5e0bd9aebc946be1d9fb3f5e35eeb690fa6))
20
+ * Ensure unique message widget IDs on history load ([#4454](https://github.com/langchain-ai/deepagents/issues/4454)) ([de2f7d2](https://github.com/langchain-ai/deepagents/commit/de2f7d2835485df905772e1c96e33d2c239d8e22))
21
+ * Resolve `/threads` header link on mount, not after load ([#4453](https://github.com/langchain-ai/deepagents/issues/4453)) ([4cba728](https://github.com/langchain-ai/deepagents/commit/4cba72893fc4aae5b429d8c573c1a513d97ddf8a))
22
+ * Restore caller's LangSmith API key in shell subprocess env ([#4458](https://github.com/langchain-ai/deepagents/issues/4458)) ([9293b19](https://github.com/langchain-ai/deepagents/commit/9293b190170a872b73d0d94e66479bcc5f7962c7))
23
+ * Route Anthropic effort through output config ([#4446](https://github.com/langchain-ai/deepagents/issues/4446)) ([1e8ed81](https://github.com/langchain-ai/deepagents/commit/1e8ed81940a862dde44f704826b61650336367e0))
24
+ * Show loading state during model switch ([#4209](https://github.com/langchain-ai/deepagents/issues/4209)) ([7cc4e9f](https://github.com/langchain-ai/deepagents/commit/7cc4e9f9bda5a8ae42bb072b82b634ad8c39ade1))
25
+
26
+ ## [0.1.30](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.29...deepagents-code==0.1.30) (2026-07-02)
27
+
28
+ ### Features
29
+
30
+ * Add reasoning effort selector ([#4403](https://github.com/langchain-ai/deepagents/issues/4403)) ([6ee0ac4](https://github.com/langchain-ai/deepagents/commit/6ee0ac4cca998f84e157187d565084e2a1912626))
31
+ * Collapse completed tool calls into group summaries ([#4373](https://github.com/langchain-ai/deepagents/issues/4373)) ([3735829](https://github.com/langchain-ai/deepagents/commit/3735829a0c14fb1537daf930140c66b647c8222c))
32
+ * Auto-detect MCP OAuth from 401 challenge ([#4364](https://github.com/langchain-ai/deepagents/issues/4364)) ([9763ffc](https://github.com/langchain-ai/deepagents/commit/9763ffceab8800526ae9fe10decdb2f32d8e4707))
33
+ * Toast when opening a clicked URL ([#4368](https://github.com/langchain-ai/deepagents/issues/4368)) ([434f29e](https://github.com/langchain-ai/deepagents/commit/434f29e5cb3d94988e2a4d80b78452bee4b10812))
34
+
35
+ ### Bug Fixes
36
+
37
+ * Allow `/remember` with args when no conversation history ([#4418](https://github.com/langchain-ai/deepagents/issues/4418)) ([5df9c83](https://github.com/langchain-ai/deepagents/commit/5df9c83b58f2529561848ae9f1364961e1c80641))
38
+ * Persist rubric model after server restart ([#4419](https://github.com/langchain-ai/deepagents/issues/4419)) ([5605a68](https://github.com/langchain-ai/deepagents/commit/5605a681c9fec888d8c6dfbde2decd4692c8cef0))
39
+ * Persist resume model state privately ([#4400](https://github.com/langchain-ai/deepagents/issues/4400)) ([bbd0f0d](https://github.com/langchain-ai/deepagents/commit/bbd0f0d1ddc9d22d399a819d7b4363f7997d119e))
40
+ * Quiet routine ripgrep installer output ([#4417](https://github.com/langchain-ai/deepagents/issues/4417)) ([a52c18d](https://github.com/langchain-ai/deepagents/commit/a52c18d3ef8fe462d1289dca8798c51450e0368a))
41
+ * Honest MCP OAuth callback close message ([#4410](https://github.com/langchain-ai/deepagents/issues/4410)) ([ef637f4](https://github.com/langchain-ai/deepagents/commit/ef637f4a3f38ee155ad7d31e64a5cdd7bfaee62c))
42
+
5
43
  ## [0.1.29](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.28...deepagents-code==0.1.29) (2026-07-01)
6
44
 
7
45
  ### Features
@@ -8,7 +8,7 @@ Regenerate this file with `make commands-catalog` after changing command names,
8
8
  aliases, descriptions, visibility, or hidden-command metadata.
9
9
 
10
10
 
11
- ## Public (31)
11
+ ## Public (32)
12
12
 
13
13
  | Command | Aliases | Description |
14
14
  | --- | --- | --- |
@@ -20,6 +20,7 @@ aliases, descriptions, visibility, or hidden-command metadata.
20
20
  | `/copy` | | Copy the latest assistant message to clipboard |
21
21
  | `/docs` | | Open the docs |
22
22
  | `/editor` | | Open prompt in an external editor ($EDITOR) |
23
+ | `/effort` | | Set reasoning effort for the current model |
23
24
  | `/feedback` | | Send feedback or report an issue |
24
25
  | `/force-clear` | | Stop active work, clear the chat, and start a new thread |
25
26
  | `/goal` | | Set a persistent objective by drafting acceptance criteria |
@@ -1,4 +1,4 @@
1
- .PHONY: format lint type typecheck test tests integration_test integration_tests test_watch benchmark bench bench-memory help run lint_package lint_tests check_imports coverage commands-catalog commands-catalog-check check bootstrap
1
+ .PHONY: format lint type typecheck test tests integration_test integration_tests test_watch benchmark bench bench-memory help run lint_package lint_tests check_imports coverage commands-catalog commands-catalog-check check bootstrap update-snapshots
2
2
 
3
3
  .DEFAULT_GOAL := help
4
4
 
@@ -16,8 +16,12 @@ TEST_FILE ?= tests/unit_tests/
16
16
  integration_test integration_tests: TEST_FILE=tests/integration_tests/
17
17
 
18
18
  COV_ARGS ?= --cov=deepagents_code --cov-report=term-missing
19
+ SMOKE_TESTS ?= tests/unit_tests/smoke_tests/
19
20
  PYTEST_EXTRA ?=
20
21
 
22
+ update-snapshots: ## Update smoke test snapshots
23
+ uv run --group test pytest -vvv --disable-socket --allow-unix-socket --update-snapshots $(SMOKE_TESTS)
24
+
21
25
  test: ## Run unit tests
22
26
  test tests:
23
27
  uv run --group test pytest -n auto --benchmark-disable --disable-socket --allow-unix-socket $(PYTEST_EXTRA) $(TEST_FILE) \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepagents-code
3
- Version: 0.1.29
3
+ Version: 0.1.31
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/
@@ -60,6 +60,7 @@ Requires-Dist: uuid-utils<1.0.0,>=0.16.2
60
60
  Provides-Extra: agentcore
61
61
  Requires-Dist: langchain-agentcore-codeinterpreter<1.0.0,>=0.0.5; extra == 'agentcore'
62
62
  Provides-Extra: all-providers
63
+ Requires-Dist: aiohttp<3.15.0,>=3.14.1; extra == 'all-providers'
63
64
  Requires-Dist: langchain-anthropic<2.0.0,>=1.4.7; extra == 'all-providers'
64
65
  Requires-Dist: langchain-aws<2.0.0,>=1.6.1; extra == 'all-providers'
65
66
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.1; extra == 'all-providers'
@@ -73,7 +74,7 @@ Requires-Dist: langchain-huggingface<2.0.0,>=1.2.2; extra == 'all-providers'
73
74
  Requires-Dist: langchain-ibm<2.0.0,>=1.1.0; extra == 'all-providers'
74
75
  Requires-Dist: langchain-litellm<2.0.0,>=0.7.0; extra == 'all-providers'
75
76
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.5; extra == 'all-providers'
76
- Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.2; extra == 'all-providers'
77
+ Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'all-providers'
77
78
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'all-providers'
78
79
  Requires-Dist: langchain-openai<2.0.0,>=1.3.3; extra == 'all-providers'
79
80
  Requires-Dist: langchain-openrouter<2.0.0,>=0.2.4; extra == 'all-providers'
@@ -110,12 +111,16 @@ Provides-Extra: ibm
110
111
  Requires-Dist: langchain-ibm<2.0.0,>=1.1.0; extra == 'ibm'
111
112
  Provides-Extra: litellm
112
113
  Requires-Dist: langchain-litellm<2.0.0,>=0.7.0; extra == 'litellm'
114
+ Provides-Extra: media
115
+ Requires-Dist: av<18.0.0,>=17.0.0; extra == 'media'
116
+ Requires-Dist: pillow<13.0.0,>=12.2.0; extra == 'media'
113
117
  Provides-Extra: mistralai
114
118
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.5; extra == 'mistralai'
115
119
  Provides-Extra: modal
116
120
  Requires-Dist: langchain-modal>=0.0.5; extra == 'modal'
117
121
  Provides-Extra: nvidia
118
- Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.2; extra == 'nvidia'
122
+ Requires-Dist: aiohttp<3.15.0,>=3.14.1; extra == 'nvidia'
123
+ Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'nvidia'
119
124
  Provides-Extra: ollama
120
125
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'ollama'
121
126
  Provides-Extra: openai
@@ -1,3 +1,3 @@
1
1
  """Generated at build time. Do not edit or commit."""
2
2
 
3
- BUILD_COMMIT = "c540098"
3
+ BUILD_COMMIT = "0390043"
@@ -35,8 +35,6 @@ class CLIContextSchema:
35
35
 
36
36
  model_params: dict[str, Any] = field(default_factory=dict)
37
37
 
38
- effective_model: str | None = None
39
-
40
38
  auto_approve: bool = False
41
39
 
42
40
  approval_mode_key: str | None = None
@@ -63,17 +61,6 @@ class CLIContext(TypedDict, total=False):
63
61
  """Invocation params (e.g. `temperature`, `max_tokens`) to merge
64
62
  into `model_settings`."""
65
63
 
66
- effective_model: str | None
67
- """Resolved `provider:model` spec actually in use for this invocation.
68
-
69
- Unlike `model` (a swap *instruction* that is `None` when the base model is
70
- used), this carries the model in effect — whether from a `/model` override
71
- or the startup default — so `ResumeStateMiddleware` can record it to
72
- checkpoint state for restore on resume. `None` when no usable spec is
73
- resolved yet (e.g. credentials not configured), in which case nothing is
74
- recorded rather than a malformed spec.
75
- """
76
-
77
64
  auto_approve: bool
78
65
  """Whether gated tool calls should skip the human-approval interrupt.
79
66
 
@@ -218,6 +218,27 @@ config value on launch, so a `/scrollbar` toggle will not appear to "stick"
218
218
  across restarts while the env var remains set.
219
219
  """
220
220
 
221
+ SHOW_URL_OPEN_TOAST = "DEEPAGENTS_CODE_SHOW_URL_OPEN_TOAST"
222
+ """Show a confirmation toast after clicking a URL that opens in a browser.
223
+
224
+ Defaults to enabled; set to a falsy value (`0`, `false`, `no`, `off`, or empty)
225
+ to suppress the success toast while still opening URLs normally.
226
+ """
227
+
228
+ SUPPRESS_ENV_OVERRIDE_WARNING = "DEEPAGENTS_CODE_SUPPRESS_ENV_OVERRIDE_WARNING"
229
+ """Silence the startup warning emitted when a `DEEPAGENTS_CODE_`-prefixed
230
+ LangSmith variable overrides its canonical counterpart (e.g. both
231
+ `LANGSMITH_API_KEY` and `DEEPAGENTS_CODE_LANGSMITH_API_KEY` are set to
232
+ different values).
233
+
234
+ The override is intentional: the prefixed value overwrites the canonical
235
+ variable inside the Deep Agents Code process (so the LangSmith SDK, which
236
+ only reads canonical names, picks it up). The value you exported in your own
237
+ shell is unaffected, since a process cannot change its parent's environment.
238
+ Off by default; set to a truthy value (`1`, `true`, `yes`, `on`) to suppress
239
+ the warning when this coexistence is expected. Parsed by `is_env_truthy`.
240
+ """
241
+
221
242
  THEME = "DEEPAGENTS_CODE_THEME"
222
243
  """Force the CLI to launch with this theme name when set."""
223
244
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Keep the `x-release-please-version` annotation — release-please uses it to
4
4
  # bump `__version__` in sync with `pyproject.toml` on every release PR.
5
- __version__ = "0.1.29" # x-release-please-version
5
+ __version__ = "0.1.31" # x-release-please-version
6
6
 
7
7
  DOCS_URL = "https://docs.langchain.com/oss/python/deepagents/code"
8
8
  """URL for `deepagents-code` documentation."""
@@ -74,6 +74,7 @@ from deepagents_code.config import (
74
74
  get_default_coding_instructions,
75
75
  get_glyphs,
76
76
  get_langsmith_project_name,
77
+ restore_user_tracing_api_keys,
77
78
  restore_user_tracing_env,
78
79
  settings,
79
80
  )
@@ -1496,7 +1497,7 @@ def create_cli_agent(
1496
1497
  def _subagent_cli_middleware(*, has_explicit_model: bool) -> list[AgentMiddleware]:
1497
1498
  middleware: list[AgentMiddleware] = []
1498
1499
  if not has_explicit_model:
1499
- middleware.append(ConfigurableModelMiddleware())
1500
+ middleware.append(ConfigurableModelMiddleware(persist_model_state=False))
1500
1501
  if restrictive_shell_allow_list is not None:
1501
1502
  middleware.append(ShellAllowListMiddleware(restrictive_shell_allow_list))
1502
1503
  # Subagents share the on-disk filesystem backend and can edit the user
@@ -1558,10 +1559,10 @@ def create_cli_agent(
1558
1559
  ConfigurableModelMiddleware(),
1559
1560
  ]
1560
1561
 
1561
- # Resume state: declares the `_context_tokens` and `_model_spec` channels
1562
- # and writes them from `after_model` (token count from the latest
1563
- # `AIMessage.usage_metadata`, model spec from `context["effective_model"]`).
1564
- # The CLI reads them back from `state_values` on thread resume.
1562
+ # Resume state: declares private checkpoint channels used on resume.
1563
+ # `ResumeStateMiddleware.after_model` writes `_context_tokens`; model metadata
1564
+ # is written by `ConfigurableModelMiddleware` from the actual completed model
1565
+ # request. The CLI reads them back from `state_values` on thread resume.
1565
1566
  # Goal tools: exposes the read-only `get_goal`/`get_rubric` tools and the
1566
1567
  # constrained `update_goal` tool, and injects goal guidance into the prompt.
1567
1568
  from deepagents_code.goal_tools import GoalToolsMiddleware
@@ -1663,6 +1664,7 @@ def create_cli_agent(
1663
1664
  else:
1664
1665
  shell_env.pop("LANGSMITH_PROJECT", None)
1665
1666
  restore_user_tracing_env(shell_env)
1667
+ restore_user_tracing_api_keys(shell_env)
1666
1668
  # Re-apply a launch-time PYTHONPATH that was stripped from the server
1667
1669
  # interpreter but relayed for approval-gated `execute` commands.
1668
1670
  _apply_inherited_pythonpath(shell_env)
@@ -1673,6 +1675,9 @@ def create_cli_agent(
1673
1675
  # `inherit_env=False`: `shell_env` is already a complete, curated
1674
1676
  # copy of `os.environ`. Inheriting again would re-copy `os.environ`
1675
1677
  # and resurrect the popped carrier var, leaking it into `execute`.
1678
+ # `restore_user_tracing_api_keys` above depends on this too: flipping
1679
+ # to `inherit_env=True` would re-copy the agent's overridden
1680
+ # `LANGSMITH_API_KEY` and undo the restore, leaking it into `execute`.
1676
1681
  backend = LocalShellBackend(
1677
1682
  root_dir=root_dir,
1678
1683
  virtual_mode=False,