deepagents-cli 0.0.59__tar.gz → 0.1.1__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 (307) hide show
  1. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/CHANGELOG.md +15 -0
  2. deepagents_cli-0.1.1/DEV.md +44 -0
  3. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/Makefile +3 -12
  4. deepagents_cli-0.1.1/PKG-INFO +99 -0
  5. deepagents_cli-0.1.1/README.md +49 -0
  6. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/THREAT_MODEL.md +9 -0
  7. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/__init__.py +9 -7
  8. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/__main__.py +1 -1
  9. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/_version.py +1 -1
  10. deepagents_cli-0.1.1/deepagents_cli/config.py +128 -0
  11. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/commands.py +24 -1
  12. deepagents_cli-0.1.1/deepagents_cli/main.py +167 -0
  13. deepagents_cli-0.1.1/deepagents_cli/model_config.py +55 -0
  14. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/package-lock.json +3 -3
  15. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/pyproject.toml +7 -96
  16. deepagents_cli-0.1.1/tests/unit_tests/conftest.py +32 -0
  17. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/unit_tests/deploy/test_commands.py +28 -0
  18. deepagents_cli-0.1.1/tests/unit_tests/test_version.py +49 -0
  19. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/uv.lock +9 -2749
  20. deepagents_cli-0.0.59/DEV.md +0 -92
  21. deepagents_cli-0.0.59/PKG-INFO +0 -204
  22. deepagents_cli-0.0.59/README.md +0 -71
  23. deepagents_cli-0.0.59/deepagents_cli/_ask_user_types.py +0 -90
  24. deepagents_cli-0.0.59/deepagents_cli/_cli_context.py +0 -27
  25. deepagents_cli-0.0.59/deepagents_cli/_constants.py +0 -14
  26. deepagents_cli-0.0.59/deepagents_cli/_debug.py +0 -52
  27. deepagents_cli-0.0.59/deepagents_cli/_env_vars.py +0 -173
  28. deepagents_cli-0.0.59/deepagents_cli/_git.py +0 -236
  29. deepagents_cli-0.0.59/deepagents_cli/_server_config.py +0 -351
  30. deepagents_cli-0.0.59/deepagents_cli/_session_stats.py +0 -114
  31. deepagents_cli-0.0.59/deepagents_cli/_testing_models.py +0 -144
  32. deepagents_cli-0.0.59/deepagents_cli/_textual_patches.py +0 -66
  33. deepagents_cli-0.0.59/deepagents_cli/agent.py +0 -1286
  34. deepagents_cli-0.0.59/deepagents_cli/app.py +0 -8704
  35. deepagents_cli-0.0.59/deepagents_cli/app.tcss +0 -334
  36. deepagents_cli-0.0.59/deepagents_cli/ask_user.py +0 -301
  37. deepagents_cli-0.0.59/deepagents_cli/auth_store.py +0 -363
  38. deepagents_cli-0.0.59/deepagents_cli/built_in_skills/__init__.py +0 -5
  39. deepagents_cli-0.0.59/deepagents_cli/built_in_skills/remember/SKILL.md +0 -118
  40. deepagents_cli-0.0.59/deepagents_cli/built_in_skills/skill-creator/SKILL.md +0 -383
  41. deepagents_cli-0.0.59/deepagents_cli/built_in_skills/skill-creator/scripts/init_skill.py +0 -366
  42. deepagents_cli-0.0.59/deepagents_cli/built_in_skills/skill-creator/scripts/quick_validate.py +0 -158
  43. deepagents_cli-0.0.59/deepagents_cli/clipboard.py +0 -155
  44. deepagents_cli-0.0.59/deepagents_cli/command_registry.py +0 -358
  45. deepagents_cli-0.0.59/deepagents_cli/config.py +0 -2567
  46. deepagents_cli-0.0.59/deepagents_cli/configurable_model.py +0 -201
  47. deepagents_cli-0.0.59/deepagents_cli/default_agent_prompt.md +0 -12
  48. deepagents_cli-0.0.59/deepagents_cli/editor.py +0 -142
  49. deepagents_cli-0.0.59/deepagents_cli/event_bus.py +0 -411
  50. deepagents_cli-0.0.59/deepagents_cli/extras_info.py +0 -260
  51. deepagents_cli-0.0.59/deepagents_cli/file_ops.py +0 -473
  52. deepagents_cli-0.0.59/deepagents_cli/formatting.py +0 -28
  53. deepagents_cli-0.0.59/deepagents_cli/hooks.py +0 -209
  54. deepagents_cli-0.0.59/deepagents_cli/input.py +0 -787
  55. deepagents_cli-0.0.59/deepagents_cli/integrations/__init__.py +0 -1
  56. deepagents_cli-0.0.59/deepagents_cli/integrations/sandbox_factory.py +0 -899
  57. deepagents_cli-0.0.59/deepagents_cli/integrations/sandbox_provider.py +0 -71
  58. deepagents_cli-0.0.59/deepagents_cli/iterm_cursor_guide.py +0 -176
  59. deepagents_cli-0.0.59/deepagents_cli/local_context.py +0 -738
  60. deepagents_cli-0.0.59/deepagents_cli/main.py +0 -2258
  61. deepagents_cli-0.0.59/deepagents_cli/mcp_auth.py +0 -712
  62. deepagents_cli-0.0.59/deepagents_cli/mcp_commands.py +0 -204
  63. deepagents_cli-0.0.59/deepagents_cli/mcp_providers/__init__.py +0 -23
  64. deepagents_cli-0.0.59/deepagents_cli/mcp_providers/_registry.py +0 -39
  65. deepagents_cli-0.0.59/deepagents_cli/mcp_providers/base.py +0 -99
  66. deepagents_cli-0.0.59/deepagents_cli/mcp_providers/github.py +0 -91
  67. deepagents_cli-0.0.59/deepagents_cli/mcp_providers/slack.py +0 -130
  68. deepagents_cli-0.0.59/deepagents_cli/mcp_tools.py +0 -1532
  69. deepagents_cli-0.0.59/deepagents_cli/mcp_trust.py +0 -167
  70. deepagents_cli-0.0.59/deepagents_cli/media_utils.py +0 -478
  71. deepagents_cli-0.0.59/deepagents_cli/model_config.py +0 -2749
  72. deepagents_cli-0.0.59/deepagents_cli/non_interactive.py +0 -1197
  73. deepagents_cli-0.0.59/deepagents_cli/notifications.py +0 -244
  74. deepagents_cli-0.0.59/deepagents_cli/offload.py +0 -402
  75. deepagents_cli-0.0.59/deepagents_cli/onboarding.py +0 -188
  76. deepagents_cli-0.0.59/deepagents_cli/output.py +0 -69
  77. deepagents_cli-0.0.59/deepagents_cli/project_utils.py +0 -231
  78. deepagents_cli-0.0.59/deepagents_cli/remote_client.py +0 -537
  79. deepagents_cli-0.0.59/deepagents_cli/server.py +0 -558
  80. deepagents_cli-0.0.59/deepagents_cli/server_graph.py +0 -230
  81. deepagents_cli-0.0.59/deepagents_cli/server_manager.py +0 -428
  82. deepagents_cli-0.0.59/deepagents_cli/sessions.py +0 -1302
  83. deepagents_cli-0.0.59/deepagents_cli/skills/__init__.py +0 -18
  84. deepagents_cli-0.0.59/deepagents_cli/skills/commands.py +0 -1090
  85. deepagents_cli-0.0.59/deepagents_cli/skills/invocation.py +0 -103
  86. deepagents_cli-0.0.59/deepagents_cli/skills/load.py +0 -196
  87. deepagents_cli-0.0.59/deepagents_cli/state_migration.py +0 -136
  88. deepagents_cli-0.0.59/deepagents_cli/subagents.py +0 -173
  89. deepagents_cli-0.0.59/deepagents_cli/system_prompt.md +0 -243
  90. deepagents_cli-0.0.59/deepagents_cli/terminal_capabilities.py +0 -115
  91. deepagents_cli-0.0.59/deepagents_cli/terminal_escape.py +0 -287
  92. deepagents_cli-0.0.59/deepagents_cli/textual_adapter.py +0 -1544
  93. deepagents_cli-0.0.59/deepagents_cli/theme.py +0 -867
  94. deepagents_cli-0.0.59/deepagents_cli/token_state.py +0 -31
  95. deepagents_cli-0.0.59/deepagents_cli/tool_display.py +0 -298
  96. deepagents_cli-0.0.59/deepagents_cli/tools.py +0 -167
  97. deepagents_cli-0.0.59/deepagents_cli/ui.py +0 -546
  98. deepagents_cli-0.0.59/deepagents_cli/unicode_security.py +0 -516
  99. deepagents_cli-0.0.59/deepagents_cli/update_check.py +0 -977
  100. deepagents_cli-0.0.59/deepagents_cli/widgets/__init__.py +0 -9
  101. deepagents_cli-0.0.59/deepagents_cli/widgets/_links.py +0 -96
  102. deepagents_cli-0.0.59/deepagents_cli/widgets/agent_selector.py +0 -420
  103. deepagents_cli-0.0.59/deepagents_cli/widgets/approval.py +0 -599
  104. deepagents_cli-0.0.59/deepagents_cli/widgets/ask_user.py +0 -485
  105. deepagents_cli-0.0.59/deepagents_cli/widgets/auth.py +0 -633
  106. deepagents_cli-0.0.59/deepagents_cli/widgets/autocomplete.py +0 -703
  107. deepagents_cli-0.0.59/deepagents_cli/widgets/chat_input.py +0 -2181
  108. deepagents_cli-0.0.59/deepagents_cli/widgets/diff.py +0 -248
  109. deepagents_cli-0.0.59/deepagents_cli/widgets/history.py +0 -188
  110. deepagents_cli-0.0.59/deepagents_cli/widgets/launch_init.py +0 -363
  111. deepagents_cli-0.0.59/deepagents_cli/widgets/loading.py +0 -208
  112. deepagents_cli-0.0.59/deepagents_cli/widgets/mcp_viewer.py +0 -432
  113. deepagents_cli-0.0.59/deepagents_cli/widgets/message_store.py +0 -742
  114. deepagents_cli-0.0.59/deepagents_cli/widgets/messages.py +0 -2142
  115. deepagents_cli-0.0.59/deepagents_cli/widgets/model_selector.py +0 -1177
  116. deepagents_cli-0.0.59/deepagents_cli/widgets/notification_center.py +0 -399
  117. deepagents_cli-0.0.59/deepagents_cli/widgets/notification_detail.py +0 -257
  118. deepagents_cli-0.0.59/deepagents_cli/widgets/notification_settings.py +0 -170
  119. deepagents_cli-0.0.59/deepagents_cli/widgets/status.py +0 -457
  120. deepagents_cli-0.0.59/deepagents_cli/widgets/theme_selector.py +0 -347
  121. deepagents_cli-0.0.59/deepagents_cli/widgets/thread_selector.py +0 -2228
  122. deepagents_cli-0.0.59/deepagents_cli/widgets/tool_renderers.py +0 -148
  123. deepagents_cli-0.0.59/deepagents_cli/widgets/tool_widgets.py +0 -274
  124. deepagents_cli-0.0.59/deepagents_cli/widgets/update_available.py +0 -311
  125. deepagents_cli-0.0.59/deepagents_cli/widgets/update_progress.py +0 -279
  126. deepagents_cli-0.0.59/deepagents_cli/widgets/welcome.py +0 -490
  127. deepagents_cli-0.0.59/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -185
  128. deepagents_cli-0.0.59/tests/integration_tests/benchmarks/test_startup_benchmarks.py +0 -339
  129. deepagents_cli-0.0.59/tests/integration_tests/test_acp_mode.py +0 -117
  130. deepagents_cli-0.0.59/tests/integration_tests/test_compact_resume.py +0 -204
  131. deepagents_cli-0.0.59/tests/integration_tests/test_sandbox_factory.py +0 -349
  132. deepagents_cli-0.0.59/tests/integration_tests/test_sandbox_operations.py +0 -1179
  133. deepagents_cli-0.0.59/tests/unit_tests/conftest.py +0 -168
  134. deepagents_cli-0.0.59/tests/unit_tests/deploy/__init__.py +0 -0
  135. deepagents_cli-0.0.59/tests/unit_tests/skills/__init__.py +0 -1
  136. deepagents_cli-0.0.59/tests/unit_tests/skills/test_commands.py +0 -1338
  137. deepagents_cli-0.0.59/tests/unit_tests/skills/test_load.py +0 -852
  138. deepagents_cli-0.0.59/tests/unit_tests/skills/test_skills_json.py +0 -154
  139. deepagents_cli-0.0.59/tests/unit_tests/test_agent.py +0 -2406
  140. deepagents_cli-0.0.59/tests/unit_tests/test_agent_friendly.py +0 -605
  141. deepagents_cli-0.0.59/tests/unit_tests/test_agent_selector.py +0 -466
  142. deepagents_cli-0.0.59/tests/unit_tests/test_app.py +0 -8292
  143. deepagents_cli-0.0.59/tests/unit_tests/test_approval.py +0 -641
  144. deepagents_cli-0.0.59/tests/unit_tests/test_args.py +0 -581
  145. deepagents_cli-0.0.59/tests/unit_tests/test_ask_user.py +0 -779
  146. deepagents_cli-0.0.59/tests/unit_tests/test_ask_user_middleware.py +0 -221
  147. deepagents_cli-0.0.59/tests/unit_tests/test_auth_store.py +0 -266
  148. deepagents_cli-0.0.59/tests/unit_tests/test_auth_widgets.py +0 -390
  149. deepagents_cli-0.0.59/tests/unit_tests/test_autocomplete.py +0 -592
  150. deepagents_cli-0.0.59/tests/unit_tests/test_charset.py +0 -360
  151. deepagents_cli-0.0.59/tests/unit_tests/test_chat_input.py +0 -2869
  152. deepagents_cli-0.0.59/tests/unit_tests/test_clipboard.py +0 -274
  153. deepagents_cli-0.0.59/tests/unit_tests/test_command_registry.py +0 -221
  154. deepagents_cli-0.0.59/tests/unit_tests/test_compact_tool.py +0 -40
  155. deepagents_cli-0.0.59/tests/unit_tests/test_config.py +0 -3004
  156. deepagents_cli-0.0.59/tests/unit_tests/test_configurable_model.py +0 -609
  157. deepagents_cli-0.0.59/tests/unit_tests/test_debug.py +0 -69
  158. deepagents_cli-0.0.59/tests/unit_tests/test_editor.py +0 -274
  159. deepagents_cli-0.0.59/tests/unit_tests/test_end_to_end.py +0 -435
  160. deepagents_cli-0.0.59/tests/unit_tests/test_env_vars.py +0 -135
  161. deepagents_cli-0.0.59/tests/unit_tests/test_event_bus.py +0 -445
  162. deepagents_cli-0.0.59/tests/unit_tests/test_exception_handling.py +0 -244
  163. deepagents_cli-0.0.59/tests/unit_tests/test_extras_info.py +0 -240
  164. deepagents_cli-0.0.59/tests/unit_tests/test_file_ops.py +0 -120
  165. deepagents_cli-0.0.59/tests/unit_tests/test_formatting.py +0 -66
  166. deepagents_cli-0.0.59/tests/unit_tests/test_git.py +0 -264
  167. deepagents_cli-0.0.59/tests/unit_tests/test_history.py +0 -233
  168. deepagents_cli-0.0.59/tests/unit_tests/test_hooks.py +0 -357
  169. deepagents_cli-0.0.59/tests/unit_tests/test_imports.py +0 -29
  170. deepagents_cli-0.0.59/tests/unit_tests/test_input_parsing.py +0 -414
  171. deepagents_cli-0.0.59/tests/unit_tests/test_iterm_cursor_guide.py +0 -256
  172. deepagents_cli-0.0.59/tests/unit_tests/test_launch_init.py +0 -336
  173. deepagents_cli-0.0.59/tests/unit_tests/test_links.py +0 -42
  174. deepagents_cli-0.0.59/tests/unit_tests/test_loading.py +0 -86
  175. deepagents_cli-0.0.59/tests/unit_tests/test_local_context.py +0 -1541
  176. deepagents_cli-0.0.59/tests/unit_tests/test_main.py +0 -1212
  177. deepagents_cli-0.0.59/tests/unit_tests/test_main_acp_mode.py +0 -186
  178. deepagents_cli-0.0.59/tests/unit_tests/test_main_args.py +0 -1032
  179. deepagents_cli-0.0.59/tests/unit_tests/test_mcp_auth.py +0 -967
  180. deepagents_cli-0.0.59/tests/unit_tests/test_mcp_commands.py +0 -332
  181. deepagents_cli-0.0.59/tests/unit_tests/test_mcp_tools.py +0 -2277
  182. deepagents_cli-0.0.59/tests/unit_tests/test_mcp_trust.py +0 -112
  183. deepagents_cli-0.0.59/tests/unit_tests/test_mcp_viewer.py +0 -197
  184. deepagents_cli-0.0.59/tests/unit_tests/test_media_utils.py +0 -733
  185. deepagents_cli-0.0.59/tests/unit_tests/test_message_store.py +0 -867
  186. deepagents_cli-0.0.59/tests/unit_tests/test_messages.py +0 -1342
  187. deepagents_cli-0.0.59/tests/unit_tests/test_model_config.py +0 -4341
  188. deepagents_cli-0.0.59/tests/unit_tests/test_model_selector.py +0 -1314
  189. deepagents_cli-0.0.59/tests/unit_tests/test_model_switch.py +0 -1122
  190. deepagents_cli-0.0.59/tests/unit_tests/test_non_interactive.py +0 -1562
  191. deepagents_cli-0.0.59/tests/unit_tests/test_notification_center.py +0 -312
  192. deepagents_cli-0.0.59/tests/unit_tests/test_notification_detail.py +0 -133
  193. deepagents_cli-0.0.59/tests/unit_tests/test_notifications.py +0 -204
  194. deepagents_cli-0.0.59/tests/unit_tests/test_offload.py +0 -1510
  195. deepagents_cli-0.0.59/tests/unit_tests/test_offload_dict_messages.py +0 -335
  196. deepagents_cli-0.0.59/tests/unit_tests/test_onboarding.py +0 -241
  197. deepagents_cli-0.0.59/tests/unit_tests/test_output.py +0 -62
  198. deepagents_cli-0.0.59/tests/unit_tests/test_reload.py +0 -632
  199. deepagents_cli-0.0.59/tests/unit_tests/test_remote_client.py +0 -615
  200. deepagents_cli-0.0.59/tests/unit_tests/test_sandbox_factory.py +0 -505
  201. deepagents_cli-0.0.59/tests/unit_tests/test_server.py +0 -321
  202. deepagents_cli-0.0.59/tests/unit_tests/test_server_config.py +0 -217
  203. deepagents_cli-0.0.59/tests/unit_tests/test_server_graph.py +0 -139
  204. deepagents_cli-0.0.59/tests/unit_tests/test_server_helpers.py +0 -95
  205. deepagents_cli-0.0.59/tests/unit_tests/test_server_manager.py +0 -340
  206. deepagents_cli-0.0.59/tests/unit_tests/test_session_stats.py +0 -151
  207. deepagents_cli-0.0.59/tests/unit_tests/test_sessions.py +0 -1860
  208. deepagents_cli-0.0.59/tests/unit_tests/test_shell_allow_list.py +0 -719
  209. deepagents_cli-0.0.59/tests/unit_tests/test_skill_invocation.py +0 -596
  210. deepagents_cli-0.0.59/tests/unit_tests/test_startup_fast_paths.py +0 -213
  211. deepagents_cli-0.0.59/tests/unit_tests/test_state_migration.py +0 -204
  212. deepagents_cli-0.0.59/tests/unit_tests/test_status.py +0 -430
  213. deepagents_cli-0.0.59/tests/unit_tests/test_subagents.py +0 -431
  214. deepagents_cli-0.0.59/tests/unit_tests/test_terminal_capabilities.py +0 -203
  215. deepagents_cli-0.0.59/tests/unit_tests/test_terminal_escape.py +0 -377
  216. deepagents_cli-0.0.59/tests/unit_tests/test_textual_adapter.py +0 -2334
  217. deepagents_cli-0.0.59/tests/unit_tests/test_textual_patches.py +0 -92
  218. deepagents_cli-0.0.59/tests/unit_tests/test_theme.py +0 -2543
  219. deepagents_cli-0.0.59/tests/unit_tests/test_thread_selector.py +0 -3374
  220. deepagents_cli-0.0.59/tests/unit_tests/test_token_tracker.py +0 -150
  221. deepagents_cli-0.0.59/tests/unit_tests/test_tool_display.py +0 -470
  222. deepagents_cli-0.0.59/tests/unit_tests/test_ui.py +0 -388
  223. deepagents_cli-0.0.59/tests/unit_tests/test_unicode_security.py +0 -246
  224. deepagents_cli-0.0.59/tests/unit_tests/test_update_available.py +0 -183
  225. deepagents_cli-0.0.59/tests/unit_tests/test_update_check.py +0 -1424
  226. deepagents_cli-0.0.59/tests/unit_tests/test_update_progress.py +0 -116
  227. deepagents_cli-0.0.59/tests/unit_tests/test_version.py +0 -396
  228. deepagents_cli-0.0.59/tests/unit_tests/test_welcome.py +0 -665
  229. deepagents_cli-0.0.59/tests/unit_tests/tools/__init__.py +0 -0
  230. deepagents_cli-0.0.59/tests/unit_tests/tools/test_fetch_url.py +0 -72
  231. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/.gitignore +0 -0
  232. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/__init__.py +0 -0
  233. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/bundler.py +0 -0
  234. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/config.py +0 -0
  235. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/context_hub.py +0 -0
  236. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/assets/anonymous-B9UzAXQd.js +0 -0
  237. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/assets/clerk-5xHgyQyG.js +0 -0
  238. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/assets/highlighted-body-OFNGDK62-rX-7qT8o.js +0 -0
  239. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/assets/index-DM3gptpu.js +0 -0
  240. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/assets/index-Ddy7F6KI.css +0 -0
  241. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/assets/supabase-S6NACDgm.js +0 -0
  242. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/index.html +0 -0
  243. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/logo-dark.svg +0 -0
  244. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/frontend_dist/logo-light.svg +0 -0
  245. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/deploy/templates.py +0 -0
  246. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/deepagents_cli/py.typed +0 -0
  247. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/deploy-content-writer/.env.example +0 -0
  248. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/deploy-content-writer/skills/blog-post/SKILL.md +0 -0
  249. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/deploy-content-writer/skills/social-media/SKILL.md +0 -0
  250. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/deploy-content-writer/user/context.md +0 -0
  251. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/deploy-content-writer/user/preferences.md +0 -0
  252. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/arxiv-search/SKILL.md +0 -0
  253. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  254. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/langgraph-docs/SKILL.md +0 -0
  255. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/skill-creator/SKILL.md +0 -0
  256. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  257. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  258. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/examples/skills/web-research/SKILL.md +0 -0
  259. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/.nvmrc +0 -0
  260. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/index.html +0 -0
  261. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/package.json +0 -0
  262. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/postcss.config.js +0 -0
  263. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/public/logo-dark.svg +0 -0
  264. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/public/logo-light.svg +0 -0
  265. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/App.tsx +0 -0
  266. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/ThemeProvider.tsx +0 -0
  267. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/auth/anonymous.tsx +0 -0
  268. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/auth/clerk.tsx +0 -0
  269. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/auth/loader.tsx +0 -0
  270. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/auth/supabase.tsx +0 -0
  271. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/auth/types.ts +0 -0
  272. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/AppHeader.tsx +0 -0
  273. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/FilePanels.tsx +0 -0
  274. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/MessageList.tsx +0 -0
  275. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/SubagentActivity.tsx +0 -0
  276. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/ThreadPicker.tsx +0 -0
  277. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/TodosPanel.tsx +0 -0
  278. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/ToolCallCard.tsx +0 -0
  279. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/toolcalls/FileToolCard.tsx +0 -0
  280. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/toolcalls/SearchCard.tsx +0 -0
  281. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/toolcalls/ThinkCard.tsx +0 -0
  282. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/toolcalls/TodosCard.tsx +0 -0
  283. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/components/toolcalls/index.ts +0 -0
  284. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/constants.ts +0 -0
  285. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/index.css +0 -0
  286. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/main.tsx +0 -0
  287. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/runtimeConfig.ts +0 -0
  288. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/types.ts +0 -0
  289. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/src/vite-env.d.ts +0 -0
  290. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/tsconfig.json +0 -0
  291. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/frontend/vite.config.ts +0 -0
  292. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/images/cli.png +0 -0
  293. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/scripts/check_imports.py +0 -0
  294. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/scripts/debug_server.sh +0 -0
  295. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/scripts/install.sh +0 -0
  296. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/README.md +0 -0
  297. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/integration_tests/__init__.py +0 -0
  298. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/integration_tests/conftest.py +0 -0
  299. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/integration_tests/test_context_hub.py +0 -0
  300. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/integration_tests/test_deploy_hub.py +0 -0
  301. {deepagents_cli-0.0.59/tests/integration_tests/benchmarks → deepagents_cli-0.1.1/tests/unit_tests}/__init__.py +0 -0
  302. {deepagents_cli-0.0.59/tests/unit_tests → deepagents_cli-0.1.1/tests/unit_tests/deploy}/__init__.py +0 -0
  303. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/unit_tests/deploy/test_bundler.py +0 -0
  304. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/unit_tests/deploy/test_config.py +0 -0
  305. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/unit_tests/deploy/test_context_hub.py +0 -0
  306. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/unit_tests/deploy/test_frontend_bundle.py +0 -0
  307. {deepagents_cli-0.0.59 → deepagents_cli-0.1.1}/tests/unit_tests/deploy/test_frontend_config.py +0 -0
