Skip to content

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

Description

@timoyan

Summary

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

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 <model_name> (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 <path> is passed, causing it to report:

    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 <prompt> 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():

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!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    triage-nice-to-haveVerdict: evidence-backed fix or greenlit feature — land after review

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions