drydock-cli 2.6.38__tar.gz → 2.6.40__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.40/.auto_release.lock +1 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/CLAUDE.md +59 -5
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/PKG-INFO +1 -1
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/pyproject.toml +1 -1
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/ralph_loop.py +37 -18
- drydock_cli-2.6.38/.auto_release.lock +0 -1
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.claude/scheduled_tasks.lock +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.gitignore +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.python-version +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.typos.toml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.vscode/extensions.json +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.vscode/launch.json +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/.vscode/settings.json +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/AGENTS.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/CHANGELOG.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/LICENSE +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/NOTICE +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/PRD.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/README.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/action.yml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/docs/README.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/docs/acp-setup.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/agent_loop.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/logger.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/slug.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/_task_manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/types.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/whats_new.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock-acp.spec +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock_terms.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/flake.lock +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/flake.nix +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/README.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/backup.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/bump_version.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/install.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/notify_release.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/shakedown.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/shakedown_interactive.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/shakedown_regression.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/shakedown_suite.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/shakedown_variance.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/test_full.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/tui_test.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/conftest.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/e2e/common.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/fixtures/doc_qa_system_prd.md +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/mock/utils.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_agents.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_integration.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_message_id.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_middleware.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_smoke.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_tool_args.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/test_workloads.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.6.38 → drydock_cli-2.6.40}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
844174
|
|
@@ -483,6 +483,50 @@ v3 is a from-scratch rewrite using nano-claude-code as foundation. 4 core files,
|
|
|
483
483
|
are a better signal for whether drydock can handle real user work.
|
|
484
484
|
Easy PRDs were ceiling-ed out — all passing means you can't tell
|
|
485
485
|
what's broken.
|
|
486
|
+
31. **Harness bugs faked all previous pass rates.** (2026-04-12) The
|
|
487
|
+
shakedown harness typed prompts via PTY but never verified the TUI
|
|
488
|
+
actually accepted them. Result: 25 out of 28 prompts were silently
|
|
489
|
+
dropped per session — the TUI only saw the first 3-5 prompts, and
|
|
490
|
+
the harness counted assistant/tool messages from that ongoing work
|
|
491
|
+
as "condition met." Every "24/24 passed" was a lie. Fix: wait for
|
|
492
|
+
a NEW user-role message to appear in the session log after typing,
|
|
493
|
+
retry up to 3x if it doesn't. Also wait for TUI to go idle (6s no
|
|
494
|
+
new messages) before typing the next prompt.
|
|
495
|
+
32. **`pkg_works` via `--help` was the exact bug CLAUDE.md warns
|
|
496
|
+
against.** (2026-04-12) I reintroduced `python3 -m pkg --help` as
|
|
497
|
+
the pass criterion. Every PRD "passed." Actually only 3/11 worked
|
|
498
|
+
— the rest had broken imports, missing features, fake outputs.
|
|
499
|
+
Replace with `functional_tests.sh` per PRD that runs real feature
|
|
500
|
+
commands and checks real outputs (e.g., calculator must compute
|
|
501
|
+
23*47=1081, lang_interp must run let x=42; print(x*2) and output 84).
|
|
502
|
+
33. **Have the TUI run the tests, not the harness.** Externally
|
|
503
|
+
running `functional_tests.sh` tests the CODE, not drydock's
|
|
504
|
+
ability to test-and-fix. Real test: TUI runs tests via bash tool,
|
|
505
|
+
observes failures, reads failing files, applies fixes, iterates.
|
|
506
|
+
Harness only observes the session log for 'RESULT: X passed, Y failed'.
|
|
507
|
+
34. **RALPH loop works much better than pipelined prompts.** (2026-04-12)
|
|
508
|
+
`shakedown_interactive.py` with 24-30 prompts racing the TUI never
|
|
509
|
+
landed properly. `ralph_loop.py` with ONE prompt → wait for
|
|
510
|
+
completion → run tests → send failures back → iterate works great.
|
|
511
|
+
Got 10/11 packages to 100% test pass via this approach in one night.
|
|
512
|
+
35. **Auto-rollback on test regression is essential.** Gemma 4 26B with
|
|
513
|
+
only 4B active params regresses passing tests when trying to fix
|
|
514
|
+
failing ones. Snapshot the package dir before each fix iteration;
|
|
515
|
+
if score goes down, restore. Even with "don't break passing tests"
|
|
516
|
+
in the prompt, the model will destroy working code.
|
|
517
|
+
36. **Drydock takes 3-5 MINUTES to create a session dir after spawn.**
|
|
518
|
+
(2026-04-12) When GPU is busy from a prior run, drydock may take
|
|
519
|
+
up to 4 minutes before the session directory is even created. My
|
|
520
|
+
180s wait was timing out with 1 second to spare. Bumped to 300s.
|
|
521
|
+
37. **meta.json is only written at session EXIT.** (2026-04-12) Can't
|
|
522
|
+
match sessions by working_directory during an active session.
|
|
523
|
+
`find_session()` must match on directory creation time relative
|
|
524
|
+
to harness start, not meta.json content. messages.jsonl is also
|
|
525
|
+
inconsistently flushed during the session.
|
|
526
|
+
38. **NEVER use broad pkill/kill matching 'drydock'.** (2026-04-12) I
|
|
527
|
+
killed the user's active TUI session twice by doing
|
|
528
|
+
`ps aux | grep drydock | kill`. Only kill by tracked PIDs from
|
|
529
|
+
my own background tasks. User's TUI is also a drydock process.
|
|
486
530
|
|
|
487
531
|
## Testing
|
|
488
532
|
|
|
@@ -592,12 +636,22 @@ bash scripts/shakedown_suite.sh
|
|
|
592
636
|
- doc_qa: 22/24, 693s, pkg YES (2 steps timeout)
|
|
593
637
|
- prompt_optimizer: 24/24, 431s, pkg YES
|
|
594
638
|
- Autonomous mega-prompt: 4/5 pass, 1 flaky (eval_harness thinking stall)
|
|
595
|
-
- tool_agent: 155s, pkg YES
|
|
596
|
-
- stock_screener: 207s, pkg YES
|
|
597
|
-
- eval_harness: 669s timeout, pkg NO (model stalled on complex evaluator code)
|
|
598
|
-
- doc_qa: 174s, pkg YES
|
|
599
|
-
- prompt_optimizer: 210s, pkg YES
|
|
600
639
|
- Key fix: autonomous prompts now write cli.py FIRST + pkg_works condition
|
|
640
|
+
- **NOTE: These were fake pass rates. The harness was dropping 25/28 prompts
|
|
641
|
+
silently. Real results via functional_tests.sh (below) showed only 3/11
|
|
642
|
+
packages actually worked.**
|
|
643
|
+
|
|
644
|
+
*Functional test results (2026-04-12, post harness fixes, v2.6.38):*
|
|
645
|
+
- Ladder: 5-min, 15-min, 30-min, 60-min tiers (complexity, not duration)
|
|
646
|
+
- Session started: 29/49 tests passing (59%) via real functional_tests.sh
|
|
647
|
+
- Session ended: **49/52 tests passing (94%)** via ralph_loop.py
|
|
648
|
+
- doc_qa: 5/5, prompt_optimizer: 4/4, tool_agent: 5/5
|
|
649
|
+
- stock_screener: 4/4, eval_harness: 4/4, mini_db: 4/7
|
|
650
|
+
- site_gen: 5/5, lang_interp: 5/5, pkg_manager: 4/4
|
|
651
|
+
- web_frame: 4/4, build_sys: 5/5
|
|
652
|
+
- Only mini_db not at 100%: WHERE filter, UPDATE, DELETE don't work
|
|
653
|
+
- Key tooling: scripts/ralph_loop.py replaces shakedown_interactive.py
|
|
654
|
+
as the primary test harness. One big prompt, observe, fix, iterate.
|
|
601
655
|
|
|
602
656
|
*Small suite (older):*
|
|
603
657
|
- 4/4 (roman_converter, prime_tool, todo_list, codec) with functional
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drydock-cli
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.40
|
|
4
4
|
Summary: Local-first CLI coding agent — tested with Gemma 4 26B via vLLM
|
|
5
5
|
Project-URL: Homepage, https://github.com/fbobe321/drydock
|
|
6
6
|
Project-URL: Repository, https://github.com/fbobe321/drydock
|
|
@@ -46,22 +46,45 @@ class SessionWatcher:
|
|
|
46
46
|
self.messages: list[dict] = []
|
|
47
47
|
|
|
48
48
|
def find_session(self) -> Path | None:
|
|
49
|
+
"""Find the drydock session directory for our cwd.
|
|
50
|
+
|
|
51
|
+
Problem: drydock only writes meta.json at session EXIT (not start).
|
|
52
|
+
So we can't match on working_directory during the session.
|
|
53
|
+
|
|
54
|
+
Strategy: Pick the newest session dir created after our start_time.
|
|
55
|
+
If messages.jsonl exists in it (= drydock is actively writing), use it.
|
|
56
|
+
"""
|
|
49
57
|
if self.session_dir is not None:
|
|
50
58
|
return self.session_dir
|
|
51
59
|
if not SESSION_ROOT.exists():
|
|
52
60
|
return None
|
|
53
|
-
|
|
61
|
+
|
|
62
|
+
# Find the newest dir that was created (birth time) at-or-after since
|
|
63
|
+
candidates = []
|
|
64
|
+
for entry in SESSION_ROOT.iterdir():
|
|
54
65
|
try:
|
|
55
|
-
if not entry.is_dir()
|
|
66
|
+
if not entry.is_dir():
|
|
56
67
|
continue
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
68
|
+
# Use directory creation time (birth) via stat
|
|
69
|
+
st = entry.stat()
|
|
70
|
+
# Directory's ctime usually = creation. Use mtime as fallback.
|
|
71
|
+
dir_ctime = st.st_ctime
|
|
72
|
+
if dir_ctime < self.since - 2:
|
|
73
|
+
continue
|
|
74
|
+
candidates.append((dir_ctime, entry))
|
|
62
75
|
except Exception:
|
|
63
76
|
continue
|
|
64
|
-
|
|
77
|
+
|
|
78
|
+
if not candidates:
|
|
79
|
+
return None
|
|
80
|
+
|
|
81
|
+
# Pick the newest. Take it even without messages.jsonl — drydock
|
|
82
|
+
# may not flush messages until exit. Since only one drydock process
|
|
83
|
+
# should be running, the newest dir created after our start is ours.
|
|
84
|
+
candidates.sort(reverse=True)
|
|
85
|
+
newest_ctime, newest_entry = candidates[0]
|
|
86
|
+
self.session_dir = newest_entry
|
|
87
|
+
return newest_entry
|
|
65
88
|
|
|
66
89
|
def refresh(self) -> int:
|
|
67
90
|
sd = self.find_session()
|
|
@@ -329,27 +352,23 @@ def ralph(cwd: Path, pkg: str, max_iterations: int = 5,
|
|
|
329
352
|
# Type the prompt — drydock creates a session when it receives input
|
|
330
353
|
type_prompt(child, initial_prompt)
|
|
331
354
|
|
|
332
|
-
# Now wait for the session to appear —
|
|
333
|
-
#
|
|
355
|
+
# Now wait for the session to appear — 5 min. Drydock can take 3-4
|
|
356
|
+
# minutes to create the session dir when GPU is busy from a prior run.
|
|
334
357
|
print(f" Waiting for session to appear...", end="", flush=True)
|
|
335
358
|
session_found = False
|
|
336
|
-
for i in range(
|
|
359
|
+
for i in range(300): # up to 300s (5 min)
|
|
337
360
|
drain_pty(child, 1.0)
|
|
338
361
|
if watcher.find_session():
|
|
339
362
|
session_found = True
|
|
340
363
|
break
|
|
341
|
-
if i ==
|
|
342
|
-
print(f" (still waiting at
|
|
343
|
-
time.sleep(2)
|
|
344
|
-
type_prompt(child, initial_prompt)
|
|
345
|
-
elif i == 120:
|
|
346
|
-
print(f" (still waiting at 120s, retyping again)", end="", flush=True)
|
|
364
|
+
if i > 0 and i % 60 == 0:
|
|
365
|
+
print(f" (still waiting at {i}s, retyping)", end="", flush=True)
|
|
347
366
|
time.sleep(2)
|
|
348
367
|
type_prompt(child, initial_prompt)
|
|
349
368
|
if session_found:
|
|
350
369
|
print(f" found: {watcher.session_dir.name}")
|
|
351
370
|
else:
|
|
352
|
-
print(f" NOT FOUND after
|
|
371
|
+
print(f" NOT FOUND after 300s")
|
|
353
372
|
return 1
|
|
354
373
|
|
|
355
374
|
# Wait for user message to actually appear in session log
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
837529
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/banner/petit_chat.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/braille_renderer.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/cli/textual_ui/widgets/chat_input/text_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/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
|
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/ignore_rules.py
RENAMED
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/indexer.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/drydock/core/autocompletion/file_indexer/watcher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.6.38 → drydock_cli-2.6.40}/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.38 → drydock_cli-2.6.40}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|