car-runtime 0.55.0 → 0.56.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/agent-loop.d.ts +8 -1
- package/agent-loop.js +136 -38
- package/agent-loop.mjs +1 -1
- package/daemon-wrappers.js +528 -8
- package/docs/CLI.md +82 -36
- package/index.d.ts +331 -33
- package/package.json +1 -1
package/docs/CLI.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> **Generated file — do not hand-edit below the task map.** Produced by
|
|
4
4
|
> `scripts/gen-cli-docs.sh` from `car --help` / `car help <command>` on car
|
|
5
|
-
> 0.
|
|
5
|
+
> 0.55.0 (2026-09-24). Every subcommand the installed binary reports is
|
|
6
6
|
> below; a new subcommand cannot ship without appearing here the next time
|
|
7
7
|
> this script runs. To regenerate: `bash scripts/gen-cli-docs.sh`.
|
|
8
8
|
>
|
|
9
|
-
> 74 top-level commands,
|
|
9
|
+
> 74 top-level commands, 124 nested subcommands
|
|
10
10
|
> (one level deep) — counted from the live binary at generation time, not
|
|
11
11
|
> typed by hand.
|
|
12
12
|
|
|
@@ -50,8 +50,7 @@ Delivered revisions remain available as the base for follow-up conversation task
|
|
|
50
50
|
the verifiable outcome contract, and CAR delivers it in an isolated git
|
|
51
51
|
worktree (natively or via an installed frontier CLI). Apply reviewed results
|
|
52
52
|
to your checkout, preserving HEAD and the staged index, or explicitly request
|
|
53
|
-
`--delivery branch` to publish a result branch
|
|
54
|
-
defaults to, so an unattended run never writes into your checkout.
|
|
53
|
+
`--delivery branch` to publish a result branch.
|
|
55
54
|
- [`car code-task`](#car-code-task) — run a coder session headlessly and in
|
|
56
55
|
this process, driving to a green outcome contract and delivering a PR.
|
|
57
56
|
- [`car coder-ab`](#car-coder-ab) — A/B-test CAR's coder against an external
|
|
@@ -184,7 +183,7 @@ commands on a cadence via launchd / cron / schtasks).
|
|
|
184
183
|
| [`car tools`](#car-tools) | Invoke CAR's built-in runtime tools directly, in-process and without a daemon |
|
|
185
184
|
| [`car code-task`](#car-code-task) | Run a coder session headlessly and IN THIS PROCESS: derive or accept an outcome contract, work in a git worktree until the runtime's own re-run of that contract is green, then deliver the result as a pull request |
|
|
186
185
|
| [`car coder-ab`](#car-coder-ab) | A/B-test CAR's coder against an external agent (Codex / Claude Code) over a corpus, and grow that corpus from git history — the productionized dogfooding loop (docs/proposals/coder-ab-dogfood.md) |
|
|
187
|
-
| [`car keys`](#car-keys) | Store cloud-provider API keys in the OS keychain, so a native-app user never sets an environment variable (docs/proposals/native-secrets-no-env.md).
|
|
186
|
+
| [`car keys`](#car-keys) | Store cloud-provider API keys in the OS keychain, so a native-app user never sets an environment variable (docs/proposals/native-secrets-no-env.md). Runtime reads process env first, then `$CAR_HOME/env`, then keychain |
|
|
188
187
|
| [`car heal`](#car-heal) | Inspect and operate the daemon's self-healing REPAIR loop: it reads a configured issue tracker, runs a coder session, gates the result on a multi-model panel, and opens a pull request. It never merges |
|
|
189
188
|
| [`car selfheal`](#car-selfheal) | Inspect and operate the daemon's deterministic self-healing detector |
|
|
190
189
|
| [`car daemon`](#car-daemon) | Start the daemon server (delegates to car-server binary) |
|
|
@@ -201,10 +200,10 @@ commands on a cadence via launchd / cron / schtasks).
|
|
|
201
200
|
| [`car identity`](#car-identity) | Show or change the name your assistant answers to — in conversation, in the host apps, and as its voice wake word |
|
|
202
201
|
| [`car init`](#car-init) | Initialize a .car/ project directory for team-shared configuration |
|
|
203
202
|
| [`car doctor`](#car-doctor) | Diagnose (and optionally repair) a CAR install: corrupt model weights, unparseable `~/.car` state files, version skew, and leftover files from a previous install. Runs entirely against the local filesystem — no daemon required, so it works even when `car-server` won't start |
|
|
204
|
-
| [`car feedback`](#car-feedback) | Report a problem to Parslee. Captures a redacted diagnostic bundle (your description, the `car doctor` report, bounded log tails, and a version stamp) into the local outbox at `~/.car/feedback-outbox` — nothing is uploaded by this command; queued reports send when CAR can reach Parslee. Works with the daemon down, like `car doctor`. macOS-
|
|
203
|
+
| [`car feedback`](#car-feedback) | Report a problem to Parslee. Captures a redacted diagnostic bundle (your description, the `car doctor` report, bounded log tails, and a version stamp) into the local outbox at `~/.car/feedback-outbox` — nothing is uploaded by this command; queued reports send when CAR can reach Parslee. Works with the daemon down, like `car doctor`. macOS and Windows; Linux needs its own leak-path audit first |
|
|
205
204
|
| [`car update`](#car-update) | Update the locally-installed `car` CLI and its sibling `car-server` daemon to the latest release (or `--version <X.Y.Z>`), in place — regardless of how they were installed. Reconciles the drift that otherwise builds up when one channel updates and another doesn't (e.g. CarHost.app auto-updates its bundled daemon via Sparkle but leaves the `/usr/local/bin/car` CLI behind). The npm/PyPI `car-runtime` client packages are separate — this command never touches them; `car doctor` reports which of your agents have drifted, and prints the exact command per environment. Both remedies pin: `npm install car-runtime@<version>` (`npm update` CANNOT cross a 0.x minor — npm reads `^0.41.0` as `>=0.41.0 <0.42.0`, so it is a no-op) and `<venv>/bin/python -m pip install -U car-runtime==<version>` (a bare `-U` can be silently defeated by the consumer's own pin, and the wrong interpreter installs into an environment that does not hold the stale wheel) |
|
|
206
205
|
| [`car purge`](#car-purge) | Remove this CAR install's own state under `~/.car` (config, logs, managed models, binaries) and reap any OS-level schedules CAR installed — for a clean slate before a reinstall. On macOS this also clears CarHost.app's user-level state and resets its privacy (TCC) permissions, so a reinstall really does re-run permission onboarding. NEVER touches the shared HuggingFace model cache (other tools use it); managed models are symlinks into it, so only the links are removed, not the multi-GB blobs. (To uninstall a single contributed agent instead, use `car uninstall <id>`.) |
|
|
207
|
-
| [`car code`](#car-code) | Built-in coding agent: state an intent,
|
|
206
|
+
| [`car code`](#car-code) | Built-in coding agent: state an intent, review a one-screen outcome summary, then start, inspect the full list, revise checks in plain English, approve held network checks, or cancel. CAR works in an isolated git worktree — natively or via an installed frontier CLI. Review and apply results to your checkout, or publish a branch with --delivery branch (which is what --yes does by default — an unattended run never edits your checkout) |
|
|
208
207
|
| [`car board`](#car-board) | Fullscreen supervision board for coder sessions — one screen for every run on this host, whoever started it (`car code`, CarHost, milo, another board). Attach to a run's full history, confirm its outcome contract, answer its questions, approve its diff, or scope work in a repo-grounded discussion first. Closing the board never stops a run |
|
|
209
208
|
| [`car do`](#car-do) | CAR Assistant: a general-purpose agent that works out of the box |
|
|
210
209
|
| [`car policy-check-hook`](#car-policy-check-hook) | Evaluate a host's proposed tool call against `.car/policies/` and answer on stdout with that host's hook decision envelope |
|
|
@@ -471,19 +470,27 @@ Options:
|
|
|
471
470
|
Pin the inference model for this session
|
|
472
471
|
|
|
473
472
|
--max-iterations <MAX_ITERATIONS>
|
|
474
|
-
|
|
473
|
+
Set an explicit operator iteration cap. The default is unbounded; 0 is unbounded. A capped
|
|
474
|
+
run ends `budget_exhausted`, naming usage and cap
|
|
475
475
|
|
|
476
476
|
--browser
|
|
477
477
|
Expose the assistant's browser tools for this run. Off by default; calls remain
|
|
478
478
|
policy-gated and appear in the JSONL event stream
|
|
479
479
|
|
|
480
480
|
--max-session-wall-secs <MAX_SESSION_WALL_SECS>
|
|
481
|
-
|
|
481
|
+
Set an explicit operator session wall-clock cap. The default is unbounded; 0 is unbounded.
|
|
482
|
+
A capped run ends `budget_exhausted`, naming elapsed time and cap
|
|
482
483
|
|
|
483
484
|
--max-check-timeout-secs <MAX_CHECK_TIMEOUT_SECS>
|
|
484
|
-
|
|
485
|
-
that
|
|
486
|
-
|
|
485
|
+
Set an explicit operator cap for one contract check. The default is unbounded. A check
|
|
486
|
+
that reaches the cap is killed and judged red; the model's own `shell` tool keeps its
|
|
487
|
+
separate ceiling regardless
|
|
488
|
+
|
|
489
|
+
--silence-window-secs <SILENCE_WINDOW_SECS>
|
|
490
|
+
Stop the run when nothing makes progress for this many seconds (default 900; 0 disables).
|
|
491
|
+
This is the only time-based stop: a check that prints nothing for this long is killed and
|
|
492
|
+
judged red, and a session silent this long ends `failed` with `failure_kind: "stalled"`,
|
|
493
|
+
naming what it was waiting on
|
|
487
494
|
|
|
488
495
|
--workspace-dir <WORKSPACE_DIR>
|
|
489
496
|
Explicit workspace location. Reused when it is already a valid worktree
|
|
@@ -552,13 +559,11 @@ Options:
|
|
|
552
559
|
diagonal name different tiers (--model openai/gpt-5.4 --external-model gpt-5.5). Differing
|
|
553
560
|
pins are reported as DIFFERENT PINS and are NOT a harness delta
|
|
554
561
|
--iters <ITERS>
|
|
555
|
-
Native arm's repair-iteration cap per task. Defaults to the coder's
|
|
556
|
-
so the A/B measures the coder users actually get
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
gets its CLI's own turn budget (`max_turns: 50` per invocation), so setting this low is a
|
|
561
|
-
silent handicap [default: 8]
|
|
562
|
+
Native arm's repair-iteration cap per task. Defaults to the coder's unbounded shipping
|
|
563
|
+
default (`0`), so the A/B measures the coder users actually get. A positive value is an
|
|
564
|
+
explicit experiment cap; a run whose losses all end at `iteration N/N` is measuring that
|
|
565
|
+
cap, not the harness. The external arm is not capped by this — it gets its CLI's own turn
|
|
566
|
+
budget (`max_turns: 50` per invocation) [default: 0]
|
|
562
567
|
--out-dir <OUT_DIR>
|
|
563
568
|
Directory for the timestamped JSON report [default: bench/results/coder-ab]
|
|
564
569
|
--timeout-secs <TIMEOUT_SECS>
|
|
@@ -574,6 +579,11 @@ Options:
|
|
|
574
579
|
surfaces before continuing
|
|
575
580
|
--fresh
|
|
576
581
|
Ignore any existing checkpoint for this corpus and re-score from scratch
|
|
582
|
+
--external-clone <EXTERNAL_CLONE>
|
|
583
|
+
Declare an external clone a corpus row may point into, as key=path (repeatable). Layered
|
|
584
|
+
over the corpus's `external-clones.toml`; a row names a clone only by its key in
|
|
585
|
+
`provenance.external_clone`, never by path, and a clone that holds the bench tree is
|
|
586
|
+
refused
|
|
577
587
|
--report-issues
|
|
578
588
|
File each durable-fix proposal that clears the reporting bar as an issue on --report-repo,
|
|
579
589
|
skipping signatures already open there. Off by default: a measurement run must not open
|
|
@@ -645,8 +655,8 @@ Options:
|
|
|
645
655
|
|
|
646
656
|
```text
|
|
647
657
|
Store cloud-provider API keys in the OS keychain, so a native-app user never sets an environment
|
|
648
|
-
variable (docs/proposals/native-secrets-no-env.md).
|
|
649
|
-
|
|
658
|
+
variable (docs/proposals/native-secrets-no-env.md). Runtime reads process env first, then
|
|
659
|
+
`$CAR_HOME/env`, then keychain
|
|
650
660
|
|
|
651
661
|
Usage: car keys <COMMAND>
|
|
652
662
|
|
|
@@ -1519,7 +1529,8 @@ Options:
|
|
|
1519
1529
|
Report a problem to Parslee. Captures a redacted diagnostic bundle (your description, the `car
|
|
1520
1530
|
doctor` report, bounded log tails, and a version stamp) into the local outbox at
|
|
1521
1531
|
`~/.car/feedback-outbox` — nothing is uploaded by this command; queued reports send when CAR can
|
|
1522
|
-
reach Parslee. Works with the daemon down, like `car doctor`. macOS
|
|
1532
|
+
reach Parslee. Works with the daemon down, like `car doctor`. macOS and Windows; Linux needs its own
|
|
1533
|
+
leak-path audit first
|
|
1523
1534
|
|
|
1524
1535
|
Usage: car feedback [OPTIONS]
|
|
1525
1536
|
|
|
@@ -1582,9 +1593,10 @@ Options:
|
|
|
1582
1593
|
### car code
|
|
1583
1594
|
|
|
1584
1595
|
```text
|
|
1585
|
-
Built-in coding agent: state an intent,
|
|
1586
|
-
|
|
1587
|
-
|
|
1596
|
+
Built-in coding agent: state an intent, review a one-screen outcome summary, then start, inspect the
|
|
1597
|
+
full list, revise checks in plain English, approve held network checks, or cancel. CAR works in an
|
|
1598
|
+
isolated git worktree — natively or via an installed frontier CLI. Review and apply results to your
|
|
1599
|
+
checkout, or publish a branch with --delivery branch (which is what --yes does by default — an
|
|
1588
1600
|
unattended run never edits your checkout)
|
|
1589
1601
|
|
|
1590
1602
|
Usage: car code [OPTIONS] [INTENT]...
|
|
@@ -1630,11 +1642,12 @@ Options:
|
|
|
1630
1642
|
[possible values: checkout, branch]
|
|
1631
1643
|
|
|
1632
1644
|
-y, --yes
|
|
1633
|
-
Skip the interactive
|
|
1634
|
-
|
|
1645
|
+
Skip the interactive approval menu and delivery prompts. The one-screen outcome summary
|
|
1646
|
+
and outcomes-file path are still shown. Delivery defaults to publishing a branch; pass
|
|
1647
|
+
`--delivery checkout` to apply the result to your checkout unattended
|
|
1635
1648
|
|
|
1636
1649
|
--max-iterations <MAX_ITERATIONS>
|
|
1637
|
-
Max plan→edit→verify iterations before giving up
|
|
1650
|
+
Max plan→edit→verify iterations before giving up. Default is unbounded; 0 = unbounded
|
|
1638
1651
|
|
|
1639
1652
|
--model <MODEL>
|
|
1640
1653
|
Choose a model (see `car models list`). In a conversation, saves the choice for replies
|
|
@@ -1681,9 +1694,15 @@ Usage: car do [OPTIONS] [GOAL]...
|
|
|
1681
1694
|
|
|
1682
1695
|
Arguments:
|
|
1683
1696
|
[GOAL]...
|
|
1684
|
-
What you want done, in plain English. Omit for an interactive REPL
|
|
1697
|
+
What you want done, in plain English. Omit for an interactive REPL, or with --resume to
|
|
1698
|
+
reuse the checkpointed goal
|
|
1685
1699
|
|
|
1686
1700
|
Options:
|
|
1701
|
+
--resume <RUN_ID>
|
|
1702
|
+
Continue a prior one-shot run from its latest durable checkpoint. The original goal may be
|
|
1703
|
+
omitted or repeated exactly; a different goal and a changed model-visible tool set are
|
|
1704
|
+
refused
|
|
1705
|
+
|
|
1687
1706
|
--local
|
|
1688
1707
|
Run on the LOCAL host instead of the default Docker sandbox. Writes and shell then require
|
|
1689
1708
|
--full-access
|
|
@@ -2238,9 +2257,10 @@ Parslee account authentication for CAR cloud-backed features
|
|
|
2238
2257
|
Usage: car auth <COMMAND>
|
|
2239
2258
|
|
|
2240
2259
|
Commands:
|
|
2241
|
-
login Sign in
|
|
2260
|
+
login Sign in to a Parslee account, or with `--provider openai-codex` a ChatGPT
|
|
2261
|
+
subscription, using browser-based OAuth + PKCE
|
|
2242
2262
|
status Show whether CAR has a usable Parslee account token
|
|
2243
|
-
logout Remove stored
|
|
2263
|
+
logout Remove stored account tokens from the OS keychain
|
|
2244
2264
|
orgs List the organizations the signed-in account belongs to (active marked)
|
|
2245
2265
|
switch-org Switch the account's active organization by id (e.g. `org_parslee`)
|
|
2246
2266
|
accounts List all stored Parslee logins (active marked)
|
|
@@ -2254,7 +2274,8 @@ Options:
|
|
|
2254
2274
|
#### car auth login
|
|
2255
2275
|
|
|
2256
2276
|
```text
|
|
2257
|
-
Sign in
|
|
2277
|
+
Sign in to a Parslee account, or with `--provider openai-codex` a ChatGPT subscription, using
|
|
2278
|
+
browser-based OAuth + PKCE
|
|
2258
2279
|
|
|
2259
2280
|
Usage: car auth login [OPTIONS]
|
|
2260
2281
|
|
|
@@ -2264,8 +2285,10 @@ Options:
|
|
|
2264
2285
|
parslee-car]
|
|
2265
2286
|
--callback-port <CALLBACK_PORT> Local callback port. The backend must allow this exact
|
|
2266
2287
|
redirect URI [default: 53682]
|
|
2267
|
-
--provider <PROVIDER> Provider
|
|
2288
|
+
--provider <PROVIDER> Provider (`openai-codex`) or Parslee hint (`microsoft` or
|
|
2268
2289
|
`google`)
|
|
2290
|
+
--no-browser OpenAI Codex only: sign in with a device code on another
|
|
2291
|
+
device instead of opening a browser
|
|
2269
2292
|
--add Add a second Parslee login alongside the current one (forces
|
|
2270
2293
|
the account chooser) instead of replacing it
|
|
2271
2294
|
-h, --help Print help
|
|
@@ -2288,12 +2311,13 @@ Options:
|
|
|
2288
2311
|
#### car auth logout
|
|
2289
2312
|
|
|
2290
2313
|
```text
|
|
2291
|
-
Remove stored
|
|
2314
|
+
Remove stored account tokens from the OS keychain
|
|
2292
2315
|
|
|
2293
|
-
Usage: car auth logout
|
|
2316
|
+
Usage: car auth logout [OPTIONS]
|
|
2294
2317
|
|
|
2295
2318
|
Options:
|
|
2296
|
-
|
|
2319
|
+
--provider <PROVIDER> Credential provider to sign out; accepted value: openai-codex
|
|
2320
|
+
-h, --help Print help
|
|
2297
2321
|
```
|
|
2298
2322
|
|
|
2299
2323
|
#### car auth orgs
|
|
@@ -3616,6 +3640,9 @@ Commands:
|
|
|
3616
3640
|
item's contract on the commit itself, without credentials, before recording it
|
|
3617
3641
|
check Re-verify an item end to end and, if it holds, create `car/mp/<id>-final` for a pull
|
|
3618
3642
|
request. Runs the item's contract here
|
|
3643
|
+
abandon Retire a work item (e.g. its locked contract was wrong). Nothing is deleted: the record
|
|
3644
|
+
is marked abandoned and every later stage and merge check refuses it. Start a new Build to try
|
|
3645
|
+
again
|
|
3619
3646
|
help Print this message or the help of the given subcommand(s)
|
|
3620
3647
|
|
|
3621
3648
|
Options:
|
|
@@ -3717,6 +3744,25 @@ the item's contract here
|
|
|
3717
3744
|
|
|
3718
3745
|
Usage: car mp check [OPTIONS] <ITEM>
|
|
3719
3746
|
|
|
3747
|
+
Arguments:
|
|
3748
|
+
<ITEM>
|
|
3749
|
+
|
|
3750
|
+
Options:
|
|
3751
|
+
--repo <REPO> [default: .]
|
|
3752
|
+
--remote <REMOTE> [default: origin]
|
|
3753
|
+
--push Also push `car/mp/<id>-final` to the remote (never forced), so the pull
|
|
3754
|
+
request can be opened from it
|
|
3755
|
+
-h, --help Print help
|
|
3756
|
+
```
|
|
3757
|
+
|
|
3758
|
+
#### car mp abandon
|
|
3759
|
+
|
|
3760
|
+
```text
|
|
3761
|
+
Retire a work item (e.g. its locked contract was wrong). Nothing is deleted: the record is marked
|
|
3762
|
+
abandoned and every later stage and merge check refuses it. Start a new Build to try again
|
|
3763
|
+
|
|
3764
|
+
Usage: car mp abandon [OPTIONS] <ITEM>
|
|
3765
|
+
|
|
3720
3766
|
Arguments:
|
|
3721
3767
|
<ITEM>
|
|
3722
3768
|
|