deepagents-code 0.1.20__tar.gz → 0.1.22__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 (298) hide show
  1. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/AGENTS.md +4 -37
  2. deepagents_code-0.1.22/ARCHITECTURE.md +70 -0
  3. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/CHANGELOG.md +40 -0
  4. deepagents_code-0.1.22/COMMANDS.md +47 -0
  5. deepagents_code-0.1.22/DEVELOPMENT.md +209 -0
  6. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/Makefile +25 -1
  7. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/PKG-INFO +20 -19
  8. deepagents_code-0.1.22/deepagents_code/_cli_context.py +78 -0
  9. deepagents_code-0.1.22/deepagents_code/_paths.py +69 -0
  10. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_testing_models.py +1 -1
  11. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_version.py +1 -1
  12. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/agent.py +96 -10
  13. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/app.py +891 -171
  14. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/app.tcss +10 -0
  15. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/auth_commands.py +52 -7
  16. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/auth_display.py +0 -2
  17. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/auth_store.py +65 -2
  18. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/clipboard.py +48 -2
  19. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/command_registry.py +30 -31
  20. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/config.py +450 -64
  21. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/config_commands.py +6 -8
  22. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/config_manifest.py +5 -4
  23. deepagents_code-0.1.22/deepagents_code/doctor.py +402 -0
  24. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/extras_info.py +35 -1
  25. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/integrations/sandbox_provider.py +1 -1
  26. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/main.py +173 -28
  27. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_auth.py +1 -1
  28. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/model_config.py +34 -8
  29. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/terminal_escape.py +1 -1
  30. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/textual_adapter.py +24 -3
  31. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/tool_display.py +20 -3
  32. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/ui.py +43 -0
  33. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/unicode_security.py +2 -2
  34. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/update_check.py +1016 -49
  35. deepagents_code-0.1.22/deepagents_code/widgets/_js_eval_display.py +139 -0
  36. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/ask_user.py +6 -0
  37. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/auth.py +154 -55
  38. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/chat_input.py +310 -30
  39. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/launch_init.py +174 -55
  40. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/loading.py +1 -1
  41. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/mcp_viewer.py +29 -0
  42. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/messages.py +227 -14
  43. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/model_selector.py +104 -42
  44. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/notification_center.py +2 -3
  45. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/notification_detail.py +1 -1
  46. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/thread_selector.py +76 -5
  47. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/update_available.py +1 -1
  48. deepagents_code-0.1.22/deepagents_code/widgets/update_confirm.py +184 -0
  49. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/update_progress.py +44 -6
  50. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/pyproject.toml +19 -18
  51. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/scripts/generate_commands_catalog.py +6 -5
  52. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/scripts/install.sh +208 -16
  53. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/benchmarks/test_startup_benchmarks.py +4 -4
  54. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/conftest.py +61 -0
  55. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/skills/test_commands.py +1 -1
  56. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_agent.py +190 -4
  57. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_app.py +1832 -57
  58. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_ask_user.py +17 -0
  59. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_auth_commands.py +82 -5
  60. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_auth_display.py +1 -1
  61. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_auth_store.py +61 -0
  62. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_auth_widgets.py +378 -4
  63. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_chat_input.py +454 -3
  64. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_clipboard.py +108 -1
  65. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_command_registry.py +36 -5
  66. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_config.py +842 -37
  67. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_config_manifest.py +8 -6
  68. deepagents_code-0.1.22/tests/unit_tests/test_doctor.py +313 -0
  69. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_extras_info.py +32 -0
  70. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_install_command.py +133 -2
  71. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_install_confirm.py +4 -4
  72. deepagents_code-0.1.22/tests/unit_tests/test_install_script.py +1247 -0
  73. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_launch_init.py +237 -13
  74. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_main.py +382 -0
  75. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_main_args.py +82 -8
  76. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_managed_tools.py +8 -1
  77. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_tools.py +2 -1
  78. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_viewer.py +59 -24
  79. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_messages.py +304 -0
  80. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_model_config.py +43 -0
  81. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_model_selector.py +376 -227
  82. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_non_interactive.py +12 -1
  83. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_notification_center.py +4 -0
  84. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_openai_codex_integration.py +25 -2
  85. deepagents_code-0.1.22/tests/unit_tests/test_paths.py +44 -0
  86. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_startup_fast_paths.py +54 -18
  87. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_textual_adapter.py +114 -1
  88. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_thread_selector.py +83 -7
  89. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_tool_display.py +21 -0
  90. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_update_check.py +1592 -78
  91. deepagents_code-0.1.22/tests/unit_tests/test_update_confirm.py +106 -0
  92. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_update_progress.py +104 -0
  93. deepagents_code-0.1.22/tests/unit_tests/test_version.py +1382 -0
  94. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_welcome.py +3 -3
  95. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/uv.lock +2229 -1932
  96. deepagents_code-0.1.20/COMMANDS.md +0 -46
  97. deepagents_code-0.1.20/DEV.md +0 -105
  98. deepagents_code-0.1.20/deepagents_code/_cli_context.py +0 -46
  99. deepagents_code-0.1.20/tests/unit_tests/test_install_script.py +0 -639
  100. deepagents_code-0.1.20/tests/unit_tests/test_version.py +0 -658
  101. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/.gitignore +0 -0
  102. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/README.md +0 -0
  103. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/THREAT_MODEL.md +0 -0
  104. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/__init__.py +0 -0
  105. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/__main__.py +0 -0
  106. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_ask_user_types.py +0 -0
  107. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_constants.py +0 -0
  108. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_debug.py +0 -0
  109. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_env_vars.py +0 -0
  110. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_git.py +0 -0
  111. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_server_config.py +0 -0
  112. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_session_stats.py +0 -0
  113. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_startup_error.py +0 -0
  114. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/_textual_patches.py +0 -0
  115. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/ask_user.py +0 -0
  116. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/built_in_skills/__init__.py +0 -0
  117. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/built_in_skills/remember/SKILL.md +0 -0
  118. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/built_in_skills/skill-creator/SKILL.md +0 -0
  119. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/built_in_skills/skill-creator/scripts/init_skill.py +0 -0
  120. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/built_in_skills/skill-creator/scripts/quick_validate.py +0 -0
  121. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/configurable_model.py +0 -0
  122. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/default_agent_prompt.md +0 -0
  123. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/editor.py +0 -0
  124. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/event_bus.py +0 -0
  125. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/file_ops.py +0 -0
  126. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/filesystem_empty_result.py +0 -0
  127. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/formatting.py +0 -0
  128. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/hooks.py +0 -0
  129. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/input.py +0 -0
  130. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/integrations/__init__.py +0 -0
  131. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/integrations/openai_codex.py +0 -0
  132. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/integrations/sandbox_config.py +0 -0
  133. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/integrations/sandbox_factory.py +0 -0
  134. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/integrations/sandbox_registry.py +0 -0
  135. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/iterm_cursor_guide.py +0 -0
  136. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/local_context.py +0 -0
  137. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/managed_tools.py +0 -0
  138. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_commands.py +0 -0
  139. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_disabled.py +0 -0
  140. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_login_service.py +0 -0
  141. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_oauth_ui.py +0 -0
  142. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_providers/__init__.py +0 -0
  143. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_providers/_registry.py +0 -0
  144. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_providers/base.py +0 -0
  145. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_providers/github.py +0 -0
  146. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_providers/slack.py +0 -0
  147. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_tools.py +0 -0
  148. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/mcp_trust.py +0 -0
  149. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/media_utils.py +0 -0
  150. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/memory_guard.py +0 -0
  151. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/non_interactive.py +0 -0
  152. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/notifications.py +0 -0
  153. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/offload.py +0 -0
  154. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/onboarding.py +0 -0
  155. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/output.py +0 -0
  156. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/project_utils.py +0 -0
  157. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/py.typed +0 -0
  158. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/remote_client.py +0 -0
  159. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/resume_state.py +0 -0
  160. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/server.py +0 -0
  161. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/server_graph.py +0 -0
  162. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/server_manager.py +0 -0
  163. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/sessions.py +0 -0
  164. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/skills/__init__.py +0 -0
  165. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/skills/commands.py +0 -0
  166. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/skills/invocation.py +0 -0
  167. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/skills/load.py +0 -0
  168. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/state_migration.py +0 -0
  169. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/subagents.py +0 -0
  170. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/system_prompt.md +0 -0
  171. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/terminal_capabilities.py +0 -0
  172. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/theme.py +0 -0
  173. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/tools.py +0 -0
  174. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/__init__.py +0 -0
  175. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/_links.py +0 -0
  176. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/agent_selector.py +0 -0
  177. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/approval.py +0 -0
  178. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/autocomplete.py +0 -0
  179. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/codex_auth.py +0 -0
  180. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/cwd_switch.py +0 -0
  181. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/diff.py +0 -0
  182. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/history.py +0 -0
  183. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/install_confirm.py +0 -0
  184. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/mcp_login.py +0 -0
  185. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/mcp_reconnect.py +0 -0
  186. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/message_store.py +0 -0
  187. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/notification_settings.py +0 -0
  188. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/restart_prompt.py +0 -0
  189. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/status.py +0 -0
  190. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/theme_selector.py +0 -0
  191. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/tool_renderers.py +0 -0
  192. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/tool_widgets.py +0 -0
  193. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/deepagents_code/widgets/welcome.py +0 -0
  194. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/arxiv-search/SKILL.md +0 -0
  195. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  196. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/langgraph-docs/SKILL.md +0 -0
  197. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/skill-creator/SKILL.md +0 -0
  198. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  199. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  200. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/examples/skills/web-research/SKILL.md +0 -0
  201. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/images/tui.png +0 -0
  202. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/scripts/check_imports.py +0 -0
  203. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/scripts/debug_server.sh +0 -0
  204. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/README.md +0 -0
  205. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/__init__.py +0 -0
  206. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/benchmarks/__init__.py +0 -0
  207. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -0
  208. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/conftest.py +0 -0
  209. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/test_acp_mode.py +0 -0
  210. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/test_compact_resume.py +0 -0
  211. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/test_sandbox_factory.py +0 -0
  212. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/integration_tests/test_sandbox_operations.py +0 -0
  213. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/__init__.py +0 -0
  214. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/skills/__init__.py +0 -0
  215. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/skills/test_load.py +0 -0
  216. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/skills/test_skills_json.py +0 -0
  217. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_agent_friendly.py +0 -0
  218. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_agent_selector.py +0 -0
  219. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_approval.py +0 -0
  220. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_args.py +0 -0
  221. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_ask_user_middleware.py +0 -0
  222. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_autocomplete.py +0 -0
  223. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_charset.py +0 -0
  224. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_compact_tool.py +0 -0
  225. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_configurable_model.py +0 -0
  226. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_cursor_blink.py +0 -0
  227. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_cwd_switch.py +0 -0
  228. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_debug.py +0 -0
  229. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_editor.py +0 -0
  230. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_end_to_end.py +0 -0
  231. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_env_vars.py +0 -0
  232. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_event_bus.py +0 -0
  233. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_exception_handling.py +0 -0
  234. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_file_ops.py +0 -0
  235. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_filesystem_empty_result.py +0 -0
  236. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_formatting.py +0 -0
  237. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_git.py +0 -0
  238. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_history.py +0 -0
  239. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_hooks.py +0 -0
  240. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_imports.py +0 -0
  241. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_input_parsing.py +0 -0
  242. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_iterm_cursor_guide.py +0 -0
  243. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_links.py +0 -0
  244. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_loading.py +0 -0
  245. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_local_context.py +0 -0
  246. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_main_acp_mode.py +0 -0
  247. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_auth.py +0 -0
  248. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_commands.py +0 -0
  249. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_disabled.py +0 -0
  250. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_login_modal.py +0 -0
  251. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_login_service.py +0 -0
  252. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_oauth_ui.py +0 -0
  253. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_reconnect.py +0 -0
  254. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_mcp_trust.py +0 -0
  255. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_media_utils.py +0 -0
  256. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_memory_guard.py +0 -0
  257. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_message_store.py +0 -0
  258. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_model_switch.py +0 -0
  259. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_notification_detail.py +0 -0
  260. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_notifications.py +0 -0
  261. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_offload.py +0 -0
  262. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_offload_dict_messages.py +0 -0
  263. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_onboarding.py +0 -0
  264. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_output.py +0 -0
  265. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_reload.py +0 -0
  266. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_remote_client.py +0 -0
  267. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_restart_prompt.py +0 -0
  268. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_resume_state.py +0 -0
  269. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_sandbox_config.py +0 -0
  270. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_sandbox_factory.py +0 -0
  271. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_sandbox_provider.py +0 -0
  272. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_sandbox_registry.py +0 -0
  273. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_server.py +0 -0
  274. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_server_config.py +0 -0
  275. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_server_graph.py +0 -0
  276. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_server_helpers.py +0 -0
  277. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_server_manager.py +0 -0
  278. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_session_stats.py +0 -0
  279. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_sessions.py +0 -0
  280. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_shell_allow_list.py +0 -0
  281. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_skill_invocation.py +0 -0
  282. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_state_migration.py +0 -0
  283. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_status.py +0 -0
  284. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_subagents.py +0 -0
  285. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_terminal_capabilities.py +0 -0
  286. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_terminal_escape.py +0 -0
  287. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_terminal_progress_preference.py +0 -0
  288. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_textual_patches.py +0 -0
  289. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_theme.py +0 -0
  290. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_tracing_replicas.py +0 -0
  291. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_ui.py +0 -0
  292. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_unicode_security.py +0 -0
  293. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/test_update_available.py +0 -0
  294. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/tools/__init__.py +0 -0
  295. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/tools/test_current_thread.py +0 -0
  296. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/tools/test_fetch_url.py +0 -0
  297. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/widgets/__init__.py +0 -0
  298. {deepagents_code-0.1.20 → deepagents_code-0.1.22}/tests/unit_tests/widgets/test_diff.py +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  `deepagents-code` is the interactive coding agent — the Textual REPL, headless `-x` mode, MCP integration, skills, sandbox bootstrap, and slash-command surface. Forked from `deepagents-cli` at the 0.1.0 split.
