Skip to content

bug(antigravity): agents fail to start — claudeToAntigravityTools emits write_file/glob/google_web_search/web_fetch, which agy 1.3.5 does not register #5447

Open

Description

@maksim-101

Pre-submission checklist

GSD Version

1.16.0 installed; the same table ships unchanged in 1.17.0 (bin/install.js, claudeToAntigravityTools).

Runtime

Antigravity (agy CLI 1.3.5).

Operating System

macOS 27.0.1

Node.js Version

v26.11.1

Installation Method

npx -y --package=@opengsd/gsd-core@latest -- gsd-core --antigravity --global

What happened?

Every GSD agent installed into ~/.gemini/config/agents/ fails to start in Antigravity, because agy 1.3.5 refuses an agent whose tools list holds a name it does not register:

$ agy -p "Reply READY" --agent gsd-phase-researcher
error: failed to construct executor: failed to resolve components:
unknown component: tool "glob" not found in registry
unknown component: tool "google_web_search" not found in registry
unknown component: tool "web_fetch" not found in registry

Two causes:

  1. Four mapped names do not exist in agy. claudeToAntigravityTools maps Write → write_file, Glob → glob, WebSearch → google_web_search, WebFetch → web_fetch. agy 1.3.5 registers write_to_file, find_by_name, search_web and read_url_content for these. The other mapped names (view_file, replace_file_content, run_command, grep_search) are accepted.
  2. Indented YAML block lists collapse. A Claude agent whose tools: is written as an indented block (gsd-security-auditor, gsd-nyquist-auditor) converts to a single nested entry, - - read, dropping every other tool.

Since an unknown name is a hard error rather than a warning, one wrong mapping disables the whole agent: all 62 installed gsd-* agents (including .compact variants) failed to start.

What did you expect?

const claudeToAntigravityTools = {
  Read: 'view_file',
  Write: 'write_to_file',
  Edit: 'replace_file_content',
  Bash: 'run_command',
  Glob: 'find_by_name',
  Grep: 'grep_search',
  WebSearch: 'search_web',
  WebFetch: 'read_url_content',
  // TodoWrite: no write_todos in agy 1.3.5; dropping it lets the agent start
};

and the block-list form parsed like the inline form, so gsd-security-auditor converts to view_file, run_command, find_by_name, grep_search.

With exactly these names written into the installed agent files, gsd-security-auditor, gsd-phase-researcher and gsd-executor start and answer in agy 1.3.5.

Steps to reproduce

  1. Install for Antigravity: npx -y --package=@opengsd/gsd-core@1.17.0 -- gsd-core --antigravity --global
  2. agy -p "Reply READY" --agent gsd-phase-researcher → executor error above.
  3. head -8 ~/.gemini/config/agents/gsd-security-auditor.md → tools: holds only - - read.

A quick way to check any candidate name: put it in the tools: list of a throwaway agent and start it; agy lists every unknown name in one error.

Error output / logs

See "What happened?".


This issue was drafted with an AI assistant (Claude) and checked against a live agy 1.3.5 install before filing.

