Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .cursor/skills/verify-anyr/artifacts/routing-filters/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Proof: routing-filters (#43)

Feature: `routing-filters`
Entry points driven: `anyr menu --dump-tui`, `anyr models --dump-tui`, `anyr config --dump-tui`, `anyr claude --dry-run --yes --model anyrouter/auto`, `anyr claude --dry-run --yes --model anyrouter/free`, PTY `anyr menu` (focus + exacto toggle)
Harness: `.cursor/skills/verify-anyr/control-anyr` (`launch`, `doctor`, `cli`, `test`, `pty`, `cleanup`)
Binary: `target/debug/anyr` from this checkout (`0.1.11`)
Isolated home: `/tmp/anyr-verify-20260903-130039-7117/home` (removed by cleanup)

## Commands

```bash
.cursor/skills/verify-anyr/control-anyr launch
.cursor/skills/verify-anyr/control-anyr doctor
.cursor/skills/verify-anyr/control-anyr test -- --lib --test cli
.cursor/skills/verify-anyr/control-anyr cli --out artifacts/routing-filters/menu-dump.txt -- menu --dump-tui
.cursor/skills/verify-anyr/control-anyr cli --out artifacts/routing-filters/models-dump.txt -- models --dump-tui
.cursor/skills/verify-anyr/control-anyr cli --out artifacts/routing-filters/config-dump.txt -- config --dump-tui
# write agents.claude provider.sort / require_params / min_context (and pin anyrouter/auto)
.cursor/skills/verify-anyr/control-anyr cli --out artifacts/routing-filters/menu-dump-after.txt -- menu --dump-tui
.cursor/skills/verify-anyr/control-anyr cli --out artifacts/routing-filters/claude-auto.txt -- claude --dry-run --yes --model anyrouter/auto
.cursor/skills/verify-anyr/control-anyr cli --out artifacts/routing-filters/claude-free.txt -- claude --dry-run --yes --model anyrouter/free
.cursor/skills/verify-anyr/control-anyr pty start -- menu
.cursor/skills/verify-anyr/control-anyr pty send Down # retarget configure to codex
.cursor/skills/verify-anyr/control-anyr pty send Up
.cursor/skills/verify-anyr/control-anyr pty send --literal 'exa'
.cursor/skills/verify-anyr/control-anyr pty send Enter # toggle claude exacto off
.cursor/skills/verify-anyr/control-anyr pty stop
.cursor/skills/verify-anyr/control-anyr cleanup
```

## Results

| Artifact | Exit | Observable |
| --- | --- | --- |
| `menu-dump.txt` | 0 | `LAUNCH` before `CONFIGURE`. Rows `exacto` / `tools` / `1M ctx` (off). No `most used`. Key masked. |
| `models-dump.txt` | 0 | Picker pins `anyrouter/auto`. No `most used`. |
| `config-dump.txt` | 0 | Settings chrome; default model `anyrouter/auto`. |
| `config-after-toggles.yaml` | — | `agents.claude` has `provider.sort: exacto`, `require_params: tools`, `min_context: 1000000`. `agents.codex` unchanged (`default_model: auto` only). |
| `menu-dump-after.txt` | 0 | Claude `anyrouter/auto` plus truncated exacto flags. CONFIGURE `on · for claude`. `LAUNCH` still above `CONFIGURE`. |
| `claude-auto.txt` | 0 | `command: claude`, `ANTHROPIC_MODEL=anyrouter/auto`, `CLAUDE_CODE_EXTRA_BODY={"min_context":1000000,"provider":{"sort":"exacto"},"require_params":["tools"]}`. Key redacted. Did not spawn Claude. |
| `claude-free.txt` | 0 | Same extra body. `ANTHROPIC_MODEL=anyrouter/free`. Did not spawn Claude. |
| `pane-home.txt` | PTY | Live home: `LAUNCH` + `CONFIGURE · CLAUDE` together. exacto/tools/1M `on · for claude`. |
| `pane-focus-codex.txt` | PTY | Down retargets to `CONFIGURE · CODEX` with `off · for codex` (does not copy claude's on). Launch list still visible. |
| `pane-filter-exacto.txt` | PTY | Typeahead `exa` highlights the exacto row; launch rows remain on screen. |
| `config-after-pty-toggle.yaml` | — | Enter cleared `provider.sort` on claude. `require_params` / `min_context` remain. Codex sibling unchanged. |

`cargo test --locked --lib --test cli`: 186 lib + 68 cli tests passed.

No `anyr claude` without `--dry-run`. No invented catalog ids. ox-alpha not used on the launch path (`--model anyrouter/auto` and `anyrouter/free` only).
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
command: claude
args: []
env:
ANTHROPIC_AUTH_TOKEN=sk-ar-...-key
ANTHROPIC_BASE_URL=https://anyrouter.dev/api
ANTHROPIC_DEFAULT_FABLE_MODEL=anthropic/claude-fable-5
ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION=Fable alias + fallback
ANTHROPIC_DEFAULT_HAIKU_MODEL=anthropic/claude-haiku-4.5
ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION=Background & subagents
ANTHROPIC_DEFAULT_OPUS_MODEL=anthropic/claude-opus-4.6
ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION=Opus alias
ANTHROPIC_DEFAULT_SONNET_MODEL=anthropic/claude-sonnet-4.6
ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION=Sonnet alias
ANTHROPIC_MODEL=anyrouter/auto
ANYROUTER_EXTRA_BODY={"min_context":1000000,"provider":{"sort":"exacto"},"require_params":["tools"]}
ANYROUTER_MODEL_MODE=auto
ANYROUTER_PINNED_PRESET=@preset/coding-stack
API_TIMEOUT_MS=3000000
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
CLAUDE_CODE_EXTRA_BODY={"min_context":1000000,"provider":{"sort":"exacto"},"require_params":["tools"]}
CLAUDE_CODE_SUBAGENT_MODEL=anthropic/claude-haiku-4.5
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
command: claude
args: []
env:
ANTHROPIC_AUTH_TOKEN=sk-ar-...-key
ANTHROPIC_BASE_URL=https://anyrouter.dev/api
ANTHROPIC_DEFAULT_FABLE_MODEL=anyrouter/free
ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION=Fable alias + fallback
ANTHROPIC_DEFAULT_HAIKU_MODEL=anyrouter/free
ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION=Background & subagents
ANTHROPIC_DEFAULT_OPUS_MODEL=anyrouter/free
ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION=Opus alias
ANTHROPIC_DEFAULT_SONNET_MODEL=anyrouter/free
ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION=Sonnet alias
ANTHROPIC_MODEL=anyrouter/free
ANYROUTER_EXTRA_BODY={"min_context":1000000,"provider":{"sort":"exacto"},"require_params":["tools"]}
ANYROUTER_MODEL_MODE=concrete
ANYROUTER_PINNED_PRESET=@preset/coding-stack
API_TIMEOUT_MS=3000000
CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
CLAUDE_CODE_EXTRA_BODY={"min_context":1000000,"provider":{"sort":"exacto"},"require_params":["tools"]}
CLAUDE_CODE_SUBAGENT_MODEL=anyrouter/free
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
active_profile: default
auto_update: false
channel: stable
profiles:
default:
api_key: sk-ar-v1-verify-fixture-not-a-real-key
default_model: auto
work:
api_key: sk-ar-v1-verify-work-fixture-not-a-real-key
default_model: anthropic/claude-sonnet-4.6
agents:
claude:
default_model: anyrouter/auto
require_params: tools
min_context: 1000000
codex:
default_model: auto
tools:
claude:
command: claude
base_url_env: ANTHROPIC_BASE_URL
auth_env: ANTHROPIC_AUTH_TOKEN
model_env: ANTHROPIC_MODEL
base_suffix: ""
enable_gateway_model_discovery: true
shadow_env: ANTHROPIC_API_KEY
codex:
command: codex
base_url_env: OPENAI_BASE_URL
auth_env: OPENAI_API_KEY
model_env: OPENAI_MODEL
base_suffix: /v1
enable_gateway_model_discovery: false
shadow_env: OPENAI_API_KEY
grok:
command: grok
base_url_env: GROK_MODELS_BASE_URL
auth_env: GROK_CODE_XAI_API_KEY
model_env: null
base_suffix: /v1
enable_gateway_model_discovery: false
shadow_env: null
opencode:
command: opencode
base_url_env: OPENAI_BASE_URL
auth_env: OPENAI_API_KEY
model_env: OPENAI_MODEL
base_suffix: /v1
enable_gateway_model_discovery: false
shadow_env: null
pi:
command: pi
base_url_env: OPENAI_BASE_URL
auth_env: ANYROUTER_API_KEY
model_env: null
base_suffix: /v1
enable_gateway_model_discovery: false
shadow_env: null
pool:
command: pool
base_url_env: POOLSIDE_STANDALONE_BASE_URL
auth_env: POOLSIDE_API_KEY
model_env: POOLSIDE_STANDALONE_MODEL
base_suffix: /v1
enable_gateway_model_discovery: false
shadow_env: OPENAI_API_KEY
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Verification scaffolding. Copied into an isolated ANYROUTER_HOME by
# control-anyr launch. Not a live AnyRouter credential.
active_profile: default
auto_update: false
channel: stable
profiles:
default:
api_key: sk-ar-v1-verify-fixture-not-a-real-key
default_model: auto
work:
api_key: sk-ar-v1-verify-work-fixture-not-a-real-key
default_model: anthropic/claude-sonnet-4.6
agents:
claude:
default_model: anyrouter/auto
provider:
sort: exacto
require_params: tools
min_context: 1000000
codex:
default_model: auto
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
╭ ▲ Config ────────────────────────────────────────────────────────╮
│account default │
│credits - │
│file /tmp/anyr-verify-20260903-130039-7117/home/config.yaml │
│ │
│[general] claude codex grok opencode pi pool │
│ │
├──────────────────────────────────────────────────────────────────┤
│ │
│ ACCOUNT │
│◆ account default │
│ api key sk-ar-v1-verif…-key │
│ │
│ MODEL │
│ default anyrouter/auto │
│ │
│ AGENT │
│ coding agent claude │
│ on PATH claude, codex │
│ │
│ GENERAL │
│ auto-update disabled │
│ update channel stable │
├──────────────────────────────────────────────────────────────────┤
│tab agent ↑↓ move ↵ edit x reset q close │
╰──────────────────────────────────────────────────────────────────╯
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
10 changes: 10 additions & 0 deletions .cursor/skills/verify-anyr/artifacts/routing-filters/doctor.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ok binary /workspace/target/debug/anyr
ok version 0.1.11 (built 2026-09-03 13:01:14)
ok help anyr --help names CORE COMMANDS / LAUNCH
ok isolated ANYROUTER_HOME=/tmp/anyr-verify-20260903-130039-7117/home
ok config /tmp/anyr-verify-20260903-130039-7117/home/config.yaml
ok config_path config path=/tmp/anyr-verify-20260903-130039-7117/home/config.yaml
ok whoami whoami shows masked default profile
ok update_guard ANYR_NO_UPDATE=1 ANYR_NO_CATALOG=1
ok pty stopped
ok paid_guard do not run anyr claude/codex/… without --dry-run
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
╭ anyr ────────────────────────────────────────────────────────────────╮
│ ▄▄ ▄▄▄ account default │
│ ▄█▀▀█▄▄█▀ credits - │
│ ▀▀ ▀▀▀▀ │
├──────────────────────────────────────────────────────────────────────┤
│❯ █ │
├──────────────────────────────────────────────────────────────────────┤
│ LAUNCH │
│◆ ⚡ claude anyrouter/auto · default · sk-ar-v1-verif…-key · exa…│
│ ⚡ codex anyrouter/auto · default · sk-ar-v1-verif…-key │
│ │
│ CONFIGURE · CLAUDE │
│ ◆ model… for claude │
│ ⇄ account… for claude │
│ 🔑 key… for claude │
│ ◇ exacto on · for claude │
│ ◇ tools on · for claude │
│ ◇ 1M ctx on · for claude │
│ │
│ MORE │
│ ⬇ install… install a coding agent │
│ ⚙ config… accounts · keys · agent │
│ ✕ quit esc works too │
├──────────────────────────────────────────────────────────────────────┤
│type to filter ↑↓ pick agent ↵ launch / switch esc quit │
╰──────────────────────────────────────────────────────────────────────╯
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
26 changes: 26 additions & 0 deletions .cursor/skills/verify-anyr/artifacts/routing-filters/menu-dump.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
╭ anyr ────────────────────────────────────────────────────────────────╮
│ ▄▄ ▄▄▄ account default │
│ ▄█▀▀█▄▄█▀ credits - │
│ ▀▀ ▀▀▀▀ │
├──────────────────────────────────────────────────────────────────────┤
│❯ █ │
├──────────────────────────────────────────────────────────────────────┤
│ LAUNCH │
│◆ ⚡ claude stealth/ox-alpha · default · sk-ar-v1-verif…-key │
│ ⚡ codex anyrouter/auto · default · sk-ar-v1-verif…-key │
│ │
│ CONFIGURE · CLAUDE │
│ ◆ model… for claude │
│ ⇄ account… for claude │
│ 🔑 key… for claude │
│ ◇ exacto off · for claude │
│ ◇ tools off · for claude │
│ ◇ 1M ctx off · for claude │
│ │
│ MORE │
│ ⬇ install… install a coding agent │
│ ⚙ config… accounts · keys · agent │
│ ✕ quit esc works too │
├──────────────────────────────────────────────────────────────────────┤
│type to filter ↑↓ pick agent ↵ launch / switch esc quit │
╰──────────────────────────────────────────────────────────────────────╯
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
▲ Default model
search:
────────────────────────────────────────────────
◆ anyrouter/auto
type to search ↑↓ move ↵ select esc cancel
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@



┌ anyr ────────────────────────────────────────────────────────────────┐
│ │
│ ▄▄ ▄▄▄ account default │
│ ▄█▀▀█▄▄█▀ credits (unknown) │
│ ▀▀ ▀▀▀▀ │
│ ──────────────────────────────────────────────────────────────────── │
│ ❯ exa█ │
│ │
│ CONFIGURE · CLAUDE │
│ ❯ ◇ exacto on · for claude │
│ │
│ LAUNCH │
│ ⚡ claude anyrouter/auto · default · sk-ar-v1-verif…-key · e │
│ ⚡ codex anyrouter/auto · default · sk-ar-v1-verif…-ke │
│ │
│ type to filter ↑↓ pick agent ↵ launch / switch esc quit │
│ │
└──────────────────────────────────────────────────────────────────────┘
Loading
Loading