autopilot-ai 1.30.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
@@ -87,6 +87,8 @@ npx autopilot-ai
87
87
 
88
88
  Requires Node.js ≥ 20.
89
89
 
90
+ To pick up an earlier conversation, run `autopilot resume <id>` (the exact command is printed when you exit), `autopilot resume` to choose one from this directory, or `autopilot -c` for the most recent one. Inside autopilot, `/resume` does the same.
91
+
90
92
  ### Providers
91
93
 
92
94
  | Provider | id | Key | Notes |
@@ -388,7 +390,6 @@ autopilot
388
390
  | `/mode edit\|plan\|auto` | Switch permission mode |
389
391
  | `/shell auto\|bash\|cmd\|powershell` | Show or set the shell for the bash tool |
390
392
  | `/thinking low\|medium\|high` | Reasoning effort (persists) |
391
- | `/theme` | Interactive theme picker (`Ctrl+T`) |
392
393
  | `/resume` | Pick a past conversation to restore |
393
394
  | `/compact` | Summarize older turns to free context |
394
395
  | `/init` | Scan repo and write `KIMI.md` project context |
@@ -399,9 +400,10 @@ autopilot
399
400
  | `/provider` | List providers, or switch with `/provider <id> [key]` (see [Providers](#providers)) |
400
401
  | `/jev` | Ask Jev for a typed, scoped one-shot decision |
401
402
  | `/subagents` | List running subagents; `/subagents cancel <n>\|all` stops them; `/subagents off\|suggest\|auto` sets the delegation policy (default: `auto`) |
402
- | `/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 |
403
404
  | `/key` | Show the active provider's key — on OpenRouter with spend and credit (`/key set <key>`, `/key clear`) |
404
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 |
405
407
  | `/update` | Check for updates |
406
408
  | `/help` | List all commands |
407
409
 
@@ -426,10 +428,8 @@ Type `!` followed by a command (for example `! gh auth login`) to run it in your
426
428
  | `Ctrl+C` / `Esc` | Interrupt current turn when busy; exit when idle |
427
429
  | `Ctrl+R` | Toggle reasoning display |
428
430
  | `Ctrl+O` | Toggle verbose tool output |
429
- | `Ctrl+T` | Open theme picker |
430
431
  | `Shift+Tab` | Cycle mode (edit → plan → auto) |
431
432
  | `↑` / `↓` | Walk prompt history |
432
- | `Ctrl+G` | While the agent works: run your latest queued message now instead of after the turn |
433
433
 
434
434
  ### Messages sent while the agent is working
435
435
 
@@ -437,7 +437,7 @@ A message you send mid-turn is triaged instead of always waiting in line:
437
437
 
438
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.
439
439
  - **steer** ("also handle the empty case"): folded into the current task at the agent's next step.
440
- - **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.
441
441
  - **aside** ("how's it going?"): answered from the current state without disturbing the turn.
442
442
 
443
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.
@@ -496,6 +496,33 @@ Each log entry maps to one OTel `LogRecord`. Correlation IDs
496
496
  encoding, and a `service.name=kimiflare` + `service.version` pair sits
497
497
  on the resource.
498
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
+
499
526
  ## Hooks
500
527
 
501
528
  autopilot can fire shell commands at these points, configured