4
4
 
5
- For monorepo-wide conventions (commit titles, lint, testing, docs, CI, benchmarks), see the root `AGENTS.md`.
5
+ For monorepo-wide conventions (commit titles, lint, testing, docs, CI, benchmarks), see the root `AGENTS.md`. For a high-level map of the package (client/server processes, request lifecycle, module map), see `ARCHITECTURE.md`.
6
6
 
7
7
  ## Textual (terminal UI framework)
8
8
 
@@ -71,40 +71,7 @@ Casts are acceptable when the type violation is the point of the test (for examp
71
71
 
72
72
  `deepagents-code` pins an exact `deepagents==X.Y.Z` version in `pyproject.toml`. When developing features that depend on new SDK functionality, bump this pin as part of the same PR. A CI check verifies the pin matches the current SDK version at release time (unless bypassed with `dangerous-skip-sdk-pin-check`).
73
73
 
74
- ## Local dev installs
75
-
76
- Keep the released CLI and editable development CLI separate:
77
-
78
- - `dcode` / `deepagents-code` should point at the normal installed tool, typically managed by `uv tool install deepagents-code`.
79
- - `dcode-dev` should point at a dedicated editable venv under `~/.local/share/dcode-dev`, with a symlink in `~/.local/bin/dcode-dev`.
80
-
81
- This uses a manual `uv venv` + `uv pip install -e` rather than `uv sync` or `uv tool install --editable` on purpose: it builds an isolated venv outside the workspace's locked environment, so the dev binary can be re-resolved on demand without disturbing the released tool or the repo's `uv.lock`. `uv pip`/`uv venv` are first-class `uv` subcommands here, not bare `pip`.
82
-
83
- `~/.local/bin` must be on your `PATH` for the `dcode-dev` symlink to resolve (`uv tool install` adds its own shim directory automatically, but a hand-rolled symlink does not).
84
-
85
- Example setup. The `--python` value is illustrative — any interpreter satisfying the package's `requires-python` (currently `>=3.11`) works; omit the flag to let `uv` pick. Replace `<repo>` with your local checkout path.
86
-
87
- ```bash
88
- uv venv ~/.local/share/dcode-dev --python 3.13
89
- uv pip install --python ~/.local/share/dcode-dev/bin/python -e <repo>/libs/code
90
- ln -sf ~/.local/share/dcode-dev/bin/dcode ~/.local/bin/dcode-dev
91
- ```
92
-
93
- When dependency constraints change in `libs/code/pyproject.toml`, update the dev venv explicitly:
94
-
95
- ```bash
96
- uv pip install --python ~/.local/share/dcode-dev/bin/python -e <repo>/libs/code --upgrade
97
- ```
98
-
99
- Verify command resolution and editable imports (the `dcode` checks assume the released tool is installed separately, per above):
100
-
101
- ```bash
102
- which dcode
103
- which dcode-dev
104
- dcode --version
105
- dcode-dev --version
106
- ~/.local/share/dcode-dev/bin/python -c 'import deepagents_code; print(deepagents_code.__file__)'
107
- ```
74
+ For a persistent editable `dcode-dev` install that stays separate from a released install, see [Local dev installs](./DEVELOPMENT.md#local-dev-installs) in the development guide.
108
75
 
109
76
  ## Startup performance
110
77
 
@@ -124,7 +91,7 @@ Debug logging is configured **once**, on the `deepagents_code` package logger, b
124
91
 
125
92
  - Do **not** add per-module `configure_debug_logging(logger)` calls. They are redundant now that the package logger is configured at import, and they reintroduce the duplicate-handler problem the single-config approach solves.
126
93
  - Every module should create its logger with `logging.getLogger(__name__)` so it stays inside the `deepagents_code.*` hierarchy and inherits the package handler. Don't set `logger.propagate = False` or attach your own handlers.
127
- - The handler only attaches when `DEEPAGENTS_CODE_DEBUG` is truthy; the no-op path is a single env-var read, so it's safe on the startup hot path. See `DEV.md` for the `DEEPAGENTS_CODE_DEBUG` / `DEEPAGENTS_CODE_DEBUG_FILE` env vars.
94
+ - The handler only attaches when `DEEPAGENTS_CODE_DEBUG` is truthy; the no-op path is a single env-var read, so it's safe on the startup hot path. See `DEVELOPMENT.md` for the `DEEPAGENTS_CODE_DEBUG` / `DEEPAGENTS_CODE_DEBUG_FILE` env vars.
128
95
 
129
96
  ## CLI help screen
130
97
 
@@ -138,7 +105,7 @@ When adding a user-facing CLI feature (new slash command, keybinding, workflow),
138
105
 
139
106
  Slash commands are defined as `SlashCommand` entries in the `COMMANDS` tuple in `deepagents_code/command_registry.py`. Each entry declares the command name, description, `bypass_tier` (queue-bypass classification), optional `hidden_keywords` for fuzzy matching, and optional `aliases`. Bypass-tier frozensets and the `SLASH_COMMANDS` autocomplete list are derived automatically — no other file should hard-code command metadata.
140
107
 
141
- To add a new slash command: (1) add a `SlashCommand` entry to `COMMANDS`, (2) set the appropriate `bypass_tier`, (3) add a handler branch in `_handle_command` in `app.py`, (4) run `make lint && make test` — the drift test will catch any mismatch.
108
+ To add a new slash command: (1) add a `SlashCommand` entry to `COMMANDS`, (2) set the appropriate `bypass_tier`, (3) add a handler branch in `_handle_command` in `app.py`, (4) run `make commands-catalog` if you changed command names, aliases, descriptions, visibility, or hidden-command metadata, then (5) run `make lint && make test` — the drift test will catch any mismatch.
142
109
 
143
110
  ## Adding a new model provider
144
111
 
@@ -0,0 +1,70 @@
1
+ # Deep Agents Code Architecture
2
+
3
+ ## What this package is
4
+
5
+ `deepagents-code` is a prebuilt terminal coding agent built on top of the `deepagents` SDK. It is a reference implementation: one design for packaging the SDK into a useful coding-agent product, based on patterns that have worked well in our experience.
6
+
7
+ The SDK provides the agent harness. This package shows how to combine that harness with a terminal experience, persistence, tools, skills, and optional sandboxed execution.
8
+
9
+ ## The big picture
10
+
11
+ Deep Agents Code has two runtime halves:
12
+
13
+ ```text
14
+ ┌──────────────────── Terminal client ─────────────────────┐
15
+ │ Presents interactive or headless output │
16
+ │ Collects user input and approvals │
17
+ └──────────────────────────┬───────────────────────────────┘
18
+ │ streaming protocol
19
+
20
+ ┌──────────────────── Agent server ────────────────────────┐
21
+ │ Runs the coding agent graph │
22
+ │ Connects the model, tools, memory, skills, and backend │
23
+ └──────────────────────────────────────────────────────────┘
24
+ ```
25
+
26
+ The client and server run in separate processes. The client owns presentation and input. The server owns the agent runtime. Keeping that boundary narrow makes the UI responsive while letting the agent use LangGraph's streaming, checkpointing, and resume behavior.
27
+
28
+ ## Request flow
29
+
30
+ A request follows the same shape in interactive and headless mode:
31
+
32
+ 1. The client receives user input.
33
+ 2. The client sends that input to the agent server.
34
+ 3. The server runs the agent and streams events back.
35
+ 4. The client renders those events and collects any needed human response.
36
+ 5. Session state is preserved so the conversation can continue later.
37
+
38
+ Headless mode uses the same agent runtime as the interactive UI, but swaps the terminal interface for machine-friendly input and output.
39
+
40
+ ## Configuration and extension
41
+
42
+ Configuration is layered across user, project, session, and runtime scopes. That lets teams share project defaults while individual users keep their own credentials, preferences, skills, and local settings.
43
+
44
+ The main extension points are:
45
+
46
+ - **Skills and subagents** for reusable agent workflows
47
+ - **Tools and MCP servers** for external capabilities
48
+ - **Sandboxes** for changing where tool execution happens
49
+ - **Hooks and commands** for integrating with local workflows
50
+
51
+ These pieces are designed to compose. A project can provide shared defaults and integrations, while each user can layer personal configuration on top.
52
+
53
+ ## Design tradeoffs
54
+
55
+ This architecture optimizes for:
56
+
57
+ - A responsive local terminal experience
58
+ - A reusable agent core that can be tested apart from the UI
59
+ - Durable sessions that can be resumed
60
+ - Controlled tool execution, locally or in a sandbox
61
+ - Practical extension points without rewriting the core app
62
+
63
+ The main cost is the client/server boundary. When debugging, first decide which side owns the failure: presentation and input usually belong to the client; model execution, tools, memory, and graph startup usually belong to the server.
64
+
65
+ ## Where to go next
66
+
67
+ - For local setup and debugging, see [`DEVELOPMENT.md`](./DEVELOPMENT.md).
68
+ - For command behavior, see [`COMMANDS.md`](./COMMANDS.md).
69
+ - For security boundaries, see [`THREAT_MODEL.md`](./THREAT_MODEL.md).
70
+ - For package-specific coding conventions, see [`AGENTS.md`](./AGENTS.md).
@@ -2,6 +2,46 @@
2
2
 
3
3
  # Deep Agents Code Changelog
4
4
 
5
+ ## [0.1.22](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.21...deepagents-code==0.1.22) (2026-06-24)
6
+
7
+ ### Features
8
+
9
+ * Add LangSmith tracing config to `/auth` ([#4193](https://github.com/langchain-ai/deepagents/issues/4193)) ([8e62957](https://github.com/langchain-ai/deepagents/commit/8e6295791093c2ddfec7e6ac57f0df7f12048447))
10
+ * Auto-retry credentials-blocked startup after `/auth` ([#4176](https://github.com/langchain-ai/deepagents/issues/4176)) ([d10ba3d](https://github.com/langchain-ai/deepagents/commit/d10ba3dc162e47cc71df56b8e3d0000b6e0ed847))
11
+ * Improve onboarding Installed Integrations screen ([#4195](https://github.com/langchain-ai/deepagents/issues/4195)) ([0827bf1](https://github.com/langchain-ai/deepagents/commit/0827bf1b635b825121740ac8946dd6d98c815c7d))
12
+
13
+ ### Bug Fixes
14
+
15
+ * Exclude managed bin dir from agent picker ([#4190](https://github.com/langchain-ai/deepagents/issues/4190)) ([d869d1e](https://github.com/langchain-ai/deepagents/commit/d869d1e1fa8558510fb48e71f78fb74c69ca4840))
16
+ * Warn on `/trace` when thread has no messages ([#4162](https://github.com/langchain-ai/deepagents/issues/4162)) ([c338fc9](https://github.com/langchain-ai/deepagents/commit/c338fc914fcd383beb4b97c13f53dfb2684f8c90))
17
+ * Hide "Recent" section during onboarding model selection ([#4198](https://github.com/langchain-ai/deepagents/issues/4198)) ([af882e4](https://github.com/langchain-ai/deepagents/commit/af882e4f6c859878e350d8a37bb75b7bc01bb453))
18
+ * Keep auth modal interactive after install-on-select ([#4187](https://github.com/langchain-ai/deepagents/issues/4187)) ([afbc56a](https://github.com/langchain-ai/deepagents/commit/afbc56a1d9dbe8a89015f4c2f90bb87547d5c1d4))
19
+ * Generic "missing credentials" in model switcher ([#4182](https://github.com/langchain-ai/deepagents/issues/4182)) ([456ce5c](https://github.com/langchain-ai/deepagents/commit/456ce5c2f5487a754d1fea7046e32c03b7e27a17))
20
+ * Hide chat input action buttons in same frame as empty draft ([#4178](https://github.com/langchain-ai/deepagents/issues/4178)) ([f94d417](https://github.com/langchain-ai/deepagents/commit/f94d417d5ad9928db967777fe1d7bc2c37684fb9))
21
+ * Preserve uv tool context when installing extras ([#4201](https://github.com/langchain-ai/deepagents/issues/4201)) ([fcc616c](https://github.com/langchain-ai/deepagents/commit/fcc616cf9bc2bbc7b2dc2574ae8649e2f270dc53))
22
+ * Unpin uv self-updates and warn when a stale dcode shadows PATH ([#4185](https://github.com/langchain-ai/deepagents/issues/4185)) ([8ca0a18](https://github.com/langchain-ai/deepagents/commit/8ca0a185a15f800267cc057178a348fb5063df1e))
23
+
24
+ ## [0.1.21](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.20...deepagents-code==0.1.21) (2026-06-23)
25
+
26
+ ### Features
27
+
28
+ * `dcode doctor` diagnostics command ([#4148](https://github.com/langchain-ai/deepagents/issues/4148)) ([8179731](https://github.com/langchain-ai/deepagents/commit/81797312c7d857e7d94d03c9c695cd3c8d88799a))
29
+ * Add structured TUI display for `js_eval` ([#4151](https://github.com/langchain-ai/deepagents/issues/4151)) ([91c0dae](https://github.com/langchain-ai/deepagents/commit/91c0dae3fe0253f02a5926fcd3c6f796cd8d11fe))
30
+ * Allow dependency updates without requiring release ([#4157](https://github.com/langchain-ai/deepagents/issues/4157)) ([7beb97a](https://github.com/langchain-ai/deepagents/commit/7beb97a2b02e2fd238baf3b6f05d43a4accf3f42))
31
+ * Clear chat input via `esc+esc`, add `[ X ]/[ COPY ]` buttons ([#4000](https://github.com/langchain-ai/deepagents/issues/4000)) ([c20546f](https://github.com/langchain-ai/deepagents/commit/c20546feac7876786e6816776d1ccfa5fcd4b2c8))
32
+ * Confirm "Launched" after auto-update restart ([#4098](https://github.com/langchain-ai/deepagents/issues/4098)) ([df8db8a](https://github.com/langchain-ai/deepagents/commit/df8db8af6a7cbfc2ab535020b951d73759da73dd))
33
+ * Surface tracing in `doctor` and `config show` ([#4163](https://github.com/langchain-ai/deepagents/issues/4163)) ([2bb3e44](https://github.com/langchain-ai/deepagents/commit/2bb3e44243553a5f2954a0f3ec42364563842a87))
34
+
35
+ ### Bug Fixes
36
+
37
+ * Handle LangSmith project-not-found and default tracing project ([#4153](https://github.com/langchain-ai/deepagents/issues/4153)) ([e303ce9](https://github.com/langchain-ai/deepagents/commit/e303ce986a3595f0cf458e796d857f7c8f5f8b5c))
38
+ * Make `/timestamps` toggle instant via per-footer class ([#4095](https://github.com/langchain-ai/deepagents/issues/4095)) ([7ae32b0](https://github.com/langchain-ai/deepagents/commit/7ae32b0a606cc200d4311e11036a65f17e8282b3))
39
+ * Refocus `/mcp` filter input after in-place refresh ([#4080](https://github.com/langchain-ai/deepagents/issues/4080)) ([d79cd74](https://github.com/langchain-ai/deepagents/commit/d79cd74cb8a44c300c3bbad712fe77e709f9221a))
40
+ * Report same-version dependency updates ([#4146](https://github.com/langchain-ai/deepagents/issues/4146)) ([156e118](https://github.com/langchain-ai/deepagents/commit/156e1185242a19746f8c268904637c73f07b9a10))
41
+ * Show "Loading..." in `/threads` agent dropdown while loading ([#4101](https://github.com/langchain-ai/deepagents/issues/4101)) ([c2d949e](https://github.com/langchain-ai/deepagents/commit/c2d949e8765fbbbdb81e5a70125932842358099f))
42
+ * Skip tool interrupts once auto-approve is set ([#4092](https://github.com/langchain-ai/deepagents/issues/4092)) ([9e21c34](https://github.com/langchain-ai/deepagents/commit/9e21c346a6eb8ad25b9cc671f24527b07732e2b7))
43
+ * Word-delete backspace parity in ask-user text area ([#4079](https://github.com/langchain-ai/deepagents/issues/4079)) ([ed3c499](https://github.com/langchain-ai/deepagents/commit/ed3c499354467bc5e8476e5c7cdf0cd5f8b6aec1))
44
+
5
45
  ## [0.1.20](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.19...deepagents-code==0.1.20) (2026-06-17)
6
46
 
7
47
  ### Features
@@ -0,0 +1,47 @@
1
+ <!-- AUTO-GENERATED by scripts/generate_commands_catalog.py — do not edit manually. -->
2
+ # Slash command catalog
3
+
4
+ This is the generated reference for `deepagents-code` slash commands. Command
5
+ names, aliases, and descriptions come from `deepagents_code/command_registry.py`.
6
+ Regenerate this file with `make commands-catalog` after changing command names,
7
+ aliases, descriptions, visibility, or hidden-command metadata.
8
+
9
+
10
+ ## Public (28)
11
+
12
+ | Command | Aliases | Description |
13
+ | --- | --- | --- |
14
+ | `/agents` | | Browse and switch between available agents |
15
+ | `/auth` | `/connect` | Connect and manage provider and service credentials |
16
+ | `/auto-update` | | Turn automatic updates on or off |
17
+ | `/changelog` | | Open the changelog in a browser |
18
+ | `/clear` | | Clear the chat and start a new thread |
19
+ | `/copy` | | Copy the latest assistant message to clipboard |
20
+ | `/docs` | | Open the docs |
21
+ | `/editor` | | Open prompt in an external editor ($EDITOR) |
22
+ | `/feedback` | | Send feedback or report an issue |
23
+ | `/force-clear` | | Stop active work, clear the chat, and start a new thread |
24
+ | `/help` | | Show help and available commands |
25
+ | `/install` | | Install an optional integration |
26
+ | `/mcp` | | Manage MCP servers and authentication |
27
+ | `/model` | | Switch models or edit model settings |
28
+ | `/notifications` | | Configure startup warnings |
29
+ | `/offload` | `/compact` | Offload older messages to free context |
30
+ | `/quit` | `/q` | Exit app |
31
+ | `/reload` | | Reload environment and config |
32
+ | `/remember` | | Save useful context to memory or skills |
33
+ | `/restart` | | Restart the agent server |
34
+ | `/skill-creator` | | Create or refine agent skills |
35
+ | `/theme` | | Change color theme |
36
+ | `/threads` | | Browse and resume past threads |
37
+ | `/timestamps` | | Show or hide message timestamps |
38
+ | `/tokens` | | Show token usage |
39
+ | `/trace` | | Open this thread in LangSmith |
40
+ | `/update` | | Check for and install updates |
41
+ | `/version` | `/about` | Show version information |
42
+
43
+ ## Hidden (1)
44
+
45
+ These commands are intentionally omitted from autocomplete and help. See the `HIDDEN_COMMANDS` docstring in the registry for context.
46
+
47
+ - `/debug-error`
@@ -0,0 +1,209 @@
1
+ # Deep Agents Code Development Guide
2
+
3
+ New to the package? Start with [`ARCHITECTURE.md`](./ARCHITECTURE.md) for a high-level map of how the TUI, the `langgraph dev` server subprocess, and the agent graph fit together.
4
+
5
+ ## Contents
6
+
7
+ - [Quickstart](#quickstart) — get a local checkout running and run the checks CI enforces
8
+ - [Local dev installs](#local-dev-installs) — keep an editable `dcode-dev` separate from a released install
9
+ - [Debugging](#debugging) — diagnose startup crashes and client-side issues
10
+ - [Live CSS development with Textual devtools](#live-css-development-with-textual-devtools) — UI/CSS hot-reload
11
+
12
+ ## Quickstart
13
+
14
+ This package uses [`uv`](https://docs.astral.sh/uv/) for environment and dependency management. Install it first if you haven't:
15
+
16
+ ```bash
17
+ curl -LsSf https://astral.sh/uv/install.sh | sh
18
+ ```
19
+
20
+ Clone the monorepo and bootstrap the `code` package. This creates the virtualenv, installs test dependencies, and installs local git hooks (`pre-commit` + `commit-msg`) so the same checks can run before you push:
21
+
22
+ ```bash
23
+ git clone https://github.com/langchain-ai/deepagents.git
24
+ cd deepagents/libs/code
25
+ make bootstrap
26
+ ```
27
+
28
+ If you only want to sync dependencies without installing hooks, run `uv sync --group test` instead.
29
+
30
+ Run the TUI from `libs/code` in your local checkout:
31
+
32
+ ```bash
33
+ uv run deepagents-code
34
+ ```
35
+
36
+ `uv run` uses the project environment with the package installed editable, so source changes take effect on the next launch. If you want a persistent `dcode-dev` command that stays separate from a released install, use the local dev install setup below.
37
+
38
+ ### Running the tests and linters
39
+
40
+ All commands run from `libs/code`. Before opening a PR, run the full local check suite:
41
+
42
+ ```bash
43
+ make check
44
+ ```
45
+
46
+ This runs linting, import checks, unit tests, and lockfile/version/extras checks.
47
+
48
+ For targeted checks while iterating:
49
+
50
+ ```bash
51
+ # Unit tests (no network)
52
+ make test
53
+
54
+ # A single test file
55
+ make test TEST_FILE=tests/unit_tests/test_specific.py
56
+
57
+ # Integration tests (network permitted)
58
+ make integration_test
59
+ ```
60
+
61
+ ```bash
62
+ # Auto-format (ruff format + autofix)
63
+ make format
64
+
65
+ # Lint + type-check (ruff, ty, commands-catalog check)
66
+ make lint
67
+ ```
68
+
69
+ Run `make help` to see every available target.
70
+
71
+ ## Debugging
72
+
73
+ Deep Agents Code runs as two processes: the **Textual TUI** you interact with, and a **`langgraph dev` subprocess** that hosts the agent graph. Each writes its own log, and a single switch turns both on:
74
+
75
+ ```bash
76
+ cd libs/code
77
+ export DEEPAGENTS_CODE_DEBUG=1
78
+ uv run deepagents-code
79
+ ```
80
+
81
+ | Variable | Effect |
82
+ | --- | --- |
83
+ | `DEEPAGENTS_CODE_DEBUG` | Master switch. Preserves the server subprocess log on exit (printing its path to stderr) and attaches the client `DEBUG` file handler. Truthy: `1`/`true`/`yes`/`on` (case-insensitive). Falsy: `0`/`false`/`no`/`off`/empty/unset. |
84
+ | `DEEPAGENTS_CODE_DEBUG_FILE=<path>` | Overrides the client log path (default `/tmp/deepagents_debug.log`). **Only takes effect when `DEEPAGENTS_CODE_DEBUG` is truthy**; does **not** affect the server subprocess log. |
85
+
86
+ Then pick the log you need by symptom:
87
+
88
+ | Symptom | Log you want | Default location |
89
+ | --- | --- | --- |
90
+ | App crashes on launch (one-line failure banner) | **Server subprocess log** — the real traceback | `$TMPDIR/deepagents_server_log_*.txt` |
91
+ | App starts, then misbehaves (UI, model calls, slash commands) | **Client app log** — `deepagents_code` at `DEBUG` | `/tmp/deepagents_debug.log` |
92
+
93
+ ### Startup crash -> server subprocess log
94
+
95
+ The TUI only surfaces a one-line banner; the actual exception lives in the subprocess's combined stdout/stderr. To get it:
96
+
97
+ 1. **Re-run with debugging on** (see above). On exit, the log is preserved and its path is printed to stderr as `Server log preserved at: ...`. Textual's fullscreen mode can hide that line, but the file is still on disk.
98
+ 2. **Open the newest log.** On macOS, `tempfile` resolves to `$TMPDIR` (a path under `/var/folders/.../T/`):
99
+
100
+ ```bash
101
+ # Newest first
102
+ ls -lt ${TMPDIR:-/tmp}/deepagents_server_log_*.txt | head -5
103
+
104
+ # Or tail the latest live while you reproduce the crash
105
+ tail -F "$(ls -t ${TMPDIR:-/tmp}/deepagents_server_log_*.txt | head -1)"
106
+ ```
107
+
108
+ 3. **Search for `Failed to initialize server graph`.** The traceback beneath it names the concrete failure — MCP config validation, sandbox init, model resolution, subagent load, and so on. Everything above that line is uvicorn/lifespan unwinding and can be ignored.
109
+
110
+ ### Client-side issue -> app log
111
+
112
+ For problems that appear after the app is up, tail the client log in another terminal while reproducing:
113
+
114
+ ```bash
115
+ tail -f /tmp/deepagents_debug.log
116
+ ```
117
+
118
+ To send it elsewhere, also `export DEEPAGENTS_CODE_DEBUG_FILE=<path>`. The handler appends across runs, so a single file accumulates every session.
119
+
120
+ ## Local dev installs
121
+
122
+ A *local dev install* gives you a persistent `dcode-dev` command that launches your checkout directly. It lives in a dedicated editable venv under `~/.local/share/dcode-dev`, symlinked into `~/.local/bin/dcode-dev`. It can sit alongside a released `dcode` without interfering:
123
+
124
+ - `dcode` / `deepagents-code` — the released tool, installed via `curl -LsSf https://langch.in/dcode | bash` (the install script).
125
+ - `dcode-dev` — your local checkout.
126
+
127
+ That lets you compare released behavior against local, and fall back to a known-good build if your checkout breaks. Either way, the dedicated venv keeps the dev binary's dependency experiments out of the repo's locked `uv sync` environment.
128
+
129
+ ### Setup
130
+
131
+ `~/.local/bin` must be on your `PATH` for the symlink to resolve (`uv tool install` adds its own shim directory automatically, but a hand-rolled symlink does not). Replace `<repo>` with your local checkout path:
132
+
133
+ ```bash
134
+ # 1. Create an isolated venv for the dev binary
135
+ uv venv ~/.local/share/dcode-dev --python 3.13
136
+
137
+ # 2. Install your checkout into it, editable
138
+ uv pip install --python ~/.local/share/dcode-dev/bin/python -e <repo>/libs/code
139
+
140
+ # 3. Expose it as `dcode-dev` on your PATH
141
+ ln -sf ~/.local/share/dcode-dev/bin/dcode ~/.local/bin/dcode-dev
142
+ ```
143
+
144
+ The `--python 3.13` is illustrative — any interpreter satisfying the package's `requires-python` (currently `>=3.11`) works; omit the flag to let `uv` pick.
145
+
146
+ > **Why `uv venv` + `uv pip install -e` rather than `uv sync` or `uv tool install --editable`?** This builds an isolated venv *outside* the workspace's locked environment, so the dev binary can be re-resolved on demand without disturbing the released tool or the repo's `uv.lock`. (`uv pip` and `uv venv` are first-class `uv` subcommands here, not bare `pip`.)
147
+
148
+ ### Updating
149
+
150
+ When dependency constraints change in `libs/code/pyproject.toml`, refresh the dev venv:
151
+
152
+ ```bash
153
+ uv pip install --python ~/.local/share/dcode-dev/bin/python -e <repo>/libs/code --upgrade
154
+ ```
155
+
156
+ ### Verifying
157
+
158
+ Confirm command resolution and editable imports (the `dcode` checks assume the released tool is installed separately, per above):
159
+
160
+ ```bash
161
+ which dcode
162
+ which dcode-dev
163
+ dcode --version
164
+ dcode-dev --version
165
+ ~/.local/share/dcode-dev/bin/python -c 'import deepagents_code; print(deepagents_code.__file__)'
166
+ ```
167
+
168
+ ## Live CSS development with Textual devtools
169
+
170
+ After completing the [Quickstart](#quickstart), use Textual's devtools console for CSS hot-reload and live `self.log()` output during development.
171
+
172
+ Create the dev wrapper script once:
173
+
174
+ ```bash
175
+ cat > /tmp/dev_deepagents.py << 'PYEOF'
176
+ """Dev wrapper to run Deep Agents Code with textual devtools."""
177
+ import sys
178
+ sys.argv = ["deepagents"] + sys.argv[1:]
179
+
180
+ from deepagents_code.main import cli_main
181
+ cli_main()
182
+ PYEOF
183
+ ```
184
+
185
+ Run both commands from `libs/code`:
186
+
187
+ **Terminal 1** — devtools console:
188
+
189
+ ```bash
190
+ uv run --group test textual console
191
+ ```
192
+
193
+ **Terminal 2** — TUI with live reload:
194
+
195
+ ```bash
196
+ uv run --group test textual run --dev /tmp/dev_deepagents.py
197
+ ```
198
+
199
+ Edit any `.tcss` file and save — changes appear immediately. Any `self.log()` calls in widget code show in the console.
200
+
201
+ ### Console options
202
+
203
+ - `textual console -v` — verbose mode, shows all events (key presses, mouse, etc.)
204
+ - `textual console -x EVENT` — exclude noisy event groups
205
+ - `textual console --port 7342` — custom port (pass matching `--port` to `textual run`)
206
+
207
+ ### Why the wrapper script?
208
+
209
+ `textual run --dev` handles the devtools connection, but it needs to run inside the project's virtualenv to import `deepagents_code`. The wrapper script bridges the gap — `uv run --group test textual run --dev` ensures both `textual-dev` (from the `test` group) and `deepagents_code` are available in the same environment.
@@ -1,10 +1,12 @@
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
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
2
2
 
3
3
  .DEFAULT_GOAL := help
4
4
 
5
5
  .EXPORT_ALL_VARIABLES:
6
6
  UV_FROZEN = true
7
7
 
8
+ REPO_ROOT := $(shell git rev-parse --show-toplevel)
9
+
8
10
  ######################
9
11
  # TESTING AND COVERAGE
10
12
  ######################
@@ -87,6 +89,28 @@ commands-catalog: ## Regenerate COMMANDS.md from the slash-command registry
87
89
  commands-catalog-check: ## Verify COMMANDS.md matches the slash-command registry
88
90
  uv run --all-groups python scripts/generate_commands_catalog.py --check
89
91
 
92
+ ######################
93
+ # LOCAL CI PARITY
94
+ ######################
95
+
96
+ bootstrap: ## Install dev dependencies and git hooks for local development
97
+ uv sync --group test
98
+ cd "$(REPO_ROOT)" && uvx pre-commit install --install-hooks
99
+ @echo "✅ Dev environment ready: deps synced and git hooks installed."
100
+
101
+ check: ## Run the full local CI gauntlet (lint, types, imports, tests, repo gates)
102
+ check: lint check_imports test
103
+ @echo "🔍 Verifying extras stay in sync with required deps..."
104
+ uv run --all-groups python "$(REPO_ROOT)/.github/scripts/check_extras_sync.py" pyproject.toml
105
+ @echo "🔍 Verifying pyproject.toml and _version.py agree..."
106
+ uv run --all-groups python "$(REPO_ROOT)/.github/scripts/check_version_equality.py"
107
+ @echo "🔒 Verifying uv.lock is up-to-date..."
108
+ uv lock --check
109
+ @echo "🔗 Checking SDK pin against workspace SDK (advisory)..."
110
+ @uv run --all-groups python "$(REPO_ROOT)/.github/scripts/check_sdk_pin.py" || \
111
+ { rc=$$?; [ $$rc -eq 1 ] && echo "⚠️ SDK pin drift (advisory, non-fatal)." || exit $$rc; }
112
+ @echo "✅ All local CI checks passed!"
113
+
90
114
  ######################
91
115
  # HELP
92
116
  ######################
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepagents-code
3
- Version: 0.1.20
3
+ Version: 0.1.22
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,19 +27,20 @@ Classifier: Topic :: Terminals
27
27
  Requires-Python: <4.0,>=3.11
28
28
  Requires-Dist: aiosqlite<1.0.0,>=0.22.1
29
29
  Requires-Dist: deepagents-acp<1.0.0,>=0.0.8
30
- Requires-Dist: deepagents==0.6.10
30
+ Requires-Dist: deepagents==0.6.11
31
31
  Requires-Dist: httpx<1.0.0,>=0.28.1
32
- Requires-Dist: langchain-anthropic<2.0.0,>=1.4.6
32
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.4.7
33
33
  Requires-Dist: langchain-google-genai<5.0.0,>=4.2.5
34
34
  Requires-Dist: langchain-mcp-adapters<1.0.0,>=0.3.0
35
- Requires-Dist: langchain-openai<2.0.0,>=1.3.2
36
- Requires-Dist: langchain<2.0.0,>=1.3.9
35
+ Requires-Dist: langchain-openai<2.0.0,>=1.3.3
36
+ Requires-Dist: langchain<2.0.0,>=1.3.11
37
37
  Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.1.0
38
- Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.29
38
+ Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.30
39
39
  Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.30.0
40
40
  Requires-Dist: langgraph-sdk<1.0.0,>=0.4.2
41
- Requires-Dist: langsmith[sandbox]>=0.8.15
41
+ Requires-Dist: langsmith[sandbox]>=0.9.0
42
42
  Requires-Dist: markdownify<2.0.0,>=1.2.2
43
+ Requires-Dist: mcp<2.0.0,>=1.9.2
43
44
  Requires-Dist: packaging>=26.2
44
45
  Requires-Dist: pillow<13.0.0,>=12.2.0
45
46
  Requires-Dist: prompt-toolkit<4.0.0,>=3.0.52
@@ -53,12 +54,12 @@ 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.7
55
56
  Requires-Dist: tomli-w<2.0.0,>=1.2.0
56
- Requires-Dist: uuid-utils<1.0.0,>=0.16.0
57
+ Requires-Dist: uuid-utils<1.0.0,>=0.16.2
57
58
  Provides-Extra: agentcore
58
59
  Requires-Dist: langchain-agentcore-codeinterpreter<1.0.0,>=0.0.4; extra == 'agentcore'
59
60
  Provides-Extra: all-providers
60
- Requires-Dist: langchain-anthropic<2.0.0,>=1.4.6; extra == 'all-providers'
61
- Requires-Dist: langchain-aws<2.0.0,>=1.5.1; extra == 'all-providers'
61
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.4.7; extra == 'all-providers'
62
+ Requires-Dist: langchain-aws<2.0.0,>=1.6.0; 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.6.0; extra == 'all-providers'
64
65
  Requires-Dist: langchain-deepseek<2.0.0,>=1.1.0; extra == 'all-providers'
@@ -68,12 +69,12 @@ Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.4; extra == 'all-providers'
68
69
  Requires-Dist: langchain-groq<2.0.0,>=1.1.3; 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.1.0; extra == 'all-providers'
71
- Requires-Dist: langchain-litellm<2.0.0,>=0.6.6; extra == 'all-providers'
72
+ Requires-Dist: langchain-litellm<2.0.0,>=0.7.0; extra == 'all-providers'
72
73
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.5; extra == 'all-providers'
73
74
  Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.1; extra == 'all-providers'
74
75
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'all-providers'
75
- Requires-Dist: langchain-openai<2.0.0,>=1.3.2; extra == 'all-providers'
76
- Requires-Dist: langchain-openrouter<2.0.0,>=0.2.3; extra == 'all-providers'
76
+ Requires-Dist: langchain-openai<2.0.0,>=1.3.3; extra == 'all-providers'
77
+ Requires-Dist: langchain-openrouter<2.0.0,>=0.2.4; extra == 'all-providers'
77
78
  Requires-Dist: langchain-perplexity<2.0.0,>=1.4.0; extra == 'all-providers'
78
79
  Requires-Dist: langchain-together<2.0.0,>=0.4.0; extra == 'all-providers'
79
80
  Requires-Dist: langchain-xai<2.0.0,>=1.2.2; extra == 'all-providers'
@@ -84,11 +85,11 @@ Requires-Dist: langchain-modal>=0.0.5; extra == 'all-sandboxes'
84
85
  Requires-Dist: langchain-runloop>=0.0.6; extra == 'all-sandboxes'
85
86
  Requires-Dist: langchain-vercel-sandbox>=0.0.1; extra == 'all-sandboxes'
86
87
  Provides-Extra: anthropic
87
- Requires-Dist: langchain-anthropic<2.0.0,>=1.4.6; extra == 'anthropic'
88
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.4.7; extra == 'anthropic'
88
89
  Provides-Extra: baseten
89
90
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.0; extra == 'baseten'
90
91
  Provides-Extra: bedrock
91
- Requires-Dist: langchain-aws<2.0.0,>=1.5.1; extra == 'bedrock'
92
+ Requires-Dist: langchain-aws<2.0.0,>=1.6.0; extra == 'bedrock'
92
93
  Provides-Extra: cohere
93
94
  Requires-Dist: langchain-cohere<1.0.0,>=0.6.0; extra == 'cohere'
94
95
  Provides-Extra: daytona
@@ -106,7 +107,7 @@ Requires-Dist: langchain-huggingface<2.0.0,>=1.2.2; extra == 'huggingface'
106
107
  Provides-Extra: ibm
107
108
  Requires-Dist: langchain-ibm<2.0.0,>=1.1.0; extra == 'ibm'
108
109
  Provides-Extra: litellm
109
- Requires-Dist: langchain-litellm<2.0.0,>=0.6.6; extra == 'litellm'
110
+ Requires-Dist: langchain-litellm<2.0.0,>=0.7.0; extra == 'litellm'
110
111
  Provides-Extra: mistralai
111
112
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.5; extra == 'mistralai'
112
113
  Provides-Extra: modal
@@ -116,13 +117,13 @@ Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.1; extra == 'nvidia'
116
117
  Provides-Extra: ollama
117
118
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'ollama'
118
119
  Provides-Extra: openai
119
- Requires-Dist: langchain-openai<2.0.0,>=1.3.2; extra == 'openai'
120
+ Requires-Dist: langchain-openai<2.0.0,>=1.3.3; extra == 'openai'
120
121
  Provides-Extra: openrouter
121
- Requires-Dist: langchain-openrouter<2.0.0,>=0.2.3; extra == 'openrouter'
122
+ Requires-Dist: langchain-openrouter<2.0.0,>=0.2.4; extra == 'openrouter'
122
123
  Provides-Extra: perplexity
123
124
  Requires-Dist: langchain-perplexity<2.0.0,>=1.4.0; extra == 'perplexity'
124
125
  Provides-Extra: quickjs
125
- Requires-Dist: langchain-quickjs<0.3.0,>=0.2.0; extra == 'quickjs'
126
+ Requires-Dist: langchain-quickjs<0.4.0,>=0.3.1; extra == 'quickjs'
126
127
  Provides-Extra: runloop
127
128
  Requires-Dist: langchain-runloop>=0.0.6; extra == 'runloop'
128
129
  Provides-Extra: together