drydock-cli 2.6.8__tar.gz → 2.6.10__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.
- drydock_cli-2.6.10/.auto_release.lock +1 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/PKG-INFO +1 -1
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/banner/banner.py +8 -5
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/agent_loop.py +25 -8
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/search_replace.py +5 -6
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/todo.py +2 -2
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/pyproject.toml +1 -1
- drydock_cli-2.6.10/tests/test_user_issues.py +151 -0
- drydock_cli-2.6.8/.auto_release.lock +0 -1
- drydock_cli-2.6.8/tests/test_user_issues.py +0 -67
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.gitignore +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.python-version +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.typos.toml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.vscode/extensions.json +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.vscode/launch.json +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/.vscode/settings.json +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/AGENTS.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/CHANGELOG.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/CLAUDE.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/LICENSE +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/NOTICE +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/PRD.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/README.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/action.yml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/docs/README.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/docs/acp-setup.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/logger.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/slug.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/types.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/core/utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/whats_new.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock-acp.spec +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock_terms.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/flake.lock +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/flake.nix +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/log_analyzer/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/log_analyzer/__main__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/log_analyzer/analyzer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/log_analyzer/cli.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/README.md +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/backup.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/bump_version.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/install.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/notify_release.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/test_full.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/tui_test.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/conftest.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/e2e/common.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/mock/utils.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_agents.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_integration.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_message_id.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_middleware.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_smoke.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_tool_args.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/test_workloads.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.6.8 → drydock_cli-2.6.10}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3931496
|
|
@@ -88,11 +88,14 @@ class Banner(Static):
|
|
|
88
88
|
)
|
|
89
89
|
|
|
90
90
|
def _format_meta_counts(self) -> str:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
f"
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
parts = []
|
|
92
|
+
if self.state.models_count:
|
|
93
|
+
parts.append(f"{self.state.models_count} model{'s' if self.state.models_count != 1 else ''}")
|
|
94
|
+
if self.state.mcp_servers_count:
|
|
95
|
+
parts.append(f"{self.state.mcp_servers_count} MCP server{'s' if self.state.mcp_servers_count != 1 else ''}")
|
|
96
|
+
if self.state.skills_count:
|
|
97
|
+
parts.append(f"{self.state.skills_count} skill{'s' if self.state.skills_count != 1 else ''}")
|
|
98
|
+
return " · ".join(parts) if parts else ""
|
|
96
99
|
|
|
97
100
|
def _format_plan(self) -> str:
|
|
98
101
|
return (
|
|
@@ -567,23 +567,34 @@ class AgentLoop:
|
|
|
567
567
|
or "maximum context" in error_str.lower()
|
|
568
568
|
or "400 bad request" in error_str.lower()
|
|
569
569
|
or "status: 400" in error_str.lower()):
|
|
570
|
-
# Context limit or malformed request —
|
|
570
|
+
# Context limit or malformed request — aggressive recovery
|
|
571
571
|
try:
|
|
572
|
-
|
|
572
|
+
# First try: truncate old messages
|
|
573
573
|
for i, msg in enumerate(self.messages):
|
|
574
574
|
if i >= len(self.messages) - 4:
|
|
575
|
-
break
|
|
575
|
+
break
|
|
576
576
|
if msg.role == Role.tool and hasattr(msg, 'content'):
|
|
577
577
|
content = str(msg.content) if msg.content else ""
|
|
578
578
|
if len(content) > 200:
|
|
579
|
-
msg.content = content[:100] + "\n[truncated]
|
|
580
|
-
compacted += 1
|
|
579
|
+
msg.content = content[:100] + "\n[truncated]"
|
|
581
580
|
elif msg.role == Role.assistant and hasattr(msg, 'content'):
|
|
582
581
|
content = str(msg.content) if msg.content else ""
|
|
583
582
|
if len(content) > 500:
|
|
584
583
|
msg.content = content[:200] + "\n[truncated]"
|
|
585
|
-
|
|
586
|
-
|
|
584
|
+
|
|
585
|
+
# Second try: if messages > 20, keep only last 6
|
|
586
|
+
if len(self.messages) > 20:
|
|
587
|
+
first_user = None
|
|
588
|
+
for msg in self.messages:
|
|
589
|
+
if msg.role == Role.user:
|
|
590
|
+
first_user = msg
|
|
591
|
+
break
|
|
592
|
+
kept = []
|
|
593
|
+
if first_user:
|
|
594
|
+
kept.append(first_user)
|
|
595
|
+
kept.extend(self.messages[-5:])
|
|
596
|
+
self.messages.reset(kept)
|
|
597
|
+
logger.info("Emergency reset: kept first user + last 5 messages")
|
|
587
598
|
except Exception:
|
|
588
599
|
pass
|
|
589
600
|
error_text = "Context compacted due to API error. Continue with your task."
|
|
@@ -592,6 +603,8 @@ class AgentLoop:
|
|
|
592
603
|
self._inject_system_note(error_text)
|
|
593
604
|
continue
|
|
594
605
|
|
|
606
|
+
if not self.messages:
|
|
607
|
+
continue
|
|
595
608
|
last_message = self.messages[-1]
|
|
596
609
|
|
|
597
610
|
# Track edits — no circuit breakers, just track for has_made_edit
|
|
@@ -625,6 +638,8 @@ class AgentLoop:
|
|
|
625
638
|
if assistant_event.content:
|
|
626
639
|
yield assistant_event
|
|
627
640
|
|
|
641
|
+
if not self.messages:
|
|
642
|
+
return
|
|
628
643
|
last_message = self.messages[-1]
|
|
629
644
|
|
|
630
645
|
# Detect repetitive text generation (Gemma 4 sometimes loops text within one response)
|
|
@@ -1147,7 +1162,7 @@ class AgentLoop:
|
|
|
1147
1162
|
self.messages.reset(cleaned)
|
|
1148
1163
|
|
|
1149
1164
|
# Fix 2: If last message is assistant, add a user "Continue." prompt
|
|
1150
|
-
if self.messages[-1].role == Role.assistant:
|
|
1165
|
+
if self.messages and self.messages[-1].role == Role.assistant:
|
|
1151
1166
|
self.messages.append(LLMMessage(role=Role.user, content="Continue."))
|
|
1152
1167
|
|
|
1153
1168
|
async def _chat(self, max_tokens: int | None = None) -> LLMChunk:
|
|
@@ -1706,6 +1721,8 @@ class AgentLoop:
|
|
|
1706
1721
|
"## Rules\n"
|
|
1707
1722
|
"- Use absolute imports: `from package.module import X`\n"
|
|
1708
1723
|
"- Always create `__init__.py` and `__main__.py`\n"
|
|
1724
|
+
"- Create ALL files listed in the PRD before stopping\n"
|
|
1725
|
+
"- Do NOT stop after creating just __init__.py — continue to the next file\n"
|
|
1709
1726
|
"- NEVER ask 'should I proceed' or 'would you like me to' — JUST DO IT\n"
|
|
1710
1727
|
"- After creating a file, immediately create the next one\n"
|
|
1711
1728
|
)
|
|
@@ -241,14 +241,13 @@ class SearchReplace(
|
|
|
241
241
|
">>>>>>> REPLACE"
|
|
242
242
|
)
|
|
243
243
|
|
|
244
|
-
# Detect garbled token output
|
|
244
|
+
# Detect garbled token output — only flag obvious corruption
|
|
245
|
+
# (mixed angle brackets + repeated letters like <<t<ttt<t), not normal repeats
|
|
245
246
|
for block in search_replace_blocks:
|
|
246
|
-
if re.search(r'
|
|
247
|
+
if re.search(r'<[a-z]<[a-z]{2,}<[a-z]', block.search):
|
|
247
248
|
raise ToolError(
|
|
248
|
-
"Your search text appears garbled (
|
|
249
|
-
"
|
|
250
|
-
"WORKAROUND: Use read_file to get the exact line numbers, then use write_file "
|
|
251
|
-
"to rewrite the entire function instead of search_replace on complex regex patterns."
|
|
249
|
+
"Your search text appears garbled (token corruption). "
|
|
250
|
+
"Use write_file to rewrite the function instead of search_replace."
|
|
252
251
|
)
|
|
253
252
|
|
|
254
253
|
return file_path, search_replace_blocks
|
|
@@ -32,8 +32,8 @@ class TodoPriority(StrEnum):
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class TodoItem(BaseModel):
|
|
35
|
-
id: str
|
|
36
|
-
content: str
|
|
35
|
+
id: str = Field(default_factory=lambda: str(__import__('time').time_ns()))
|
|
36
|
+
content: str = ""
|
|
37
37
|
status: TodoStatus = TodoStatus.PENDING
|
|
38
38
|
priority: TodoPriority = TodoPriority.MEDIUM
|
|
39
39
|
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"""Tests for user-reported issues (2026-04-07).
|
|
2
|
+
|
|
3
|
+
Each test should FAIL before the fix and PASS after.
|
|
4
|
+
"""
|
|
5
|
+
import hashlib
|
|
6
|
+
import pytest
|
|
7
|
+
from unittest.mock import patch, MagicMock
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TestMD5Crash:
|
|
11
|
+
"""#61: Crash after install — md5 error in manager.py."""
|
|
12
|
+
|
|
13
|
+
def test_md5_usedforsecurity(self):
|
|
14
|
+
"""md5 should work with usedforsecurity=False."""
|
|
15
|
+
h = hashlib.md5(b"test", usedforsecurity=False)
|
|
16
|
+
assert h.hexdigest() == "098f6bcd4621d373cade4e832627b4f6"
|
|
17
|
+
|
|
18
|
+
def test_tool_manager_import(self):
|
|
19
|
+
"""Tool manager should not crash on import."""
|
|
20
|
+
from drydock.core.tools.manager import ToolManager
|
|
21
|
+
assert ToolManager is not None
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class TestSearchReplaceGarbled:
|
|
25
|
+
"""#55: search_replace garbled characters."""
|
|
26
|
+
|
|
27
|
+
def test_garbled_detection(self):
|
|
28
|
+
from drydock.core.tools.builtins.search_replace import SearchReplaceArgs
|
|
29
|
+
args = SearchReplaceArgs.model_validate({
|
|
30
|
+
"file_path": "test.py",
|
|
31
|
+
"content": "<<<<<<< SEARCH\nold text\n=======\nnew text\n>>>>>>> REPLACE",
|
|
32
|
+
})
|
|
33
|
+
assert args.file_path == "test.py"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class TestTodoEnumQuotes:
|
|
37
|
+
"""#60: Todo enum quoting issues."""
|
|
38
|
+
|
|
39
|
+
def test_double_quoted(self):
|
|
40
|
+
from drydock.core.tools.builtins.todo import TodoItem
|
|
41
|
+
item = TodoItem.model_validate({
|
|
42
|
+
"id": "1", "content": "test",
|
|
43
|
+
"status": '"completed"', "priority": '"high"',
|
|
44
|
+
})
|
|
45
|
+
assert item.status.value == "completed"
|
|
46
|
+
|
|
47
|
+
def test_single_quoted(self):
|
|
48
|
+
from drydock.core.tools.builtins.todo import TodoItem
|
|
49
|
+
item = TodoItem.model_validate({
|
|
50
|
+
"id": "1", "content": "test",
|
|
51
|
+
"status": "'completed'", "priority": "'high'",
|
|
52
|
+
})
|
|
53
|
+
assert item.status.value == "completed"
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class TestEmptyState:
|
|
57
|
+
"""#58: IndexError on empty lists."""
|
|
58
|
+
|
|
59
|
+
def test_empty_tool_calls(self):
|
|
60
|
+
from drydock.core.types import LLMMessage, Role
|
|
61
|
+
msg = LLMMessage(role=Role.assistant, content="hello", tool_calls=None)
|
|
62
|
+
calls = msg.tool_calls or []
|
|
63
|
+
assert calls == []
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
if __name__ == "__main__":
|
|
67
|
+
pytest.main([__file__, "-v"])
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class TestSearchReplaceGarbledAdvanced:
|
|
71
|
+
"""#55: Garbled detection should only catch real corruption."""
|
|
72
|
+
|
|
73
|
+
def test_legitimate_repeats_not_flagged(self):
|
|
74
|
+
"""Normal repeated chars like ===== should NOT be flagged."""
|
|
75
|
+
from drydock.core.tools.builtins.search_replace import SearchReplace
|
|
76
|
+
blocks = SearchReplace._parse_search_replace_blocks(
|
|
77
|
+
"<<<<<<< SEARCH\ndef foo():\n x = 5\n=======\ndef foo():\n x = 10\n>>>>>>> REPLACE"
|
|
78
|
+
)
|
|
79
|
+
assert len(blocks) == 1
|
|
80
|
+
assert "x = 5" in blocks[0].search
|
|
81
|
+
|
|
82
|
+
def test_real_garble_detected(self):
|
|
83
|
+
"""Token corruption like <<t<ttt<t should be caught."""
|
|
84
|
+
import re
|
|
85
|
+
garbled = "(?P<<t<ttt<t<tststssts>\\d+)"
|
|
86
|
+
assert re.search(r'<[a-z]<[a-z]{2,}<[a-z]', garbled)
|
|
87
|
+
|
|
88
|
+
def test_normal_regex_not_garbled(self):
|
|
89
|
+
"""Normal regex should not trigger garble detection."""
|
|
90
|
+
import re
|
|
91
|
+
normal = r"(?P<timestamp>\d{4}-\d{2}-\d{2})"
|
|
92
|
+
assert not re.search(r'<[a-z]<[a-z]{2,}<[a-z]', normal)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class TestIndexErrorGuards:
|
|
96
|
+
"""#58: Guard all [-1] accesses on potentially empty lists."""
|
|
97
|
+
|
|
98
|
+
def test_empty_messages_safe(self):
|
|
99
|
+
"""Accessing last message on empty list should not crash."""
|
|
100
|
+
messages = []
|
|
101
|
+
last = messages[-1] if messages else None
|
|
102
|
+
assert last is None
|
|
103
|
+
|
|
104
|
+
def test_agent_loop_no_md5(self):
|
|
105
|
+
"""Agent loop should use sha256, not md5."""
|
|
106
|
+
import inspect
|
|
107
|
+
from drydock.core.agent_loop import AgentLoop
|
|
108
|
+
source = inspect.getsource(AgentLoop)
|
|
109
|
+
assert "hashlib.md5" not in source, "Still using md5 in agent_loop"
|
|
110
|
+
assert "hashlib.sha256" in source or "sha256" not in source # either uses sha256 or doesn't hash at all
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class TestAPIRecovery:
|
|
114
|
+
"""#57: API error recovery should auto-compact."""
|
|
115
|
+
|
|
116
|
+
def test_message_list_reset_keeps_structure(self):
|
|
117
|
+
"""Reset should produce valid message ordering."""
|
|
118
|
+
from drydock.core.types import MessageList, LLMMessage, Role
|
|
119
|
+
ml = MessageList()
|
|
120
|
+
for i in range(25):
|
|
121
|
+
ml.append(LLMMessage(role=Role.user, content=f"msg {i}"))
|
|
122
|
+
ml.append(LLMMessage(role=Role.assistant, content=f"reply {i}"))
|
|
123
|
+
|
|
124
|
+
# Simulate emergency reset: keep first user + last 5
|
|
125
|
+
first_user = ml[0]
|
|
126
|
+
kept = [first_user] + list(ml[-5:])
|
|
127
|
+
ml.reset(kept)
|
|
128
|
+
assert len(ml) == 6
|
|
129
|
+
assert ml[0].role == Role.user
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class TestTodoMissingFields:
|
|
133
|
+
"""#60: Todo should handle missing fields gracefully."""
|
|
134
|
+
|
|
135
|
+
def test_missing_id(self):
|
|
136
|
+
from drydock.core.tools.builtins.todo import TodoItem
|
|
137
|
+
item = TodoItem.model_validate({"content": "test task"})
|
|
138
|
+
assert item.content == "test task"
|
|
139
|
+
assert item.id # auto-generated
|
|
140
|
+
|
|
141
|
+
def test_missing_content(self):
|
|
142
|
+
from drydock.core.tools.builtins.todo import TodoItem
|
|
143
|
+
item = TodoItem.model_validate({"id": "1"})
|
|
144
|
+
assert item.id == "1"
|
|
145
|
+
assert item.content == ""
|
|
146
|
+
|
|
147
|
+
def test_completely_empty(self):
|
|
148
|
+
from drydock.core.tools.builtins.todo import TodoItem
|
|
149
|
+
item = TodoItem.model_validate({})
|
|
150
|
+
assert item.id # auto-generated
|
|
151
|
+
assert item.status.value == "pending"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3923516
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"""Tests for user-reported issues (2026-04-07).
|
|
2
|
-
|
|
3
|
-
Each test should FAIL before the fix and PASS after.
|
|
4
|
-
"""
|
|
5
|
-
import hashlib
|
|
6
|
-
import pytest
|
|
7
|
-
from unittest.mock import patch, MagicMock
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class TestMD5Crash:
|
|
11
|
-
"""#61: Crash after install — md5 error in manager.py."""
|
|
12
|
-
|
|
13
|
-
def test_md5_usedforsecurity(self):
|
|
14
|
-
"""md5 should work with usedforsecurity=False."""
|
|
15
|
-
h = hashlib.md5(b"test", usedforsecurity=False)
|
|
16
|
-
assert h.hexdigest() == "098f6bcd4621d373cade4e832627b4f6"
|
|
17
|
-
|
|
18
|
-
def test_tool_manager_import(self):
|
|
19
|
-
"""Tool manager should not crash on import."""
|
|
20
|
-
from drydock.core.tools.manager import ToolManager
|
|
21
|
-
assert ToolManager is not None
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class TestSearchReplaceGarbled:
|
|
25
|
-
"""#55: search_replace garbled characters."""
|
|
26
|
-
|
|
27
|
-
def test_garbled_detection(self):
|
|
28
|
-
from drydock.core.tools.builtins.search_replace import SearchReplaceArgs
|
|
29
|
-
args = SearchReplaceArgs.model_validate({
|
|
30
|
-
"file_path": "test.py",
|
|
31
|
-
"content": "<<<<<<< SEARCH\nold text\n=======\nnew text\n>>>>>>> REPLACE",
|
|
32
|
-
})
|
|
33
|
-
assert args.file_path == "test.py"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
class TestTodoEnumQuotes:
|
|
37
|
-
"""#60: Todo enum quoting issues."""
|
|
38
|
-
|
|
39
|
-
def test_double_quoted(self):
|
|
40
|
-
from drydock.core.tools.builtins.todo import TodoItem
|
|
41
|
-
item = TodoItem.model_validate({
|
|
42
|
-
"id": "1", "content": "test",
|
|
43
|
-
"status": '"completed"', "priority": '"high"',
|
|
44
|
-
})
|
|
45
|
-
assert item.status.value == "completed"
|
|
46
|
-
|
|
47
|
-
def test_single_quoted(self):
|
|
48
|
-
from drydock.core.tools.builtins.todo import TodoItem
|
|
49
|
-
item = TodoItem.model_validate({
|
|
50
|
-
"id": "1", "content": "test",
|
|
51
|
-
"status": "'completed'", "priority": "'high'",
|
|
52
|
-
})
|
|
53
|
-
assert item.status.value == "completed"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
class TestEmptyState:
|
|
57
|
-
"""#58: IndexError on empty lists."""
|
|
58
|
-
|
|
59
|
-
def test_empty_tool_calls(self):
|
|
60
|
-
from drydock.core.types import LLMMessage, Role
|
|
61
|
-
msg = LLMMessage(role=Role.assistant, content="hello", tool_calls=None)
|
|
62
|
-
calls = msg.tool_calls or []
|
|
63
|
-
assert calls == []
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if __name__ == "__main__":
|
|
67
|
-
pytest.main([__file__, "-v"])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/notifications/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/banner/petit_chat.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.8 → drydock_cli-2.6.10}/drydock/cli/textual_ui/widgets/chat_input/text_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|