drydock-cli 2.5.5__tar.gz → 2.5.7__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.5.5 → drydock_cli-2.5.7}/CLAUDE.md +22 -18
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/PKG-INFO +1 -1
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agent_loop.py +14 -74
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session_checker.py +12 -9
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/search_replace.py +11 -1
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/write_file.py +17 -1
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/pyproject.toml +1 -1
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.gitignore +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.python-version +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.typos.toml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.vscode/extensions.json +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.vscode/launch.json +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.vscode/settings.json +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/AGENTS.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/CHANGELOG.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/LICENSE +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/NOTICE +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/PRD.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/README.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/action.yml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/docs/README.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/docs/acp-setup.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/logger.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/slug.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/types.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/whats_new.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock-acp.spec +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock_terms.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/flake.lock +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/flake.nix +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/__main__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/analyzer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/cli.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/README.md +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/backup.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/bump_version.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/install.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/notify_release.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_full.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/tui_test.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/conftest.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/common.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/utils.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/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.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agents.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_integration.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_message_id.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_middleware.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_smoke.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_workloads.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.5.5 → drydock_cli-2.5.7}/uv.lock +0 -0
|
@@ -9,9 +9,12 @@ Drydock is a local CLI coding agent (fork of mistral-vibe, Apache 2.0).
|
|
|
9
9
|
- **Hardware:** 2x RTX 4060 Ti 16GB, Gemma 4 26B MoE (A4B) via vLLM Docker at localhost:8000
|
|
10
10
|
- **Server:** remus (Ubuntu 22.04, user: bobef)
|
|
11
11
|
- **Active model:** Gemma 4 26B-A4B-it-AWQ-4bit (only 4B active params, ~70 tok/s)
|
|
12
|
-
- **TUI
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
12
|
+
- **TUI build tests:** 303/320 pass --help (94%) — BUT --help IS MEANINGLESS
|
|
13
|
+
- **TUI real functional tests:** 35/63 pass (56%) — the honest number
|
|
14
|
+
- **SWE-bench:** 70% file match (v3 baseline)
|
|
15
|
+
- **Priority:** TUI experience first. Fix drydock bugs, don't simplify PRDs.
|
|
16
|
+
- **370 PRDs** at /data3/drydock_test_projects/ — the benchmark suite
|
|
17
|
+
- **Current version:** v2.5.6 (PyPI + GitHub + user's env)
|
|
15
18
|
|
|
16
19
|
## Build & Test
|
|
17
20
|
|
|
@@ -279,21 +282,22 @@ v3 is a from-scratch rewrite using nano-claude-code as foundation. 4 core files,
|
|
|
279
282
|
|
|
280
283
|
### TUI Test Harness
|
|
281
284
|
- **Script:** `scripts/tui_test.py` — pexpect-based, drives the REAL TUI binary
|
|
282
|
-
- **
|
|
283
|
-
- **
|
|
284
|
-
- **
|
|
285
|
-
|
|
286
|
-
###
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
-
|
|
295
|
-
-
|
|
296
|
-
-
|
|
285
|
+
- **Real test runner:** `run_real_tests.sh` — functional testing, not just --help
|
|
286
|
+
- **Results:** `real_test_results.txt` — honest pass/fail with functional verification
|
|
287
|
+
- **370 PRDs** at `/data3/drydock_test_projects/` covering CLI tools, integration, edge cases, best practices
|
|
288
|
+
|
|
289
|
+
### Test Levels
|
|
290
|
+
1. **Build test (--help):** package runs — MEANINGLESS alone
|
|
291
|
+
2. **Functional test:** PRD test cases verified with correct output — THE REAL TEST
|
|
292
|
+
3. **Acceptance test:** specific expected outputs verified
|
|
293
|
+
4. **Quality test:** code quality checks (docstrings, no eval, error handling)
|
|
294
|
+
|
|
295
|
+
### Critical Testing Rules
|
|
296
|
+
- PRD failures = DryDock bugs. Fix the agent, NOT the PRD.
|
|
297
|
+
- --help passing proves nothing about code quality
|
|
298
|
+
- Safety mechanisms must be ADVISORY not BLOCKING
|
|
299
|
+
- NEVER add circuit breakers that prevent legitimate work
|
|
300
|
+
- The model should be able to answer questions without being forced to edit files
|
|
297
301
|
|
|
298
302
|
## When Compacting
|
|
299
303
|
|
|
@@ -790,81 +790,21 @@ class AgentLoop:
|
|
|
790
790
|
continue
|
|
791
791
|
# After 3 empty responses, let it exit
|
|
792
792
|
|
|
793
|
-
#
|
|
794
|
-
#
|
|
795
|
-
#
|
|
796
|
-
if should_break_loop and not has_made_edit
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
"the fix is complete", "issue is resolved",
|
|
808
|
-
]
|
|
809
|
-
claims_complete = any(p in last_text_lower for p in task_complete_phrases)
|
|
810
|
-
|
|
811
|
-
if claims_complete:
|
|
812
|
-
nudge_text = (
|
|
813
|
-
"You said the task is complete but NO code was actually changed. "
|
|
814
|
-
"Your search_replace call either failed or was never made. "
|
|
815
|
-
"Use read_file to read the target file, then use search_replace "
|
|
816
|
-
"to make your edit. Do NOT say the task is done until search_replace succeeds."
|
|
817
|
-
)
|
|
818
|
-
elif text_without_action == 1:
|
|
819
|
-
last_text = (last_message.content or "").lower()
|
|
820
|
-
# Detect model asking for confirmation instead of acting
|
|
821
|
-
is_asking = any(kw in last_text for kw in (
|
|
822
|
-
"standing by", "waiting for", "please provide",
|
|
823
|
-
"what would you like", "how can i help",
|
|
824
|
-
"what should i", "do you want me to",
|
|
825
|
-
"ready to begin", "i will start",
|
|
826
|
-
"shall i", "would you like me to",
|
|
827
|
-
"let me know", "please confirm",
|
|
828
|
-
"i am ready", "ready to proceed",
|
|
829
|
-
))
|
|
830
|
-
if is_asking:
|
|
831
|
-
nudge_text = (
|
|
832
|
-
"DO NOT ask for confirmation. Act NOW. "
|
|
833
|
-
"If there is a PRD.md, implement it with write_file. "
|
|
834
|
-
"If there is code, read it with read_file and fix bugs with search_replace. "
|
|
835
|
-
"Call a tool on your next response."
|
|
836
|
-
)
|
|
837
|
-
elif "TARGET:" in last_text.upper() or "FILE:" in last_text.upper():
|
|
838
|
-
nudge_text = (
|
|
839
|
-
"Good — you identified the target. Now use read_file then search_replace."
|
|
840
|
-
)
|
|
841
|
-
else:
|
|
842
|
-
nudge_text = (
|
|
843
|
-
"You responded with text but did not call any tools. "
|
|
844
|
-
"Call write_file, read_file, or search_replace NOW."
|
|
845
|
-
)
|
|
846
|
-
elif text_without_action == 2:
|
|
847
|
-
nudge_text = (
|
|
848
|
-
"STOP describing the fix. You MUST call search_replace on your NEXT response. "
|
|
849
|
-
"No more text-only responses. Act NOW."
|
|
850
|
-
)
|
|
851
|
-
elif text_without_action <= 5:
|
|
852
|
-
nudge_text = (
|
|
853
|
-
f"WARNING ({text_without_action} text responses without editing): "
|
|
854
|
-
"You MUST call search_replace or read_file immediately. "
|
|
855
|
-
"Make your best fix attempt RIGHT NOW even if you are unsure. "
|
|
856
|
-
"Pick the most likely file and function, and make a minimal edit."
|
|
857
|
-
)
|
|
858
|
-
else:
|
|
859
|
-
# Keep nudging — never give up
|
|
860
|
-
nudge_text = (
|
|
861
|
-
"You MUST call a tool. Use grep to find the file, "
|
|
862
|
-
"read_file to read it, then search_replace to fix."
|
|
793
|
+
# Text response without edits — this is FINE for questions,
|
|
794
|
+
# explanations, running code, etc. Only nudge if the model
|
|
795
|
+
# is clearly asking for permission instead of acting.
|
|
796
|
+
if should_break_loop and not has_made_edit:
|
|
797
|
+
last_text = (last_message.content or "").lower()
|
|
798
|
+
is_asking = any(kw in last_text for kw in (
|
|
799
|
+
"shall i", "would you like me to",
|
|
800
|
+
"ready to begin", "please confirm",
|
|
801
|
+
))
|
|
802
|
+
if is_asking and tool_turns == 0:
|
|
803
|
+
# Model asked without doing anything — nudge once
|
|
804
|
+
should_break_loop = False
|
|
805
|
+
self._inject_system_note(
|
|
806
|
+
"Act immediately. Do not ask for confirmation."
|
|
863
807
|
)
|
|
864
|
-
if nudge_text:
|
|
865
|
-
# Use _inject_system_note (appends to last tool/user message)
|
|
866
|
-
# User messages cause 'tool after user' ordering violations
|
|
867
|
-
self._inject_system_note(nudge_text)
|
|
868
808
|
logger.info("Model gave text without editing — nudging (attempt %d)", text_without_action)
|
|
869
809
|
|
|
870
810
|
# If model has been investigating for too long without making an edit,
|
|
@@ -128,17 +128,20 @@ def check_session(messages: list, has_made_edit: bool = False) -> list[SessionIs
|
|
|
128
128
|
f"{api_errors} API errors occurred during the session"
|
|
129
129
|
))
|
|
130
130
|
|
|
131
|
-
# 7. No edits
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
# 7. No edits — only flag if the user explicitly asked to build/fix/create something
|
|
132
|
+
# Questions, exploration, and running code don't need edits
|
|
133
|
+
if not has_made_edit and len(messages) > 10:
|
|
134
|
+
user_msgs = [str(getattr(m, 'content', '') or '').lower() for m in messages
|
|
135
|
+
if hasattr(m, 'role') and str(getattr(m, 'role', '')) == 'user']
|
|
136
|
+
build_words = ["build", "create", "fix", "implement", "write", "add", "modify", "update", "edit"]
|
|
137
|
+
user_asked_for_edit = any(
|
|
138
|
+
any(w in msg for w in build_words)
|
|
139
|
+
for msg in user_msgs
|
|
137
140
|
)
|
|
138
|
-
if
|
|
141
|
+
if user_asked_for_edit:
|
|
139
142
|
issues.append(SessionIssue(
|
|
140
|
-
"
|
|
141
|
-
"
|
|
143
|
+
"info", "no_edits",
|
|
144
|
+
"No file changes were made — the model may not have completed the task"
|
|
142
145
|
))
|
|
143
146
|
|
|
144
147
|
return issues
|
|
@@ -166,6 +166,17 @@ class SearchReplace(
|
|
|
166
166
|
|
|
167
167
|
await self._write_file(file_path, modified_content)
|
|
168
168
|
|
|
169
|
+
# Auto-verify syntax for Python files
|
|
170
|
+
if file_path.suffix == ".py":
|
|
171
|
+
try:
|
|
172
|
+
import ast
|
|
173
|
+
ast.parse(modified_content)
|
|
174
|
+
except SyntaxError as e:
|
|
175
|
+
block_result.warnings.append(
|
|
176
|
+
f"⚠ SYNTAX ERROR after edit at line {e.lineno}: {e.msg}. "
|
|
177
|
+
f"Fix this before continuing."
|
|
178
|
+
)
|
|
179
|
+
|
|
169
180
|
yield SearchReplaceResult(
|
|
170
181
|
file=str(file_path),
|
|
171
182
|
blocks_applied=block_result.applied,
|
|
@@ -188,7 +199,6 @@ class SearchReplace(
|
|
|
188
199
|
# Try to extract file_path from content if missing
|
|
189
200
|
if not file_path_str and content:
|
|
190
201
|
# Look for file path in the content (common when model puts everything in content)
|
|
191
|
-
import re
|
|
192
202
|
path_match = re.search(r'(?:file[_\s]?path|path|file)[\s:="\']+([^\s"\']+\.py)', content[:200], re.IGNORECASE)
|
|
193
203
|
if path_match:
|
|
194
204
|
file_path_str = path_match.group(1)
|
|
@@ -92,12 +92,28 @@ class WriteFile(
|
|
|
92
92
|
|
|
93
93
|
await self._write_file(args, file_path)
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
# Auto-verify syntax for Python files
|
|
96
|
+
syntax_warning = ""
|
|
97
|
+
if file_path.suffix == ".py":
|
|
98
|
+
try:
|
|
99
|
+
import ast
|
|
100
|
+
ast.parse(args.content)
|
|
101
|
+
except SyntaxError as e:
|
|
102
|
+
syntax_warning = (
|
|
103
|
+
f"\n\n⚠ SYNTAX ERROR in {file_path.name} line {e.lineno}: {e.msg}"
|
|
104
|
+
f"\n {e.text.rstrip() if e.text else ''}"
|
|
105
|
+
f"\n Fix this before moving to the next file."
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
result = WriteFileResult(
|
|
96
109
|
path=str(file_path),
|
|
97
110
|
bytes_written=content_bytes,
|
|
98
111
|
file_existed=file_existed,
|
|
99
112
|
content=args.content,
|
|
100
113
|
)
|
|
114
|
+
if syntax_warning:
|
|
115
|
+
result.content = syntax_warning # Override content with the warning
|
|
116
|
+
yield result
|
|
101
117
|
|
|
102
118
|
_BINARY_EXTENSIONS = frozenset({
|
|
103
119
|
".pptx", ".xlsx", ".docx", ".pdf", ".zip", ".tar", ".gz", ".bz2",
|
|
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.5.5 → drydock_cli-2.5.7}/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.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/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.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/history_windowing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/ports/update_cache_repository.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
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/ignore_rules.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
|