autopilot-ai 2.0.0 → 2.1.0

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 CHANGED
@@ -390,7 +390,6 @@ autopilot
390
390
  | `/mode edit\|plan\|auto` | Switch permission mode |
391
391
  | `/shell auto\|bash\|cmd\|powershell` | Show or set the shell for the bash tool |
392
392
  | `/thinking low\|medium\|high` | Reasoning effort (persists) |
393
- | `/theme` | Interactive theme picker (`Ctrl+T`) |
394
393
  | `/resume` | Pick a past conversation to restore |
395
394
  | `/compact` | Summarize older turns to free context |
396
395
  | `/init` | Scan repo and write `KIMI.md` project context |
@@ -401,9 +400,10 @@ autopilot
401
400
  | `/provider` | List providers, or switch with `/provider <id> [key]` (see [Providers](#providers)) |
402
401
  | `/jev` | Ask Jev for a typed, scoped one-shot decision |
403
402
  | `/subagents` | List running subagents; `/subagents cancel <n>\|all` stops them; `/subagents off\|suggest\|auto` sets the delegation policy (default: `auto`) |
404
- | `/now` | Run your latest queued message now instead of after the current turn (also `Ctrl+G` in Ink) |
403
+ | `/now` | Run your latest queued message now instead of after the current turn |
405
404
  | `/key` | Show the active provider's key — on OpenRouter with spend and credit (`/key set <key>`, `/key clear`) |
406
405
  | `/cost` | Show cost by session, day, month and all time (OpenRouter-confirmed, or estimated from the provider's prices) |
406
+ | `/good` / `/bad` `[note]` | Rate the last turn; recorded in the session trace when [tracing](#session-traces-and-evals) is on |
407
407
  | `/update` | Check for updates |
408
408
  | `/help` | List all commands |
409
409
 
@@ -428,10 +428,8 @@ Type `!` followed by a command (for example `! gh auth login`) to run it in your
428
428
  | `Ctrl+C` / `Esc` | Interrupt current turn when busy; exit when idle |
429
429
  | `Ctrl+R` | Toggle reasoning display |
430
430
  | `Ctrl+O` | Toggle verbose tool output |
431
- | `Ctrl+T` | Open theme picker |
432
431
  | `Shift+Tab` | Cycle mode (edit → plan → auto) |
433
432
  | `↑` / `↓` | Walk prompt history |
434
- | `Ctrl+G` | While the agent works: run your latest queued message now instead of after the turn |
435
433
 
436
434
  ### Messages sent while the agent is working
437
435
 
@@ -439,7 +437,7 @@ A message you send mid-turn is triaged instead of always waiting in line:
439
437
 
440
438
  - **interrupt** ("stop, that's the wrong file"): the turn stops at the next safe point and your message runs next. Running subagents are never cancelled by an interrupt; while they run, the message is delivered as soon as they finish.
441
439
  - **steer** ("also handle the empty case"): folded into the current task at the agent's next step.
442
- - **queue** ("after this, update the changelog", or anything unclear): runs as its own turn afterwards. The queue shows `Ctrl+G run this now` so you can promote it.
440
+ - **queue** ("after this, update the changelog", or anything unclear): runs as its own turn afterwards. Send `/now` to promote it.
443
441
  - **aside** ("how's it going?"): answered from the current state without disturbing the turn.
444
442
 
445
443
  Clear phrasing is decided instantly; ambiguous messages get a quick model check (OpenRouter only), and anything uncertain is queued. Use `/subagents cancel <n>` to stop a single subagent.
@@ -498,6 +496,33 @@ Each log entry maps to one OTel `LogRecord`. Correlation IDs
498
496
  encoding, and a `service.name=kimiflare` + `service.version` pair sits
499
497
  on the resource.
500
498
 
499
+ ## Session traces and evals
500
+
501
+ Autopilot can record its own sessions so you can see how it performs on your work, and compare setups on your own tasks. Everything stays on your machine.
502
+
503
+ ### Session traces
504
+
505
+ Tracing is off by default. Turn it on for one run with `KIMIFLARE_TRACE=1`, or always with `"trace": { "enabled": true }` in `~/.config/kimiflare/config.json`. Each session then writes a `trace.jsonl` under `~/.local/share/kimiflare/traces/` (`KIMIFLARE_TRACE_DIR` or `trace.root` to change it), one event per line:
506
+
507
+ - every model request and response, with tokens, cost and latency
508
+ - tool calls and their results, and each permission decision
509
+ - compactions, completion checks, subagents and turn ends
510
+ - **outcome signals:** the git changes a session made, test, lint, typecheck and build commands and whether they passed, your `/good` and `/bad` ratings (with an optional note), and whether your next message corrected the agent or told it to carry on
511
+
512
+ Large bodies are stored once, by hash, next to the trace. Likely secrets are redacted before anything is written, nothing is uploaded, and old traces are pruned automatically: after 90 days, above 200 MB for one session, or when all traces pass 2 GB.
513
+
514
+ ### Evals
515
+
516
+ `autopilot eval` runs Autopilot headlessly on a set of tasks and compares two configurations: a model, a setting, or a harness change.
517
+
518
+ ```bash
519
+ autopilot eval run --tasks evals/tasks/autopilot-bench --config evals/configs/baseline.json --model <id> --out /tmp/eval-a
520
+ autopilot eval run --tasks evals/tasks/autopilot-bench --config evals/configs/my-change.json --model <id> --out /tmp/eval-b
521
+ autopilot eval compare /tmp/eval-a/results.jsonl /tmp/eval-b/results.jsonl
522
+ ```
523
+
524
+ Each task is a JSON file naming a repo, a base commit, a prompt and a test command. Every run gets its own git worktree with tracing forced on, and the task passes if the test exits 0. `eval compare` prints success rates with a paired significance test, cost, turns and the tasks that flipped. This repository ships `autopilot-bench`, twenty tasks mined from its own merged pull requests; see [evals/README.md](evals/README.md) for the task format and how to build a set from your own repo.
525
+
501
526
  ## Hooks
502
527
 
503
528
  autopilot can fire shell commands at these points, configured