drydock-cli 2.1.0__tar.gz → 2.1.2__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.1.0 → drydock_cli-2.1.2}/PKG-INFO +1 -1
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/agent_loop.py +45 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/cli.md +12 -9
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/pyproject.toml +1 -1
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.gitignore +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.python-version +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.typos.toml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.vscode/extensions.json +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.vscode/launch.json +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/.vscode/settings.json +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/AGENTS.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/CHANGELOG.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/CLAUDE.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/LICENSE +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/NOTICE +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/PRD.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/README.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/action.yml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/docs/README.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/docs/acp-setup.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/logger.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/slug.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/types.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/core/utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock/whats_new.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock-acp.spec +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/drydock_terms.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/flake.lock +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/flake.nix +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/README.md +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/backup.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/bump_version.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/install.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/notify_release.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/test_full.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/conftest.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/e2e/common.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/mock/utils.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_agents.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_integration.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_message_id.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_middleware.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_smoke.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/test_workloads.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.1.0 → drydock_cli-2.1.2}/uv.lock +0 -0
|
@@ -296,6 +296,11 @@ class AgentLoop:
|
|
|
296
296
|
async def act(self, msg: str) -> AsyncGenerator[BaseEvent]:
|
|
297
297
|
self._clean_message_history()
|
|
298
298
|
|
|
299
|
+
# Auto-create AGENTS.md if no project instructions exist.
|
|
300
|
+
# devstral needs per-project AGENTS.md to anchor its behavior —
|
|
301
|
+
# without it the model loops on ls/bash instead of using subagents.
|
|
302
|
+
self._ensure_agents_md()
|
|
303
|
+
|
|
299
304
|
# Load project state for cross-session context
|
|
300
305
|
try:
|
|
301
306
|
from drydock.core.session.state_file import load_state
|
|
@@ -1768,6 +1773,46 @@ class AgentLoop:
|
|
|
1768
1773
|
if parts:
|
|
1769
1774
|
self._inject_system_note("\n\n".join(parts))
|
|
1770
1775
|
|
|
1776
|
+
def _ensure_agents_md(self) -> None:
|
|
1777
|
+
"""Auto-create AGENTS.md if no project instructions file exists.
|
|
1778
|
+
|
|
1779
|
+
devstral requires a per-project AGENTS.md to use subagents properly.
|
|
1780
|
+
Without it, the model loops on bash/ls instead of delegating.
|
|
1781
|
+
"""
|
|
1782
|
+
from drydock.core.paths import AGENTS_MD_FILENAMES
|
|
1783
|
+
|
|
1784
|
+
cwd = Path.cwd()
|
|
1785
|
+
# Check if any project instructions file already exists
|
|
1786
|
+
for name in AGENTS_MD_FILENAMES:
|
|
1787
|
+
if (cwd / name).exists():
|
|
1788
|
+
return # Already has instructions
|
|
1789
|
+
|
|
1790
|
+
# Also check for CLAUDE.md (user might be using Claude Code convention)
|
|
1791
|
+
if (cwd / "CLAUDE.md").exists():
|
|
1792
|
+
return
|
|
1793
|
+
|
|
1794
|
+
# Create default AGENTS.md
|
|
1795
|
+
agents_md = cwd / "AGENTS.md"
|
|
1796
|
+
try:
|
|
1797
|
+
agents_md.write_text(
|
|
1798
|
+
"# Project Instructions\n\n"
|
|
1799
|
+
"## Workflow\n"
|
|
1800
|
+
"When building a project:\n"
|
|
1801
|
+
"1. Use `task(agent=\"planner\")` to create an implementation plan first\n"
|
|
1802
|
+
"2. Use `task(agent=\"explore\")` to understand existing code\n"
|
|
1803
|
+
"3. Create files using `write_file` with absolute imports\n"
|
|
1804
|
+
"4. Always create `__main__.py` so `python3 -m package_name` works\n"
|
|
1805
|
+
"5. Test with `bash` after creating files\n\n"
|
|
1806
|
+
"## Rules\n"
|
|
1807
|
+
"- Use absolute imports: `from package.module import X`, NOT `from .module import X`\n"
|
|
1808
|
+
"- Always create `__init__.py` and `__main__.py` for packages\n"
|
|
1809
|
+
"- Create sample test data before testing\n"
|
|
1810
|
+
"- Use `python3 -m package_name` to run, NOT `python3 package/file.py`\n"
|
|
1811
|
+
)
|
|
1812
|
+
logger.info("Auto-created AGENTS.md in %s", cwd)
|
|
1813
|
+
except (OSError, PermissionError):
|
|
1814
|
+
pass # Non-critical — read-only filesystem or no permissions
|
|
1815
|
+
|
|
1771
1816
|
def _is_build_task(self, user_msg: str) -> bool:
|
|
1772
1817
|
"""Detect if a user message is an explicit build task that needs orchestration.
|
|
1773
1818
|
|
|
@@ -222,18 +222,21 @@ Error Handling:
|
|
|
222
222
|
- After ANY error, your next action must be DIFFERENT from what just failed.
|
|
223
223
|
- Never run the same failing command twice — the result won't change.
|
|
224
224
|
|
|
225
|
+
Building Projects (multi-file):
|
|
226
|
+
When asked to build a project from a PRD or requirements:
|
|
227
|
+
1. Use `task(agent="planner")` to create an implementation plan FIRST
|
|
228
|
+
2. Use `task(agent="explore")` to understand existing code (if any)
|
|
229
|
+
3. Create files one at a time using `write_file`
|
|
230
|
+
4. Test with `bash` after creating all files
|
|
231
|
+
5. Fix errors with `search_replace`, then test again
|
|
232
|
+
|
|
225
233
|
Python Package Rules (MANDATORY):
|
|
226
234
|
When creating Python packages (directories with __init__.py):
|
|
227
|
-
- ALWAYS create
|
|
228
|
-
|
|
229
|
-
from mypackage.cli import main
|
|
230
|
-
if __name__ == "__main__":
|
|
231
|
-
main()
|
|
232
|
-
```
|
|
235
|
+
- ALWAYS create `__init__.py` AND `__main__.py`
|
|
236
|
+
- `__main__.py` contents: `from package.cli import main; main()` (if __name__ == "__main__")
|
|
233
237
|
- Use ABSOLUTE imports: `from mypackage.module import X`, NOT `from .module import X`
|
|
234
|
-
-
|
|
235
|
-
- Create sample/test data BEFORE running tests
|
|
236
|
-
- After 1-2 successful test runs, STOP testing and summarize what you built
|
|
238
|
+
- Run with `python3 -m mypackage`, NOT `python3 mypackage/file.py`
|
|
239
|
+
- Create sample/test data BEFORE running tests
|
|
237
240
|
|
|
238
241
|
Debugging Best Practices:
|
|
239
242
|
When fixing bugs, follow this cycle: RUN → READ → FIX → VERIFY.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-2.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.1.0 → drydock_cli-2.1.2}/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.1.0 → drydock_cli-2.1.2}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|