drydock-cli 2.6.2__tar.gz → 2.6.4__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.4/.auto_release.lock +1 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/PKG-INFO +1 -1
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/ask_user_question.py +1 -2
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/todo.py +15 -1
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/pyproject.toml +1 -1
- drydock_cli-2.6.4/tests/test_tool_args.py +246 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.gitignore +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.python-version +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.typos.toml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.vscode/extensions.json +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.vscode/launch.json +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/.vscode/settings.json +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/AGENTS.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/CHANGELOG.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/CLAUDE.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/LICENSE +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/NOTICE +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/PRD.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/README.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/action.yml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/docs/README.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/docs/acp-setup.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/agent_loop.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/logger.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/slug.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/types.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/whats_new.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock-acp.spec +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock_terms.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/flake.lock +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/flake.nix +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/log_analyzer/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/log_analyzer/__main__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/log_analyzer/analyzer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/log_analyzer/cli.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/README.md +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/backup.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/bump_version.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/install.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/notify_release.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/test_full.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/scripts/tui_test.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/conftest.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/e2e/common.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/mock/utils.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/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.2 → drydock_cli-2.6.4}/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.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_agents.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_integration.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_message_id.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_middleware.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_smoke.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/test_workloads.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.6.2 → drydock_cli-2.6.4}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3780432
|
|
@@ -46,9 +46,8 @@ class Question(BaseModel):
|
|
|
46
46
|
|
|
47
47
|
class AskUserQuestionArgs(BaseModel):
|
|
48
48
|
questions: list[Question] = Field(
|
|
49
|
-
default_factory=
|
|
49
|
+
default_factory=list,
|
|
50
50
|
description="Questions to ask (1-4). Displayed as tabs if multiple.",
|
|
51
|
-
min_length=1,
|
|
52
51
|
max_length=4,
|
|
53
52
|
)
|
|
54
53
|
content_preview: str | None = Field(
|
|
@@ -4,7 +4,7 @@ from collections.abc import AsyncGenerator
|
|
|
4
4
|
from enum import StrEnum, auto
|
|
5
5
|
from typing import ClassVar
|
|
6
6
|
|
|
7
|
-
from pydantic import BaseModel, Field
|
|
7
|
+
from pydantic import BaseModel, Field, field_validator
|
|
8
8
|
|
|
9
9
|
from drydock.core.tools.base import (
|
|
10
10
|
BaseTool,
|
|
@@ -37,6 +37,20 @@ class TodoItem(BaseModel):
|
|
|
37
37
|
status: TodoStatus = TodoStatus.PENDING
|
|
38
38
|
priority: TodoPriority = TodoPriority.MEDIUM
|
|
39
39
|
|
|
40
|
+
@field_validator("status", mode="before")
|
|
41
|
+
@classmethod
|
|
42
|
+
def clean_status(cls, v):
|
|
43
|
+
if isinstance(v, str):
|
|
44
|
+
return v.strip("'\"").lower()
|
|
45
|
+
return v
|
|
46
|
+
|
|
47
|
+
@field_validator("priority", mode="before")
|
|
48
|
+
@classmethod
|
|
49
|
+
def clean_priority(cls, v):
|
|
50
|
+
if isinstance(v, str):
|
|
51
|
+
return v.strip("'\"").lower()
|
|
52
|
+
return v
|
|
53
|
+
|
|
40
54
|
|
|
41
55
|
class TodoArgs(BaseModel):
|
|
42
56
|
action: str = Field(default="read", description="Either 'read' or 'write'")
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"""Test all tools accept the argument formats Gemma 4 actually sends.
|
|
2
|
+
|
|
3
|
+
Gemma 4 quirks:
|
|
4
|
+
- Wraps enum values in extra quotes: "'completed'" instead of "completed"
|
|
5
|
+
- Sometimes omits required fields
|
|
6
|
+
- Sometimes sends empty {} for all args
|
|
7
|
+
- Sends file_path as "path" or vice versa
|
|
8
|
+
- Sends content in wrong field for search_replace
|
|
9
|
+
"""
|
|
10
|
+
import json
|
|
11
|
+
import pytest
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
from unittest.mock import MagicMock
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def try_validate(args_class, data: dict) -> tuple[bool, str]:
|
|
17
|
+
"""Try to validate args, return (success, error_message)."""
|
|
18
|
+
try:
|
|
19
|
+
args_class.model_validate(data)
|
|
20
|
+
return True, ""
|
|
21
|
+
except Exception as e:
|
|
22
|
+
return False, str(e)[:200]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class TestTodoArgs:
|
|
26
|
+
"""Todo tool argument validation."""
|
|
27
|
+
|
|
28
|
+
def setup_method(self):
|
|
29
|
+
from drydock.core.tools.builtins.todo import TodoArgs, TodoItem
|
|
30
|
+
self.TodoArgs = TodoArgs
|
|
31
|
+
self.TodoItem = TodoItem
|
|
32
|
+
|
|
33
|
+
def test_empty_args_has_default(self):
|
|
34
|
+
"""Empty {} should work — action defaults to 'read'."""
|
|
35
|
+
ok, err = try_validate(self.TodoArgs, {})
|
|
36
|
+
assert ok, f"Empty args failed: {err}"
|
|
37
|
+
|
|
38
|
+
def test_quoted_enum_status(self):
|
|
39
|
+
"""Gemma 4 sends \"'completed'\" with extra quotes."""
|
|
40
|
+
ok, err = try_validate(self.TodoItem, {
|
|
41
|
+
"id": "1", "content": "test", "status": "'completed'", "priority": "high"
|
|
42
|
+
})
|
|
43
|
+
assert ok, f"Quoted status failed: {err}"
|
|
44
|
+
|
|
45
|
+
def test_quoted_enum_priority(self):
|
|
46
|
+
"""Gemma 4 sends \"'high'\" with extra quotes."""
|
|
47
|
+
ok, err = try_validate(self.TodoItem, {
|
|
48
|
+
"id": "1", "content": "test", "status": "pending", "priority": "'high'"
|
|
49
|
+
})
|
|
50
|
+
assert ok, f"Quoted priority failed: {err}"
|
|
51
|
+
|
|
52
|
+
def test_uppercase_enum(self):
|
|
53
|
+
"""Model might send COMPLETED instead of completed."""
|
|
54
|
+
ok, err = try_validate(self.TodoItem, {
|
|
55
|
+
"id": "1", "content": "test", "status": "COMPLETED", "priority": "HIGH"
|
|
56
|
+
})
|
|
57
|
+
assert ok, f"Uppercase enum failed: {err}"
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class TestWriteFileArgs:
|
|
61
|
+
"""Write file tool argument validation."""
|
|
62
|
+
|
|
63
|
+
def setup_method(self):
|
|
64
|
+
from drydock.core.tools.builtins.write_file import WriteFileArgs
|
|
65
|
+
self.WriteFileArgs = WriteFileArgs
|
|
66
|
+
|
|
67
|
+
def test_normal_args(self):
|
|
68
|
+
ok, err = try_validate(self.WriteFileArgs, {
|
|
69
|
+
"path": "test.py", "content": "print('hello')"
|
|
70
|
+
})
|
|
71
|
+
assert ok, f"Normal args failed: {err}"
|
|
72
|
+
|
|
73
|
+
def test_overwrite_defaults_true(self):
|
|
74
|
+
"""Overwrite should default to True."""
|
|
75
|
+
args = self.WriteFileArgs.model_validate({"path": "test.py", "content": "x"})
|
|
76
|
+
assert args.overwrite is True
|
|
77
|
+
|
|
78
|
+
def test_empty_content(self):
|
|
79
|
+
"""Empty content should be accepted (for __init__.py)."""
|
|
80
|
+
ok, err = try_validate(self.WriteFileArgs, {
|
|
81
|
+
"path": "test.py", "content": ""
|
|
82
|
+
})
|
|
83
|
+
assert ok, f"Empty content failed: {err}"
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class TestSearchReplaceArgs:
|
|
87
|
+
"""Search replace tool argument validation."""
|
|
88
|
+
|
|
89
|
+
def setup_method(self):
|
|
90
|
+
from drydock.core.tools.builtins.search_replace import SearchReplaceArgs
|
|
91
|
+
self.SearchReplaceArgs = SearchReplaceArgs
|
|
92
|
+
|
|
93
|
+
def test_normal_args(self):
|
|
94
|
+
ok, err = try_validate(self.SearchReplaceArgs, {
|
|
95
|
+
"file_path": "test.py",
|
|
96
|
+
"content": "<<<<<<< SEARCH\nold\n=======\nnew\n>>>>>>> REPLACE"
|
|
97
|
+
})
|
|
98
|
+
assert ok, f"Normal args failed: {err}"
|
|
99
|
+
|
|
100
|
+
def test_missing_file_path_has_default(self):
|
|
101
|
+
"""file_path should default to empty string, not crash."""
|
|
102
|
+
ok, err = try_validate(self.SearchReplaceArgs, {
|
|
103
|
+
"content": "<<<<<<< SEARCH\nold\n=======\nnew\n>>>>>>> REPLACE"
|
|
104
|
+
})
|
|
105
|
+
assert ok, f"Missing file_path failed: {err}"
|
|
106
|
+
|
|
107
|
+
def test_old_new_string_direct(self):
|
|
108
|
+
"""Gemma 4 sometimes sends old_string/new_string directly."""
|
|
109
|
+
ok, err = try_validate(self.SearchReplaceArgs, {
|
|
110
|
+
"file_path": "test.py",
|
|
111
|
+
"old_string": "old text",
|
|
112
|
+
"new_string": "new text"
|
|
113
|
+
})
|
|
114
|
+
assert ok, f"Direct old/new string failed: {err}"
|
|
115
|
+
|
|
116
|
+
def test_empty_args(self):
|
|
117
|
+
"""Empty args should not crash."""
|
|
118
|
+
ok, err = try_validate(self.SearchReplaceArgs, {})
|
|
119
|
+
assert ok, f"Empty args failed: {err}"
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class TestAskUserQuestionArgs:
|
|
123
|
+
"""Ask user question tool argument validation."""
|
|
124
|
+
|
|
125
|
+
def setup_method(self):
|
|
126
|
+
from drydock.core.tools.builtins.ask_user_question import AskUserQuestionArgs
|
|
127
|
+
self.AskUserQuestionArgs = AskUserQuestionArgs
|
|
128
|
+
|
|
129
|
+
def test_empty_args_has_default(self):
|
|
130
|
+
"""Empty {} should work — questions has a default."""
|
|
131
|
+
ok, err = try_validate(self.AskUserQuestionArgs, {})
|
|
132
|
+
assert ok, f"Empty args failed: {err}"
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class TestReadFileArgs:
|
|
136
|
+
"""Read file tool argument validation."""
|
|
137
|
+
|
|
138
|
+
def setup_method(self):
|
|
139
|
+
from drydock.core.tools.builtins.read_file import ReadFileArgs
|
|
140
|
+
self.ReadFileArgs = ReadFileArgs
|
|
141
|
+
|
|
142
|
+
def test_path_field(self):
|
|
143
|
+
ok, err = try_validate(self.ReadFileArgs, {"path": "test.py"})
|
|
144
|
+
assert ok, f"Path field failed: {err}"
|
|
145
|
+
|
|
146
|
+
def test_with_offset_limit(self):
|
|
147
|
+
ok, err = try_validate(self.ReadFileArgs, {
|
|
148
|
+
"path": "test.py", "offset": 10, "limit": 50
|
|
149
|
+
})
|
|
150
|
+
assert ok, f"Offset/limit failed: {err}"
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
class TestBashArgs:
|
|
154
|
+
"""Bash tool argument validation."""
|
|
155
|
+
|
|
156
|
+
def setup_method(self):
|
|
157
|
+
from drydock.core.tools.builtins.bash import BashArgs
|
|
158
|
+
self.BashArgs = BashArgs
|
|
159
|
+
|
|
160
|
+
def test_command_field(self):
|
|
161
|
+
ok, err = try_validate(self.BashArgs, {"command": "ls -la"})
|
|
162
|
+
assert ok, f"Command field failed: {err}"
|
|
163
|
+
|
|
164
|
+
def test_with_timeout(self):
|
|
165
|
+
ok, err = try_validate(self.BashArgs, {"command": "sleep 1", "timeout": 5})
|
|
166
|
+
assert ok, f"Timeout failed: {err}"
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
class TestGrepArgs:
|
|
170
|
+
"""Grep tool argument validation."""
|
|
171
|
+
|
|
172
|
+
def setup_method(self):
|
|
173
|
+
from drydock.core.tools.builtins.grep import GrepArgs
|
|
174
|
+
self.GrepArgs = GrepArgs
|
|
175
|
+
|
|
176
|
+
def test_pattern_only(self):
|
|
177
|
+
ok, err = try_validate(self.GrepArgs, {"pattern": "def main"})
|
|
178
|
+
assert ok, f"Pattern only failed: {err}"
|
|
179
|
+
|
|
180
|
+
def test_with_path(self):
|
|
181
|
+
ok, err = try_validate(self.GrepArgs, {"pattern": "import", "path": "."})
|
|
182
|
+
assert ok, f"With path failed: {err}"
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
class TestGlobArgs:
|
|
186
|
+
"""Glob tool argument validation."""
|
|
187
|
+
|
|
188
|
+
def setup_method(self):
|
|
189
|
+
from drydock.core.tools.builtins.glob_tool import GlobArgs
|
|
190
|
+
self.GlobArgs = GlobArgs
|
|
191
|
+
|
|
192
|
+
def test_pattern(self):
|
|
193
|
+
ok, err = try_validate(self.GlobArgs, {"pattern": "*.py"})
|
|
194
|
+
assert ok, f"Pattern failed: {err}"
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
class TestTaskCreateArgs:
|
|
198
|
+
"""Task create tool argument validation."""
|
|
199
|
+
|
|
200
|
+
def setup_method(self):
|
|
201
|
+
from drydock.core.tools.builtins.task_manager import TaskCreateArgs
|
|
202
|
+
self.TaskCreateArgs = TaskCreateArgs
|
|
203
|
+
|
|
204
|
+
def test_normal(self):
|
|
205
|
+
ok, err = try_validate(self.TaskCreateArgs, {"title": "Build the app"})
|
|
206
|
+
assert ok, f"Normal args failed: {err}"
|
|
207
|
+
|
|
208
|
+
def test_with_description(self):
|
|
209
|
+
ok, err = try_validate(self.TaskCreateArgs, {
|
|
210
|
+
"title": "Build the app", "description": "Create all files"
|
|
211
|
+
})
|
|
212
|
+
assert ok, f"With description failed: {err}"
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class TestSearchReplaceBlockParsing:
|
|
216
|
+
"""Test that search_replace parses various block formats."""
|
|
217
|
+
|
|
218
|
+
def setup_method(self):
|
|
219
|
+
from drydock.core.tools.builtins.search_replace import SearchReplace
|
|
220
|
+
self.parse = SearchReplace._parse_search_replace_blocks
|
|
221
|
+
|
|
222
|
+
def test_standard_format(self):
|
|
223
|
+
blocks = self.parse("<<<<<<< SEARCH\nold text\n=======\nnew text\n>>>>>>> REPLACE")
|
|
224
|
+
assert len(blocks) == 1
|
|
225
|
+
assert blocks[0].search == "old text"
|
|
226
|
+
assert blocks[0].replace == "new text"
|
|
227
|
+
|
|
228
|
+
def test_repeated_search_word(self):
|
|
229
|
+
"""Gemma 4 sometimes repeats: SEARCH SEARCH SEARCH."""
|
|
230
|
+
blocks = self.parse("<<<<<<<<< SEARCH SEARCH SEARCH\nold\n=======\nnew\n>>>>>>>>> REPLACE REPLACE")
|
|
231
|
+
assert len(blocks) == 1
|
|
232
|
+
|
|
233
|
+
def test_json_format(self):
|
|
234
|
+
"""Gemma 4 sometimes sends JSON."""
|
|
235
|
+
blocks = self.parse('{"old_string": "old", "new_string": "new"}')
|
|
236
|
+
assert len(blocks) == 1
|
|
237
|
+
assert blocks[0].search == "old"
|
|
238
|
+
|
|
239
|
+
def test_separator_format(self):
|
|
240
|
+
"""Simple ======= separator."""
|
|
241
|
+
blocks = self.parse("old text\n=======\nnew text")
|
|
242
|
+
assert len(blocks) == 1
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
if __name__ == "__main__":
|
|
246
|
+
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.2 → drydock_cli-2.6.4}/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.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.2 → drydock_cli-2.6.4}/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.6.2 → drydock_cli-2.6.4}/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.2 → drydock_cli-2.6.4}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.2 → drydock_cli-2.6.4}/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.6.2 → drydock_cli-2.6.4}/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.6.2 → drydock_cli-2.6.4}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.2 → drydock_cli-2.6.4}/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
|
|
File without changes
|
{drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.2 → drydock_cli-2.6.4}/drydock/core/autocompletion/file_indexer/ignore_rules.py
RENAMED
|
File without changes
|