ostraka 1.3.0

Run agent fleets you can actually review.
# GitHub Copilot CLI.
#
# `--allow-all-tools` is what the CLI itself requires for non-interactive use, so
# the author invocation carries it and the reviewer's deliberately does not:
# without it no tool runs unconfirmed, which is exactly the reviewer's posture.
#
# `--disable-builtin-mcps` drops the GitHub MCP server, which reaches the
# operator's GitHub account and has nothing to do with the change under review.
# It is the only isolation this CLI offers that does not cost something else.
# The two that do are left out on purpose, and named here because `ostraka init`
# writes this file on its own and a profile should carry its own trade-offs:
#
# - `--no-custom-instructions` drops the operator's instruction files and the
#   repository's own AGENTS.md together. Losing the repository's rules costs
#   more than it buys on a machine with no user-level instructions file at all.
# - Relocating its config home (`XDG_CONFIG_HOME`) logs the CLI out, because
#   `config.json` holds the login as well as the default model. The way back in
#   is `GH_TOKEN` in the environment, which is the operator's call to make and
#   not a profile's.
id = "copilot-cli"
command = "copilot"

args = [
    "-p",
    "{{prompt}}",
    "--allow-all-tools",
    "--disable-builtin-mcps",
    "--no-color",
    "--log-level",
    "none",
]

review_args = [
    "-p",
    "{{prompt}}",
    "--disable-builtin-mcps",
    "--no-color",
    "--log-level",
    "none",
]

model_args = ["--model", "{{model}}"]
# This CLI keeps its login beside its configuration, and the configuration
# directory is where XDG puts it — so an operator who moves XDG has moved the
# login, and the name has to come through. The tokens are the documented way in
# when there is no stored login at all.
inherit_env = [
    "COPILOT_GITHUB_TOKEN",
    "GH_TOKEN",
    "GITHUB_TOKEN",
    "XDG_CONFIG_HOME",
    "XDG_STATE_HOME",
]

event_format = "none"

# `--silent` is gone from both invocations because it suppresses the usage
# summary along with the rest of the stats. It cost nothing to drop: the stats
# go to stderr, so stdout is still only the reply, and the verdict is found by
# its marker rather than by being the first line.
#
# This CLI writes the count before the label — `7.5k input, 4 output` — and
# rounds it. `approximate` says so, because a total summed from rounded parts is
# an estimate and a status line should not imply otherwise.
[usage]
stream = "stderr"
shape = "text"
number = "before"
input = ["input", "cache read"]
output = "output"
approximate = true

[capabilities]
headless = true
streams_json = false
resumable = true