@@ -1,5 +1,20 @@
1
1
  # Deep Agents CLI Changelog
2
2
 
3
+ From 0.1.0 onward, `deepagents-cli` only contains `deploy`, `dev`, and `init`.
4
+ The coding agent (interactive TUI & headless CLI) moved to [`deepagents-code`](https://github.com/langchain-ai/deepagents/blob/main/libs/code/CHANGELOG.md).
5
+
6
+ ## [0.1.1](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.1.0...deepagents-cli==0.1.1) (2026-05-18)
7
+
8
+ ### Features
9
+
10
+ * Add `--host` option to `deepagents dev` command ([#3444](https://github.com/langchain-ai/deepagents/issues/3444)) ([0bb1e74](https://github.com/langchain-ai/deepagents/commit/0bb1e74bba8097b38f204e3db6e6ebad7e0f5317))
11
+
12
+ ## [0.1.0](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.59...deepagents-cli==0.1.0) (2026-05-16)
13
+
14
+ ### ⚠ BREAKING CHANGES
15
+
16
+ * Removes the interactive TUI / coding-agent surface from `deepagents-cli`. The package now only ships the `deploy` command and supporting config. Users relying on the chat REPL, sessions, MCP tooling, skills, and related widgets should migrate to `deepagents-code`.
17
+
3
18
  ## [0.0.59](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.0.58...deepagents-cli==0.0.59) (2026-05-12)
4
19
 
5
20
  ### Bug Fixes
@@ -0,0 +1,44 @@
1
+ # CLI Development Guide
2
+
3
+ `deepagents-cli` now contains only the deployment subcommands (`init`, `dev`,
4
+ `deploy`). For interactive-REPL development guidance, see
5
+ [`libs/code/DEV.md`](../code/DEV.md).
6
+
7
+ ## Local setup
8
+
9
+ ```bash
10
+ cd libs/cli && uv sync --group test
11
+ ```
12
+
13
+ Run the CLI from a checkout:
14
+
15
+ ```bash
16
+ uv run python -m deepagents_cli init my-agent
17
+ uv run python -m deepagents_cli dev --config my-agent/deepagents.toml
18
+ uv run python -m deepagents_cli deploy --config my-agent/deepagents.toml --dry-run
19
+ ```
20
+
21
+ ## Tests
22
+
23
+ ```bash
24
+ make test # unit tests (no network)
25
+ make lint # ruff + ty
26
+ ```
27
+
28
+ Integration tests in `tests/integration_tests/` exercise the LangSmith Hub
29
+ seeding path and require `LANGSMITH_API_KEY` to be set.
30
+
31
+ ## `langgraph` subcommand interop
32
+
33
+ `dev` and `deploy` shell out to the `langgraph` CLI (`langgraph-cli[inmem]`
34
+ runtime dependency). When debugging dev-server startup failures, run the
35
+ generated command manually from the build directory printed by
36
+ `print_bundle_summary`:
37
+
38
+ ```bash
39
+ cd /tmp/deepagents-dev-XXXX
40
+ langgraph dev --port 2024 --allow-blocking
41
+ ```
42
+
43
+ The bundle is self-contained — re-running `langgraph dev` from the build
44
+ directory reproduces the failure without re-bundling.
@@ -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
1
+ .PHONY: format lint type typecheck test tests integration_test integration_tests test_watch help run lint_package lint_tests check_imports coverage
2
2
 
3
3
  .DEFAULT_GOAL := help
4
4
 
@@ -18,7 +18,7 @@ PYTEST_EXTRA ?=
18
18
 
19
19
  test: ## Run unit tests
20
20
  test tests:
21
- uv run --group test pytest -n auto --benchmark-disable --disable-socket --allow-unix-socket $(PYTEST_EXTRA) $(TEST_FILE) \
21
+ uv run --group test pytest -n auto --disable-socket --allow-unix-socket $(PYTEST_EXTRA) $(TEST_FILE) \
22
22
  $(COV_ARGS)
23
23
 
24
24
  coverage: ## Run unit tests with coverage
@@ -30,20 +30,11 @@ coverage: ## Run unit tests with coverage
30
30
 
31
31
  integration_test: ## Run integration tests
32
32
  integration_test integration_tests:
33
- uv run --group test pytest -n auto --benchmark-disable -vvv --timeout 30 $(TEST_FILE)
33
+ uv run --group test pytest -n auto -vvv --timeout 30 $(TEST_FILE)
34
34
 
35
35
  test_watch: ## Run tests in watch mode
36
36
  uv run --group test ptw --now . -- -vv $(TEST_FILE)
37
37
 
38
- benchmark: ## Run benchmark tests
39
- uv run --group test pytest ./tests -m benchmark
40
-
41
- bench: ## Run benchmarks under CodSpeed instrumentation
42
- uv run --group test pytest ./tests -m benchmark --codspeed
43
-
44
- bench-memory: ## Run memory benchmarks under CodSpeed instrumentation
45
- uv run --group test pytest ./tests -m memory_benchmark --codspeed
46
-
47
38
  run: ## Reinstall and run package
48
39
  uvx --no-cache --reinstall .
49
40
 
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.4
2
+ Name: deepagents-cli
3
+ Version: 0.1.1
4
+ Summary: Deployment tooling for Deep Agents - bundle, run, and ship agents to LangGraph Platform.
5
+ Project-URL: Homepage, https://docs.langchain.com/oss/python/deepagents/overview
6
+ Project-URL: Documentation, https://reference.langchain.com/python/deepagents/
7
+ Project-URL: Repository, https://github.com/langchain-ai/deepagents
8
+ Project-URL: Issues, https://github.com/langchain-ai/deepagents/issues
9
+ Project-URL: Changelog, https://github.com/langchain-ai/deepagents/blob/main/libs/cli/CHANGELOG.md
10
+ Project-URL: Twitter, https://x.com/langchain_oss
11
+ Project-URL: Slack, https://www.langchain.com/join-community
12
+ Project-URL: Reddit, https://www.reddit.com/r/LangChain/
13
+ License: MIT
14
+ Keywords: agents,ai,cli,deep-agent,deploy,langchain,langgraph,llm
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Environment :: Console
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Requires-Python: <4.0,>=3.11
27
+ Requires-Dist: deepagents>=0.6.1
28
+ Requires-Dist: httpx<1.0.0,>=0.28.1
29
+ Requires-Dist: langchain<2.0.0,>=1.3.0
30
+ Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.24
31
+ Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.28.1
32
+ Requires-Dist: langgraph-sdk<1.0.0,>=0.3.13
33
+ Requires-Dist: langgraph<2.0.0,>=1.2.0
34
+ Requires-Dist: langsmith>=0.8.0
35
+ Requires-Dist: python-dotenv<2.0.0,>=1.2.2
36
+ Provides-Extra: agentcore
37
+ Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.2; extra == 'agentcore'
38
+ Provides-Extra: all-sandboxes
39
+ Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.2; extra == 'all-sandboxes'
40
+ Requires-Dist: langchain-daytona>=0.0.5; extra == 'all-sandboxes'
41
+ Requires-Dist: langchain-modal>=0.0.3; extra == 'all-sandboxes'
42
+ Requires-Dist: langchain-runloop>=0.0.4; extra == 'all-sandboxes'
43
+ Provides-Extra: daytona
44
+ Requires-Dist: langchain-daytona>=0.0.5; extra == 'daytona'
45
+ Provides-Extra: modal
46
+ Requires-Dist: langchain-modal>=0.0.3; extra == 'modal'
47
+ Provides-Extra: runloop
48
+ Requires-Dist: langchain-runloop>=0.0.4; extra == 'runloop'
49
+ Description-Content-Type: text/markdown
50
+
51
+ # Deep Agents CLI — Deployment Tooling
52
+
53
+ [![PyPI - Version](https://img.shields.io/pypi/v/deepagents-cli?label=%20)](https://pypi.org/project/deepagents-cli/#history)
54
+ [![PyPI - License](https://img.shields.io/pypi/l/deepagents-cli)](https://opensource.org/licenses/MIT)
55
+ [![PyPI - Downloads](https://img.shields.io/pepy/dt/deepagents-cli)](https://pypistats.org/packages/deepagents-cli)
56
+ [![Twitter](https://img.shields.io/twitter/url/https/twitter.com/langchain_oss.svg?style=social&label=Follow%20%40LangChain)](https://x.com/langchain_oss)
57
+
58
+ ## Install
59
+
60
+ ```bash
61
+ uv tool install deepagents-cli
62
+ ```
63
+
64
+ Or with optional sandbox providers:
65
+
66
+ ```bash
67
+ uv tool install 'deepagents-cli[all-sandboxes]'
68
+ ```
69
+
70
+ ## Usage
71
+
72
+ ```bash
73
+ # Scaffold a new project folder
74
+ deepagents init my-agent
75
+
76
+ # Run a local langgraph dev server against the project
77
+ cd my-agent && deepagents dev
78
+
79
+ # Bundle and ship to LangSmith Deployment
80
+ deepagents deploy
81
+ ```
82
+
83
+ ## 📖 Resources
84
+
85
+ - **[CLI Documentation](https://docs.langchain.com/oss/python/deepagents/cli/overview)**
86
+ - **[Changelog](https://github.com/langchain-ai/deepagents/blob/main/libs/cli/CHANGELOG.md)**
87
+ - **[Source code](https://github.com/langchain-ai/deepagents/tree/main/libs/cli)**
88
+ - **[Deep Agents SDK](https://github.com/langchain-ai/deepagents)** — underlying agent harness
89
+ - **[Deep Agents Code](https://pypi.org/project/deepagents-code/)** — coding agent
90
+
91
+ ## 📕 Releases & Versioning
92
+
93
+ See our [Releases](https://docs.langchain.com/oss/python/release-policy) and [Versioning](https://docs.langchain.com/oss/python/versioning) policies.
94
+
95
+ ## 💁 Contributing
96
+
97
+ As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
98
+
99
+ For detailed information on how to contribute, see the [Contributing Guide](https://docs.langchain.com/oss/python/contributing/overview).
@@ -0,0 +1,49 @@
1
+ # Deep Agents CLI — Deployment Tooling
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/deepagents-cli?label=%20)](https://pypi.org/project/deepagents-cli/#history)
4
+ [![PyPI - License](https://img.shields.io/pypi/l/deepagents-cli)](https://opensource.org/licenses/MIT)
5
+ [![PyPI - Downloads](https://img.shields.io/pepy/dt/deepagents-cli)](https://pypistats.org/packages/deepagents-cli)
6
+ [![Twitter](https://img.shields.io/twitter/url/https/twitter.com/langchain_oss.svg?style=social&label=Follow%20%40LangChain)](https://x.com/langchain_oss)
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ uv tool install deepagents-cli
12
+ ```
13
+
14
+ Or with optional sandbox providers:
15
+
16
+ ```bash
17
+ uv tool install 'deepagents-cli[all-sandboxes]'
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ # Scaffold a new project folder
24
+ deepagents init my-agent
25
+
26
+ # Run a local langgraph dev server against the project
27
+ cd my-agent && deepagents dev
28
+
29
+ # Bundle and ship to LangSmith Deployment
30
+ deepagents deploy
31
+ ```
32
+
33
+ ## 📖 Resources
34
+
35
+ - **[CLI Documentation](https://docs.langchain.com/oss/python/deepagents/cli/overview)**
36
+ - **[Changelog](https://github.com/langchain-ai/deepagents/blob/main/libs/cli/CHANGELOG.md)**
37
+ - **[Source code](https://github.com/langchain-ai/deepagents/tree/main/libs/cli)**
38
+ - **[Deep Agents SDK](https://github.com/langchain-ai/deepagents)** — underlying agent harness
39
+ - **[Deep Agents Code](https://pypi.org/project/deepagents-code/)** — coding agent
40
+
41
+ ## 📕 Releases & Versioning
42
+
43
+ See our [Releases](https://docs.langchain.com/oss/python/release-policy) and [Versioning](https://docs.langchain.com/oss/python/versioning) policies.
44
+
45
+ ## 💁 Contributing
46
+
47
+ As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
48
+
49
+ For detailed information on how to contribute, see the [Contributing Guide](https://docs.langchain.com/oss/python/contributing/overview).
@@ -2,6 +2,15 @@
2
2
 
3
3
  > Generated: 2026-03-28 | Commit: e859077f | Scope: libs/cli only
4
4
 
5
+ > ⚠️ **(2026-05-15):** This document was generated before the
6
+ > 0.1.0 split that moved the interactive REPL out of `deepagents-cli`. The
7
+ > sections covering the Textual app, `non_interactive.py`, MCP, sandbox
8
+ > bootstrap, sessions, server subprocess management, hooks, and skills no
9
+ > longer apply to this package — those surfaces now live under
10
+ > [`libs/code/`](../code/THREAT_MODEL.md). The remaining in-scope surface is
11
+ > `deepagents_cli.deploy` (bundler, templates, hub seeding) and the slim
12
+ > `_load_dotenv`/`resolve_env_var` helpers in `config.py`/`model_config.py`.
13
+
5
14
  > **Disclaimer:** This threat model is automatically generated to help developers and security researchers understand where trust is placed in this system and where boundaries exist. It is experimental, subject to change, and not an authoritative security reference — findings should be validated before acting on them. The analysis may be incomplete or contain inaccuracies. We welcome suggestions and corrections to improve this document.
6
15
 
7
16
  ## Scope
@@ -1,4 +1,7 @@
1
- """Deep Agents CLI - Interactive AI coding assistant."""
1
+ """Deep Agents CLI - deployment tooling (`init`, `dev`, `deploy`).
2
+
3
+ For the interactive coding agent, install the `deepagents-code` package.
4
+ """
2
5
 
3
6
  from __future__ import annotations
4
7
 
@@ -16,17 +19,16 @@ __all__ = [
16
19
 
17
20
 
18
21
  def __getattr__(name: str) -> Callable[[], None]:
19
- """Lazy import for `cli_main` to avoid loading `main.py` at package import.
22
+ """Lazy import for `cli_main` to keep `import deepagents_cli` cheap.
20
23
 
21
- `main.py` pulls in `argparse`, signal handling, and other startup machinery
22
- that isn't needed when submodules like `config` or `widgets` are
23
- imported directly.
24
+ Args:
25
+ name: Attribute being looked up on the package.
24
26
 
25
27
  Returns:
26
- The requested callable.
28
+ The requested attribute (only `cli_main` is provided lazily).
27
29
 
28
30
  Raises:
29
- AttributeError: If *name* is not a lazily-provided attribute.
31
+ AttributeError: If `name` is not a lazily-provided attribute.
30
32
  """
31
33
  if name == "cli_main":
32
34
  from deepagents_cli.main import cli_main
@@ -1,4 +1,4 @@
1
- """Allow running the CLI as: python -m deepagents.cli."""
1
+ """Allow running the CLI as `python -m deepagents_cli`."""
2
2
 
3
3
  from deepagents_cli.main import cli_main
4
4
 
@@ -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.0.59" # x-release-please-version
5
+ __version__ = "0.1.1" # x-release-please-version
6
6
 
7
7
  DOCS_URL = "https://docs.langchain.com/oss/python/deepagents/cli"
8
8
  """URL for `deepagents-cli` documentation."""
@@ -0,0 +1,128 @@
1
+ """Project and global `.env` loading for the deploy CLI."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import logging
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ logger = logging.getLogger(__name__)
10
+
11
+
12
+ def _stderr(msg: str) -> None:
13
+ """Print a diagnostic to stderr without a trailing newline corruption.
14
+
15
+ The CLI does not configure logging handlers by default, so `logger.warning`
16
+ output is invisible to end users. Diagnostics that the user authored — like
17
+ a malformed `.env` they meant to load — should also surface on stderr.
18
+ """
19
+ sys.stderr.write(f"warning: {msg}\n")
20
+
21
+
22
+ def _find_dotenv_from_start_path(start_path: Path) -> Path | None:
23
+ """Find the nearest `.env` file from an explicit start path upward.
24
+
25
+ Args:
26
+ start_path: Directory to start searching from.
27
+
28
+ Returns:
29
+ Path to the nearest `.env` file, or `None` if not found.
30
+ """
31
+ current = start_path.expanduser().resolve()
32
+ for parent in [current, *list(current.parents)]:
33
+ candidate = parent / ".env"
34
+ try:
35
+ if candidate.is_file():
36
+ return candidate
37
+ except OSError:
38
+ logger.warning("Could not inspect .env candidate %s", candidate)
39
+ continue
40
+ return None
41
+
42
+
43
+ try:
44
+ _GLOBAL_DOTENV_PATH = Path.home() / ".deepagents" / ".env"
45
+ except RuntimeError:
46
+ # `Path.home()` raises when `HOME` is unset/misconfigured (e.g. on some
47
+ # CI runners). Fall back to a path that won't exist so `is_file()`
48
+ # short-circuits cleanly, and surface the suppression on stderr so the
49
+ # user knows global defaults will not apply.
50
+ _GLOBAL_DOTENV_PATH = Path("/nonexistent/.deepagents/.env")
51
+ _stderr(
52
+ "could not resolve home directory; "
53
+ "global `~/.deepagents/.env` will not be loaded",
54
+ )
55
+ logger.warning(
56
+ "Could not resolve home directory; global .env will not be loaded",
57
+ exc_info=True,
58
+ )
59
+
60
+
61
+ def _load_dotenv(*, start_path: Path) -> bool:
62
+ """Load environment variables from project and global `.env` files.
63
+
64
+ Loads in order (first write wins, `override=False`):
65
+
66
+ 1. Project `.env` — discovered upward from `start_path`.
67
+ 2. `~/.deepagents/.env` — global user defaults.
68
+
69
+ Both layers use `override=False` so that shell-exported variables always
70
+ take precedence over dotenv files. Because the project file loads first,
71
+ the effective precedence is:
72
+
73
+ ```text
74
+ shell env > project `.env` > global `.env`
75
+ ```
76
+
77
+ When a *resolved* dotenv path fails to parse the user is notified on
78
+ stderr in addition to the structured `logger.warning` (the CLI does not
79
+ install logging handlers by default).
80
+
81
+ Args:
82
+ start_path: Directory to use for project `.env` discovery. Searched
83
+ upward until either a `.env` is found or the filesystem root is
84
+ reached.
85
+
86
+ Returns:
87
+ `True` when at least one dotenv file was loaded, `False` otherwise.
88
+ """
89
+ import dotenv
90
+
91
+ loaded = False
92
+
93
+ dotenv_path = _find_dotenv_from_start_path(start_path)
94
+ if dotenv_path is not None:
95
+ try:
96
+ loaded = (
97
+ dotenv.load_dotenv(dotenv_path=dotenv_path, override=False) or loaded
98
+ )
99
+ except (OSError, ValueError) as exc:
100
+ _stderr(
101
+ f"could not read project .env at {dotenv_path}: {exc}. "
102
+ "Project env vars will not be loaded.",
103
+ )
104
+ logger.warning(
105
+ "Could not read project dotenv at %s; "
106
+ "project env vars will not be loaded",
107
+ dotenv_path,
108
+ exc_info=True,
109
+ )
110
+
111
+ try:
112
+ if _GLOBAL_DOTENV_PATH.is_file() and dotenv.load_dotenv(
113
+ dotenv_path=_GLOBAL_DOTENV_PATH, override=False
114
+ ):
115
+ loaded = True
116
+ logger.debug("Loaded global dotenv: %s", _GLOBAL_DOTENV_PATH)
117
+ except (OSError, ValueError) as exc:
118
+ _stderr(
119
+ f"could not read global .env at {_GLOBAL_DOTENV_PATH}: {exc}. "
120
+ "Global defaults will not be applied.",
121
+ )
122
+ logger.warning(
123
+ "Could not read global dotenv at %s; global defaults will not be applied",
124
+ _GLOBAL_DOTENV_PATH,
125
+ exc_info=True,
126
+ )
127
+
128
+ return loaded
@@ -46,6 +46,7 @@ def setup_deploy_parsers(
46
46
  "-h",
47
47
  "--help",
48
48
  action=make_help_action(lambda: init_parser.print_help()),
49
+ help="show this help message and exit",
49
50
  )
50
51
  init_parser.add_argument(
51
52
  "--force",
@@ -63,6 +64,7 @@ def setup_deploy_parsers(
63
64
  "-h",
64
65
  "--help",
65
66
  action=make_help_action(lambda: dev_parser.print_help()),
67
+ help="show this help message and exit",
66
68
  )
67
69
  dev_parser.add_argument(
68
70
  "--config",
@@ -82,6 +84,15 @@ def setup_deploy_parsers(
82
84
  default=True,
83
85
  help="Pass --allow-blocking to langgraph dev (default: enabled)",
84
86
  )
87
+ dev_parser.add_argument(
88
+ "--host",
89
+ type=str,
90
+ default="127.0.0.1",
91
+ help=(
92
+ "Network interface to bind the dev server "
93
+ "(default: 127.0.0.1; use 0.0.0.0 for all interfaces)"
94
+ ),
95
+ )
85
96
 
86
97
  # deepagents deploy
87
98
  deploy_parser = subparsers.add_parser(
@@ -93,6 +104,7 @@ def setup_deploy_parsers(
93
104
  "-h",
94
105
  "--help",
95
106
  action=make_help_action(lambda: deploy_parser.print_help()),
107
+ help="show this help message and exit",
96
108
  )
97
109
  deploy_parser.add_argument(
98
110
  "--config",
@@ -135,6 +147,7 @@ def execute_dev_command(args: argparse.Namespace) -> None:
135
147
  _dev(
136
148
  config_path=args.config,
137
149
  port=args.port,
150
+ host=args.host,
138
151
  allow_blocking=args.allow_blocking,
139
152
  )
140
153
 
@@ -340,6 +353,7 @@ def _dev(
340
353
  *,
341
354
  config_path: str | None,
342
355
  port: int,
356
+ host: str = "127.0.0.1",
343
357
  allow_blocking: bool,
344
358
  ) -> None:
345
359
  """Bundle the project and run a local `langgraph dev` server.
@@ -353,6 +367,7 @@ def _dev(
353
367
  Args:
354
368
  config_path: Path to `deepagents.toml`, or `None` for default.
355
369
  port: Local port for the dev server.
370
+ host: Network interface to bind (default: 127.0.0.1).
356
371
  allow_blocking: Pass `--allow-blocking` to `langgraph dev` so
357
372
  sync HTTP calls inside the graph (e.g. the LangSmith sandbox
358
373
  client) don't trigger blockbuster errors.
@@ -410,13 +425,21 @@ def _dev(
410
425
  "langgraph",
411
426
  "dev",
412
427
  "--no-browser",
428
+ "--host",
429
+ host,
413
430
  "--port",
414
431
  str(port),
415
432
  ]
416
433
  if allow_blocking:
417
434
  cmd.append("--allow-blocking")
418
435
 
419
- print(f"\nStarting langgraph dev on http://localhost:{port}")
436
+ if host == "0.0.0.0":
437
+ print(
438
+ f"\nStarting langgraph dev on http://localhost:{port} "
439
+ "(bound to 0.0.0.0)"
440
+ )
441
+ else:
442
+ print(f"\nStarting langgraph dev on http://{host}:{port}")
420
443
  print(f"Build directory: {build_dir}")
421
444
  print(f"Running: {' '.join(cmd)}\n")
422
445