drydock-cli 2.0.2__tar.gz → 2.1.1__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.0.2 → drydock_cli-2.1.1}/PKG-INFO +1 -1
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/agent_loop.py +23 -109
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/cli.md +12 -9
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/pyproject.toml +1 -1
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.gitignore +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.python-version +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.typos.toml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.vscode/extensions.json +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.vscode/launch.json +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/.vscode/settings.json +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/AGENTS.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/CHANGELOG.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/CLAUDE.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/Drydock_rebrand.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/LICENSE +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/NOTICE +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/PRD.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/README.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/action.yml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/docs/README.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/docs/acp-setup.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/logger.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/slug.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/types.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/core/utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock/whats_new.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock-acp.spec +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/drydock_terms.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/flake.lock +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/flake.nix +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/README.md +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/auto_test_loop.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/backup.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/bump_version.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/install.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/notify_release.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/test_bank.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/test_full.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/scripts/test_smoke.sh +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/conftest.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/e2e/common.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/mock/utils.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_agents.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_integration.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_message_id.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_middleware.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_smoke.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/test_workloads.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.0.2 → drydock_cli-2.1.1}/uv.lock +0 -0
|
@@ -474,104 +474,10 @@ class AgentLoop:
|
|
|
474
474
|
|
|
475
475
|
yield UserMessageEvent(content=user_msg, message_id=user_message.message_id)
|
|
476
476
|
|
|
477
|
-
# ===
|
|
478
|
-
#
|
|
479
|
-
#
|
|
480
|
-
|
|
481
|
-
try:
|
|
482
|
-
from drydock.core.build_orchestrator import run_build_pipeline
|
|
483
|
-
# Include PRD content if it exists — the user prompt is usually
|
|
484
|
-
# just "review the PRD and get started", not the PRD itself
|
|
485
|
-
build_prompt = user_msg
|
|
486
|
-
for prd_name in ("PRD.md", "prd.md", "PRD.txt"):
|
|
487
|
-
prd_path = Path.cwd() / prd_name
|
|
488
|
-
if prd_path.exists():
|
|
489
|
-
prd_content = prd_path.read_text()[:8000]
|
|
490
|
-
build_prompt = f"{user_msg}\n\nPRD CONTENT:\n{prd_content}"
|
|
491
|
-
break
|
|
492
|
-
from drydock.core.build_orchestrator import (
|
|
493
|
-
make_plan_from_prd, scaffold_package, implement_file,
|
|
494
|
-
_fix_cross_file_imports, _fix_circular_imports,
|
|
495
|
-
_extract_public_api,
|
|
496
|
-
)
|
|
497
|
-
|
|
498
|
-
# Phase 1: Plan
|
|
499
|
-
yield AssistantEvent(content="Planning project structure...")
|
|
500
|
-
plan = make_plan_from_prd(build_prompt)
|
|
501
|
-
file_list = ", ".join(f.path.split("/")[-1] for f in plan.files)
|
|
502
|
-
yield AssistantEvent(
|
|
503
|
-
content=f"Package: `{plan.package_name}` with {len(plan.files)} files: {file_list}"
|
|
504
|
-
)
|
|
505
|
-
|
|
506
|
-
# Phase 2: Scaffold
|
|
507
|
-
yield AssistantEvent(content="Creating package structure...")
|
|
508
|
-
scaffold_package(plan, Path.cwd())
|
|
509
|
-
|
|
510
|
-
# Phase 3: Implement each file
|
|
511
|
-
for i, file_spec in enumerate(plan.files):
|
|
512
|
-
yield AssistantEvent(
|
|
513
|
-
content=f"Writing {file_spec.path} ({i+1}/{len(plan.files)})..."
|
|
514
|
-
)
|
|
515
|
-
for attempt in range(3):
|
|
516
|
-
success = await implement_file(
|
|
517
|
-
file_spec, plan, self.config, Path.cwd(), self.backend
|
|
518
|
-
)
|
|
519
|
-
if success:
|
|
520
|
-
from drydock.core.build_orchestrator import _fix_imports
|
|
521
|
-
_fix_imports(Path.cwd() / file_spec.path, plan.package_name)
|
|
522
|
-
break
|
|
523
|
-
|
|
524
|
-
# Phase 3.5: Fix imports
|
|
525
|
-
yield AssistantEvent(content="Fixing cross-file imports...")
|
|
526
|
-
_fix_cross_file_imports(plan, Path.cwd())
|
|
527
|
-
_fix_circular_imports(plan, Path.cwd())
|
|
528
|
-
|
|
529
|
-
# Build summary
|
|
530
|
-
succeeded = sum(
|
|
531
|
-
1 for f in plan.files
|
|
532
|
-
if (Path.cwd() / f.path).exists()
|
|
533
|
-
and (Path.cwd() / f.path).stat().st_size > 100
|
|
534
|
-
)
|
|
535
|
-
summary = (
|
|
536
|
-
f"Project `{plan.package_name}` built: {succeeded}/{len(plan.files)} files.\n"
|
|
537
|
-
f"Test with: `python3 -m {plan.package_name} --help`"
|
|
538
|
-
)
|
|
539
|
-
yield AssistantEvent(content=summary)
|
|
540
|
-
|
|
541
|
-
# Auto-test: run python3 -m package and report result
|
|
542
|
-
import subprocess as _sp
|
|
543
|
-
pkg_name = summary.split("'")[1] if "'" in summary else "project"
|
|
544
|
-
test_result = _sp.run(
|
|
545
|
-
f"python3 -m {pkg_name} --help",
|
|
546
|
-
shell=True, cwd=str(Path.cwd()),
|
|
547
|
-
capture_output=True, text=True, timeout=15,
|
|
548
|
-
)
|
|
549
|
-
if test_result.returncode == 0:
|
|
550
|
-
yield AssistantEvent(
|
|
551
|
-
content=f"\nTest passed: `python3 -m {pkg_name} --help` works.\n\n"
|
|
552
|
-
f"```\n{test_result.stdout[:300]}\n```\n\n"
|
|
553
|
-
f"Create sample data and test further, or ask me to fix any issues."
|
|
554
|
-
)
|
|
555
|
-
else:
|
|
556
|
-
err = (test_result.stderr or test_result.stdout)[:300]
|
|
557
|
-
# Let the model fix this error
|
|
558
|
-
self._inject_system_note(
|
|
559
|
-
f"The project was built but has an error. Fix it:\n\n"
|
|
560
|
-
f"```\n{err}\n```\n\n"
|
|
561
|
-
f"Use read_file and search_replace to fix. Do NOT rewrite entire files."
|
|
562
|
-
)
|
|
563
|
-
|
|
564
|
-
logger.info("Build orchestrator completed successfully")
|
|
565
|
-
except Exception as e:
|
|
566
|
-
import traceback
|
|
567
|
-
logger.warning("Build orchestrator failed (%s), falling back to normal flow", e)
|
|
568
|
-
logger.warning("Traceback: %s", traceback.format_exc())
|
|
569
|
-
auto_context = self._build_auto_context(user_msg)
|
|
570
|
-
if auto_context:
|
|
571
|
-
self._inject_system_note(auto_context)
|
|
572
|
-
else:
|
|
573
|
-
# Smart task routing: auto-explore + skill injection
|
|
574
|
-
await self._auto_route_task(user_msg)
|
|
477
|
+
# === AUTO-CONTEXT ===
|
|
478
|
+
# Auto-explore project files + inject relevant skill for the task type.
|
|
479
|
+
# The model handles everything with subagents (v2.0.0 fixed delegation).
|
|
480
|
+
await self._auto_route_task(user_msg)
|
|
575
481
|
|
|
576
482
|
try:
|
|
577
483
|
should_break_loop = False
|
|
@@ -1863,20 +1769,28 @@ class AgentLoop:
|
|
|
1863
1769
|
self._inject_system_note("\n\n".join(parts))
|
|
1864
1770
|
|
|
1865
1771
|
def _is_build_task(self, user_msg: str) -> bool:
|
|
1866
|
-
"""Detect if a user message is
|
|
1772
|
+
"""Detect if a user message is an explicit build task that needs orchestration.
|
|
1773
|
+
|
|
1774
|
+
Only triggers on clear build intent — NOT on "review" or "look at".
|
|
1775
|
+
"""
|
|
1867
1776
|
msg_lower = user_msg.lower()
|
|
1777
|
+
|
|
1778
|
+
# Explicit build verbs — user clearly wants to create something
|
|
1868
1779
|
has_build_verb = any(kw in msg_lower for kw in (
|
|
1869
|
-
"build", "create a", "implement", "
|
|
1870
|
-
"
|
|
1780
|
+
"build", "create a", "implement", "scaffold",
|
|
1781
|
+
"build the project", "build this project",
|
|
1782
|
+
"build from prd", "build it",
|
|
1783
|
+
"get started building", "start building",
|
|
1871
1784
|
))
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1785
|
+
|
|
1786
|
+
# "review", "look at", "read" are NOT build verbs
|
|
1787
|
+
is_review = any(kw in msg_lower for kw in (
|
|
1788
|
+
"review", "look at", "read", "check", "analyze", "audit",
|
|
1789
|
+
"what does", "explain", "summarize",
|
|
1790
|
+
))
|
|
1791
|
+
if is_review and not has_build_verb:
|
|
1792
|
+
return False
|
|
1793
|
+
|
|
1880
1794
|
has_prd = Path.cwd().joinpath("PRD.md").exists() or Path.cwd().joinpath("prd.md").exists()
|
|
1881
1795
|
return has_build_verb and (has_complexity or has_prd)
|
|
1882
1796
|
|
|
@@ -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.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-2.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-2.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-2.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-2.0.2 → drydock_cli-2.1.1}/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.0.2 → drydock_cli-2.1.1}/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
|