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