drydock-cli 0.6.6__tar.gz → 0.7.0__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-0.6.6 → drydock_cli-0.7.0}/PKG-INFO +1 -1
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/__init__.py +1 -1
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/agent_loop.py +4 -2
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/cli.md +4 -2
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/swe_bench.md +2 -1
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/webfetch.py +4 -2
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/pyproject.toml +1 -1
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_drydock_tasks.py +3 -3
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_loop_detection.py +11 -11
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/CODEOWNERS +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/workflows/ci.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.github/workflows/release.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.gitignore +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.pre-commit-config.yaml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.python-version +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.typos.toml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.vscode/extensions.json +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.vscode/launch.json +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/.vscode/settings.json +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/AGENTS.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/CHANGELOG.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/CLAUDE.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/CONTRIBUTING.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/Drydock_rebrand.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/LICENSE +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/NOTICE +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/PRD.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/README.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/action.yml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/distribution/zed/LICENSE +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/distribution/zed/extension.toml +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/docs/README.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/docs/acp-setup.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/docs/proxy-setup.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/acp/utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/cli.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/commands.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/agents/models.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/auth/github.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/consultant.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/format.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/llm/types.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/logger.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/middleware.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/plan_session.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/programmatic.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/skills/models.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/slug.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/base.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/types.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/core/utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/skills/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/whats_new.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock-acp.spec +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock_terms.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/flake.lock +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/flake.nix +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/scripts/README.md +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/scripts/bump_version.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/scripts/install.sh +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/scripts/prepare_release.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/conftest.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_acp.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_bash.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_content.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/test_backend.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_commands.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/conftest.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_agents.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_slug.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/core/test_utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/e2e/common.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/e2e/conftest.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/mock/__init__.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/mock/utils.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/skills/conftest.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/skills/test_manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/skills/test_models.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/skills/test_parser.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agent_backend.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agent_stats.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_agents.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_history_manager.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_message_id.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_message_merging.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_middleware.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_system_prompt.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_tagged_text.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_bash.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_grep.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_task.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-0.6.6 → drydock_cli-0.7.0}/uv.lock +0 -0
|
@@ -849,8 +849,9 @@ class AgentLoop:
|
|
|
849
849
|
|
|
850
850
|
def _circuit_breaker_check(self, tool_call: ResolvedToolCall) -> str | None:
|
|
851
851
|
"""Block exact-duplicate tool calls. Returns cached result or None."""
|
|
852
|
+
args_str = json.dumps(tool_call.args_dict, sort_keys=True, default=str)
|
|
852
853
|
sig = hashlib.md5(
|
|
853
|
-
f"{tool_call.tool_name}:{
|
|
854
|
+
f"{tool_call.tool_name}:{args_str}".encode()
|
|
854
855
|
).hexdigest()
|
|
855
856
|
|
|
856
857
|
count, last_result = self._tool_call_history.get(sig, (0, ""))
|
|
@@ -883,8 +884,9 @@ class AgentLoop:
|
|
|
883
884
|
|
|
884
885
|
def _circuit_breaker_record(self, tool_call: ResolvedToolCall, result_text: str) -> None:
|
|
885
886
|
"""Record a tool call execution for circuit breaker tracking."""
|
|
887
|
+
args_str = json.dumps(tool_call.args_dict, sort_keys=True, default=str)
|
|
886
888
|
sig = hashlib.md5(
|
|
887
|
-
f"{tool_call.tool_name}:{
|
|
889
|
+
f"{tool_call.tool_name}:{args_str}".encode()
|
|
888
890
|
).hexdigest()
|
|
889
891
|
count, _ = self._tool_call_history.get(sig, (0, ""))
|
|
890
892
|
self._tool_call_history[sig] = (count + 1, result_text[:500])
|
|
@@ -174,13 +174,15 @@ Two-Phase Workflow (mandatory):
|
|
|
174
174
|
PHASE 1 — INVESTIGATE (2-3 tool calls, no edits):
|
|
175
175
|
Use the failing test path to identify the module (e.g. `tests/models/test_query.py` → search in `models/`).
|
|
176
176
|
grep for the specific class/function from the bug report, SCOPED to that module.
|
|
177
|
-
read_file the
|
|
177
|
+
read_file the most relevant source function(s) (50-100 lines with offset/limit).
|
|
178
178
|
State your findings:
|
|
179
|
-
TARGET: path/to/file.py
|
|
179
|
+
TARGET: path/to/file.py (and path/to/other.py if the fix spans multiple files)
|
|
180
180
|
FUNCTION: function_name
|
|
181
181
|
CAUSE: one sentence root cause
|
|
182
182
|
FIX: one sentence fix approach
|
|
183
183
|
|
|
184
|
+
If the bug involves multiple connected components (e.g., a model field AND a query compiler, or a config parser AND a validator), you MAY edit multiple source files. But keep each edit minimal.
|
|
185
|
+
|
|
184
186
|
PHASE 2 — FIX (after investigation):
|
|
185
187
|
Go directly to the TARGET file. search_replace to fix. Read back changed lines to verify.
|
|
186
188
|
|
|
@@ -9,11 +9,12 @@ WORKFLOW:
|
|
|
9
9
|
|
|
10
10
|
CRITICAL RULES:
|
|
11
11
|
- When grep returns results in both source and test files, ALWAYS look at source files first
|
|
12
|
-
- Most bugs need
|
|
12
|
+
- Most bugs need 1 file change, but some need 2-3 related files — fix all of them
|
|
13
13
|
- Keep search_replace old_str to 1-5 lines — just the lines being changed plus unique context
|
|
14
14
|
- If search_replace fails with "not found", re-read the file to get the EXACT current text
|
|
15
15
|
- Do NOT run tests — the test runner handles that separately
|
|
16
16
|
- After your edit, verify by reading back the modified lines
|
|
17
|
+
- If the bug involves TWO related components (e.g., serializer + deserializer, model + migration), check if BOTH need changes
|
|
17
18
|
|
|
18
19
|
FILE DISCOVERY:
|
|
19
20
|
- Extract the module path from the test path: `tests/models/test_query.py` → search in `models/`
|
|
@@ -23,7 +23,7 @@ if TYPE_CHECKING:
|
|
|
23
23
|
from drydock.core.types import ToolCallEvent, ToolResultEvent
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
_HONEST_USER_AGENT = "
|
|
26
|
+
_HONEST_USER_AGENT = "drydock-cli"
|
|
27
27
|
_HTTP_FORBIDDEN = 403
|
|
28
28
|
|
|
29
29
|
|
|
@@ -146,8 +146,10 @@ class WebFetch(
|
|
|
146
146
|
async def _do_fetch(
|
|
147
147
|
self, url: str, timeout: int, headers: dict[str, str]
|
|
148
148
|
) -> httpx.Response:
|
|
149
|
+
import os
|
|
150
|
+
verify_ssl = os.environ.get("DRYDOCK_INSECURE") != "1"
|
|
149
151
|
async with httpx.AsyncClient(
|
|
150
|
-
follow_redirects=True, timeout=httpx.Timeout(timeout)
|
|
152
|
+
follow_redirects=True, timeout=httpx.Timeout(timeout), verify=verify_ssl
|
|
151
153
|
) as client:
|
|
152
154
|
response = await client.get(url, headers=headers)
|
|
153
155
|
|
|
@@ -400,7 +400,7 @@ class TestCircuitBreaker:
|
|
|
400
400
|
al.messages = MessageList()
|
|
401
401
|
al._tool_call_history = {}
|
|
402
402
|
|
|
403
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
403
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command": "ls -ltr"})
|
|
404
404
|
|
|
405
405
|
assert al._circuit_breaker_check(tc) is None
|
|
406
406
|
al._circuit_breaker_record(tc, "file1.py\nfile2.py")
|
|
@@ -421,8 +421,8 @@ class TestCircuitBreaker:
|
|
|
421
421
|
al.messages = MessageList()
|
|
422
422
|
al._tool_call_history = {}
|
|
423
423
|
|
|
424
|
-
tc1 = SimpleNamespace(tool_name="bash",
|
|
425
|
-
tc2 = SimpleNamespace(tool_name="bash",
|
|
424
|
+
tc1 = SimpleNamespace(tool_name="bash", args_dict={"command": "ls -ltr"})
|
|
425
|
+
tc2 = SimpleNamespace(tool_name="bash", args_dict={"command": "ls -la"})
|
|
426
426
|
|
|
427
427
|
al._circuit_breaker_record(tc1, "result1")
|
|
428
428
|
al._circuit_breaker_record(tc1, "result1")
|
|
@@ -59,18 +59,18 @@ class TestCircuitBreaker:
|
|
|
59
59
|
|
|
60
60
|
def test_first_call_allowed(self):
|
|
61
61
|
al = _make_agent()
|
|
62
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
62
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
63
63
|
assert al._circuit_breaker_check(tc) is None
|
|
64
64
|
|
|
65
65
|
def test_second_call_allowed(self):
|
|
66
66
|
al = _make_agent()
|
|
67
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
67
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
68
68
|
al._circuit_breaker_record(tc, "file1.py\nfile2.py")
|
|
69
69
|
assert al._circuit_breaker_check(tc) is None
|
|
70
70
|
|
|
71
71
|
def test_third_call_blocked(self):
|
|
72
72
|
al = _make_agent()
|
|
73
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
73
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
74
74
|
al._circuit_breaker_record(tc, "file1.py\nfile2.py")
|
|
75
75
|
al._circuit_breaker_record(tc, "file1.py\nfile2.py")
|
|
76
76
|
result = al._circuit_breaker_check(tc)
|
|
@@ -79,7 +79,7 @@ class TestCircuitBreaker:
|
|
|
79
79
|
|
|
80
80
|
def test_blocked_message_contains_previous_result(self):
|
|
81
81
|
al = _make_agent()
|
|
82
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
82
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
83
83
|
al._circuit_breaker_record(tc, "important_file.py")
|
|
84
84
|
al._circuit_breaker_record(tc, "important_file.py")
|
|
85
85
|
result = al._circuit_breaker_check(tc)
|
|
@@ -87,7 +87,7 @@ class TestCircuitBreaker:
|
|
|
87
87
|
|
|
88
88
|
def test_blocked_message_contains_alternatives(self):
|
|
89
89
|
al = _make_agent()
|
|
90
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
90
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
91
91
|
al._circuit_breaker_record(tc, "output")
|
|
92
92
|
al._circuit_breaker_record(tc, "output")
|
|
93
93
|
result = al._circuit_breaker_check(tc)
|
|
@@ -95,8 +95,8 @@ class TestCircuitBreaker:
|
|
|
95
95
|
|
|
96
96
|
def test_different_args_not_blocked(self):
|
|
97
97
|
al = _make_agent()
|
|
98
|
-
tc1 = SimpleNamespace(tool_name="bash",
|
|
99
|
-
tc2 = SimpleNamespace(tool_name="bash",
|
|
98
|
+
tc1 = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
99
|
+
tc2 = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -la"})
|
|
100
100
|
al._circuit_breaker_record(tc1, "r1")
|
|
101
101
|
al._circuit_breaker_record(tc1, "r1")
|
|
102
102
|
assert al._circuit_breaker_check(tc1) is not None # Blocked
|
|
@@ -104,8 +104,8 @@ class TestCircuitBreaker:
|
|
|
104
104
|
|
|
105
105
|
def test_different_tools_not_blocked(self):
|
|
106
106
|
al = _make_agent()
|
|
107
|
-
tc1 = SimpleNamespace(tool_name="bash",
|
|
108
|
-
tc2 = SimpleNamespace(tool_name="grep",
|
|
107
|
+
tc1 = SimpleNamespace(tool_name="bash", args_dict={"command":"ls"})
|
|
108
|
+
tc2 = SimpleNamespace(tool_name="grep", args_dict={"pattern":"foo"})
|
|
109
109
|
al._circuit_breaker_record(tc1, "r1")
|
|
110
110
|
al._circuit_breaker_record(tc1, "r1")
|
|
111
111
|
assert al._circuit_breaker_check(tc1) is not None
|
|
@@ -113,7 +113,7 @@ class TestCircuitBreaker:
|
|
|
113
113
|
|
|
114
114
|
def test_already_attempted_summary(self):
|
|
115
115
|
al = _make_agent()
|
|
116
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
116
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls"})
|
|
117
117
|
al._circuit_breaker_record(tc, "output1")
|
|
118
118
|
al._circuit_breaker_record(tc, "output1")
|
|
119
119
|
result = al._circuit_breaker_check(tc)
|
|
@@ -327,7 +327,7 @@ class TestRealWorldLoops:
|
|
|
327
327
|
def test_ls_ltr_loop(self):
|
|
328
328
|
"""User reports: `ls -ltr` runs 5+ times."""
|
|
329
329
|
al = _make_agent()
|
|
330
|
-
tc = SimpleNamespace(tool_name="bash",
|
|
330
|
+
tc = SimpleNamespace(tool_name="bash", args_dict={"command":"ls -ltr"})
|
|
331
331
|
|
|
332
332
|
# First 2 calls go through
|
|
333
333
|
al._circuit_breaker_record(tc, "total 48\n-rw-r--r-- 1 user user 1234 auth.py")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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-0.6.6 → drydock_cli-0.7.0}/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-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-0.6.6 → drydock_cli-0.7.0}/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-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-0.6.6 → drydock_cli-0.7.0}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-0.6.6 → drydock_cli-0.7.0}/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-0.6.6 → drydock_cli-0.7.0}/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-0.6.6 → drydock_cli-0.7.0}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-0.6.6 → drydock_cli-0.7.0}/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-0.6.6 → drydock_cli-0.7.0}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-0.6.6 → drydock_cli-0.7.0}/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
|
{drydock_cli-0.6.6 → drydock_cli-0.7.0}/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
|