drydock-cli 2.2.2__tar.gz → 2.2.3__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.2.2 → drydock_cli-2.2.3}/CLAUDE.md +29 -1
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/PKG-INFO +1 -1
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/agent_loop.py +29 -10
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/system_prompt.py +20 -14
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/pyproject.toml +1 -1
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.gitignore +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.python-version +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.typos.toml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.vscode/extensions.json +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.vscode/launch.json +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/.vscode/settings.json +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/AGENTS.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/CHANGELOG.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/LICENSE +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/NOTICE +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/PRD.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/README.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/action.yml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/docs/README.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/docs/acp-setup.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/logger.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/slug.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/types.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/whats_new.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock-acp.spec +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock_terms.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/flake.lock +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/flake.nix +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/README.md +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/backup.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/bump_version.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/install.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/notify_release.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/overnight_agents_test.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/test_full.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/conftest.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/e2e/common.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/mock/utils.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/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.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_agents.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_integration.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_message_id.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_middleware.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_smoke.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/test_workloads.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.2.2 → drydock_cli-2.2.3}/uv.lock +0 -0
|
@@ -124,7 +124,35 @@ python3 -c "import ast; ast.parse(open('path/to/file.py').read())"
|
|
|
124
124
|
- Harness at `/data3/swe_bench_runs/harness.py` uses DryDock directly
|
|
125
125
|
- AGENTS.md auto-created per task with bug-fix workflow
|
|
126
126
|
- Environment bootstrapping (Meta-Harness technique) gathers repo structure before first LLM call
|
|
127
|
-
|
|
127
|
+
|
|
128
|
+
## Improvement Backlog (from research papers + industry analysis)
|
|
129
|
+
|
|
130
|
+
**Meta-Harness (arXiv:2603.28052) — still TODO:**
|
|
131
|
+
- Execution trace logging (full prompts + tool calls per task for failure diagnosis)
|
|
132
|
+
- Repo-specific routing (different strategies per SWE-bench repo)
|
|
133
|
+
- Draft-then-verify (generate patch, verify against tests before committing)
|
|
134
|
+
- Contrastive examples (similar bugs with different fixes)
|
|
135
|
+
- Pareto frontier tracking (accuracy vs token cost)
|
|
136
|
+
|
|
137
|
+
**Industry design patterns — still TODO:**
|
|
138
|
+
- Parallel tool execution (multiple independent tool calls per turn)
|
|
139
|
+
- Background memory consolidation (clean context during idle time)
|
|
140
|
+
- Three-tier memory system (index + topics + archives)
|
|
141
|
+
- Frustration detection (regex-based, adjust approach when user is stuck)
|
|
142
|
+
- Extended reasoning allocation (detect complex tasks, give more compute)
|
|
143
|
+
- Git safety guards (stash before destructive ops)
|
|
144
|
+
|
|
145
|
+
**Implemented:**
|
|
146
|
+
- ✅ Static/dynamic prompt split (prefix caching)
|
|
147
|
+
- ✅ AGENTS.md auto-creation
|
|
148
|
+
- ✅ Environment bootstrapping
|
|
149
|
+
- ✅ Additive-only harness changes
|
|
150
|
+
- ✅ Permission denial feedback (suggest alternatives)
|
|
151
|
+
- ✅ "Task Completed" false claim detection
|
|
152
|
+
- ✅ Loop guidance (never stops, only redirects)
|
|
153
|
+
- ✅ Composable prompt (static first, dynamic after)
|
|
154
|
+
|
|
155
|
+
**Legal note:** All patterns are standard design concepts implemented from scratch. No proprietary code copied.
|
|
128
156
|
|
|
129
157
|
## Key Learnings
|
|
130
158
|
|
|
@@ -781,21 +781,28 @@ class AgentLoop:
|
|
|
781
781
|
"to make your edit. Do NOT say the task is done until search_replace succeeds."
|
|
782
782
|
)
|
|
783
783
|
elif text_without_action == 1:
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
784
|
+
last_text = (last_message.content or "").lower()
|
|
785
|
+
# Detect model asking for confirmation instead of acting
|
|
786
|
+
is_asking = any(kw in last_text for kw in (
|
|
787
|
+
"standing by", "waiting for", "please provide",
|
|
788
|
+
"what would you like", "how can i help",
|
|
789
|
+
"what should i", "do you want me to",
|
|
790
|
+
))
|
|
791
|
+
if is_asking:
|
|
788
792
|
nudge_text = (
|
|
789
|
-
"
|
|
790
|
-
"
|
|
791
|
-
"
|
|
793
|
+
"DO NOT ask for confirmation. Act NOW. "
|
|
794
|
+
"If there is a PRD.md, implement it with write_file. "
|
|
795
|
+
"If there is code, read it with read_file and fix bugs with search_replace. "
|
|
796
|
+
"Call a tool on your next response."
|
|
797
|
+
)
|
|
798
|
+
elif "TARGET:" in last_text.upper() or "FILE:" in last_text.upper():
|
|
799
|
+
nudge_text = (
|
|
800
|
+
"Good — you identified the target. Now use read_file then search_replace."
|
|
792
801
|
)
|
|
793
802
|
else:
|
|
794
803
|
nudge_text = (
|
|
795
804
|
"You responded with text but did not call any tools. "
|
|
796
|
-
"
|
|
797
|
-
"If you are unsure of the exact text, use read_file on the target function ONCE, "
|
|
798
|
-
"then immediately search_replace."
|
|
805
|
+
"Call write_file, read_file, or search_replace NOW."
|
|
799
806
|
)
|
|
800
807
|
elif text_without_action == 2:
|
|
801
808
|
nudge_text = (
|
|
@@ -1146,6 +1153,16 @@ class AgentLoop:
|
|
|
1146
1153
|
CancellationReason.TOOL_SKIPPED, tool_call.tool_name
|
|
1147
1154
|
)
|
|
1148
1155
|
)
|
|
1156
|
+
# Add alternative suggestions so model can adjust strategy
|
|
1157
|
+
alternatives = {
|
|
1158
|
+
"write_file": "Try search_replace to modify existing files.",
|
|
1159
|
+
"search_replace": "Try write_file to create the file, or read_file first to get exact text.",
|
|
1160
|
+
"bash": "Try read_file + search_replace for code changes.",
|
|
1161
|
+
"task": "Try grep + read_file to explore manually.",
|
|
1162
|
+
}
|
|
1163
|
+
alt = alternatives.get(tool_call.tool_name, "")
|
|
1164
|
+
if alt:
|
|
1165
|
+
skip_reason += f"\n\n{alt}"
|
|
1149
1166
|
yield ToolResultEvent(
|
|
1150
1167
|
tool_name=tool_call.tool_name,
|
|
1151
1168
|
tool_class=tool_call.tool_class,
|
|
@@ -1781,6 +1798,8 @@ class AgentLoop:
|
|
|
1781
1798
|
try:
|
|
1782
1799
|
agents_md.write_text(
|
|
1783
1800
|
"# Project Instructions\n\n"
|
|
1801
|
+
"DO NOT ask for confirmation. DO NOT wait for instructions. ACT IMMEDIATELY.\n"
|
|
1802
|
+
"If there is a PRD.md, implement it. If there is code, work on it.\n\n"
|
|
1784
1803
|
"## Workflow\n"
|
|
1785
1804
|
"When building a project:\n"
|
|
1786
1805
|
"1. Use `task(agent=\"planner\")` to create an implementation plan first\n"
|
|
@@ -246,30 +246,35 @@ def get_universal_system_prompt(
|
|
|
246
246
|
skill_manager: SkillManager,
|
|
247
247
|
agent_manager: AgentManager,
|
|
248
248
|
) -> str:
|
|
249
|
-
|
|
249
|
+
# === STATIC SECTIONS (identical per session — prefix-cached by vLLM) ===
|
|
250
|
+
# These MUST come first and be identical across requests for cache hits.
|
|
251
|
+
static_sections = [config.system_prompt]
|
|
250
252
|
|
|
251
253
|
if config.include_commit_signature:
|
|
252
|
-
|
|
254
|
+
static_sections.append(_add_commit_signature())
|
|
253
255
|
|
|
254
256
|
if config.include_model_info:
|
|
255
|
-
|
|
257
|
+
static_sections.append(f"Your model name is: `{config.active_model}`")
|
|
256
258
|
|
|
257
259
|
if config.include_prompt_detail:
|
|
258
|
-
|
|
260
|
+
static_sections.append(_get_os_system_prompt())
|
|
259
261
|
tool_prompts = []
|
|
260
262
|
for tool_class in tool_manager.available_tools.values():
|
|
261
263
|
if prompt := tool_class.get_tool_prompt():
|
|
262
264
|
tool_prompts.append(prompt)
|
|
263
265
|
if tool_prompts:
|
|
264
|
-
|
|
266
|
+
static_sections.append("\n---\n".join(tool_prompts))
|
|
265
267
|
|
|
266
268
|
skills_section = _get_available_skills_section(skill_manager)
|
|
267
269
|
if skills_section:
|
|
268
|
-
|
|
270
|
+
static_sections.append(skills_section)
|
|
269
271
|
|
|
270
272
|
subagents_section = _get_available_subagents_section(agent_manager)
|
|
271
273
|
if subagents_section:
|
|
272
|
-
|
|
274
|
+
static_sections.append(subagents_section)
|
|
275
|
+
|
|
276
|
+
# === DYNAMIC SECTIONS (change per project/directory) ===
|
|
277
|
+
dynamic_sections = []
|
|
273
278
|
|
|
274
279
|
if config.include_project_context:
|
|
275
280
|
is_dangerous, reason = is_dangerous_directory()
|
|
@@ -283,20 +288,21 @@ def get_universal_system_prompt(
|
|
|
283
288
|
config=config.project_context, root_path=Path.cwd()
|
|
284
289
|
).get_full_context()
|
|
285
290
|
|
|
286
|
-
|
|
291
|
+
dynamic_sections.append(context)
|
|
287
292
|
|
|
288
293
|
project_doc = get_harness_files_manager().load_project_doc(
|
|
289
294
|
config.project_context.max_doc_bytes
|
|
290
295
|
)
|
|
291
296
|
if project_doc.strip():
|
|
292
|
-
|
|
297
|
+
dynamic_sections.append(project_doc)
|
|
293
298
|
|
|
294
|
-
# Load DRYDOCK.md per-project instructions
|
|
295
|
-
|
|
296
|
-
if
|
|
297
|
-
|
|
299
|
+
# Load AGENTS.md / DRYDOCK.md per-project instructions
|
|
300
|
+
project_instructions = _load_project_instructions()
|
|
301
|
+
if project_instructions:
|
|
302
|
+
dynamic_sections.append(f"## Project Instructions\n\n{project_instructions}")
|
|
298
303
|
|
|
299
|
-
|
|
304
|
+
# Static first (prefix cached), then dynamic
|
|
305
|
+
return "\n\n".join(static_sections + dynamic_sections)
|
|
300
306
|
|
|
301
307
|
|
|
302
308
|
def _load_project_instructions(max_bytes: int = 16_000) -> str:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.2 → drydock_cli-2.2.3}/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.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/notifications/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/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.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/widgets/chat_input/text_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/textual_ui/windowing/history_windowing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/cli/update_notifier/ports/update_cache_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/drydock/core/autocompletion/file_indexer/ignore_rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-2.2.2 → drydock_cli-2.2.3}/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
|
|
File without changes
|