Capabilities

Zerolang graph edits

Roder now ships a first-party Zerolang tool provider for graph-first Zero code changes. The extension shells out to a local zero compiler; Roder does not vendor the compiler or rewrite Zero source text by hand.

Tool surface

  • zerolang_skills_get reads version-matched Zero workflow guidance from the active compiler.
  • zerolang_check, zerolang_graph_dump, and zerolang_graph_view inspect code and graph state.
  • zerolang_fix_plan prepares graph-aware repair steps.
  • zerolang_edit applies checked graph edits with graph hash and node preconditions.
  • zerolang_graph_roundtrip verifies graph dump, patch, and semantic check behavior.
No typo alias. The edit tool is zerolang_edit; there is no zeolang_edit compatibility alias.

Checked edit loop

The intended path is inspect first, then edit with explicit ProgramGraph evidence. zerolang_edit accepts structured operations, builds the compiler patch text internally, checks graph-hash preconditions, and then runs graph and source validation when the edit writes .0 source.

{
  "input": "src/main.0",
  "graphHash": "graph:74f634ccb5b77646",
  "operations": [
    {
      "op": "set",
      "node": "#89f1bc7e",
      "field": "value",
      "expect": "65",
      "value": "66"
    }
  ]
}

Use node, not id, and quote semantic values as strings. Derived .program-graph artifacts should normally stay under .zero/roder/ and should not be committed unless the user explicitly wants graph artifacts.

Configuration

Binary resolution checks RODER_ZERO_BIN, then config, then zero on PATH.

[zerolang]
binary = "/path/to/zero"
timeout_seconds = 30
artifact_dir = ".zero/roder"
roder zerolang doctor
roder zerolang check examples/hello.0
roder zerolang graph-dump --out .zero/roder/hello.program-graph examples/hello.0

Zero-coder distribution

The zero-coder-edits distribution profile is a headless app-server build for RL Zero coding tasks. Its generated config allowlists only the Zerolang tools, so generic text edit tools such as edit, multi_edit, write_file, and apply_patch are not advertised to the model.