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