源码: main.rs:147-289 (parse_args) 简化版: 只支持核心参数: (无参数) → REPL --version → VERSION --help → HELP --model MODEL → 设置模型 "prompt text" → PROMPT
(args: list[str])
| 528 | |
| 529 | |
| 530 | def parse_args(args: list[str]) -> tuple[CliAction, dict]: |
| 531 | """源码: main.rs:147-289 (parse_args) |
| 532 | |
| 533 | 简化版: 只支持核心参数: |
| 534 | (无参数) → REPL |
| 535 | --version → VERSION |
| 536 | --help → HELP |
| 537 | --model MODEL → 设置模型 |
| 538 | "prompt text" → PROMPT |
| 539 | """ |
| 540 | model = DEFAULT_MODEL |
| 541 | permission_mode = PermissionMode.WORKSPACE_WRITE |
| 542 | prompt_parts: list[str] = [] |
| 543 | i = 0 |
| 544 | |
| 545 | while i < len(args): |
| 546 | arg = args[i] |
| 547 | |
| 548 | if arg in ("--version", "-V"): |
| 549 | return CliAction.VERSION, {} |
| 550 | |
| 551 | elif arg in ("--help", "-h"): |
| 552 | return CliAction.HELP, {} |
| 553 | |
| 554 | elif arg == "--model": |
| 555 | if i + 1 >= len(args): |
| 556 | print("error: missing value for --model", file=sys.stderr) |
| 557 | sys.exit(1) |
| 558 | model = _resolve_model_alias(args[i + 1]) |
| 559 | i += 2 |
| 560 | continue |
| 561 | |
| 562 | elif arg.startswith("--model="): |
| 563 | model = _resolve_model_alias(arg[8:]) |
| 564 | |
| 565 | elif arg == "--dangerously-skip-permissions": |
| 566 | permission_mode = PermissionMode.DANGER_FULL_ACCESS |
| 567 | |
| 568 | elif arg == "--permission-mode": |
| 569 | if i + 1 >= len(args): |
| 570 | print("error: missing value for --permission-mode", file=sys.stderr) |
| 571 | sys.exit(1) |
| 572 | permission_mode = _parse_permission_mode(args[i + 1]) |
| 573 | i += 2 |
| 574 | continue |
| 575 | |
| 576 | elif not arg.startswith("-"): |
| 577 | prompt_parts.append(arg) |
| 578 | |
| 579 | i += 1 |
| 580 | |
| 581 | if prompt_parts: |
| 582 | return CliAction.PROMPT, { |
| 583 | "prompt": " ".join(prompt_parts), |
| 584 | "model": model, |
| 585 | "permission_mode": permission_mode, |
| 586 | } |
| 587 |
no test coverage detected