drydock-cli 2.7.48__tar.gz → 2.7.49__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.7.49/.auto_release.lock +1 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/PKG-INFO +1 -2
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/app.py +15 -1
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/messages.py +33 -6
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/agent_loop.py +16 -1
- drydock_cli-2.7.49/drydock/core/config/_dotenv.py +135 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/_settings.py +50 -2
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/proxy_setup.py +1 -1
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/write_file.py +14 -1
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/screens/api_key.py +1 -1
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/pyproject.toml +1 -2
- drydock_cli-2.7.49/tests/test_config_migration.py +129 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_wall_of_text_rescue.py +25 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/trip_log.md +113 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/uv.lock +1 -3
- drydock_cli-2.7.48/.auto_release.lock +0 -1
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.claude/scheduled_tasks.lock +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/CODEOWNERS +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/workflows/ci.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.github/workflows/release.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.gitignore +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.pre-commit-config.yaml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.python-version +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.typos.toml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.vscode/extensions.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.vscode/launch.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/.vscode/settings.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/Admiral.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/CHANGELOG.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/CLAUDE.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/CONTRIBUTING.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/DEPLOYMENT.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/HLE_PRD.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/JETSON_BENCH.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/LICENSE +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/MODEL_SHORTCOMINGS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/NOTICE +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/README.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/SOVEREIGN_PRD.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/TRIAGE_v1.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/action.yml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/README.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results1.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results13.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results14.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results15.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results16.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results17.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results18.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results19.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results2.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results20.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results3.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results4.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results5.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results6.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results7.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results8.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results9.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/baseline_history/results_evolved_v1.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/distribution/zed/LICENSE +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/distribution/zed/extension.toml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/README.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/acp-setup.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/BASELINE_412.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/Drydock_rebrand.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/OVERNIGHT_PROGRESS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/OVERNIGHT_REPORT_2026_04_13.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/PERF_SWEEP_PLAN.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/PRD.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/drydock_terms.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/archive/resume.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/docs/proxy-setup.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/acp/utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/detectors.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/detectors_proposed.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/history.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/interventions.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/llm_analyzer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/metrics.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/opus_escalator.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/persistence.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/policy.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/proposer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/stager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/task_classifier.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/tuning.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/validator.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/admiral/worker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/cli.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/commands.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/agents/models.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/auth/github.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/build_orchestrator.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/checkpoint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/classifier/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/classifier/__main__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/classifier/classifier.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/classifier/dispatcher.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/classifier/rules.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/classifier/signal.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/doctor.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/config/local_detect.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/consultant.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/context_recovery.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/hooks.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/format.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/llm/types.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/logger.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/middleware.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/paths/_drydock_home.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/plan_session.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/plugins.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/programmatic.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/gemma4.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/session_checker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/skills/models.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/slug.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/steering_hook.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/base.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/_task_manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/retrieve.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/types.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/core/utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/graphrag/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/graphrag/__main__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/graphrag/code_indexer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/graphrag/retriever.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/graphrag/storage.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/graphrag/text_indexer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/screens/choice.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/screens/local_model.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/api-design/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/audit-tests/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/commit-code/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/context-summary/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/deploy/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/diff-review/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/doc-gen/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/explain-code/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/explore-code/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/fix-issue/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/git-ops/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/init-project/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/loop/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/migrate/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/perf-analyze/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/plan-impl/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/pr-review/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/refactor/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/regex-help/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/security-review/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/strong-tests/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/skills/test-verify/SKILL.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/__main__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/applier.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/config.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/registry.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/sandbox.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/steering/vectors.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock/whats_new.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/drydock-acp.spec +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/flake.lock +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/flake.nix +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66e89811ca68059533a83566/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66e89ebe7361982cbfbc5952/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66e8b0a9e5eaa390aa9fdde5/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66e8ccc4089d1e34c84c76c0/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66e8d4d65699cf35c9a1527c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66e9249c953867e04c273db7/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ea40e5b44d5e443ba2eac5/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66eafb96b082c5e6a76a49c0/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ec5671713826aca26a9dba/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ec5e266f83e1764787e118/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ed5e6a1d24f687ee9b06d1/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ed97d1c2becb9452e4d7b4/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66edc60801af2a724035ad4b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66edd3dc1ee489494038d9eb/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ee158c5db68805b7d3d27b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66ee8c598124ad52c77de7ee/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66eee253ae4c04f9d17d9420/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f052e814be84cc1edd3fbd/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f0bc36c6a29a8fa8010813/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f1ce25cd6a2b9d36fe8ea2/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f454d18ab578bcbb18387c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f472d2e4b80835fd2a01bb/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f47471bba0ce38e1ca559f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f579027a2ac7b4fffe1740/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f5c96b4ae309d465eeca47/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f5c96b4ae309d465eeca47/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f6f048b40ada5ac3b91cf8/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f6f048b40ada5ac3b91cf8/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f7292f3f4622b6ce24b961/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66f83aed0d92e99048a4ae9d/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66faccfb44cb2f3b0e1be0ff/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc1a0ea7be4edbe85cf15c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc2b7dbdebe91c66389e50/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc2b7dbdebe91c66389e50/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc2df0b72463921f6c40f2/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc35ef3d06493836155397/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc4dc04293a9638d7e0f65/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc56f5d90ebe461bfd0c9c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fc633698a7264ef58309c0/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fdb31a57cea4445778e8ab/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66feaec49c469dbc1c0c4ed2/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66feaec49c469dbc1c0c4ed2/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fec5fbe0072219a732f0e2/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fec5fbe0072219a732f0e2/simulation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/66fec5fbe0072219a732f0e2/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670013827794cc36bc974f27/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67008f2afc2c0a4040f1d353/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670097e2d8f693f97c36c13f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6700a5f67899925724a8fa81/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6700ab4bfa64315ed5204e4d/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6701d2675f6691877f264511/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6704465caf0a436d92c65160/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67055b15222ba55ab0b88431/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6706033749b90b396d2cb207/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6706033749b90b396d2cb207/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6706295df10a8c2ca9a9c288/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67073a60c033e34a5d675f2e/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6707b9264ea1e7c28b6169bc/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6708c1dc2f33698babc6479d/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670a7e542e97a7e436a3d951/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670d5ce6d57c80b4d4090cb4/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670daa682c5d078fa33fba12/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670e9d6f5c8f745d79e8d8d1/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/670fe86a7e294dc6ad20c1ba/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6710251d73c9583c25138ff0/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67136bf495e840a8db703aee/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67152ee0953411f24cd994f0/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671659f129c718f03e48a198/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6716dc349a0dd17680df31df/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6716dc349a0dd17680df31df/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67171c0c49297038d6740a23/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67171dca583e0959a2a84f91/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67171dca583e0959a2a84f91/solve.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6717207a3d6d949464d26a15/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67172e73e42c7644e4f00e1f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67172e73e42c7644e4f00e1f/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67178b22b7f6dd9be2a4dd68/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6717a3b32bfc3643c75ac338/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6717aef5a5c8a6a9392b1b39/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6717cfeee8995e9e60504f33/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671802a3e2dff1f07a1b0508/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671802a3e2dff1f07a1b0508/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67184f90f86f5a009aa2ad5f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6718577ca88093a75026b186/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671adbf8439b8a0eaec180d3/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671bbb559a1f658e2a088aa8/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671bc0c855449c636f4bbd36/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671bdc0d90d834b821acb8b1/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671c6d6392388142386728ee/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671d16bf60ad0fe6d2494177/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671d16bf60ad0fe6d2494177/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671ee72aec85f81abd7a2f92/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671eeb53c1a668a6c81e5993/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671f07b1d0f22fd6e50482e7/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671f0c2578ab3005e439aeba/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671f1f0bb0b665acec70c3aa/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671f887676b11ce91b2887ce/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/671f887676b11ce91b2887ce/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672068b61177432c7e500289/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6720c7d9831d6450ba886ff0/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6720e184a9e1d1cc990cc8e9/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67210bd65968ddcc0df3a248/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67213cb9043b1e724244a1c6/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67213cb9043b1e724244a1c6/reasoning.txt +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67214969c04654cf47135a4e/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67218f865b0747ce2231d48c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6721ad631648dda151c2a7ec/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6721c8e11b5a8e4cb0e9079b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6722048cdcce66512a82d9e2/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6722198c0628f6647e3d591e/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672235a01e36ca7369b8b157/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6722870ef7bda9406bc723ac/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6722889086cf6075e69b96a7/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6722b2777f84054950978f74/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6723b207610c8f282a827f3a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6723cdf07a517fb44dd35e47/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6723d9a6271ddeec8bacb9b6/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672413536c2345e86ea59fe7/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67242f1f911674ab1b5d904b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6724cdd55ae9c8186f31f920/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6724f79792419e4380b5686a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67252b9639b66386e0489e94/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67252e6e825d7a6248383174/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67253d7aac6dc24f8aafbfc1/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67253f2c13c1aec29d1f1849/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672546cf046774791d0f1a3a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67256db1afb4a043e613c929/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672572ba1b7caf96dfa80324/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6725b2ba569cf0c62da64cd1/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6725bb338255543498bdcbec/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6725dc14097c6790b292765e/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6725e382086428ce4e2fa8d6/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672643a2699c78200b0177e9/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6726bc54d4553efaee99c558/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6726e3bf4aeb5af8ca49e254/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6727dd5c5e987b1e8c17f8d9/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6728c038c556bb2fdda61dd7/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67298280a5f43bd5a3870e14/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672a30472091cee6de17ebd1/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672aac7a78e0ab15cf86003b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672b2ff4a7b27beaf0e7779a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672c84e4975ce618c77a5c49/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672c983d4183d91499fad7c5/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672cdf88f01cb175ca130759/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672d8366f97c3b404d90f3d3/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672dceba64a3350407a69646/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672e09b50a85795d0ed2d36e/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672f6cfd609b665328565e5c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672f7b5d47d2f4c7ca9ff600/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672f7b5d47d2f4c7ca9ff600/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672faa45c5a8bce51676ee01/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672faa45c5a8bce51676ee01/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672fc00e13e5fbd332372f3f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/672ff71e724ca22f42c0ff85/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67302aea4c42a72918926160/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67308f79c5ea548175bbf9fc/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67310e19bf74eff110261caa/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6732761c77e9a02e661946ac/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6734830d5fc27d3e41519741/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6734f24a08351f5bdfd38627/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67352e9911e5510fc618f619/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67361730dba36cc0d595f422/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736562a41ab088ba14c2bc3/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673668e658bad7ba89d4ad54/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736945a5a7f4f59e4731c4d/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736a9b0b949d548db8da965/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736ccc7b9b2577c622e944c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736ccc7b9b2577c622e944c/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736d8d1278519f8b18450a5/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6736e9109055c436feb3f65a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6737006d3f0517b6e8a60733/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67370359930c1fd7247f3413/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673716bd2773953bca4195d7/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673722c82bfc8ab579ed111f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6737259f2c11cb057c97911b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6737259f2c11cb057c97911b/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67373446bb9a786bfe928d2c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673738b81bcb9388d8e3b31a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67378355cf21a88cec0f42e5/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67378355cf21a88cec0f42e5/logic.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67378355cf21a88cec0f42e5/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673784c950c4b58b2154e4ef/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6738373cf2df805520bc86ce/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673852c82e5179091a7648e8/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/analysis.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/logic_check.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6738df8c201a2bd66499797a/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67391de141c297471963efc6/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6739674739118cf30f5f1075/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673971a55c3de09264d6d373/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6739fe23f1f7144f9a3c9715/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a30e39b3ad7c9386b5da4/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a30e39b3ad7c9386b5da4/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a33fb2d5ce2b6500f4b48/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a33fb2d5ce2b6500f4b48/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a3faaed02a359f6002a78/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a6dd875a0f3c9ce243dba/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a73d1addb9293360a5d07/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673a76559e89466aa6433f66/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673ac0ef3792ac12ad54f599/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673b50769ff1dae6f5b8b65d/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673b6aa505be2302d4445ed4/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673b6ef1430f8b6e47a67760/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/673b6ef1430f8b6e47a67760/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67428dcab53462ceeb83c6f6/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/674490c88354817cce712062/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/674490c88354817cce712062/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67458d2109d194da0dfd7cef/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6747e0eaaa7f6182ef02efb4/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6747fa2a456927085f863956/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6748b7dfac494f3a05306206/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/675704ad2626c93afa0b3a05/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/675d7b901ded33d59eb2c94f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/675e0f20488645c4ed8af30b/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67607764fd6487bd2bb7e271/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6761b89b9d9d4287c0969029/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/676226f6fbdba9bd68127327/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/676433a3921b0ce4e14c557f/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/676433a3921b0ce4e14c557f/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/676cc5d177aae7d3ee8caaeb/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/676e9656e3e0846ee73dbf9d/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/677296942ebbac6133a1d618/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/677296942ebbac6133a1d618/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6776ffa855710e45669a4481/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6778491dcbd83450e1018208/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/6778491dcbd83450e1018208/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67833c10f5a1ca415084accd/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67833c10f5a1ca415084accd/mass_calc.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777855599/work/67833c10f5a1ca415084accd/solution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777893928/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777893928/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777893928/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777893928/work/674490c88354817cce712062/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894705/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894779/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894779/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894779/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894779/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894988/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894988/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894988/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777894988/work/66f358d4cdd3ce36208e23ca_iter3/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895449/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895449/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895449/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895449/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895659/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895659/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895659/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777895659/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896017/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896017/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896017/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896017/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896576/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896576/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896576/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896576/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896802/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896802/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896802/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896802/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896996/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896996/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896996/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777896996/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777897626/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777897626/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777897976/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777897976/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777898263/config.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777898263/results.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777898263/summary.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/hle_results_v1_baseline/run_1777898263/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/README.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/config_base.toml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/config_best.toml +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/domain_spec.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/experimenter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/kernel.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/mini_prd.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/mini_prompts.txt +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/proposer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/research/results.tsv +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/README.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/admiral_probe.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/auto_test_loop.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/monitor_test_battery.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/overnight_agents_test.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/test_bank.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/test_full.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/test_smoke.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/archive/tui_test.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/audit_sampler.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/auto_generate_tests.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/auto_release.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/autonomous_review.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/autonomous_review_prompt.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/backup.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/bump_version.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/classify_pulse.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/comprehensive_loop.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/consume_retrieval_queue.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/discover_cli_tools.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/evolve_tests.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/fetch_arxiv_abstracts.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/gen_2000_prompts.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/hle_eval.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/hle_eval_seed.jsonl +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/install.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/llm_balancer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/mega_loop.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/meta_ralph_loop.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/monitor_swebench.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/notify_release.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/oss_task_harness.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/perf_baseline_when_idle.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/perf_sweep.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/poll_issues.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/port_task.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/prepare_release.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/queue_top.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/ralph_loop.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/research_babysitter.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/session_loop_audit.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/shakedown.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/shakedown_interactive.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/shakedown_regression.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/shakedown_suite.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/shakedown_variance.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_babysitter.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_prompts_50.txt +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_prompts_realuser.txt +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_prompts_tool_agent.txt +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_shakedown.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_telegram_status.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/stress_watcher.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/telegram_bot.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/test_tui_path.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/scripts/vllm_failover.sh +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/conftest.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_acp.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_bash.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_content.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/test_backend.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/test_generic_adapter_sanitize.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_commands.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/conftest.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_agents.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_slug.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/core/test_utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/e2e/common.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/e2e/conftest.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/fixtures/doc_qa_system_prd.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/mock/__init__.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/mock/utils.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/skills/conftest.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/skills/test_manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/skills/test_models.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/skills/test_parser.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/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.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_admiral.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_admiral_phase3.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_admiral_proposed.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_admiral_struggle_dedup.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agent_backend.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agent_stats.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_agents.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_build.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_debug.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_prd.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_tools.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_bank_update.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_build_projects.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_checkpoint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_classifier.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_context_recovery.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_current_bugs.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_dispatcher.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_fake_tool_call_paren_syntax.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_full_regression.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_graphrag.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_hallucinated_tool_suppression.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_history_manager.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_integration.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_issue_fixes.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_local_detect.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_loop_detection.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_message_id.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_message_merging.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_middleware.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_multi_agent.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_read_file_not_found_listing.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_real_failures.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_real_issues.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_real_workflow.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_retrieval_consumer.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_retrieve_tool.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_search_replace_args_not_truncated.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_smoke.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_steering.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_steering_hook.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_system_prompt.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_tagged_text.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_task_complete_nudge.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_tool_args.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_truncate_args_valid_json.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_truncated_arg_path_hint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_truncated_search_replace_escalation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_truncated_write_escalation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_user_issues.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_workloads.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/test_write_file_missing_path.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/testbank_helpers.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_binary_grep_hint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_consec_empty_search.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_error_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_grep.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_manager_gemma_derived_models.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_read_file_dedup_reembed.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_read_file_directory.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_read_file_limit_truncation.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_append_fallback.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_dir_path.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_empty_content.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_file_not_found.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_hard_stop.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_malformed_block.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_placeholder.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_task.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/tools/test_write_file_missing_path_hint.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/worked_examples/README.md +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/worked_examples/cli_subcommand_dispatch.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/worked_examples/lookup.json +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/worked_examples/sql_parser.py +0 -0
- {drydock_cli-2.7.48 → drydock_cli-2.7.49}/worked_examples/tree_walking_interpreter.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3339404
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drydock-cli
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.49
|
|
4
4
|
Summary: Local-first CLI coding agent — tested with Gemma 4 26B via vLLM
|
|
5
5
|
Project-URL: Homepage, https://github.com/fbobe321/drydock
|
|
6
6
|
Project-URL: Repository, https://github.com/fbobe321/drydock
|
|
@@ -41,7 +41,6 @@ Requires-Dist: pydantic-settings>=2.12.0
|
|
|
41
41
|
Requires-Dist: pydantic>=2.12.4
|
|
42
42
|
Requires-Dist: pypdf>=4.0.0
|
|
43
43
|
Requires-Dist: pyperclip>=1.11.0
|
|
44
|
-
Requires-Dist: python-dotenv>=1.0.0
|
|
45
44
|
Requires-Dist: pyyaml>=6.0.0
|
|
46
45
|
Requires-Dist: requests>=2.20.0
|
|
47
46
|
Requires-Dist: rich>=14.0.0
|
|
@@ -326,7 +326,21 @@ class DrydockApp(App): # noqa: PLR0904
|
|
|
326
326
|
yield ContextProgress()
|
|
327
327
|
|
|
328
328
|
async def on_mount(self) -> None:
|
|
329
|
-
|
|
329
|
+
# textual-ansi is the cleanest reading experience but isn't
|
|
330
|
+
# registered in every Textual version (e.g. some 8.2.x builds
|
|
331
|
+
# drop unused builtin themes). Falling back keeps the TUI from
|
|
332
|
+
# crashing on launch — the default theme renders correctly,
|
|
333
|
+
# just with sRGB colors instead of ANSI palette colors.
|
|
334
|
+
# Issue #18: Windows install crashed here on Textual 8.2.5
|
|
335
|
+
# with "Theme 'textual-ansi' has not been registered".
|
|
336
|
+
try:
|
|
337
|
+
self.theme = "textual-ansi"
|
|
338
|
+
except Exception as e:
|
|
339
|
+
logger.warning(
|
|
340
|
+
"preferred theme 'textual-ansi' not available "
|
|
341
|
+
"(textual=%s): %s — using default theme",
|
|
342
|
+
getattr(__import__("textual"), "__version__", "?"), e,
|
|
343
|
+
)
|
|
330
344
|
self._terminal_notifier.restore()
|
|
331
345
|
|
|
332
346
|
self._cached_messages_area = self.query_one("#messages")
|
|
@@ -228,12 +228,39 @@ def _preserve_line_breaks(text: str) -> str:
|
|
|
228
228
|
"""
|
|
229
229
|
if not text:
|
|
230
230
|
return text
|
|
231
|
-
#
|
|
232
|
-
#
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
)
|
|
231
|
+
# Tab handling. Outside fenced code blocks, normalize tabs:
|
|
232
|
+
# - Leading tabs → 2 spaces per tab (CommonMark sub-bullet indent).
|
|
233
|
+
# - Mid-line tabs → expand to 4-col tab stops.
|
|
234
|
+
# Textual's Markdown widget routes raw tabs to Rich, which advances
|
|
235
|
+
# to the next 8-col stop. The "column" Rich sees depends on which
|
|
236
|
+
# markdown markers (* `_~) it has consumed, so tabs in mixed content
|
|
237
|
+
# land at unpredictable visible columns and produce the jumbled
|
|
238
|
+
# output users see (issue #16 follow-up reports). Inside fences,
|
|
239
|
+
# preserve tabs — the syntax highlighter handles them consistently.
|
|
240
|
+
_processed: list[str] = []
|
|
241
|
+
_in_fence = False
|
|
242
|
+
for _line in text.split("\n"):
|
|
243
|
+
if _line.lstrip().startswith("```"):
|
|
244
|
+
_in_fence = not _in_fence
|
|
245
|
+
_processed.append(_line)
|
|
246
|
+
continue
|
|
247
|
+
if _in_fence:
|
|
248
|
+
_processed.append(_line)
|
|
249
|
+
continue
|
|
250
|
+
# Leading tabs → 2 spaces.
|
|
251
|
+
_line = re.sub(
|
|
252
|
+
r"^\t+", lambda m: " " * len(m.group(0)), _line
|
|
253
|
+
)
|
|
254
|
+
# Mid-line tabs (any remaining) → spaces at 4-col stops. The
|
|
255
|
+
# leading-indent transform already removed leading tabs, so any
|
|
256
|
+
# \t left is mid-line. Use a fixed 4-space replacement (good
|
|
257
|
+
# enough for table-like output the model emits; we don't try
|
|
258
|
+
# to replicate true tab-stop alignment because the surrounding
|
|
259
|
+
# content's visible width is unknowable without rendering).
|
|
260
|
+
if "\t" in _line:
|
|
261
|
+
_line = _line.replace("\t", " ")
|
|
262
|
+
_processed.append(_line)
|
|
263
|
+
text = "\n".join(_processed)
|
|
237
264
|
# First pass: rescue wall-of-text responses (flat prose, inline
|
|
238
265
|
# enumerations, inline bold headings). See _break_walls_of_text.
|
|
239
266
|
text = _break_walls_of_text(text)
|
|
@@ -1027,8 +1027,23 @@ class AgentLoop:
|
|
|
1027
1027
|
prev_tool_name = assistant_msg.tool_calls[-1].function.name if assistant_msg.tool_calls[-1].function else None
|
|
1028
1028
|
_readonly_tools = {"read_file", "grep", "glob", "ls", "pwd"}
|
|
1029
1029
|
_prev_was_read = prev_tool_name in _readonly_tools
|
|
1030
|
+
# Detect if prior write_file failed due to missing path argument.
|
|
1031
|
+
_prev_tool_result = ""
|
|
1032
|
+
if prev_role == Role.tool and self.messages:
|
|
1033
|
+
_prev_tool_result = str(self.messages[-1].content or "")
|
|
1034
|
+
_prev_write_path_error = (
|
|
1035
|
+
prev_tool_name == "write_file"
|
|
1036
|
+
and "empty path" in _prev_tool_result
|
|
1037
|
+
)
|
|
1030
1038
|
if _stall_attempt == 0:
|
|
1031
|
-
if
|
|
1039
|
+
if _prev_write_path_error:
|
|
1040
|
+
note = (
|
|
1041
|
+
"Your write_file call failed because the path argument was empty. "
|
|
1042
|
+
"Retry write_file RIGHT NOW with the correct path. "
|
|
1043
|
+
"Example: write_file(path='package/module.py', content='...'). "
|
|
1044
|
+
"Do NOT send an empty response — call write_file with a path."
|
|
1045
|
+
)
|
|
1046
|
+
elif _prev_was_read:
|
|
1032
1047
|
note = (
|
|
1033
1048
|
f"You read a file but produced no output. "
|
|
1034
1049
|
f"Now use write_file, search_replace, or bash "
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"""Minimal .env file reader/writer — replaces python-dotenv.
|
|
2
|
+
|
|
3
|
+
Supports the subset drydock actually uses:
|
|
4
|
+
dotenv_values(path) → dict[str, str | None]
|
|
5
|
+
set_key(path, key, value) → None
|
|
6
|
+
unset_key(path, key) → None
|
|
7
|
+
|
|
8
|
+
Format handled:
|
|
9
|
+
KEY=VALUE unquoted value
|
|
10
|
+
KEY="VALUE" double-quoted value (backslash escapes respected)
|
|
11
|
+
KEY='VALUE' single-quoted value (no escapes)
|
|
12
|
+
KEY= empty string
|
|
13
|
+
# comment ignored
|
|
14
|
+
(blank line) preserved by set_key/unset_key
|
|
15
|
+
"""
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
import re
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
from typing import Union
|
|
21
|
+
|
|
22
|
+
_LINE_RE = re.compile(
|
|
23
|
+
r"""
|
|
24
|
+
^\s*
|
|
25
|
+
(?:export\s+)? # optional 'export '
|
|
26
|
+
([A-Za-z_][A-Za-z0-9_]*) # key
|
|
27
|
+
\s*=\s*
|
|
28
|
+
( # value group
|
|
29
|
+
'(?:[^'\\]|\\.)*' # single-quoted
|
|
30
|
+
|"(?:[^"\\]|\\.)*" # double-quoted
|
|
31
|
+
|[^#\r\n]* # unquoted (up to comment or EOL)
|
|
32
|
+
)?
|
|
33
|
+
(?:\s*\#.*)? # optional trailing comment
|
|
34
|
+
$
|
|
35
|
+
""",
|
|
36
|
+
re.VERBOSE,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _unescape_double(s: str) -> str:
|
|
41
|
+
return s.encode("raw_unicode_escape").decode("unicode_escape")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _parse_value(raw: str | None) -> str | None:
|
|
45
|
+
if raw is None:
|
|
46
|
+
return None
|
|
47
|
+
raw = raw.strip()
|
|
48
|
+
if not raw:
|
|
49
|
+
return ""
|
|
50
|
+
if raw.startswith('"') and raw.endswith('"') and len(raw) >= 2:
|
|
51
|
+
inner = raw[1:-1]
|
|
52
|
+
return _unescape_double(inner)
|
|
53
|
+
if raw.startswith("'") and raw.endswith("'") and len(raw) >= 2:
|
|
54
|
+
return raw[1:-1]
|
|
55
|
+
return raw
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def dotenv_values(path: Union[str, Path]) -> dict[str, str | None]:
|
|
59
|
+
"""Read a .env file and return a dict of key→value pairs."""
|
|
60
|
+
path = Path(path)
|
|
61
|
+
result: dict[str, str | None] = {}
|
|
62
|
+
try:
|
|
63
|
+
text = path.read_text(encoding="utf-8", errors="replace")
|
|
64
|
+
except OSError:
|
|
65
|
+
return result
|
|
66
|
+
for line in text.splitlines():
|
|
67
|
+
stripped = line.strip()
|
|
68
|
+
if not stripped or stripped.startswith("#"):
|
|
69
|
+
continue
|
|
70
|
+
m = _LINE_RE.match(line)
|
|
71
|
+
if m:
|
|
72
|
+
result[m.group(1)] = _parse_value(m.group(2))
|
|
73
|
+
return result
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def set_key(
|
|
77
|
+
path: Union[str, Path],
|
|
78
|
+
key: str,
|
|
79
|
+
value: str,
|
|
80
|
+
quote_mode: str = "auto",
|
|
81
|
+
export: bool = False,
|
|
82
|
+
) -> None:
|
|
83
|
+
"""Write or update KEY=VALUE in a .env file.
|
|
84
|
+
|
|
85
|
+
If the key already exists, its line is updated in place.
|
|
86
|
+
Otherwise the entry is appended. The file is created if absent.
|
|
87
|
+
"""
|
|
88
|
+
path = Path(path)
|
|
89
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
90
|
+
|
|
91
|
+
# Choose quoting: always double-quote so spaces and special chars are safe.
|
|
92
|
+
escaped = value.replace("\\", "\\\\").replace('"', '\\"')
|
|
93
|
+
new_line = f'{key}="{escaped}"'
|
|
94
|
+
|
|
95
|
+
if not path.exists():
|
|
96
|
+
path.write_text(new_line + "\n", encoding="utf-8")
|
|
97
|
+
return
|
|
98
|
+
|
|
99
|
+
lines = path.read_text(encoding="utf-8").splitlines(keepends=True)
|
|
100
|
+
key_re = re.compile(
|
|
101
|
+
r"^\s*(?:export\s+)?" + re.escape(key) + r"\s*="
|
|
102
|
+
)
|
|
103
|
+
replaced = False
|
|
104
|
+
out: list[str] = []
|
|
105
|
+
for line in lines:
|
|
106
|
+
if not replaced and key_re.match(line):
|
|
107
|
+
out.append(new_line + "\n")
|
|
108
|
+
replaced = True
|
|
109
|
+
else:
|
|
110
|
+
out.append(line)
|
|
111
|
+
|
|
112
|
+
if not replaced:
|
|
113
|
+
# Ensure file ends with a newline before appending.
|
|
114
|
+
if out and not out[-1].endswith("\n"):
|
|
115
|
+
out[-1] += "\n"
|
|
116
|
+
out.append(new_line + "\n")
|
|
117
|
+
|
|
118
|
+
path.write_text("".join(out), encoding="utf-8")
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def unset_key(
|
|
122
|
+
path: Union[str, Path],
|
|
123
|
+
key: str,
|
|
124
|
+
) -> None:
|
|
125
|
+
"""Remove KEY=... line from a .env file. No-op if file or key is absent."""
|
|
126
|
+
path = Path(path)
|
|
127
|
+
if not path.exists():
|
|
128
|
+
return
|
|
129
|
+
|
|
130
|
+
key_re = re.compile(
|
|
131
|
+
r"^\s*(?:export\s+)?" + re.escape(key) + r"\s*="
|
|
132
|
+
)
|
|
133
|
+
lines = path.read_text(encoding="utf-8").splitlines(keepends=True)
|
|
134
|
+
out = [line for line in lines if not key_re.match(line)]
|
|
135
|
+
path.write_text("".join(out), encoding="utf-8")
|
|
@@ -9,7 +9,7 @@ import shlex
|
|
|
9
9
|
import tomllib
|
|
10
10
|
from typing import Annotated, Any, Literal
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from drydock.core.config._dotenv import dotenv_values
|
|
13
13
|
from pydantic import BaseModel, Field, field_validator, model_validator
|
|
14
14
|
from pydantic.fields import FieldInfo
|
|
15
15
|
from pydantic_core import to_jsonable_python
|
|
@@ -656,7 +656,55 @@ class DrydockConfig(BaseSettings):
|
|
|
656
656
|
|
|
657
657
|
@classmethod
|
|
658
658
|
def _migrate(cls) -> None:
|
|
659
|
-
|
|
659
|
+
"""Backfill missing top-level keys in an existing user config.
|
|
660
|
+
|
|
661
|
+
`bootstrap_config_files` only writes the config when the file
|
|
662
|
+
does not exist, so users who installed an older version never
|
|
663
|
+
receive top-level keys added in subsequent releases (e.g.
|
|
664
|
+
`slim_system_prompt`, added in v2.7.x). The result: their
|
|
665
|
+
existing config is missing fields that downstream code expects,
|
|
666
|
+
and silent fallbacks mask the gap.
|
|
667
|
+
|
|
668
|
+
This pass: read the live config, compute the default, and
|
|
669
|
+
write back any TOP-LEVEL keys the user is missing — preserving
|
|
670
|
+
every value the user already has. Nested sections (providers,
|
|
671
|
+
models, tools) are NOT touched here; user customizations there
|
|
672
|
+
are intentional. Idempotent. addresses pattern config:upgrade_drift
|
|
673
|
+
"""
|
|
674
|
+
if not get_harness_files_manager().persist_allowed:
|
|
675
|
+
return
|
|
676
|
+
try:
|
|
677
|
+
current = TomlFileSettingsSource(cls).toml_data
|
|
678
|
+
except Exception:
|
|
679
|
+
return # config not on disk yet — bootstrap will create it
|
|
680
|
+
if not current:
|
|
681
|
+
return
|
|
682
|
+
try:
|
|
683
|
+
defaults = cls.create_default()
|
|
684
|
+
except Exception:
|
|
685
|
+
return
|
|
686
|
+
added: list[str] = []
|
|
687
|
+
for key, default_val in defaults.items():
|
|
688
|
+
if key in current:
|
|
689
|
+
continue
|
|
690
|
+
# Only fill in scalar / simple-collection top-level keys.
|
|
691
|
+
# Skip the heavyweight section keys that user installs
|
|
692
|
+
# configure deliberately (providers/models/tools/etc).
|
|
693
|
+
if isinstance(default_val, (dict, list)) and key in {
|
|
694
|
+
"providers", "models", "tools", "session_logging",
|
|
695
|
+
"project_context", "mcp_servers",
|
|
696
|
+
"tool_paths", "agent_paths", "skill_paths",
|
|
697
|
+
"enabled_tools", "disabled_tools",
|
|
698
|
+
"enabled_agents", "disabled_agents",
|
|
699
|
+
"enabled_skills", "disabled_skills",
|
|
700
|
+
}:
|
|
701
|
+
continue
|
|
702
|
+
current[key] = default_val
|
|
703
|
+
added.append(key)
|
|
704
|
+
if added:
|
|
705
|
+
cls.dump_config(
|
|
706
|
+
to_jsonable_python(current, exclude_none=True, fallback=str)
|
|
707
|
+
)
|
|
660
708
|
|
|
661
709
|
@classmethod
|
|
662
710
|
def load(cls, **overrides: Any) -> DrydockConfig:
|
|
@@ -710,7 +710,20 @@ class WriteFile(
|
|
|
710
710
|
|
|
711
711
|
def _prepare_and_validate_path(self, args: WriteFileArgs) -> tuple[Path, bool, int]:
|
|
712
712
|
if not args.path.strip():
|
|
713
|
-
|
|
713
|
+
cwd = Path.cwd()
|
|
714
|
+
try:
|
|
715
|
+
pkg_dirs = [
|
|
716
|
+
d.name for d in sorted(cwd.iterdir())
|
|
717
|
+
if d.is_dir() and not d.name.startswith('.') and not d.name.startswith('_')
|
|
718
|
+
][:4]
|
|
719
|
+
hint = f"Package dirs in {cwd.name}/: {', '.join(pkg_dirs)}" if pkg_dirs else f"cwd: {cwd}"
|
|
720
|
+
except OSError:
|
|
721
|
+
hint = f"cwd: {cwd}"
|
|
722
|
+
raise ToolError(
|
|
723
|
+
f"write_file requires a path argument — you sent an empty path. "
|
|
724
|
+
f"Retry as: write_file(path='<package>/<file>.py', content='...'). "
|
|
725
|
+
f"{hint}."
|
|
726
|
+
)
|
|
714
727
|
|
|
715
728
|
# Warn about binary file extensions
|
|
716
729
|
ext = Path(args.path).suffix.lower()
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
from typing import ClassVar
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from drydock.core.config._dotenv import set_key
|
|
7
7
|
from textual.app import ComposeResult
|
|
8
8
|
from textual.binding import Binding, BindingType
|
|
9
9
|
from textual.containers import Center, Horizontal, Vertical
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "drydock-cli"
|
|
3
|
-
version = "2.7.
|
|
3
|
+
version = "2.7.49"
|
|
4
4
|
description = "Local-first CLI coding agent — tested with Gemma 4 26B via vLLM"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -50,7 +50,6 @@ dependencies = [
|
|
|
50
50
|
"pydantic-settings>=2.12.0",
|
|
51
51
|
"pypdf>=4.0.0",
|
|
52
52
|
"pyperclip>=1.11.0",
|
|
53
|
-
"python-dotenv>=1.0.0",
|
|
54
53
|
"pyyaml>=6.0.0",
|
|
55
54
|
"requests>=2.20.0",
|
|
56
55
|
"rich>=14.0.0",
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"""Regression tests for config upgrade migration (issue #17).
|
|
2
|
+
|
|
3
|
+
Existing user configs created by older drydock versions don't get
|
|
4
|
+
top-level keys added in subsequent releases — `bootstrap_config_files`
|
|
5
|
+
only writes the file when it doesn't exist. `DrydockConfig._migrate()`
|
|
6
|
+
backfills any missing top-level keys while preserving user values
|
|
7
|
+
and never touching nested sections (providers/models/tools/etc).
|
|
8
|
+
"""
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import os
|
|
12
|
+
import tempfile
|
|
13
|
+
import tomllib
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
import pytest
|
|
17
|
+
import tomli_w
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _setup_config(tmpdir: Path, contents: dict) -> Path:
|
|
21
|
+
drydock_dir = tmpdir / ".drydock"
|
|
22
|
+
drydock_dir.mkdir(parents=True, exist_ok=True)
|
|
23
|
+
cfg = drydock_dir / "config.toml"
|
|
24
|
+
with cfg.open("wb") as f:
|
|
25
|
+
tomli_w.dump(contents, f)
|
|
26
|
+
return cfg
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _migrate_in_subprocess(drydock_home: Path) -> dict:
|
|
30
|
+
"""Run the migration in a subprocess (clean env so module-level
|
|
31
|
+
DRYDOCK_HOME resolves to our temp dir) and return the resulting
|
|
32
|
+
config dict."""
|
|
33
|
+
import subprocess
|
|
34
|
+
py = "/home/bobef/miniforge3/envs/drydock/bin/python3"
|
|
35
|
+
code = (
|
|
36
|
+
"from drydock.core.config.harness_files._harness_manager "
|
|
37
|
+
"import init_harness_files_manager\n"
|
|
38
|
+
"init_harness_files_manager('user')\n"
|
|
39
|
+
"from drydock.core.config._settings import DrydockConfig\n"
|
|
40
|
+
"DrydockConfig._migrate()\n"
|
|
41
|
+
)
|
|
42
|
+
env = {**os.environ, "DRYDOCK_HOME": str(drydock_home)}
|
|
43
|
+
subprocess.run([py, "-c", code], env=env, check=True, capture_output=True)
|
|
44
|
+
cfg_file = drydock_home / "config.toml"
|
|
45
|
+
with cfg_file.open("rb") as f:
|
|
46
|
+
return tomllib.load(f)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def test_migration_adds_missing_top_level_keys():
|
|
50
|
+
"""An older config missing slim_system_prompt should get it back."""
|
|
51
|
+
with tempfile.TemporaryDirectory() as td:
|
|
52
|
+
tmp = Path(td)
|
|
53
|
+
_setup_config(tmp, {
|
|
54
|
+
"active_model": "local",
|
|
55
|
+
"auto_approve": False,
|
|
56
|
+
"system_prompt_id": "cli",
|
|
57
|
+
"providers": [{"name": "mistral", "api_base": "x",
|
|
58
|
+
"api_key_env_var": "MISTRAL_API_KEY",
|
|
59
|
+
"backend": "mistral"}],
|
|
60
|
+
})
|
|
61
|
+
cfg = _migrate_in_subprocess(tmp / ".drydock")
|
|
62
|
+
# Missing top-level keys should now be present.
|
|
63
|
+
assert "slim_system_prompt" in cfg
|
|
64
|
+
assert "auto_compact_threshold" in cfg
|
|
65
|
+
assert "context_warnings" in cfg
|
|
66
|
+
# User values preserved verbatim.
|
|
67
|
+
assert cfg["active_model"] == "local"
|
|
68
|
+
assert cfg["system_prompt_id"] == "cli"
|
|
69
|
+
# Nested sections not touched.
|
|
70
|
+
assert cfg["providers"] == [{"name": "mistral", "api_base": "x",
|
|
71
|
+
"api_key_env_var": "MISTRAL_API_KEY",
|
|
72
|
+
"backend": "mistral"}]
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def test_migration_idempotent():
|
|
76
|
+
"""Running _migrate() twice should produce the same result."""
|
|
77
|
+
with tempfile.TemporaryDirectory() as td:
|
|
78
|
+
tmp = Path(td)
|
|
79
|
+
_setup_config(tmp, {
|
|
80
|
+
"active_model": "local",
|
|
81
|
+
"providers": [],
|
|
82
|
+
})
|
|
83
|
+
first = _migrate_in_subprocess(tmp / ".drydock")
|
|
84
|
+
second = _migrate_in_subprocess(tmp / ".drydock")
|
|
85
|
+
assert first == second
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def test_migration_skips_heavyweight_section_keys():
|
|
89
|
+
"""User-customizable section keys (providers/models/tools) must
|
|
90
|
+
not be backfilled — leaving them missing means user explicitly
|
|
91
|
+
didn't want defaults there."""
|
|
92
|
+
with tempfile.TemporaryDirectory() as td:
|
|
93
|
+
tmp = Path(td)
|
|
94
|
+
_setup_config(tmp, {
|
|
95
|
+
"active_model": "local",
|
|
96
|
+
"providers": [{"name": "only", "api_base": "x",
|
|
97
|
+
"api_key_env_var": "", "backend": "generic"}],
|
|
98
|
+
})
|
|
99
|
+
cfg = _migrate_in_subprocess(tmp / ".drydock")
|
|
100
|
+
# Only this user's one provider — no default mistral/llamacpp injected.
|
|
101
|
+
assert len(cfg["providers"]) == 1
|
|
102
|
+
# models / tools / session_logging not added.
|
|
103
|
+
assert "models" not in cfg
|
|
104
|
+
assert "tools" not in cfg
|
|
105
|
+
assert "session_logging" not in cfg
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def test_migration_no_op_when_no_config_file():
|
|
109
|
+
"""Calling _migrate() when there's no existing config must be safe."""
|
|
110
|
+
with tempfile.TemporaryDirectory() as td:
|
|
111
|
+
tmp = Path(td)
|
|
112
|
+
(tmp / ".drydock").mkdir(parents=True, exist_ok=True)
|
|
113
|
+
# Don't create config.toml.
|
|
114
|
+
# Migrate should silently no-op and not raise.
|
|
115
|
+
import subprocess
|
|
116
|
+
py = "/home/bobef/miniforge3/envs/drydock/bin/python3"
|
|
117
|
+
code = (
|
|
118
|
+
"from drydock.core.config.harness_files._harness_manager "
|
|
119
|
+
"import init_harness_files_manager\n"
|
|
120
|
+
"init_harness_files_manager('user')\n"
|
|
121
|
+
"from drydock.core.config._settings import DrydockConfig\n"
|
|
122
|
+
"DrydockConfig._migrate()\n"
|
|
123
|
+
)
|
|
124
|
+
env = {**os.environ, "DRYDOCK_HOME": str(tmp / ".drydock")}
|
|
125
|
+
result = subprocess.run([py, "-c", code], env=env,
|
|
126
|
+
capture_output=True, text=True)
|
|
127
|
+
assert result.returncode == 0, result.stderr
|
|
128
|
+
# Migrate should NOT have created the file.
|
|
129
|
+
assert not (tmp / ".drydock" / "config.toml").exists()
|
|
@@ -65,6 +65,31 @@ class TestTabIndentedBlocks:
|
|
|
65
65
|
out = _preserve_line_breaks(text)
|
|
66
66
|
assert "here.\n\nSecond" in out
|
|
67
67
|
|
|
68
|
+
def test_midline_tabs_expand_to_4_spaces(self):
|
|
69
|
+
"""Mid-line tabs in prose/tables would land at unpredictable
|
|
70
|
+
columns under Rich's tab-stop renderer; expanding to a fixed 4
|
|
71
|
+
spaces gives consistent alignment regardless of surrounding
|
|
72
|
+
markdown markers."""
|
|
73
|
+
text = "Results:\n\nname\tvalue\nfoo\t1\nbar\t2"
|
|
74
|
+
out = _preserve_line_breaks(text)
|
|
75
|
+
assert "name value" in out
|
|
76
|
+
assert "foo 1" in out
|
|
77
|
+
assert "\t" not in out # all tabs gone outside fences
|
|
78
|
+
|
|
79
|
+
def test_fenced_code_preserves_tabs(self):
|
|
80
|
+
"""Tabs inside ``` fences must NOT be touched — syntax highlighter
|
|
81
|
+
handles them consistently and code semantics depend on them."""
|
|
82
|
+
text = "Sample:\n```python\ndef foo():\n\treturn 1\n```\nDone."
|
|
83
|
+
out = _preserve_line_breaks(text)
|
|
84
|
+
# The tab inside the fence is preserved.
|
|
85
|
+
assert "\treturn 1" in out
|
|
86
|
+
|
|
87
|
+
def test_inline_tabs_in_prose_normalized(self):
|
|
88
|
+
text = "Step 1:\trun. Step 2:\tcheck."
|
|
89
|
+
out = _preserve_line_breaks(text)
|
|
90
|
+
assert "Step 1: run" in out
|
|
91
|
+
assert "\t" not in out
|
|
92
|
+
|
|
68
93
|
|
|
69
94
|
class TestBreakWallsOfText:
|
|
70
95
|
def test_short_input_unchanged(self):
|