2.5 KiB
2.5 KiB
1. Initial Setup & Leaf Node Extraction
- 1.1 Create the directory structure:
src/cli,src/config,src/execution,src/permissions,src/diagnostics,src/ui. - 1.2 Create
mod.rsfiles in each new directory to expose them tomain.rs. - 1.3 Extract
DiagnosticCheckandDiagnosticLevelrelated code intosrc/diagnostics/mod.rs. Update visibility topub(crate)and fix imports inmain.rs. - 1.4 Extract model validation and alias resolution (
resolve_model_alias,validate_model_syntax) intosrc/config/models.rs. Fix imports inmain.rs. - 1.5 Extract spelling and suggestion logic (
suggest_slash_commands,levenshtein_distance) intosrc/cli/suggestions.rs. Fix imports inmain.rs. - 1.6 Verify compilation (
cargo check) and format (cargo fmt --all) after leaf node extraction.
2. Intermediate Node Extraction
- 2.1 Extract terminal UI progress and hooks (
CliHookProgressReporter,describe_tool_progress) intosrc/ui/progress.rs. Fix imports. - 2.2 Extract permission policies and prompting (
CliPermissionPrompter,permission_policy) intosrc/permissions/prompter.rs. Fix imports. - 2.3 Move any relevant unit tests from the bottom of
main.rsto their new respective modules (diagnostics,config,cli/suggestions,ui,permissions). - 2.4 Verify compilation (
cargo check) and run tests (cargo test).
3. Core Engine Extraction
- 3.1 Extract API stream consumption logic (
consume_stream,response_to_events) intosrc/execution/stream.rs. Fix imports. - 3.2 Extract the API client wrapper (
AnthropicRuntimeClient,build_runtime) intosrc/execution/client.rs. Fix imports. - 3.3 Extract the tool execution engine (
CliToolExecutor,execute_runtime_tool) intosrc/execution/executor.rs. This may require careful handling of circular dependencies withuiandpermissions. - 3.4 Move relevant tests from
main.rstosrc/execution/. - 3.5 Verify compilation (
cargo check) and tests (cargo test).
4. CLI Parser Extraction
- 4.1 Extract command line argument parsing (
parse,CliAction,parse_acp_args, etc.) intosrc/cli/parser.rs. Fix imports. - 4.2 Move CLI parsing tests to
src/cli/parser.rs. - 4.3 Verify compilation (
cargo check) and tests (cargo test).
5. Final Cleanup
- 5.1 Clean up
src/main.rs, removing unused imports and dead code. Ensure it only acts as the main entry point and module router. - 5.2 Run a final
cargo check,cargo test, andcargo fmt --allto guarantee no regressions.