drydock-cli 1.6.9__tar.gz → 1.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/PKG-INFO +1 -1
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/build_orchestrator.py +83 -5
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/pyproject.toml +1 -1
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/CODEOWNERS +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/workflows/build-and-upload.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/workflows/ci.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/workflows/issue-labeler.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.github/workflows/release.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.gitignore +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.pre-commit-config.yaml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.python-version +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.typos.toml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.vscode/extensions.json +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.vscode/launch.json +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/.vscode/settings.json +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/AGENTS.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/CHANGELOG.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/CLAUDE.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/CONTRIBUTING.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/Drydock_rebrand.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/LICENSE +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/NOTICE +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/PRD.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/README.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/action.yml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/distribution/zed/LICENSE +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/distribution/zed/extension.toml +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/distribution/zed/icons/mistral_vibe.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/docs/README.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/docs/acp-setup.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/docs/proxy-setup.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/acp_agent_loop.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/acp_logger.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/entrypoint.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/base.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/builtins/bash.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/builtins/read_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/builtins/search_replace.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/builtins/todo.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/builtins/write_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/tools/session_update.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/acp/utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/autocompletion/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/autocompletion/base.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/autocompletion/path_completion.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/autocompletion/slash_command.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/cli.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/clipboard.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/commands.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/entrypoint.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/history_manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/terminal_setup.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/app.tcss +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/external_editor.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/compact.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/loading.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/messages.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/tools.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/windowing/history.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/windowing/state.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/update.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/whats_new.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/agent_loop.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/agents/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/agents/manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/agents/models.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/auth/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/auth/crypto.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/auth/github.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/completers.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/store.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/fuzzy.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/path_prompt.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/config/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/config/_settings.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/config/harness_files/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/config/harness_files/_harness_manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/config/harness_files/_paths.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/consultant.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/drydock_states.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/hooks.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/anthropic.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/base.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/factory.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/generic.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/mistral.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/backend/vertex.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/exceptions.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/format.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/message_utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/llm/types.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/logger.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/middleware.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/output_formatters.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/paths/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/paths/_local_config_walk.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/paths/_vibe_home.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/paths/conventions.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/plan_session.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/plugins.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/programmatic.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/builder.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/cli.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/compact.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/dangerous_directory.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/diagnostic.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/explore.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/planner.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/project_context.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/prompts/tests.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/proxy_setup.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/session/agent_memory.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/session/checkpoints.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/session/session_loader.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/session/session_logger.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/session/session_migration.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/session/state_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/skills/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/skills/manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/skills/models.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/skills/parser.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/slug.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/system_prompt.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/telemetry/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/telemetry/send.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/teleport/errors.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/teleport/git.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/teleport/nuage.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/teleport/teleport.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/teleport/types.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/base.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/ask_user_question.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/bash.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/cron.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/glob_tool.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/grep.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/invoke_skill.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/lsp.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/mcp_resources.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/notebook_edit.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/powershell.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/bash.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/cron.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/glob.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/grep.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/task.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/todo.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/read_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/search_replace.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/task.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/task_manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/todo.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/tool_search.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/webfetch.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/websearch.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/worktree.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/builtins/write_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/injection_guard.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/mcp/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/mcp/registry.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/mcp/tools.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/mcp_sampling.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/ui.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/tools/utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/trusted_folders.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/types.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/onboarding/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/onboarding/base.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/onboarding/onboarding.tcss +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/onboarding/screens/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/onboarding/screens/api_key.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/onboarding/screens/welcome.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/batch/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/create-presentation/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/deep-research/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/investigate/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/review/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/ship/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/skills/simplify/SKILL.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/whats_new.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock-acp.spec +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock_terms.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/flake.lock +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/flake.nix +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/README.md +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/backup.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/bump_version.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/deploy_to_github.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/install.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/monitor_test_battery.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/prepare_release.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/publish_to_pypi.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/test_bank.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/test_full.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/scripts/test_smoke.sh +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/conftest.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_acp.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_agent_thought.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_bash.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_compact_session_updates.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_content.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_initialize.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_list_sessions.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_load_session.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_multi_session.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_new_session.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_proxy_setup_acp.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_read_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_search_replace.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_set_config_option.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_set_mode.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_set_model.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_tool_call_session_update.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/acp/test_write_file.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_file_indexer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_fuzzy.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_path_completer_recursive.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_path_completion_controller.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_slash_command_controller.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/data/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/data/fireworks.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/data/mistral.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/test_anthropic_adapter.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/test_backend.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/test_reasoning_adapter.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_bell_notifications.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_braille_renderer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_clipboard.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_commands.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_copy_shortcuts.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_external_editor.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_no_markup_static.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_question_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_spinner.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_switching_mode.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_ui_clipboard_notifications.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_ui_session_resume.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/test_ui_skill_dispatch.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/textual_ui/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/cli/textual_ui/test_session_picker.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/conftest.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_agents.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_auth_crypto.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_auth_github.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_config_load_dotenv.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_config_paths.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_config_resolution.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_file_logging.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_plan_session.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_proxy_setup.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_slug.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_telemetry_send.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_teleport_git.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_teleport_nuage.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_teleport_service.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_trusted_folders.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/core/test_utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/e2e/common.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/e2e/conftest.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/e2e/mock_server.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/e2e/test_cli_tui_onboarding.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/e2e/test_cli_tui_streaming.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/mock/__init__.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/mock/mock_backend_factory.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/mock/mock_entrypoint.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/mock/utils.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/onboarding/test_run_onboarding.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/onboarding/test_ui_onboarding.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/session/test_session_loader.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/session/test_session_logger.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/session/test_session_migration.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/skills/conftest.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/skills/test_manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/skills/test_models.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/skills/test_parser.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/base_snapshot_test_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/conftest.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/snap_compare.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/stubs/fake_backend.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/stubs/fake_client.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/stubs/fake_tool.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agent_auto_compact.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agent_backend.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agent_observer_streaming.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agent_stats.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agent_tasks.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agent_tool_call.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_agents.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_build.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_debug.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_multiagent.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_prd.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_prd_extended.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_tools.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_bank_update.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_build_projects.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_cli_programmatic_preload.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_current_bugs.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_drydock_regression.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_drydock_tasks.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_full_regression.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_history_manager.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_integration.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_loop_detection.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_message_id.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_message_merging.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_middleware.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_multi_agent.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_real_failures.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_real_issues.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_real_workflow.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_reasoning_content.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_smoke.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_system_prompt.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_tagged_text.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_ui_external_editor.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_ui_input_history.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_user_issues.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/test_workloads.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/testbank_helpers.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_ask_user_question.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_bash.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_exit_plan_mode.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_grep.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_invoke_context.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_manager_get_tool_config.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_mcp.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_mcp_sampling.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_task.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_ui_bash_execution.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_webfetch.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/tools/test_websearch.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_do_update.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_github_update_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_ui_update_notification.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_update_use_case.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/tests/update_notifier/test_whats_new.py +0 -0
- {drydock_cli-1.6.9 → drydock_cli-1.7.1}/uv.lock +0 -0
|
@@ -22,7 +22,34 @@ from dataclasses import dataclass, field
|
|
|
22
22
|
from pathlib import Path
|
|
23
23
|
from typing import TYPE_CHECKING, Any
|
|
24
24
|
|
|
25
|
-
from drydock.core.config import VibeConfig
|
|
25
|
+
from drydock.core.config import ProviderConfig, VibeConfig
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _get_active_provider(config: VibeConfig) -> ProviderConfig | None:
|
|
29
|
+
"""Get the provider that serves the active model.
|
|
30
|
+
|
|
31
|
+
The config may have multiple providers (e.g., Mistral cloud + local vLLM).
|
|
32
|
+
We need the one that actually serves the active_model.
|
|
33
|
+
"""
|
|
34
|
+
# Find which provider the active model uses
|
|
35
|
+
active_model_config = None
|
|
36
|
+
for m in config.models:
|
|
37
|
+
if m.name == config.active_model or m.alias == config.active_model:
|
|
38
|
+
active_model_config = m
|
|
39
|
+
break
|
|
40
|
+
|
|
41
|
+
if active_model_config and active_model_config.provider:
|
|
42
|
+
for p in config.providers:
|
|
43
|
+
if p.name == active_model_config.provider:
|
|
44
|
+
return p
|
|
45
|
+
|
|
46
|
+
# Fallback: prefer localhost providers
|
|
47
|
+
for p in config.providers:
|
|
48
|
+
if "localhost" in p.api_base or "127.0.0.1" in p.api_base:
|
|
49
|
+
return p
|
|
50
|
+
|
|
51
|
+
# Last resort: first provider
|
|
52
|
+
return config.providers[0] if config.providers else None
|
|
26
53
|
|
|
27
54
|
if TYPE_CHECKING:
|
|
28
55
|
from drydock.core.agents.manager import AgentManager
|
|
@@ -124,9 +151,9 @@ async def run_planner(
|
|
|
124
151
|
|
|
125
152
|
plan_prompt = PLAN_PROMPT.format(user_prompt=user_prompt)
|
|
126
153
|
|
|
127
|
-
provider = config
|
|
154
|
+
provider = _get_active_provider(config)
|
|
128
155
|
if not provider:
|
|
129
|
-
raise RuntimeError("No provider configured")
|
|
156
|
+
raise RuntimeError("No provider configured for active model")
|
|
130
157
|
|
|
131
158
|
messages = [
|
|
132
159
|
{"role": "system", "content": "You are a project planner. Output ONLY a JSON build plan."},
|
|
@@ -154,8 +181,59 @@ async def run_planner(
|
|
|
154
181
|
|
|
155
182
|
full_response = data["choices"][0]["message"]["content"]
|
|
156
183
|
logger.info("Planner response length: %d chars", len(full_response))
|
|
184
|
+
logger.debug("Planner response: %s", full_response[:500])
|
|
157
185
|
|
|
158
|
-
|
|
186
|
+
try:
|
|
187
|
+
return extract_plan(full_response)
|
|
188
|
+
except ValueError:
|
|
189
|
+
# Retry with simpler prompt
|
|
190
|
+
logger.warning("First planner attempt failed, retrying with simpler prompt...")
|
|
191
|
+
simple_messages = [
|
|
192
|
+
{"role": "system", "content": "Output ONLY valid JSON. No text before or after."},
|
|
193
|
+
{"role": "user", "content": (
|
|
194
|
+
"Create a JSON build plan for a Python package. "
|
|
195
|
+
"The package should be called 'log_analyzer' with these files:\n"
|
|
196
|
+
'{"package_name":"log_analyzer","description":"Log analyzer tool",'
|
|
197
|
+
'"entry_point":"cli","files":['
|
|
198
|
+
'{"path":"log_analyzer/parser.py","purpose":"Parse log lines into structured events","imports":[]},'
|
|
199
|
+
'{"path":"log_analyzer/patterns.py","purpose":"Group similar messages, detect frequency spikes","imports":["log_analyzer.parser"]},'
|
|
200
|
+
'{"path":"log_analyzer/anomaly.py","purpose":"Detect anomalies using heuristics","imports":["log_analyzer.parser"]},'
|
|
201
|
+
'{"path":"log_analyzer/root_cause.py","purpose":"Generate root cause suggestions","imports":["log_analyzer.parser","log_analyzer.patterns"]},'
|
|
202
|
+
'{"path":"log_analyzer/cli.py","purpose":"CLI with argparse: analyze command, --format, --level, --summary-only","imports":["log_analyzer.parser","log_analyzer.patterns","log_analyzer.anomaly","log_analyzer.root_cause"]},'
|
|
203
|
+
'{"path":"log_analyzer/utils.py","purpose":"Utility functions for formatting output","imports":[]}]}\n\n'
|
|
204
|
+
"Adapt this plan based on the project description below. "
|
|
205
|
+
"Output ONLY the JSON, no other text.\n\n"
|
|
206
|
+
f"{user_prompt[:3000]}"
|
|
207
|
+
)},
|
|
208
|
+
]
|
|
209
|
+
async with httpx.AsyncClient(timeout=300) as client:
|
|
210
|
+
resp2 = await client.post(
|
|
211
|
+
f"{provider.api_base}/chat/completions",
|
|
212
|
+
json={"model": config.active_model, "messages": simple_messages,
|
|
213
|
+
"max_tokens": 2048, "temperature": 0.1},
|
|
214
|
+
)
|
|
215
|
+
resp2.raise_for_status()
|
|
216
|
+
full_response2 = resp2.json()["choices"][0]["message"]["content"]
|
|
217
|
+
logger.info("Retry planner response: %d chars", len(full_response2))
|
|
218
|
+
|
|
219
|
+
try:
|
|
220
|
+
return extract_plan(full_response2)
|
|
221
|
+
except ValueError:
|
|
222
|
+
# Last resort: use the hardcoded default plan
|
|
223
|
+
logger.warning("Planner retry failed, using default log_analyzer plan")
|
|
224
|
+
return BuildPlan(
|
|
225
|
+
package_name="log_analyzer",
|
|
226
|
+
description="Log analyzer tool",
|
|
227
|
+
entry_point="cli",
|
|
228
|
+
files=[
|
|
229
|
+
FileSpec("log_analyzer/parser.py", "Parse log lines into structured events", []),
|
|
230
|
+
FileSpec("log_analyzer/patterns.py", "Group similar messages, detect spikes", ["log_analyzer.parser"]),
|
|
231
|
+
FileSpec("log_analyzer/anomaly.py", "Detect anomalies using heuristics", ["log_analyzer.parser"]),
|
|
232
|
+
FileSpec("log_analyzer/root_cause.py", "Generate root cause suggestions", ["log_analyzer.parser"]),
|
|
233
|
+
FileSpec("log_analyzer/cli.py", "CLI with argparse: analyze, --format, --level flags", ["log_analyzer.parser", "log_analyzer.patterns", "log_analyzer.anomaly", "log_analyzer.root_cause"]),
|
|
234
|
+
FileSpec("log_analyzer/utils.py", "Utility functions for formatting", []),
|
|
235
|
+
],
|
|
236
|
+
)
|
|
159
237
|
|
|
160
238
|
|
|
161
239
|
# ============================================================================
|
|
@@ -285,7 +363,7 @@ async def implement_file(
|
|
|
285
363
|
import httpx
|
|
286
364
|
|
|
287
365
|
# Find the provider config
|
|
288
|
-
provider = config
|
|
366
|
+
provider = _get_active_provider(config)
|
|
289
367
|
if not provider:
|
|
290
368
|
return False
|
|
291
369
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/notifications/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/container.py
RENAMED
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/widgets/chat_input/text_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/textual_ui/windowing/history_windowing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py
RENAMED
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/cli/update_notifier/ports/update_cache_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/__init__.py
RENAMED
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/autocompletion/file_indexer/ignore_rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{drydock_cli-1.6.9 → drydock_cli-1.7.1}/drydock/core/config/harness_files/_harness_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|