Activity

  1. trek-e commented on Oct 16, 2026

    @trek-e
    Collaborator

    This was generated by AI during triage.

    Diagnosis

    The issue is caused by incorrect tool name mappings in the Antigravity runtime converter and a bug in how indented YAML block lists for tools are processed during agent conversion.

    1. Incorrect Tool Mappings:
    The claudeToAntigravityTools table in src/runtime-artifact-conversion.cts:2428 (and mirrored in bin/install.js:1600) uses values that are not registered in agy 1.3.5.

    • Write $
      ightarrow$ write_file (Expected: write_to_file)
    • Glob $
      ightarrow$ glob (Expected: find_by_name)
    • WebSearch $
      ightarrow$ google_web_search (Expected: search_web)
    • WebFetch $
      ightarrow$ web_fetch (Expected: read_url_content)

    2. YAML Block List Collapsing:
    In src/runtime-artifact-conversion.cts:2542, the code extracts tools using extractFrontmatterField(frontmatter, 'tools'). However, the implementation of extractFrontmatterField uses a regex that only captures the first line of a field. For agents using an indented YAML block list for tools, this only captures the header line (e.g., tools:), causing subsequent list items to be ignored or incorrectly processed, leading to the reported "collapsing" behavior.

    Blast Radius:

    • Affects all GSD agents installed for the Antigravity runtime.
    • No impact on other runtimes (OpenCode, Copilot, Kimi, etc.) as they use separate mapping tables and conversion logic.

    Introduced By:
    The mappings were introduced/updated in #4705.

  2. trek-e commented on Oct 16, 2026

    @trek-e
    Collaborator

    This was generated by AI during triage.

    Agent Brief

    Behavioral Summary:
    GSD agents installed for the Antigravity runtime fail to start because they are emitted with tool names that agy 1.3.5 does not recognize, and agents using indented YAML block lists for tools are incorrectly converted, resulting in missing tool grants.

    Desired Behavior:

    1. The claudeToAntigravityTools mapping should use the correct tool names registered in agy 1.3.5.
    2. The agent conversion logic should correctly parse both comma-separated and indented YAML block lists for the tools: field in frontmatter.

    Acceptance Criteria:

    • Write maps to write_to_file.
    • Glob maps to find_by_name.
    • WebSearch maps to search_web.
    • WebFetch maps to read_url_content.
    • Agents with indented tool lists (e.g., gsd-security-auditor) are installed with all their mapped tools present in the resulting .md file.
    • All 62+ GSD agents start without "unknown component: tool" errors in agy 1.3.5.
  3. added
    bugSomething isn't working
    and removed
    needs-triageNew issue awaiting maintainer review
    on Oct 16, 2026
  4. github-actions commented on Oct 16, 2026

    @github-actions
    Contributor

    Branch fix/5447-bug-antigravity-agents-fail-to-start-cla created.

    git fetch origin && git checkout fix/5447-bug-antigravity-agents-fail-to-start-cla
  5. trek-e commented on Oct 16, 2026

    @trek-e
    Collaborator

    This was generated by AI during triage.

    Diagnosis

    Reproduced:
    The issue is reproduced by installing GSD agents for Antigravity using gsd-core --antigravity --global. When attempting to start an agent (e.g., agy -p "Reply READY" --agent gsd-phase-researcher), the Antigravity CLI (agy 1.3.5) returns an executor error: unknown component: tool "glob" not found in registry. This confirms that the emitted tool names do not match those registered in agy 1.3.5. Additionally, checking the generated agent files (e.g., ~/.gemini/config/agents/gsd-security-auditor.md) reveals that indented YAML block lists for tools are collapsed into a single nested entry (- - read), causing most tools to be dropped.

    Root cause:

    1. bin/install.js:1603-1609 (claudeToAntigravityTools) — The mapping uses outdated tool names. Specifically, Write maps to write_file, Glob to glob, WebSearch to google_web_search, and WebFetch to web_fetch. In agy 1.3.5, these are registered as write_to_file, find_by_name, search_web, and read_url_content respectively.
    2. src/runtime-artifact-conversion.cts:2549-2554 (convertClaudeAgentToAntigravityAgent) — The tool block generation uses a simple .map((t) => - ${t}).join('\n'), which does not handle cases where the input tools were parsed from an indented YAML block, leading to incorrect nesting in the output.

    Memtrace/CodeGraph calls made:

    • tools.github.issue_read({ issue_number: 5447, method: "get" }): Retrieved the bug report detailing the tool name mismatches and YAML collapse.
    • tools.codegraph.codegraph_explore({ query: "claudeToAntigravityTools" }): Located the mapping table in bin/install.js and its usage in src/runtime-artifact-conversion.cts.
    • tools.codegraph.codegraph_explore({ query: "convertClaudeAgentToAntigravityAgent" }): Analyzed the tool block generation logic in src/runtime-artifact-conversion.cts.

    Introduced by: Long-standing (mapping was introduced in #4705 but became stale as agy evolved).

    Blast radius: High. Every GSD agent installed for Antigravity fails to start because agy treats unknown tool names as hard errors.

    Coupled: The fix must update the mapping table in both bin/install.js and src/runtime-artifact-conversion.cts (or unify them) to ensure consistency across installation and conversion paths.

    Regression test:

    1. Run the Antigravity installer: gsd-core --antigravity --global.
    2. Verify that the generated .md files in ~/.gemini/config/agents/ contain the correct tool names (write_to_file, find_by_name, etc.).
    3. Verify that agents with block-list tools (e.g., gsd-security-auditor) have a flat list of tools in the output YAML.
    4. (If agy is available) Verify that agy --agent gsd-phase-researcher starts without "unknown component" errors.

    Negative space: Must not change the mappings for tools that are already correct (view_file, replace_file_content, etc.).

  6. trek-e commented on Oct 16, 2026

    @trek-e
    Collaborator

    This was generated by AI during triage.

    Agent Brief

    Category: bug
    Summary: Antigravity agents fail to start due to stale tool name mappings and YAML list collapse.
    Current behavior: The installer emits tool names (write_file, glob, etc.) that are not registered in agy 1.3.5, and converts indented tool lists into incorrectly nested YAML sequences.
    Desired behavior: Agents should be installed with the correct native agy 1.3.5 tool names, and all tool lists should be emitted as flat YAML sequences regardless of the source format.
    Key interfaces:

    • bin/install.js (claudeToAntigravityTools)
    • src/runtime-artifact-conversion.cts (convertClaudeAgentToAntigravityAgent)
      Acceptance criteria:
    • All gsd-* agents installed via --antigravity start successfully in agy 1.3.5.
    • Tool mappings match the current agy registry (write_to_file, find_by_name, search_web, read_url_content).
    • Generated agent YAML contains a flat list of tools.
      Out of scope: Adding support for tools that do not exist in agy 1.3.5 (e.g., write_todos).
  7. added a commit that references this issue on Oct 17, 2026
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

    bugSomething isn't workingconfirmed-bugVerified reproducible bug

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions