github / github/spec-kit

bug(agy): --model ignored, EXTRA_ARGS appended after --print, and --add-dir workspace not passed

Đang mở
#4,480 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
triage-nice-to-have
Ngôn ngữ chính
Python
Star
137k
Fork
12.3k
Merge trung bình
2 ngày 12 giờ
Pull request đã merge (30 ngày)
159

Mô tả

### Summary

In `src/specify_cli/integrations/agy/__init__.py`, `AgyIntegration.build_exec_args()` currently hardcodes ignoring the `model` parameter:

```python
def build_exec_args(
self,
prompt: str,
*,
model: str | None = None,
output_json: bool = True,
) -> list[str] | None:
# agy does not support --model or JSON output; both params are ignored
args = [self._resolve_executable(), "--print", prompt]
self._apply_extra_args_env_var(args)
return args
```

### Issues Observed

1. **`--model` is supported by `agy` CLI**:
Modern Antigravity CLI (`agy`) supports `--model ` (e.g. `agy --model claude-sonnet-4-6 -p "..."` or `agy --model gemini-3.1-pro-high -p "..."`). Because `model` is omitted from `build_exec_args`, stage-level model tiering defined in workflows (such as `.specify/workflows/...`) fails to route to the desired model, silently falling back to the user's default local model.

2. **Working directory / workspace flag**:
When `agy` is launched in headless `--print` mode, it does not automatically bind the current directory unless `--add-dir ` is passed, causing it to report:
```text
You do not currently have an active workspace open.
By default, scratch files and projects are located at: ~/.gemini/antigravity-cli/scratch
```

3. **Flag positioning before `--print`**:
Any extra args appended *after* `--print ` are treated by `agy`'s CLI parser as part of the positional prompt text rather than CLI flags. Flags (such as `--model`, `--add-dir`, `--dangerously-skip-permissions`, `--print-timeout`) should precede `--print`.

### Proposed Fix

In `AgyIntegration.build_exec_args()`:

```python
def build_exec_args(
self,
prompt: str,
*,
model: str | None = None,
output_json: bool = True,
) -> list[str] | None:
args = [self._resolve_executable()]
if model:
args.extend(["--model", model])
self._apply_extra_args_env_var(args)
args.extend(["--print", prompt])
return args
```

And in `AgyIntegration.dispatch_command()`, pass `--add-dir` with `project_root` when invoking the subprocess so `agy` recognizes the project repository workspace.

Happy to submit a PR with tests if this looks good to the maintainers!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start in src/specify_cli/integrations/agy/__init__.py by reading AgyIntegration.build_exec_args() and dispatch_command(). Verify that model and extra arguments precede --print, and that project_root is passed through --add-dir; done means the generated command routes the requested model, preserves flags, and binds the repository workspace, with tests covering these cases.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
ai, cli
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
76/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.