drydock-cli 2.6.21__tar.gz → 2.6.23__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.23/.auto_release.lock +1 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/PKG-INFO +1 -1
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/agent_loop.py +60 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/write_file.py +79 -1
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/pyproject.toml +1 -1
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_smoke.py +1 -1
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_tool_args.py +1 -1
- drydock_cli-2.6.21/.auto_release.lock +0 -1
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.gitignore +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.python-version +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.typos.toml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.vscode/extensions.json +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.vscode/launch.json +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/.vscode/settings.json +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/AGENTS.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/CHANGELOG.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/CLAUDE.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/LICENSE +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/NOTICE +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/PRD.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/README.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/action.yml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/docs/README.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/docs/acp-setup.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/logger.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/slug.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/base.py +0 -0
- /drydock_cli-2.6.21/drydock/core/tools/builtins/task_manager.py → /drydock_cli-2.6.23/drydock/core/tools/builtins/_task_manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/types.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/whats_new.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock-acp.spec +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock_terms.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/flake.lock +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/flake.nix +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/log_analyzer/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/log_analyzer/__main__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/log_analyzer/analyzer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/log_analyzer/cli.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/README.md +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/backup.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/bump_version.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/install.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/notify_release.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/test_full.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/tui_test.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/conftest.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/e2e/common.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/mock/utils.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/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.21 → drydock_cli-2.6.23}/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.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_agents.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_integration.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_message_id.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_middleware.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/test_workloads.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.6.21 → drydock_cli-2.6.23}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
126173
|
|
@@ -1125,6 +1125,18 @@ class AgentLoop:
|
|
|
1125
1125
|
)
|
|
1126
1126
|
)
|
|
1127
1127
|
|
|
1128
|
+
# Advisory loop detection: inject nudge when the model keeps repeating
|
|
1129
|
+
# the same call. Never blocks, never stops — just steers the model toward
|
|
1130
|
+
# a different approach. Catches the 28-identical-bash-calls failure mode.
|
|
1131
|
+
try:
|
|
1132
|
+
repetition = self._check_tool_call_repetition()
|
|
1133
|
+
if repetition:
|
|
1134
|
+
nudge = self._build_repetition_nudge(repetition, tool_call)
|
|
1135
|
+
if nudge:
|
|
1136
|
+
self._inject_system_note(nudge)
|
|
1137
|
+
except Exception as e:
|
|
1138
|
+
logger.debug("Loop detection check failed: %s", e)
|
|
1139
|
+
|
|
1128
1140
|
self.telemetry_client.send_tool_call_finished(
|
|
1129
1141
|
tool_call=tool_call,
|
|
1130
1142
|
agent_profile_name=self.agent_profile.name,
|
|
@@ -1133,6 +1145,54 @@ class AgentLoop:
|
|
|
1133
1145
|
result=result,
|
|
1134
1146
|
)
|
|
1135
1147
|
|
|
1148
|
+
def _build_repetition_nudge(
|
|
1149
|
+
self, signal: str, tool_call: ResolvedToolCall
|
|
1150
|
+
) -> str | None:
|
|
1151
|
+
"""Build an advisory nudge for the model when a loop is detected.
|
|
1152
|
+
|
|
1153
|
+
Returns None if the tool call was already nudged recently (prevents
|
|
1154
|
+
spamming the model with the same message on every turn).
|
|
1155
|
+
"""
|
|
1156
|
+
# Rate-limit: don't nudge more than once every 3 turns for the same tool
|
|
1157
|
+
last_nudge_turn = getattr(self, "_last_nudge_turn", -10)
|
|
1158
|
+
current_turn = len(self.messages)
|
|
1159
|
+
if current_turn - last_nudge_turn < 3:
|
|
1160
|
+
return None
|
|
1161
|
+
self._last_nudge_turn = current_turn
|
|
1162
|
+
|
|
1163
|
+
tool_name = tool_call.tool_name
|
|
1164
|
+
if signal == "FORCE_STOP":
|
|
1165
|
+
return (
|
|
1166
|
+
f"You have called `{tool_name}` with the SAME arguments 8+ times "
|
|
1167
|
+
f"and gotten the same result each time. This is a dead end. "
|
|
1168
|
+
f"You MUST change your approach:\n"
|
|
1169
|
+
f"- For bash: if output is empty, read the source files to find the bug — "
|
|
1170
|
+
f" don't just re-run the command\n"
|
|
1171
|
+
f"- For write_file/search_replace: if the file already has your content, "
|
|
1172
|
+
f" move on to the NEXT file\n"
|
|
1173
|
+
f"- If stuck, inspect the actual file contents with read_file before editing"
|
|
1174
|
+
)
|
|
1175
|
+
if signal.startswith("WARNING|"):
|
|
1176
|
+
stuck_tool = signal.split("|", 1)[1] or tool_name
|
|
1177
|
+
if stuck_tool == "bash":
|
|
1178
|
+
return (
|
|
1179
|
+
f"You have run very similar `bash` commands several times in a row. "
|
|
1180
|
+
f"If the output is empty or unchanged, the command is not the problem — "
|
|
1181
|
+
f"the CODE is. Use read_file to inspect the source, then write_file or "
|
|
1182
|
+
f"search_replace to fix the bug. Do not re-run the same command again."
|
|
1183
|
+
)
|
|
1184
|
+
if stuck_tool in ("write_file", "search_replace"):
|
|
1185
|
+
return (
|
|
1186
|
+
f"You have written the same file multiple times in a row. "
|
|
1187
|
+
f"Move to the NEXT file in your plan. If no next file, run the code "
|
|
1188
|
+
f"with bash to verify it works."
|
|
1189
|
+
)
|
|
1190
|
+
return (
|
|
1191
|
+
f"You have called `{stuck_tool}` several times in a row with similar "
|
|
1192
|
+
f"arguments. Try a different tool or a different approach."
|
|
1193
|
+
)
|
|
1194
|
+
return None
|
|
1195
|
+
|
|
1136
1196
|
def _sanitize_message_ordering(self) -> None:
|
|
1137
1197
|
"""Fix any role ordering violations before sending to vLLM/Mistral.
|
|
1138
1198
|
|
|
@@ -20,6 +20,70 @@ from drydock.core.tools.utils import resolve_file_tool_permission
|
|
|
20
20
|
from drydock.core.types import ToolResultEvent, ToolStreamEvent
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
def _check_main_module_entry(tree) -> str | None:
|
|
24
|
+
"""Detect the 'imports main but never calls it' bug in __main__.py files.
|
|
25
|
+
|
|
26
|
+
Returns a description of the problem, or None if the file looks OK.
|
|
27
|
+
|
|
28
|
+
Specifically catches this pattern:
|
|
29
|
+
|
|
30
|
+
from pkg.cli import main
|
|
31
|
+
# no call to main() anywhere
|
|
32
|
+
|
|
33
|
+
Running `python3 -m pkg` then exits 0 with no output.
|
|
34
|
+
"""
|
|
35
|
+
import ast
|
|
36
|
+
|
|
37
|
+
ENTRY_CANDIDATES = {"main", "cli", "run", "app", "entry", "entry_point"}
|
|
38
|
+
|
|
39
|
+
# Pass 1: collect entry-function names imported or defined at module level
|
|
40
|
+
entry_names: set[str] = set()
|
|
41
|
+
has_name_main_guard = False
|
|
42
|
+
for node in tree.body:
|
|
43
|
+
if isinstance(node, ast.ImportFrom):
|
|
44
|
+
for alias in node.names:
|
|
45
|
+
name = alias.asname or alias.name
|
|
46
|
+
if name in ENTRY_CANDIDATES:
|
|
47
|
+
entry_names.add(name)
|
|
48
|
+
elif isinstance(node, ast.Import):
|
|
49
|
+
for alias in node.names:
|
|
50
|
+
name = alias.asname or alias.name.split(".")[-1]
|
|
51
|
+
if name in ENTRY_CANDIDATES:
|
|
52
|
+
entry_names.add(name)
|
|
53
|
+
elif isinstance(node, ast.FunctionDef):
|
|
54
|
+
if node.name in ENTRY_CANDIDATES:
|
|
55
|
+
entry_names.add(node.name)
|
|
56
|
+
elif isinstance(node, ast.If):
|
|
57
|
+
test = node.test
|
|
58
|
+
if (isinstance(test, ast.Compare)
|
|
59
|
+
and isinstance(test.left, ast.Name)
|
|
60
|
+
and test.left.id == "__name__"):
|
|
61
|
+
has_name_main_guard = True
|
|
62
|
+
|
|
63
|
+
if not entry_names:
|
|
64
|
+
return None
|
|
65
|
+
|
|
66
|
+
# Pass 2: walk the entire tree and look for ANY call that references an
|
|
67
|
+
# entry name — either `main()`, `cli.main()`, or `sys.exit(main())`, etc.
|
|
68
|
+
for node in ast.walk(tree):
|
|
69
|
+
if not isinstance(node, ast.Call):
|
|
70
|
+
continue
|
|
71
|
+
# Collect all Name identifiers anywhere inside this Call expression.
|
|
72
|
+
# This catches sys.exit(main()), sys.exit(cli()), cli.main(), etc.
|
|
73
|
+
for child in ast.walk(node):
|
|
74
|
+
if isinstance(child, ast.Name) and child.id in entry_names:
|
|
75
|
+
return None
|
|
76
|
+
if isinstance(child, ast.Attribute) and child.attr in entry_names:
|
|
77
|
+
return None
|
|
78
|
+
|
|
79
|
+
if has_name_main_guard:
|
|
80
|
+
return (
|
|
81
|
+
f"imports {sorted(entry_names)} but the "
|
|
82
|
+
f"`if __name__ == \"__main__\":` block does not call any of them"
|
|
83
|
+
)
|
|
84
|
+
return f"imports {sorted(entry_names)} but never calls any of them"
|
|
85
|
+
|
|
86
|
+
|
|
23
87
|
class WriteFileArgs(BaseModel):
|
|
24
88
|
path: str
|
|
25
89
|
content: str
|
|
@@ -112,13 +176,27 @@ class WriteFile(
|
|
|
112
176
|
if file_path.suffix == ".py":
|
|
113
177
|
try:
|
|
114
178
|
import ast
|
|
115
|
-
ast.parse(args.content)
|
|
179
|
+
tree = ast.parse(args.content)
|
|
116
180
|
except SyntaxError as e:
|
|
117
181
|
syntax_warning = (
|
|
118
182
|
f"\n\n⚠ SYNTAX ERROR in {file_path.name} line {e.lineno}: {e.msg}"
|
|
119
183
|
f"\n {e.text.rstrip() if e.text else ''}"
|
|
120
184
|
f"\n Fix this before moving to the next file."
|
|
121
185
|
)
|
|
186
|
+
else:
|
|
187
|
+
# Catch silent-exit __main__.py: imports a `main` function but
|
|
188
|
+
# never actually calls it. Real bug found in the codec build —
|
|
189
|
+
# `python3 -m pkg` ran, exited 0, and produced no output.
|
|
190
|
+
if file_path.name == "__main__.py":
|
|
191
|
+
entry_warning = _check_main_module_entry(tree)
|
|
192
|
+
if entry_warning:
|
|
193
|
+
syntax_warning = (
|
|
194
|
+
f"\n\n⚠ {file_path.name} looks broken: {entry_warning}"
|
|
195
|
+
f"\n Add `if __name__ == \"__main__\": main()` at the "
|
|
196
|
+
f"bottom, or call the entry function at module level. "
|
|
197
|
+
f"Without it, `python3 -m {file_path.parent.name}` will "
|
|
198
|
+
f"exit silently with no output."
|
|
199
|
+
)
|
|
122
200
|
|
|
123
201
|
result = WriteFileResult(
|
|
124
202
|
path=str(file_path),
|
|
@@ -33,7 +33,7 @@ class TestImports:
|
|
|
33
33
|
from drydock.core.tools.builtins.search_replace import SearchReplace
|
|
34
34
|
from drydock.core.tools.builtins.glob_tool import Glob
|
|
35
35
|
from drydock.core.tools.builtins.notebook_edit import NotebookEdit
|
|
36
|
-
from drydock.core.tools.builtins.
|
|
36
|
+
from drydock.core.tools.builtins._task_manager import TaskCreate
|
|
37
37
|
from drydock.core.tools.builtins.lsp import Lsp
|
|
38
38
|
from drydock.core.tools.builtins.cron import CronCreate
|
|
39
39
|
from drydock.core.tools.builtins.tool_search import ToolSearch
|
|
@@ -198,7 +198,7 @@ class TestTaskCreateArgs:
|
|
|
198
198
|
"""Task create tool argument validation."""
|
|
199
199
|
|
|
200
200
|
def setup_method(self):
|
|
201
|
-
from drydock.core.tools.builtins.
|
|
201
|
+
from drydock.core.tools.builtins._task_manager import TaskCreateArgs
|
|
202
202
|
self.TaskCreateArgs = TaskCreateArgs
|
|
203
203
|
|
|
204
204
|
def test_normal(self):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
17525
|
|
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.21 → drydock_cli-2.6.23}/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.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/notifications/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/banner/petit_chat.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/braille_renderer.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/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.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/chat_input/text_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/context_progress.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/no_markup_static.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.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/widgets/teleport_message.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/cli/textual_ui/windowing/history_windowing.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.21 → drydock_cli-2.6.23}/drydock/cli/update_notifier/ports/update_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.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/ignore_rules.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/indexer.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/file_indexer/watcher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/autocompletion/path_prompt_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.21 → drydock_cli-2.6.23}/drydock/core/config/harness_files/_harness_manager.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
|