Skip to content

--json output shapes

Every command that reports something accepts the global --json flag. The schema version is 1 (ag version --json prints json_schema).

The stability rule. Within a schema version, keys are only ever added: never removed, renamed or retyped. A consumer ignores keys it does not know. Removing, renaming or retyping a key would be a new schema version and an entry in the changelog.

Where this is enforced. The shapes below are the golden files crates/ag-cli/tests/golden/json-shapes.json and json-shapes-remote.json. cargo test -p agentgit-cli runs every command listed here in a scratch repository (the remote ones against a real in-process ag-server), compares the shape of its output (keys and value types, no values) with the golden file, and fails when a command of ag --help has neither a shape nor an entry in the list of commands whose output is not JSON.

Reading the shapes: a value is its type (string, number, bool, null); string|null means both were seen; an array shows the merged shape of its elements, and [] means the list was empty in the test run. A command printed with a suffix such as integrate (blocked) is the same command in another situation (here: when policy blocks the integration, exit code 3).

Errors

With --json an error is one JSON line on standard error (and the exit code is the process's):

{"error":{"message":"not found: proposal 'x'","hint":"...","exit_code":1}}

Commands whose output is not JSON

Their output is the data (file contents, a template, a script, a man page, help text), so --json does not change it:

  • ag cat
  • ag completions
  • ag help
  • ag man
  • ag policy example
  • ag remote cat

Commands that never end

ag remote events --follow --json prints one compact JSON object per line (NDJSON), each the shape of an event in ag remote events, so that a consumer can read it line by line.

Commands

ag agent

ag agent disable

{
  "disabled": "string"
}

ag agent enable

{
  "enabled": "string"
}

ag agent finish

{
  "run": "string",
  "status": "string"
}

ag agent heartbeat

{
  "run": "string"
}

ag agent list

[
  {
    "created_at": "number",
    "disabled": "bool",
    "identity": "string",
    "name": "string",
    "public_key": "string",
    "role": "string"
  }
]

ag agent reap

[]

ag agent register

{
  "created_at": "number",
  "disabled": "bool",
  "identity": "string",
  "name": "string",
  "public_key": "string",
  "role": "string"
}

ag agent runs

[
  {
    "agent": "string",
    "finished_at": "null",
    "last_heartbeat": "number",
    "run_id": "string",
    "started_at": "number",
    "status": "string",
    "summary": "null",
    "task_id": "string"
  }
]

ag agent start

{
  "identity": "string",
  "run_id": "string"
}

ag audit

ag audit

{
  "entries": "number",
  "first_bad": "null",
  "head": "string"
}

ag audit (list)

[
  {
    "action": "string",
    "actor": "string",
    "details": "string",
    "hash": "string",
    "prev_hash": "string",
    "seq": "number",
    "target": "string",
    "timestamp": "number"
  }
]

ag backup

ag backup

{
  "bytes": "number",
  "keys_included": "bool",
  "objects": "number",
  "verification": {
    "audit_entries": "number",
    "audit_head": "string",
    "changesets_checked": "number",
    "heads_recomputed": "number",
    "issues": [],
    "objects_checked": "number"
  }
}

ag blame

ag blame

{
  "lines": [
    {
      "author": "string",
      "boundary": "bool",
      "changeset": "string",
      "line": "number",
      "original_line": "number",
      "path": "string",
      "summary": "string",
      "text": "string",
      "timestamp": "number"
    }
  ],
  "path": "string",
  "rev": "string",
  "truncated": "bool",
  "visited": "number"
}

ag checkout

ag checkout

{
  "changeset": "string",
  "dir": "string",
  "files": "number"
}

ag clone

ag clone

{
  "blobs": "number",
  "changesets": "number",
  "head": "string",
  "remote": "string",
  "stream": "string",
  "version": "number"
}

ag config

ag config get

{
  "key": "string",
  "settable": "bool",
  "source": "string",
  "value": "string"
}

ag config list

[
  {
    "key": "string",
    "settable": "bool",
    "source": "string",
    "value": "string"
  }
]

ag config path

{
  "repository": {
    "config": "string",
    "keys": "string",
    "remotes": "string"
  },
  "user": {
    "exists": "bool",
    "path": "string"
  }
}

ag config set

{
  "file": "string",
  "key": "string",
  "value": "string"
}

ag config unset

{
  "file": "string",
  "key": "string",
  "was_set": "bool"
}

ag diff

ag diff

{
  "diff": "string"
}

ag doctor

ag doctor

{
  "checks": [
    {
      "hint": "null|string",
      "id": "string",
      "status": "string",
      "summary": "string"
    }
  ],
  "ok": "bool",
  "summary": {
    "fail": "number",
    "ok": "number",
    "skip": "number",
    "warn": "number"
  },
  "version": "string"
}

ag doctor (remote)

{
  "checks": [
    {
      "hint": "null",
      "id": "string",
      "status": "string",
      "summary": "string"
    }
  ],
  "ok": "bool",
  "summary": {
    "fail": "number",
    "ok": "number",
    "skip": "number",
    "warn": "number"
  },
  "version": "string"
}

ag explain

ag explain

{
  "explanations": [],
  "next": [],
  "policy_version": "number",
  "proposal": "string",
  "standing": "string",
  "stream": "string",
  "title": "string"
}

ag explain (blocked)

{
  "explanations": [
    {
      "code": "string",
      "fixes": [
        {
          "command": "string",
          "note": "string"
        }
      ],
      "kind": "string",
      "summary": "string",
      "why": "string"
    }
  ],
  "next": [
    "string"
  ],
  "policy_version": "number",
  "proposal": "string",
  "standing": "string",
  "stream": "string",
  "title": "string"
}

ag fetch

ag fetch

{
  "blobs": "number",
  "changesets": "number",
  "head": "string",
  "remote": "string",
  "stream": "string",
  "version": "number"
}

ag gc

ag gc

{
  "bytes": "number",
  "deleted": [],
  "dry_run": "bool",
  "kept_staged": "number",
  "kept_young": "number",
  "reachable_blobs": "number",
  "reachable_changesets": "number",
  "scanned": "number"
}

ag git

ag git export

{
  "branch": "string",
  "commits": "number"
}

ag git import

{
  "blobs": "number",
  "commits": "number",
  "head": "string",
  "lossy_commits": "number",
  "skipped_paths": [],
  "skipped_submodules": "number"
}

ag init

ag init

{
  "durability": "string",
  "namespace": "string",
  "policy_version": "null",
  "preset": "null",
  "root": "string",
  "stream": "string"
}

ag init (preset)

{
  "durability": "string",
  "namespace": "string",
  "policy_version": "number",
  "preset": "string",
  "root": "string",
  "stream": "string"
}

ag integrate

ag integrate

{
  "operation_id": "string",
  "outcome": {
    "changed_files": "number",
    "new_head": "string",
    "previous_head": "null",
    "status": "string",
    "strategy": "string",
    "tree_id": "string",
    "version": "number"
  },
  "state": "string"
}

ag integrate (blocked)

{
  "operation_id": "string",
  "outcome": {
    "blockers": [
      {
        "code": "string",
        "detail": {
          "have": "number",
          "kind": "string",
          "required": "number",
          "scope": "string"
        },
        "message": "string"
      }
    ],
    "candidate_changeset": "string",
    "candidate_tree": "string",
    "policy_version": "number",
    "status": "string"
  },
  "state": "string"
}

ag lease

ag lease acquire

{
  "lease": {
    "acquired_at": "number",
    "exclusive": "bool",
    "expires_at": "number",
    "holder": "string",
    "id": "string",
    "released_at": "null",
    "scope": "string",
    "task_id": "null",
    "token": "number"
  },
  "overlaps": []
}

ag lease extend

{
  "acquired_at": "number",
  "exclusive": "bool",
  "expires_at": "number",
  "holder": "string",
  "id": "string",
  "released_at": "null",
  "scope": "string",
  "task_id": "null",
  "token": "number"
}

ag lease list

[
  {
    "acquired_at": "number",
    "exclusive": "bool",
    "expires_at": "number",
    "holder": "string",
    "id": "string",
    "released_at": "null",
    "scope": "string",
    "task_id": "null",
    "token": "number"
  }
]

ag lease release

{
  "released": "string"
}

ag log

ag log

[
  {
    "author": "string",
    "generation": "number",
    "id": "string",
    "message": "string",
    "parents": [
      "string"
    ],
    "timestamp": "number"
  }
]

ag login

ag login

{
  "expires_at": "string",
  "file": "string",
  "identity": "string",
  "server": "string"
}

ag logout

ag logout

{
  "forgotten": [
    "string"
  ]
}

ag ls

ag ls

[
  {
    "blob": "string",
    "executable": "bool",
    "name": "string",
    "type": "string"
  }
]

ag op

ag op list

[
  {
    "actor": "string",
    "created_at": "number",
    "error": "null",
    "idempotency_key": "string",
    "kind": "string",
    "operation_id": "string",
    "payload": {
      "head": "string",
      "proposal": "string",
      "stream": "string",
      "tokens": []
    },
    "request_hash": "string",
    "result": {
      "blobs": "number",
      "changed_files": "number",
      "changesets": "number",
      "new_head": "string",
      "previous_head": "null",
      "status": "string",
      "strategy": "string",
      "tree_id": "string",
      "version": "number"
    },
    "state": "string",
    "stream": "null|string",
    "updated_at": "number"
  }
]

ag op resume

{
  "operation_id": "string",
  "outcome": {
    "changed_files": "number",
    "new_head": "string",
    "previous_head": "null",
    "status": "string",
    "strategy": "string",
    "tree_id": "string",
    "version": "number"
  },
  "state": "string"
}

ag op show

{
  "operation_id": "string",
  "outcome": {
    "blockers": [
      {
        "code": "string",
        "detail": {
          "have": "number",
          "kind": "string",
          "required": "number",
          "scope": "string"
        },
        "message": "string"
      }
    ],
    "candidate_changeset": "string",
    "candidate_tree": "string",
    "policy_version": "number",
    "status": "string"
  },
  "state": "string"
}

ag pin

ag pin

{
  "changeset": "string",
  "pin": "string"
}

ag pins

ag pins

[
  {
    "changeset": "string",
    "created_at": "number",
    "name": "string",
    "reason": "string"
  }
]

ag policy

ag policy explain

{
  "explanation": [
    {
      "effect": "string",
      "field": "string",
      "text": "string"
    }
  ],
  "source": "string",
  "version": "number"
}

ag policy history

[
  {
    "created_at": "number",
    "created_by": "string",
    "doc": "string",
    "doc_hash": "string",
    "stream": "string",
    "version": "number"
  }
]

ag policy preset apply

{
  "hash": "string",
  "preset": "string",
  "stream": "string",
  "version": "number"
}

ag policy preset list

[
  {
    "for": "string",
    "name": "string",
    "needs_ci_issuer": "bool"
  }
]

ag policy preset show

{
  "explanation": [
    {
      "effect": "string",
      "field": "string",
      "text": "string"
    }
  ],
  "policy": {
    "admins": [
      "string"
    ],
    "agent_autonomy": {
      "allowed_paths": [],
      "auto_integrate": "bool",
      "max_files": "number"
    },
    "allowed_authors": [
      "string"
    ],
    "approvals": {
      "approvers": [
        "string"
      ],
      "forbid_self_approval": "bool",
      "min": "number",
      "min_for_agents": "number"
    },
    "integrators": [
      "string"
    ],
    "max_changed_files": "number",
    "protected_paths": [],
    "require_provenance_for_agents": "bool",
    "required_validations": [],
    "trusted_issuers": []
  },
  "preset": "string"
}

ag policy set

{
  "created_at": "number",
  "created_by": "string",
  "doc": "string",
  "doc_hash": "string",
  "stream": "string",
  "version": "number"
}

ag policy show

{
  "policy": {
    "admins": [],
    "agent_autonomy": {
      "allowed_paths": [],
      "auto_integrate": "bool",
      "max_files": "number"
    },
    "allowed_authors": [],
    "approvals": {
      "approvers": [],
      "forbid_self_approval": "bool",
      "min": "number",
      "min_for_agents": "number"
    },
    "integrators": [],
    "max_changed_files": "number",
    "protected_paths": [],
    "require_provenance_for_agents": "bool",
    "required_validations": [],
    "trusted_issuers": []
  },
  "stream": "string",
  "version": "number"
}

ag portability

ag portability

{
  "changeset": "string",
  "collisions": [],
  "executables_without_bit": [],
  "hazards": [],
  "ok": "bool",
  "paths": "number",
  "platform": "string",
  "problems": [],
  "symlinks_as_files": []
}

ag predict

ag predict

{
  "overlaps": []
}

ag preview

ag preview

{
  "algorithm": "string",
  "base": "null",
  "candidate_tree": "string",
  "changed_files": [
    "string"
  ],
  "conflicts": [],
  "notes": [],
  "problem": "null",
  "strategy": "string"
}

ag proposal

ag proposal close

{
  "closed": "string"
}

ag proposal list

[
  {
    "author": "string",
    "created_at": "number",
    "description": "string",
    "head": "string",
    "id": "string",
    "integrated_as": "null",
    "state": "string",
    "stream": "string",
    "task_id": "null",
    "title": "string",
    "updated_at": "number"
  }
]

ag proposal review

{
  "body": "string",
  "decision": "string",
  "head": "string",
  "id": "number",
  "proposal": "string",
  "reviewer": "string",
  "timestamp": "number"
}

ag proposal show

{
  "proposal": {
    "author": "string",
    "created_at": "number",
    "description": "string",
    "head": "string",
    "id": "string",
    "integrated_as": "null",
    "state": "string",
    "stream": "string",
    "task_id": "null",
    "title": "string",
    "updated_at": "number"
  },
  "reviews": []
}

ag proposal update

{
  "author": "string",
  "created_at": "number",
  "description": "string",
  "head": "string",
  "id": "string",
  "integrated_as": "null",
  "state": "string",
  "stream": "string",
  "task_id": "null",
  "title": "string",
  "updated_at": "number"
}

ag propose

ag propose

{
  "author": "string",
  "created_at": "number",
  "description": "string",
  "head": "string",
  "id": "string",
  "integrated_as": "null",
  "state": "string",
  "stream": "string",
  "task_id": "null",
  "title": "string",
  "updated_at": "number"
}

ag provenance

ag provenance attach

{
  "changeset": "string",
  "record": "number"
}

ag provenance show

[
  {
    "agent": "string",
    "error": "null",
    "id": "number",
    "record": {
      "agent": "string",
      "changeset": "string",
      "checks_run": [
        "string"
      ],
      "created_at": "number",
      "inputs": [],
      "model": "string",
      "parameters": {},
      "prompt_digest": "null",
      "rationale": "null",
      "run_id": "null",
      "schema": "string",
      "task_id": "null"
    },
    "verified": "bool"
  }
]

ag pull

ag pull

{
  "fetch": {
    "blobs": "number",
    "changesets": "number",
    "head": "string",
    "remote": "string",
    "stream": "string",
    "version": "number"
  },
  "workspace": "null"
}

ag push

ag push

{
  "objects_sent": "number",
  "objects_stored": "number",
  "proposal": {
    "author": "string",
    "created_at_ms": "number",
    "description": "string",
    "head": "string",
    "id": "string",
    "integrated_as": "string",
    "state": "string",
    "stream": "string",
    "task_id": "string",
    "title": "string",
    "updated_at_ms": "number"
  }
}

ag queue

ag queue add

{
  "enqueued_at": "number",
  "enqueued_by": "string",
  "id": "number",
  "outcome": "null",
  "processed_at": "null",
  "proposal": "string",
  "state": "string",
  "stream": "string"
}

ag queue list

[
  {
    "enqueued_at": "number",
    "enqueued_by": "string",
    "id": "number",
    "outcome": "null",
    "processed_at": "null",
    "proposal": "string",
    "state": "string",
    "stream": "string"
  }
]

ag queue run

{
  "blocked": [],
  "failed": [],
  "integrated": [
    "string"
  ],
  "rejected": []
}

ag recover

ag recover

{
  "aborted": [],
  "errors": [],
  "resumed": [],
  "waiting": []
}

ag reindex

ag reindex

{
  "changesets": "number"
}

ag remote

ag remote add

{
  "repo": "string",
  "token_env": "string",
  "url": "string"
}

ag remote blame

{
  "lines": [
    {
      "author": "string",
      "boundary": "bool",
      "changeset": "string",
      "line": "number",
      "original_line": "number",
      "path": "string",
      "summary": "string",
      "text": "string",
      "timestamp_ms": "number"
    }
  ],
  "path": "string",
  "rev": "string",
  "truncated": "bool",
  "visited": "number"
}

ag remote close

{
  "author": "string",
  "created_at_ms": "number",
  "description": "string",
  "head": "string",
  "id": "string",
  "integrated_as": "string",
  "state": "string",
  "stream": "string",
  "task_id": "string",
  "title": "string",
  "updated_at_ms": "number"
}

ag remote events

{
  "events": [
    {
      "payload": {
        "actor": "string",
        "details": {
          "blockers": [
            {
              "code": "string",
              "detail": {
                "have": "number",
                "kind": "string",
                "required": "number",
                "scope": "string"
              },
              "message": "string"
            }
          ],
          "candidate_changeset": "string",
          "candidate_tree": "string",
          "changesets": "number",
          "decision": "string",
          "default_stream": "string",
          "hash": "string",
          "head": "string",
          "new_head": "string",
          "old_head": "null",
          "operation_id": "string",
          "policy_version": "number",
          "proposal": "string",
          "status": "string",
          "stream": "string",
          "tree": "string",
          "version": "number"
        },
        "target": "string"
      },
      "repo": "string",
      "seq": "number",
      "timestamp_ms": "number",
      "topic": "string"
    }
  ],
  "latest_seq": "number"
}

ag remote integrate

{
  "operation_id": "string",
  "outcome": {
    "base": "string",
    "blockers": [],
    "candidate_changeset": "string",
    "candidate_tree": "string",
    "changed_files": "number",
    "conflicts": [],
    "new_head": "string",
    "policy_version": "number",
    "previous_head": "string",
    "reason": "string",
    "status": "string",
    "strategy": "string",
    "tree_id": "string",
    "version": "number"
  },
  "state": "string"
}

ag remote integrate (blocked)

{
  "operation_id": "string",
  "outcome": {
    "base": "string",
    "blockers": [
      {
        "code": "string",
        "detail": {
          "have": "number",
          "kind": "string",
          "required": "number",
          "scope": "string"
        },
        "message": "string"
      }
    ],
    "candidate_changeset": "string",
    "candidate_tree": "string",
    "changed_files": "number",
    "conflicts": [],
    "new_head": "string",
    "policy_version": "number",
    "previous_head": "string",
    "reason": "string",
    "status": "string",
    "strategy": "string",
    "tree_id": "string",
    "version": "number"
  },
  "state": "string"
}

ag remote list

{
  "origin": {
    "repo": "string",
    "token_env": "string",
    "url": "string"
  }
}

ag remote log

{
  "changesets": [
    {
      "author": "string",
      "generation": "number",
      "id": "string",
      "message": "string",
      "namespace": "string",
      "ops": [],
      "parents": [],
      "published": "bool",
      "timestamp_ms": "number"
    }
  ],
  "next_page_token": "string"
}

ag remote policy

{
  "created_at_ms": "number",
  "created_by": "string",
  "doc_hash": "string",
  "document": "string",
  "stream": "string",
  "version": "number"
}

ag remote prepare

{
  "algorithm": "string",
  "base": "string",
  "blockers": [
    {
      "code": "string",
      "detail": {
        "have": "number",
        "kind": "string",
        "required": "number",
        "scope": "string"
      },
      "message": "string"
    }
  ],
  "candidate_tree": "string",
  "changed_files": [
    "string"
  ],
  "conflicts": [],
  "jobs": [],
  "policy_version": "number",
  "problem": "string",
  "proposal": "string",
  "strategy": "string",
  "validations": []
}

ag remote proposal

{
  "proposal": {
    "author": "string",
    "created_at_ms": "number",
    "description": "string",
    "head": "string",
    "id": "string",
    "integrated_as": "string",
    "state": "string",
    "stream": "string",
    "task_id": "string",
    "title": "string",
    "updated_at_ms": "number"
  },
  "reviews": []
}

ag remote proposals

{
  "next_page_token": "string",
  "proposals": [
    {
      "author": "string",
      "created_at_ms": "number",
      "description": "string",
      "head": "string",
      "id": "string",
      "integrated_as": "string",
      "state": "string",
      "stream": "string",
      "task_id": "string",
      "title": "string",
      "updated_at_ms": "number"
    }
  ]
}

ag remote remove

{
  "removed": "string"
}

ag remote review

{
  "body": "string",
  "decision": "string",
  "head": "string",
  "id": "number",
  "proposal": "string",
  "reviewer": "string",
  "timestamp_ms": "number"
}

ag remote streams

{
  "streams": [
    {
      "created_at_ms": "number",
      "created_by": "string",
      "head": "string",
      "name": "string",
      "policy_version": "number",
      "version": "number"
    }
  ]
}

ag remote whoami

{
  "credential_id": "string",
  "expires_at_ms": "number",
  "identity": "string",
  "kind": "string",
  "method": "string",
  "roles": [
    "string"
  ],
  "scope": {
    "operations": [],
    "repos": [],
    "run_id": "string",
    "streams": []
  }
}

ag show

ag show

{
  "author": "string",
  "changes": [
    {
      "op": "string",
      "path": "string"
    }
  ],
  "id": "string",
  "message": "string",
  "parents": [
    "string"
  ],
  "provenance_records": "number",
  "published": "bool",
  "timestamp": "number"
}

ag snapshot

ag snapshot

{
  "changeset": "null|string"
}

ag status

ag status

{
  "base": "null|string",
  "changes": [
    {
      "kind": "string",
      "path": "string"
    }
  ],
  "head": "null|string",
  "merging": "bool",
  "stream": "string",
  "summary": {
    "ahead": "number",
    "behind": "number",
    "identity": "string",
    "identity_source": "string",
    "leases": {
      "active": "number",
      "mine": [
        {
          "exclusive": "bool",
          "expires_at": "number",
          "id": "string",
          "scope": "string",
          "token": "number"
        }
      ]
    },
    "next": "string",
    "proposals": {
      "mine": [
        {
          "author": "string",
          "id": "string",
          "is_workspace_head": "bool",
          "stream": "string",
          "title": "string"
        }
      ],
      "open": "number"
    },
    "relation": "string",
    "remotes": [],
    "stream_head": "null|string",
    "stream_version": "number",
    "task": {
      "id": "string",
      "state": "string",
      "title": "string"
    },
    "unpublished": "number"
  },
  "workspace": "string"
}

ag status (remote)

{
  "base": "string",
  "changes": [],
  "head": "string",
  "merging": "bool",
  "stream": "string",
  "summary": {
    "ahead": "number",
    "behind": "number",
    "identity": "string",
    "identity_source": "string",
    "leases": {
      "active": "number",
      "mine": []
    },
    "next": "null",
    "proposals": {
      "mine": [],
      "open": "number"
    },
    "relation": "string",
    "remotes": [
      {
        "ahead": "number",
        "behind": "number",
        "fetched_head": "string",
        "name": "string",
        "repo": "string",
        "server_head": "string",
        "state": "string",
        "stream": "string",
        "url": "string"
      }
    ],
    "stream_head": "string",
    "stream_version": "number",
    "task": "null",
    "unpublished": "number"
  },
  "workspace": "string"
}

ag stream

ag stream create

{
  "created_at": "number",
  "created_by": "string",
  "name": "string",
  "state": {
    "head": "string",
    "version": "number"
  }
}

ag stream list

[
  {
    "created_at": "number",
    "created_by": "string",
    "name": "string",
    "state": {
      "head": "string",
      "version": "number"
    }
  }
]

ag stream reflog

[
  {
    "actor": "string",
    "new_head": "string",
    "old_head": "null|string",
    "operation_id": "string",
    "reason": "string",
    "seq": "number",
    "stream": "string",
    "timestamp": "number",
    "version": "number"
  }
]

ag stream show

{
  "policy_version": "number",
  "stream": {
    "created_at": "number",
    "created_by": "string",
    "name": "string",
    "state": {
      "head": "string",
      "version": "number"
    }
  }
}

ag sync

ag sync

{
  "conflicts": [
    {
      "kind": "string",
      "message": "string",
      "path": "string"
    }
  ],
  "id": "string",
  "status": "string",
  "to": "string"
}

ag task

ag task cancel

{
  "state": "string",
  "task": "string"
}

ag task create

{
  "created_at": "number",
  "created_by": "string",
  "description": "string",
  "id": "string",
  "owner": "null",
  "scope": [
    "string"
  ],
  "state": "string",
  "title": "string",
  "updated_at": "number"
}

ag task depend

{
  "depends_on": "string",
  "task": "string"
}

ag task done

{
  "state": "string",
  "task": "string"
}

ag task list

[
  {
    "created_at": "number",
    "created_by": "string",
    "description": "string",
    "id": "string",
    "owner": "null",
    "scope": [
      "string"
    ],
    "state": "string",
    "title": "string",
    "updated_at": "number"
  }
]

ag task ready

[
  {
    "created_at": "number",
    "created_by": "string",
    "description": "string",
    "id": "string",
    "owner": "null",
    "scope": [
      "string"
    ],
    "state": "string",
    "title": "string",
    "updated_at": "number"
  }
]

ag trace

ag trace

[
  {
    "action": "string",
    "actor": "string",
    "details": "string",
    "hash": "string",
    "prev_hash": "string",
    "seq": "number",
    "target": "string",
    "timestamp": "number"
  }
]

ag unpin

ag unpin

{
  "unpinned": "string"
}

ag validate

ag validate keygen

{
  "identity": "string",
  "key_file": "string",
  "name": "string",
  "public_key": "string"
}

ag validate list

[
  {
    "check_name": "string",
    "environment_digest": "string",
    "id": "string",
    "issued_at": "number",
    "issuer": "string",
    "payload": {
      "check": "string",
      "environment_digest": "string",
      "id": "string",
      "issued_at": "number",
      "issuer": "string",
      "policy_version": "number",
      "public_key": "string",
      "result": "string",
      "signature": "string",
      "tree_id": "string"
    },
    "policy_version": "number",
    "public_key": "string",
    "result": "string",
    "signature": "string",
    "tree_id": "string"
  }
]

ag validate run

{
  "check": "string",
  "environment_digest": "string",
  "id": "string",
  "issued_at": "number",
  "issuer": "string",
  "policy_version": "number",
  "public_key": "string",
  "result": "string",
  "signature": "string",
  "tree_id": "string"
}

ag verify

ag verify

{
  "audit_entries": "number",
  "audit_head": "string",
  "changesets_checked": "number",
  "heads_recomputed": "number",
  "issues": [],
  "objects_checked": "number"
}

ag version

ag version

{
  "arch": "string",
  "json_schema": "number",
  "os": "string",
  "protocol": "string",
  "version": "string"
}

ag workspace

ag workspace create

{
  "base": "string",
  "created_at": "number",
  "head": "string",
  "name": "string",
  "owner": "string",
  "stream": "string",
  "updated_at": "number"
}

ag workspace list

[
  {
    "base": "null|string",
    "created_at": "number",
    "head": "string",
    "name": "string",
    "owner": "string",
    "stream": "string",
    "updated_at": "number"
  }
]

ag workspace remove

{
  "removed": "string"
}