@lmctl-ai/lmctl 0.1.341 → 0.2.2

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.
Files changed (182) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/README.md +11 -51
  3. package/data/price-aliases.json +1 -0
  4. package/data/price-data.json +1 -1
  5. package/dist/cli/batch.d.ts +2 -0
  6. package/dist/cli/busy-evidence.d.ts +27 -0
  7. package/dist/cli/chat-cycle.d.ts +59 -0
  8. package/dist/cli/chat-exec.d.ts +83 -0
  9. package/dist/cli/chat-policy.d.ts +22 -0
  10. package/dist/cli/chat.d.ts +23 -0
  11. package/dist/cli/code-resolver.d.ts +8 -0
  12. package/dist/cli/common.d.ts +54 -0
  13. package/dist/cli/context.d.ts +12 -0
  14. package/dist/cli/cost.d.ts +2 -0
  15. package/dist/cli/export.d.ts +2 -0
  16. package/dist/cli/index.d.ts +3 -0
  17. package/dist/cli/index.js +1081 -1891
  18. package/dist/cli/infra.d.ts +78 -0
  19. package/dist/cli/ls.d.ts +2 -0
  20. package/dist/cli/mailbox-cli.d.ts +6 -0
  21. package/dist/cli/managed.d.ts +62 -0
  22. package/dist/cli/mcp-install.d.ts +23 -0
  23. package/dist/cli/mcp.d.ts +2 -0
  24. package/dist/cli/paths.d.ts +50 -0
  25. package/dist/cli/plan-wizard.d.ts +42 -0
  26. package/dist/cli/plan.d.ts +20 -0
  27. package/dist/cli/queue-delivery.d.ts +107 -0
  28. package/dist/cli/ratelimit.d.ts +3 -0
  29. package/dist/cli/remote-fetch.d.ts +7 -0
  30. package/dist/cli/run-queries.d.ts +82 -0
  31. package/dist/cli/running.d.ts +5 -0
  32. package/dist/cli/schema.sql +20 -1
  33. package/dist/cli/script.d.ts +6 -0
  34. package/dist/cli/script.js +2097 -0
  35. package/dist/cli/self-identity.d.ts +25 -0
  36. package/dist/cli/session-idle.d.ts +118 -0
  37. package/dist/cli/status.d.ts +22 -0
  38. package/dist/cli/tail.d.ts +18 -0
  39. package/dist/cli/target-resolver.d.ts +139 -0
  40. package/dist/cli/team-status.d.ts +91 -0
  41. package/dist/cli/teamfile-compat.d.ts +71 -0
  42. package/dist/cli/teamfile-store.d.ts +18 -0
  43. package/dist/cli/teamfile-template.d.ts +40 -0
  44. package/dist/cli/template-env.d.ts +25 -0
  45. package/dist/cli/terminal-lock.d.ts +25 -0
  46. package/dist/cli/terminal.d.ts +23 -0
  47. package/dist/cli/time-filter.d.ts +10 -0
  48. package/dist/cli/update-notifier.d.ts +11 -0
  49. package/dist/cli/version-util.d.ts +2 -0
  50. package/dist/config/seed_templates.d.ts +1 -0
  51. package/dist/db/backfill-event-log.d.ts +26 -0
  52. package/dist/db/delegation.d.ts +37 -0
  53. package/dist/db/escalation_vocab.d.ts +45 -0
  54. package/dist/db/event-log.d.ts +40 -0
  55. package/dist/db/index.d.ts +1213 -0
  56. package/dist/db/inflight-acquire.d.ts +70 -0
  57. package/dist/db/invocation-event-projections.d.ts +65 -0
  58. package/dist/db/ledger-identity.test.d.ts +1 -0
  59. package/dist/db/live-event-projections.d.ts +92 -0
  60. package/dist/db/migrate.d.ts +51 -0
  61. package/dist/db/open-readonly.d.ts +2 -0
  62. package/dist/db/process-liveness.d.ts +37 -0
  63. package/dist/db/sqlite.d.ts +47 -0
  64. package/dist/db/sqlite.test.d.ts +1 -0
  65. package/dist/db/terminal-lock.d.ts +14 -0
  66. package/dist/db/tracked-invocation-reconcile.d.ts +52 -0
  67. package/dist/db/tracked-invocation.d.ts +116 -0
  68. package/dist/mcp/dispatch.d.ts +45 -0
  69. package/dist/mcp/mediation.d.ts +128 -0
  70. package/dist/mcp/path-warning.d.ts +7 -0
  71. package/dist/mcp/server.d.ts +63 -0
  72. package/dist/mcp/tools.d.ts +24 -0
  73. package/dist/providers/adapter.d.ts +265 -0
  74. package/dist/providers/adapters/agy-adapter.d.ts +17 -0
  75. package/dist/providers/adapters/claude-adapter.d.ts +20 -0
  76. package/dist/providers/adapters/codex-adapter.d.ts +22 -0
  77. package/dist/providers/adapters/copilot-adapter.d.ts +16 -0
  78. package/dist/providers/adapters/dsh-adapter.d.ts +89 -0
  79. package/dist/providers/adapters/gemini-adapter.d.ts +44 -0
  80. package/dist/providers/adapters/hermes-adapter.d.ts +71 -0
  81. package/dist/providers/adapters/index.d.ts +35 -0
  82. package/dist/providers/adapters/kimi-adapter.d.ts +16 -0
  83. package/dist/providers/adapters/lmplayer-adapter.d.ts +14 -0
  84. package/dist/providers/adapters/opencode-adapter.d.ts +11 -0
  85. package/dist/providers/adapters/pi-adapter.d.ts +17 -0
  86. package/dist/providers/adapters/print-turn.d.ts +29 -0
  87. package/dist/providers/adapters/qwen-adapter.d.ts +11 -0
  88. package/dist/providers/agy.d.ts +32 -0
  89. package/dist/providers/base-adapter.d.ts +107 -0
  90. package/dist/providers/base.d.ts +12 -0
  91. package/dist/providers/binary-check.d.ts +102 -0
  92. package/dist/providers/bundle.d.ts +118 -0
  93. package/dist/providers/claude-mock.d.ts +90 -0
  94. package/dist/providers/claude.d.ts +21 -0
  95. package/dist/providers/codex-config.d.ts +15 -0
  96. package/dist/providers/codex.d.ts +25 -0
  97. package/dist/providers/config/model-selection-lint.d.ts +45 -0
  98. package/dist/providers/config/team-config.d.ts +183 -0
  99. package/dist/providers/config/types.d.ts +146 -0
  100. package/dist/providers/config/user-config.d.ts +88 -0
  101. package/dist/providers/copilot.d.ts +21 -0
  102. package/dist/providers/debug.d.ts +128 -0
  103. package/dist/providers/dsh-sidecar.d.ts +65 -0
  104. package/dist/providers/dsh-zstd.d.ts +27 -0
  105. package/dist/providers/dsh.d.ts +37 -0
  106. package/dist/providers/frontmatter.d.ts +46 -0
  107. package/dist/providers/gemini-session-reader.d.ts +151 -0
  108. package/dist/providers/gemini.d.ts +39 -0
  109. package/dist/providers/hermes.d.ts +90 -0
  110. package/dist/providers/index.d.ts +421 -0
  111. package/dist/providers/kimi.d.ts +37 -0
  112. package/dist/providers/model-catalog.d.ts +141 -0
  113. package/dist/providers/one-shot-timeout.d.ts +1 -0
  114. package/dist/providers/opencode-config.d.ts +62 -0
  115. package/dist/providers/opencode.d.ts +40 -0
  116. package/dist/providers/parsers/acp.d.ts +47 -0
  117. package/dist/providers/parsers/codex-app-server.d.ts +60 -0
  118. package/dist/providers/parsers/stream-json.d.ts +57 -0
  119. package/dist/providers/passive-readers/agy.d.ts +155 -0
  120. package/dist/providers/passive-readers/copilot.d.ts +173 -0
  121. package/dist/providers/passive-readers/dsh.d.ts +34 -0
  122. package/dist/providers/passive-readers/kimi.d.ts +44 -0
  123. package/dist/providers/passive-readers/opencode.d.ts +89 -0
  124. package/dist/providers/passive-readers/qwen.d.ts +151 -0
  125. package/dist/providers/passive-readers/shared.d.ts +138 -0
  126. package/dist/providers/passive-session-reader.d.ts +188 -0
  127. package/dist/providers/path-utils.d.ts +1 -0
  128. package/dist/providers/pi.d.ts +32 -0
  129. package/dist/providers/pricing.d.ts +107 -0
  130. package/dist/providers/qwen.d.ts +22 -0
  131. package/dist/providers/ratelimit-readings.d.ts +32 -0
  132. package/dist/providers/registry.d.ts +31 -0
  133. package/dist/providers/resume.d.ts +43 -0
  134. package/dist/providers/seed-instruction.d.ts +3 -0
  135. package/dist/providers/self-session-env.d.ts +21 -0
  136. package/dist/providers/session-limit.d.ts +9 -0
  137. package/dist/providers/strip-ansi.d.ts +5 -0
  138. package/dist/providers/transport-errors.d.ts +94 -0
  139. package/dist/providers/transport-lifecycle.d.ts +63 -0
  140. package/dist/providers/transport-wrappers.d.ts +110 -0
  141. package/dist/providers/transports/acp-profiles/config-option-step.d.ts +24 -0
  142. package/dist/providers/transports/acp-profiles/copilot.d.ts +12 -0
  143. package/dist/providers/transports/acp-profiles/gemini.d.ts +22 -0
  144. package/dist/providers/transports/acp-profiles/hermes.d.ts +27 -0
  145. package/dist/providers/transports/acp-profiles/index.d.ts +19 -0
  146. package/dist/providers/transports/acp-profiles/kimi.d.ts +24 -0
  147. package/dist/providers/transports/acp-profiles/opencode.d.ts +26 -0
  148. package/dist/providers/transports/acp-profiles/types.d.ts +258 -0
  149. package/dist/providers/transports/acp-rpc.d.ts +18 -0
  150. package/dist/providers/transports/acp.d.ts +215 -0
  151. package/dist/providers/transports/codex-app-server.d.ts +190 -0
  152. package/dist/providers/transports/hold-open.d.ts +120 -0
  153. package/dist/providers/transports/manager.d.ts +21 -0
  154. package/dist/providers/transports/stream-json.d.ts +162 -0
  155. package/dist/providers/transports/types.d.ts +56 -0
  156. package/dist/providers/types.d.ts +154 -0
  157. package/dist/providers/yolo-contract.d.ts +131 -0
  158. package/dist/script/adapter.d.ts +101 -0
  159. package/dist/script/batch-script.d.ts +7 -0
  160. package/dist/script/index.d.ts +3 -0
  161. package/dist/script/lmscript.d.ts +550 -0
  162. package/dist/shared/policy.d.ts +74 -0
  163. package/dist/shared-lib/db.d.ts +25 -0
  164. package/dist/shared-lib/passive-session-reader.d.ts +2 -0
  165. package/dist/shared-lib/provider-parse.d.ts +6 -0
  166. package/dist/templates/basedir.d.ts +52 -0
  167. package/dist/uri/lmctl_uri.d.ts +38 -0
  168. package/durable-memory/model_selection.md +108 -25
  169. package/examples/README.md +103 -0
  170. package/examples/anonymous-panel.lms +3 -0
  171. package/examples/batch-prompts.txt +9 -0
  172. package/examples/batchscript.lms +67 -0
  173. package/examples/n8n/agent-lib.lms +56 -0
  174. package/examples/n8n/git-lib.lms +93 -0
  175. package/examples/n8n/mock-support.db +0 -0
  176. package/examples/n8n/multi-agent-review.lms +107 -0
  177. package/examples/n8n/news-digest.lms +159 -0
  178. package/examples/n8n/rag-search.lms +163 -0
  179. package/examples/n8n/support-agent.lms +88 -0
  180. package/examples/n8n/ticket-triage.lms +156 -0
  181. package/package.json +13 -17
  182. package/dist/cli/side_effect_classifier.json +0 -19
package/CHANGELOG.md CHANGED
@@ -4,6 +4,137 @@ All notable public-preview changes for `@lmctl-ai/lmctl` are recorded here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ - **Shared output formatting via `@lmctl-ai/lmformat` (behavior).** All
8
+ human-readable CLI output now uses the lmformat library, vendored at
9
+ `vendor/lmctl-ai-lmformat-0.7.0.tgz` until the package is published:
10
+ - `status` and `ls` tables render with auto-sized columns and
11
+ right-aligned numeric columns (replacing hand-computed padding).
12
+ - Token counts are compacted everywhere (`960K in / 85K out (cached:
13
+ 15.8M)` in `cost`, and in `status` single-member view).
14
+ - Durations unify on the two-unit style (`2h 5m`, `3m 12s`), ages carry
15
+ an `ago` suffix (`10m ago`), and week units kick in past 7 days.
16
+ - `running` and `ratelimit` render sectioned grids: standalone section
17
+ headings, a blank line between sections, one measured width set shared
18
+ across sections, column headers printed once above the first section,
19
+ bare cell values (no `model=`/`used`/`resets` in-cell labels), and the
20
+ open-ended timing column last.
21
+ - `ratelimit` reset countdowns are two-unit precise (`in 2d 4h`,
22
+ `13h ago`) and section headings use local `hh:mm:ss` — absolute ISO
23
+ timestamps moved to `--json`.
24
+ - **`ls --format table` MODIFIED is now relative (`3d ago`)** instead of
25
+ an absolute ISO timestamp; use `--format json` for exact timestamps.
26
+ - `--json` output, stderr narration, and stored timestamps are unchanged.
27
+
28
+ ## 0.2.1 — 2026-09-24
29
+
30
+ - **`lmctl batch --bundle` (feature).** Batch can now send all prompts through
31
+ ONE provider process instead of respawning per paragraph, and holds the
32
+ member's in-flight lease for the whole bundle — an interloper chat can no
33
+ longer steal the session between prompts and abort the run. Supported for
34
+ every bundle-capable provider: the ACP five (`gemini`, `copilot`, `opencode`,
35
+ `kimi`, `hermes`), stream-json (`claude`, `qwen`), `codex` (app-server), and
36
+ `dsh` (sidecar). Per-turn bookkeeping (chat pointer, tracked_invocation under
37
+ the batch root, team_chat_log rows with `message_type=batch`) is unchanged.
38
+ Bundle resume is strict everywhere: ACP `session/load` must echo the exact
39
+ teamfile session id, stream-json verifies the on-disk session file's header
40
+ (at open and between prompts), codex disables its thread/start fallback, and
41
+ dsh requires the session file to exist. Cancellation keeps the bundle alive
42
+ where the transport has a cancel verb (ACP `session/cancel`, codex
43
+ `turn/interrupt`) and is terminal where it does not (stream-json, dsh). A
44
+ provider-process exit mid-bundle aborts with the completed prompt count;
45
+ lease loss between prompts aborts with a clear message. Refused (exit 2) for
46
+ agy/pi/lmplayer, and for providers with an `agent=` override in the user
47
+ config.
48
+
49
+ - **lmprice model-catalog integration (feature, non-breaking).** The lmprice
50
+ published dataset (`model_list.json` + `aliases.json`) is now lmctl's model
51
+ source of truth:
52
+ - `lint`/`seed` resolve `model=` for `claude`, `gemini`, `qwen`, and
53
+ `hermes` against the catalog instead of static tested-model lists (which
54
+ are removed). Catalog misses warn
55
+ (`model "x" not found in lmprice catalog … provider may still accept it`)
56
+ and flow through the standard warnings array, so `lint --strict`
57
+ promotes them as before. Deliberately `unresolved` aliases are not
58
+ warnings.
59
+ - **"If we can lint, then we can cost" (operator invariant,
60
+ 2026-09-25).** A recognized-but-unpriceable model (`known-unpriced`)
61
+ is now a lint/seed warning
62
+ (`model "x" is recognized in the lmprice catalog but has no price
63
+ information — cost will be unavailable`, `--strict`-promotable) instead
64
+ of a silent accept that cost then couldn't price. `unresolved` stays
65
+ silent. The lmprice data side is tasked with rejecting such
66
+ null-terminal bindings at publish time.
67
+ - `cost` resolves the session model provider-aware through the same
68
+ catalog: aliases.json pin when present, route preference
69
+ (first-party > litellm > openrouter > manual) otherwise. New JSON fields:
70
+ `priceResolution`, `priceRoute`, `priceProvenance`, `priceEstimated`,
71
+ `costUnavailableReason` (existing fields unchanged). Manual/estimated
72
+ rows are marked; unresolved/known-unpriced report cost-unavailable with
73
+ a reason instead of a guessed suffix match.
74
+ - Price-data loader now manages both published files with independent
75
+ etags, a 6h TTL (`LMCTL_PRICE_TTL`, `0` forces), validated atomic cache
76
+ promotion, and `LMCTL_PRICE_DATA=<dir>` snapshot pinning that disables
77
+ network refresh. The build bundles both files
78
+ (`data/price-aliases.json` is new); the pack ships both.
79
+ - **Best-effort contract (operator, 2026-09-25).** Model validation is
80
+ advisory and not claimed to be 100% current — it can lag provider
81
+ changes in either direction, so lint/seed warn but never error on
82
+ unrecognized or out-of-date models, and cost reports n/a with a reason
83
+ instead of failing. Retired-model example text updated
84
+ (`github-copilot/gpt-5.4` → `github-copilot/gpt-5.5`).
85
+ - **New `ratelimit` command (stateless, real-time).** `lmctl ratelimit
86
+ [provider ...]` queries provider subscription rate limits live via the
87
+ external `lmratelimit` readers (binary resolved from `LMCTL_RATELIMIT_BIN`,
88
+ then `~/repos/tools/lmratelimit/bin/lmratelimit`, then `PATH`; `--timeout
89
+ <seconds>` sets the per-provider timeout, default 15) and renders
90
+ per-provider status, per-bucket used/remaining percentages with EXHAUSTED
91
+ and limit flags, plus credits/spend-control when present. `--json` emits
92
+ the full raw `{"readings": [...]}` payload. Nothing is read from or
93
+ written to any database — no collection, no storage, no forecast.
94
+
95
+ ## 0.2.0 — 2026-09-24
96
+
97
+ - **Breaking CLI consolidation.** Eleven verbs are removed outright and their
98
+ workflows are absorbed into the remaining surface:
99
+ - `refresh` → removed; to re-seed an existing member's prompt, delete its
100
+ `sessionid=` field from the teamfile and re-run `lmctl seed` (plain seed
101
+ touches only members missing a sessionid)
102
+ - `hire` → `plan --member <alias>` (add a member to a teamfile)
103
+ - `clone` → `plan --from <teamfile>` (start a new teamfile from an existing one)
104
+ - `health` → `status <teamfile> [alias]` (team/member health view; the
105
+ `--json` output is versioned as `STATUS_JSON_SCHEMA_VERSION=1`)
106
+ - `team`, `session`, `session-index`, `restore`, `restore-teamfile`,
107
+ `diagnose`, `diagnose-prompt` → removed with no replacement (their duties
108
+ are covered by direct teamfile edits + `lint`, or were diagnostics
109
+ subsumed by `status`)
110
+ - **New interactive `plan`.** Run with no flags, `plan` walks a wizard that
111
+ writes a teamfile; with flags it is fully non-interactive. The golden path is
112
+ now `lmctl plan` → edit the teamfile → `lmctl lint` → `lmctl seed`.
113
+ - **New `status` modes.** `status <teamfile>` shows every member of a teamfile;
114
+ `status <teamfile> <alias>` drills into one member, absorbing the old
115
+ `health` verb.
116
+ - **`pi` is now a first-class provider binary** (`PROVIDER_BINARIES`).
117
+ - **The `@lmctl/next-agent` `diagnose-prompt` bin shim is removed.** The
118
+ passthrough shim no longer exposes that verb; `@lmctl/next-agent` consumers
119
+ get the same consolidated surface.
120
+
121
+ ## Unreleased
122
+
123
+ - **The published package no longer bundles the `serve` daemon, job queue, or
124
+ workflow engine.** `@lmctl-ai/lmctl` was designed to ship prompt
125
+ self-orchestration only — no daemon, no queue — but every version published
126
+ to date (0.1.0 through 0.1.341) actually contained the full daemon/queue/
127
+ engine code in `dist/cli/index.js`; the `serve` command's `--no-daemon` flag
128
+ was a runtime opt-out, not a build-time exclusion. This is a packaging-scope
129
+ defect, not a reachability one: the daemon binds to loopback by default and
130
+ requires an explicit auth token for any non-loopback bind or for its HTTP
131
+ API even on loopback, so nothing shipped that a normal install exposed on a
132
+ network by default. Starting with this release, the public bundle has the
133
+ `serve` dispatch's target module graph removed at build time; the CLI's own
134
+ `serve` command is gone from this package (an internal build used for our
135
+ own daemon deployment keeps it). No prior version has been unpublished or
136
+ deprecated — this entry exists so the history says what changed rather than
137
+ quietly becoming correct.
7
138
  - **A live `lmctl chat` dispatch no longer orphans the receiver's own background
8
139
  work — and its duration is now subtree-bound, not turn-bound.** Previously the
9
140
  provider transport closed the agent's stdin the instant its turn produced
package/README.md CHANGED
@@ -44,9 +44,7 @@ lmctl status
44
44
  lmctl plan ./my-project
45
45
  lmctl lint ./my-project/my-project.lmctl
46
46
  lmctl seed ./my-project/my-project.lmctl
47
- lmctl chat ./my-project/my-project.lmctl Lead "Inspect the repo and propose next steps."
48
- lmctl mail sent --json
49
- lmctl mail sent --limit 100 --cursor "$NEXT_CURSOR" --json
47
+ lmctl prompt ./my-project/my-project.lmctl Lead "Inspect the repo and propose next steps."
50
48
  ```
51
49
 
52
50
  `lmctl status` is team/SELF-scoped: from a member session it shows your
@@ -55,23 +53,21 @@ From a plain operator shell it shows a DB-wide summary.
55
53
  Use `lmctl status --json` for the full machine-readable view; `--project` and
56
54
  `--web` are not status flags.
57
55
 
58
- Start with the plan -> lint -> seed -> chat flow. lmctl does not manage
56
+ Start with the plan -> edit -> lint -> seed -> prompt flow. `lmctl plan` runs an
57
+ interactive wizard when invoked without flags, or writes the teamfile directly
58
+ from flags; edit the generated teamfile, then `lint` and `seed` it. lmctl does not manage
59
59
  foreground vs. background execution for provider turns or shell commands; use
60
60
  the provider or host runtime's own background/task surface when you need async
61
61
  execution.
62
- Daemon, web, and API surfaces are secondary integration paths; the CLI is the
63
- golden path for onboarding.
64
- To inspect the daemon, run `lmctl api daemon state` while `lmctl serve` is
65
- running; authenticate with `LMCTL_API_TOKEN=<token>` or start local serve with
66
- `--insecure-no-auth`.
62
+ The CLI is the golden path for onboarding; lmctl is stateless (the former
63
+ daemon/web/API surface moved to the separate lmbee product).
67
64
  Lintable teamfile templates for research, writing, and review teams ship in the
68
65
  [examples gallery](https://lmctl.com/examples/).
69
66
 
70
- `lmctl` top-level subcommands are: `api`, `chat`, `serve`, `device`,
71
- `team`, `terminal`, `tail`, `health`, `cost`, `session`, `session-index`, `restore`, `restore-teamfile`,
72
- `ls`, `lint`, `seed`, `hire`,
73
- `refresh`, `clone`, `plan`, `diagnose`, `diagnose-prompt`,
74
- `mail`, `status`, `running`, and `db`. Run `lmctl <command> --help` for details on each, and see the
67
+ `lmctl` top-level subcommands are: `batch`, `chat`, `cost`, `db`,
68
+ `export`, `lint`, `ls`, `plan`, `prompt`, `ratelimit`, `running`,
69
+ `script`, `seed`, `status`, `tail`, and `terminal`. Run `lmctl <command> --help` for details on
70
+ each, and see the
75
71
  [documentation](https://lmctl.com/lmctl) to define your first team.
76
72
 
77
73
  Abstract managed-team providers retain the config keys
@@ -85,43 +81,7 @@ sqlite3 ~/.lmctl/state.db "INSERT OR REPLACE INTO lmctl_config(key,value,updated
85
81
  sqlite3 ~/.lmctl/state.db "INSERT OR REPLACE INTO lmctl_config(key,value,updated_at) VALUES('workspace.provider3','gemini',strftime('%Y-%m-%dT%H:%M:%fZ','now'));"
86
82
  ```
87
83
 
88
- `lmctl mail` exposes low-level, read-only/record-only primitives over the
89
- event-log substrate: list pending or sent messages, read event history/
90
- content, inspect historical provider evidence and causal lineage, and declare
91
- handling/acknowledgement. `mail pending` defaults to messages addressed to
92
- SELF when run from a member session; an explicit `--receiver` overrides that
93
- scope. From a plain operator shell with no SELF marker, it retains the
94
- fleet-wide discovery view.
95
- Missing causal capture is shown as an explicit tree root rather than guessed
96
- from timestamps.
97
- For every `mail` subcommand, `--json` is the stable external contract and
98
- includes `schema_version: 1`; default text output is for humans and may change.
99
- JSON failures use `{status:"error", errorKind, message}`. The unbounded `sent`
100
- and `tree` scans are cursor-paginated, with 100 results by default and 1,000
101
- maximum; pass `next_cursor` back through `--cursor` until it is `null`.
102
- `schema_version` is the authoritative output-contract version; the separate
103
- `schema: "event-log-v1"` field identifies the backing substrate.
104
-
105
- Stable top-level success fields are:
106
-
107
- - `sent`: `schema_version`, `schema`, `identity`, `filters`, `messages`,
108
- `next_cursor`.
109
- - `history`: `schema_version`, `schema`, `message_id`, `events`.
110
- - `seen`: `schema_version`, `schema`, `message_id`, `receiver`, `db`,
111
- `transcript`, `answered`.
112
- - `pending`: `schema_version`, `schema`, `filters`, `messages`.
113
- - `read`: `schema_version`, `schema`, `message_id`, `message_type`,
114
- `in_reply_to`, `sender`, `receiver`, `content`, `pending_state`.
115
- - `deliver`: `schema_version`, `schema`, `message_id`, `message_type`,
116
- `receiver`, `outcome`, `provider_status`, `message`.
117
- - `handle`: `schema_version`, `schema`, `message_id`, `handling_by`,
118
- `handling_at`, `appended`.
119
- - `ack`: `schema_version`, `schema`, `message_id`, `acked_by`, `appended`,
120
- `pending_outcome`.
121
- - `tree`: `schema_version`, `schema`, `root`, `since`, `since_timestamp`,
122
- `sent`, `next_cursor`, `orphan_policy`, `incomplete_capture_note`.
123
-
124
- - `lmctl chat <teamfile> <alias> "message"` drives or messages a member. If a member-origin target is busy, chat queues the message for that sender->receiver lane; the next chat **from that same sender** to that receiver, when it is free, delivers the queued lane plus the new message. The lane key is `(sender, receiver)`: **a chat to that receiver from anyone else does not flush your queued mail.** If you go idle waiting for the reply you queued, nothing else will unblock it — you are the only party whose next chat flushes that lane.
84
+ - `lmctl prompt <teamfile> <alias> "prompt"` sends a prompt to a member and prints its answer. If a member-origin target is busy, the prompt is queued for that sender->receiver lane; the next prompt **from that same sender** to that receiver, when it is free, delivers the queued lane plus the new prompt. The lane key is `(sender, receiver)`: **a prompt to that receiver from anyone else does not flush your queued prompts.** If you go idle waiting for the answer you queued, nothing else will unblock it — you are the only party whose next prompt flushes that lane.
125
85
 
126
86
  ## Model selection
127
87
 
@@ -0,0 +1 @@
1
+ {"schema_version":1,"notes":["First-party aliases cover harness strings that do not resolve mechanically to a catalog identity.","Consumers must exact-match aliases case-insensitively; table entries win over canonical_slug.","new_model means new to this catalog, not necessarily newly released by a vendor.","This table is where manual exception maintenance lives; adding support for a new special case means adding one entry.","There is no precedence hierarchy by design: this single table is the canonical exception home."],"standards":[{"standard_slug":"moonshot/kimi-k2.8-preview","display_name":"Kimi K2.8 Preview","vendor":"moonshot","catalog_record_id":"manual:kimi-code/kimi-for-coding","note":"Estimated subscription scenario; no first-party price."},{"standard_slug":"moonshot/kimi-k2.5","display_name":"Kimi K2.5","vendor":"moonshot","catalog_record_id":"litellm:moonshot/kimi-k2.5","note":"Direct Moonshot reference row; qwen/DashScope route is a separate billing path."},{"standard_slug":"moonshot/kimi-k2.7-code-highspeed","display_name":"Kimi K2.7 Code HighSpeed","vendor":"moonshot","catalog_record_id":"manual:kimi-code/kimi-for-coding-highspeed","note":"Estimated Code scenario; Code and platform billing are separate."},{"standard_slug":"moonshot/kimi-k3","display_name":"Kimi K3","vendor":"moonshot","catalog_record_id":"manual:kimi-code/k3","note":"Operator-asserted price-proxy identity; the historical binding refusal remains documented in each alias."},{"standard_slug":"deepseek/deepseek-flash","display_name":"DeepSeek Flash","vendor":"deepseek","catalog_record_id":"litellm:deepseek/deepseek-flash","note":null},{"standard_slug":"deepseek/deepseek-v4-pro","display_name":"DeepSeek V4 Pro","vendor":"deepseek","catalog_record_id":"litellm:deepseek/deepseek-v4-pro","note":null},{"standard_slug":"google/gemini-3.8-flash","display_name":"Gemini 3.8 Flash","vendor":"google","catalog_record_id":"litellm:gemini-3.8-flash","note":null},{"standard_slug":"google/gemini-3.7-flash","display_name":"Gemini 3.7 Flash","vendor":"google","catalog_record_id":"litellm:gemini-3.7-flash","note":null},{"standard_slug":"google/gemini-3.6-flash","display_name":"Gemini 3.6 Flash","vendor":"google","catalog_record_id":"litellm:gemini-3.6-flash","note":null},{"standard_slug":"google/gemini-3.1-pro-preview","display_name":"Gemini 3.1 Pro Preview","vendor":"google","catalog_record_id":"litellm:gemini/gemini-3.1-pro-preview","note":"Harness mapping is asserted pending native-owner evidence."},{"standard_slug":"anthropic/claude-opus-4-6","display_name":"Claude Opus 4.6","vendor":"anthropic","catalog_record_id":"litellm:claude-opus-4-6","note":null},{"standard_slug":"anthropic/claude-sonnet-4-6","display_name":"Claude Sonnet 4.6","vendor":"anthropic","catalog_record_id":"litellm:claude-sonnet-4-6","note":null},{"standard_slug":"dashscope/qwen3.5-plus","display_name":"Qwen 3.5 Plus","vendor":"dashscope","catalog_record_id":"litellm:dashscope/qwen3.5-plus","note":"Identity established; catalog pricing may be null."},{"standard_slug":"dashscope/qwen3.6-plus","display_name":"Qwen 3.6 Plus","vendor":"dashscope","catalog_record_id":"manual:dashscope/qwen3.6-plus","note":"Vendor-sourced manual row; official pricing is tiered and absent from the upstream row."},{"standard_slug":"z-ai/glm-5.2","display_name":"GLM-5.2","vendor":"z-ai","catalog_record_id":"litellm:zai/glm-5.2","note":"Plan-route identity; catalog rate is counterfactual standard pricing."},{"standard_slug":"z-ai/glm-5.1","display_name":"GLM-5.1","vendor":"z-ai","catalog_record_id":"litellm:zai/glm-5.1","note":"Plan-route identity; catalog rate is counterfactual standard pricing."},{"standard_slug":"z-ai/glm-4.7","display_name":"GLM-4.7","vendor":"z-ai","catalog_record_id":"litellm:zai/glm-4.7","note":"Plan-route identity; catalog rate is counterfactual standard pricing."},{"standard_slug":"z-ai/glm-5","display_name":"GLM-5","vendor":"z-ai","catalog_record_id":"litellm:zai/glm-5","note":"DashScope route identity; direct zai row is the counterfactual reference."},{"standard_slug":"z-ai/glm-5-turbo","display_name":"GLM-5 Turbo","vendor":"z-ai","catalog_record_id":"openrouter:z-ai/glm-5-turbo","note":"Z-AI coding plan identity; OpenRouter rate is a counterfactual reference because no direct zai row exists."},{"standard_slug":"z-ai/glm-4.5-air","display_name":"GLM-4.5 Air","vendor":"z-ai","catalog_record_id":"litellm:zai/glm-4.5-air","note":"Z-AI coding plan identity; standard API rate is counterfactual."},{"standard_slug":"openrouter/qwen/qwen3.6-plus","display_name":"Qwen 3.6 Plus (OpenRouter)","vendor":"openrouter","catalog_record_id":"openrouter:qwen/qwen3.6-plus","note":"OpenRouter gateway-priced route; actual opencode sub-provider billing path."},{"standard_slug":"openai/gpt-5.6-sol","display_name":"GPT-5.6 Sol","vendor":"openai","catalog_record_id":"litellm:gpt-5.6-sol","note":"Direct OpenAI billing route; plan route pricing is counterfactual."},{"standard_slug":"openai/gpt-5.6-luna","display_name":"GPT-5.6 Luna","vendor":"openai","catalog_record_id":"litellm:gpt-5.6-luna","note":"Direct OpenAI billing route."},{"standard_slug":"openai/gpt-6-astra","display_name":"GPT-6 Astra","vendor":"openai","catalog_record_id":"litellm:gpt-6-astra","note":"Direct OpenAI billing route."},{"standard_slug":"openai/gpt-5.3-codex-spark","display_name":"GPT-5.3 Codex Spark","vendor":"openai","catalog_record_id":"litellm:chatgpt/gpt-5.3-codex-spark","note":"Established Codex subscription SKU; OpenAI marks pricing as research preview/not final, so the catalog row remains null-priced."},{"standard_slug":"anthropic/claude-haiku-4.5","display_name":"Claude Haiku 4.5","vendor":"anthropic","catalog_record_id":"openrouter:anthropic/claude-haiku-4.5","note":"Vendor identity; route-specific plan price is unavailable, so OpenRouter is a reference row."},{"standard_slug":"anthropic/claude-opus-4.5","display_name":"Claude Opus 4.5","vendor":"anthropic","catalog_record_id":"openrouter:anthropic/claude-opus-4.5","note":"Vendor identity; route-specific plan price is unavailable, so OpenRouter is a reference row."},{"standard_slug":"anthropic/claude-opus-4.7","display_name":"Claude Opus 4.7","vendor":"anthropic","catalog_record_id":"openrouter:anthropic/claude-opus-4.7","note":"Vendor identity; route-specific plan price is unavailable, so OpenRouter is a reference row."},{"standard_slug":"anthropic/claude-opus-4.8","display_name":"Claude Opus 4.8","vendor":"anthropic","catalog_record_id":"openrouter:anthropic/claude-opus-4.8","note":"Vendor identity; route-specific plan price is unavailable, so OpenRouter is a reference row."},{"standard_slug":"anthropic/claude-sonnet-4.5","display_name":"Claude Sonnet 4.5","vendor":"anthropic","catalog_record_id":"openrouter:anthropic/claude-sonnet-4.5","note":"Vendor identity; route-specific plan price is unavailable, so OpenRouter is a reference row."},{"standard_slug":"anthropic/claude-sonnet-5","display_name":"Claude Sonnet 5","vendor":"anthropic","catalog_record_id":"litellm:claude-sonnet-5","note":"Direct Anthropic reference row; Copilot plan rate is counterfactual."},{"standard_slug":"deepseek/deepseek-chat","display_name":"DeepSeek Chat","vendor":"deepseek","catalog_record_id":"litellm:deepseek/deepseek-chat","note":"Direct DeepSeek billing route."},{"standard_slug":"deepseek/deepseek-reasoner","display_name":"DeepSeek Reasoner","vendor":"deepseek","catalog_record_id":"litellm:deepseek/deepseek-reasoner","note":"Direct DeepSeek billing route."},{"standard_slug":"deepseek/deepseek-v4-flash","display_name":"DeepSeek V4 Flash","vendor":"deepseek","catalog_record_id":"litellm:deepseek/deepseek-v4-flash","note":"Direct DeepSeek billing route."},{"standard_slug":"google/gemini-2.5-pro","display_name":"Gemini 2.5 Pro","vendor":"google","catalog_record_id":"litellm:gemini-2.5-pro","note":"Direct Google billing route; Copilot plan rate is counterfactual."},{"standard_slug":"google/gemini-3-flash-preview","display_name":"Gemini 3 Flash Preview","vendor":"google","catalog_record_id":"litellm:gemini-3-flash-preview","note":"Direct Google billing route; Copilot plan rate is counterfactual."},{"standard_slug":"google/gemini-3.5-flash","display_name":"Gemini 3.5 Flash","vendor":"google","catalog_record_id":"litellm:gemini-3.5-flash","note":"Direct Google billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-4.1","display_name":"GPT-4.1","vendor":"openai","catalog_record_id":"litellm:gpt-4.1","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-4.1-2025-04-14","display_name":"GPT-4.1 (2025-04-14)","vendor":"openai","catalog_record_id":"litellm:gpt-4.1-2025-04-14","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-4o-mini","display_name":"GPT-4o Mini","vendor":"openai","catalog_record_id":"litellm:gpt-4o-mini","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-4o-mini-2024-07-18","display_name":"GPT-4o Mini (2024-07-18)","vendor":"openai","catalog_record_id":"litellm:gpt-4o-mini-2024-07-18","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5-mini","display_name":"GPT-5 Mini","vendor":"openai","catalog_record_id":"litellm:gpt-5-mini","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.2","display_name":"GPT-5.2","vendor":"openai","catalog_record_id":"litellm:gpt-5.2","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.2-codex","display_name":"GPT-5.2 Codex","vendor":"openai","catalog_record_id":"litellm:gpt-5.2-codex","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.3-codex","display_name":"GPT-5.3 Codex","vendor":"openai","catalog_record_id":"litellm:gpt-5.3-codex","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.4","display_name":"GPT-5.4","vendor":"openai","catalog_record_id":"litellm:gpt-5.4","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.4-mini","display_name":"GPT-5.4 Mini","vendor":"openai","catalog_record_id":"litellm:gpt-5.4-mini","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.4-nano","display_name":"GPT-5.4 Nano","vendor":"openai","catalog_record_id":"litellm:gpt-5.4-nano","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"openai/gpt-5.5","display_name":"GPT-5.5","vendor":"openai","catalog_record_id":"litellm:gpt-5.5","note":"Direct OpenAI billing route; Copilot plan rate is counterfactual."},{"standard_slug":"qwen/qwen3-coder","display_name":"Qwen3 Coder","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3-coder","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3-coder-flash","display_name":"Qwen3 Coder Flash","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3-coder-flash","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3-coder-plus","display_name":"Qwen3 Coder Plus","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3-coder-plus","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3.5-397b-a17b","display_name":"Qwen3.5 397B A17B","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3.5-397b-a17b","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3.5-9b","display_name":"Qwen3.5 9B","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3.5-9b","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3.5-plus-20260420","display_name":"Qwen3.5 Plus 2026-04-20","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3.5-plus-20260420","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3.6-flash","display_name":"Qwen3.6 Flash","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3.6-flash","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3.6-max-preview","display_name":"Qwen3.6 Max Preview","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3.6-max-preview","note":"OpenRouter gateway-priced actual route."},{"standard_slug":"qwen/qwen3.7-plus","display_name":"Qwen3.7 Plus","vendor":"qwen","catalog_record_id":"openrouter:qwen/qwen3.7-plus","note":"OpenRouter gateway-priced actual route."}],"aliases":[{"alias":"kimi-code/kimi-for-coding","standard_slug":"moonshot/kimi-k2.8-preview","evidence":"established","source_url":"https://www.kimi.com/code/docs/en/kimi-code/models.html","note":"Kimi Code docs name K2.8 Preview (up to 1M context); subscription-billed and no first-party price.","added_at":"2026-09-23"},{"alias":"kimi-code/kimi-for-coding-highspeed","standard_slug":"moonshot/kimi-k2.7-code-highspeed","evidence":"established","source_url":"https://www.kimi.com/code/docs/en/kimi-code/models.html","note":"Docs name K2.7 Code HighSpeed; Code and platform billing remain separate, so this is a scenario identity.","added_at":"2026-09-23"},{"alias":"kimi-code/k3","standard_slug":"moonshot/kimi-k3","evidence":"asserted","source_url":null,"source":"operator 2026-09-25","note":"Asserted for price-proxy purposes only. Historical refusal remains: two documented sweeps (2026-09-13 and 2026-09-21), product-independence statement, and ruling 29144f0 left Code↔Platform binding unestablished; the identity question stays closed for this estimate.","added_at":"2026-09-25"},{"alias":"kimi-code/k3-256k","standard_slug":"moonshot/kimi-k3","evidence":"asserted","source_url":null,"source":"operator 2026-09-25","note":"Asserted for price-proxy purposes only; k3-256k is the K3 256K variant per docs. Historical refusal remains: two documented sweeps, product-independence statement, and ruling 29144f0 left Code↔Platform binding unestablished; the identity question stays closed for this estimate.","added_at":"2026-09-25"},{"alias":"dsh/deepseek-flash","standard_slug":"deepseek/deepseek-flash","evidence":"established","source_url":"https://api-docs.deepseek.com/updates/","note":"Official 2026-09-10 changelog names deepseek-flash as the current V4.1 Flash model.","added_at":"2026-09-23"},{"alias":"dsh/deepseek-v4-flash","standard_slug":"deepseek/deepseek-flash","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"Official pricing footnote says the retired alias routes to V4.1-Flash and is billed at Flash price.","added_at":"2026-09-23"},{"alias":"dsh/deepseek-v4-pro","standard_slug":"deepseek/deepseek-v4-pro","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"Current official DeepSeek model ID.","added_at":"2026-09-23"},{"alias":"agy/gemini-3.8-flash","standard_slug":"google/gemini-3.8-flash","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/models","note":"Exact official model ID.","added_at":"2026-09-23"},{"alias":"agy/gemini-3.7-flash","standard_slug":"google/gemini-3.7-flash","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/models","note":"Exact official model ID.","added_at":"2026-09-23"},{"alias":"agy/gemini-3.6-flash","standard_slug":"google/gemini-3.6-flash","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/models","note":"Exact official model ID.","added_at":"2026-09-23"},{"alias":"agy/gemini-pro-default","standard_slug":"google/gemini-3.1-pro-preview","evidence":"asserted","source_url":null,"source":"lmprice #241","note":"Catalog and pricing-rule half is established, but the Antigravity harness half is unproven; pending native-owner evidence.","added_at":"2026-09-23"},{"alias":"agy/claude-opus-4-6-thinking","standard_slug":"anthropic/claude-opus-4-6","evidence":"established","source_url":"https://platform.claude.com/docs/en/build-with-claude/thinking-steering-and-cost","note":"Thinking steering and cost guidance documents thinking as output; Antigravity lists Claude Opus 4.6 (thinking).","added_at":"2026-09-23"},{"alias":"agy/claude-sonnet-4-6","standard_slug":"anthropic/claude-sonnet-4-6","evidence":"established","source_url":"https://platform.claude.com/docs/en/about-claude/models","note":"Exact model identity.","added_at":"2026-09-23"},{"alias":"agy/gemini-3.8-flash-tiered","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"Harness-specific tier label; no official SKU or identity evidence.","added_at":"2026-09-23"},{"alias":"agy/gemini-3.1-pro-low","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"Harness effort label; no official SKU or identity evidence.","added_at":"2026-09-23"},{"alias":"qwen/coder-model","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"Harness alias; no vendor identity evidence.","added_at":"2026-09-23"},{"alias":"opencode/glm-5.1","standard_slug":"z-ai/glm-5.1","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Exact GLM model name on a plan route; pricing is counterfactual.","added_at":"2026-09-23"},{"alias":"opencode/glm-4.7","standard_slug":"z-ai/glm-4.7","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Exact GLM model name on a plan route; pricing is counterfactual.","added_at":"2026-09-23"},{"alias":"zai-coding-plan/GLM-5.2","standard_slug":"z-ai/glm-5.2","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"z-ai-coding/GLM-5.2","standard_slug":"z-ai/glm-5.2","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"zai/GLM-5.2","standard_slug":"z-ai/glm-5.2","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"zai-coding-plan/GLM-5.1","standard_slug":"z-ai/glm-5.1","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"z-ai-coding/GLM-5.1","standard_slug":"z-ai/glm-5.1","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"zai/GLM-5.1","standard_slug":"z-ai/glm-5.1","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"zai-coding-plan/GLM-4.7","standard_slug":"z-ai/glm-4.7","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"z-ai-coding/GLM-4.7","standard_slug":"z-ai/glm-4.7","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"zai/GLM-4.7","standard_slug":"z-ai/glm-4.7","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Plan route; standard API rate is counterfactual.","added_at":"2026-09-23"},{"alias":"agy/gemini 3.8 flash (high)","standard_slug":"google/gemini-3.8-flash","evidence":"established","source_url":"https://antigravity.google/docs/models","note":"Antigravity model enumeration names Gemini 3.8 Flash (High); effort label is not a priced SKU, following the gemini-3.1-pro-low precedent.","added_at":"2026-09-24"},{"alias":"agy/gemini 3.8 flash (medium)","standard_slug":"google/gemini-3.8-flash","evidence":"established","source_url":"https://antigravity.google/docs/models","note":"Antigravity model enumeration names Gemini 3.8 Flash (Medium); effort label is not a priced SKU, following the gemini-3.1-pro-low precedent.","added_at":"2026-09-24"},{"alias":"agy/gemini 3.1 pro (high)","standard_slug":"google/gemini-3.1-pro-preview","evidence":"established","source_url":"https://antigravity.google/docs/models","note":"Antigravity enumerates Gemini 3.1 Pro High; High is an effort label, not a priced SKU, and Google publishes Gemini 3.1 Pro Preview.","added_at":"2026-09-24"},{"alias":"agy/claude opus 4.6 (thinking)","standard_slug":"anthropic/claude-opus-4-6","evidence":"established","source_url":"https://antigravity.google/docs/models","note":"Antigravity enumerates Claude Opus 4.6 (thinking); Anthropic documents thinking tokens as output, so thinking is not a separate priced SKU.","added_at":"2026-09-24"},{"alias":"agy/gemini-3.1-pro","standard_slug":"google/gemini-3.1-pro-preview","evidence":"asserted","source_url":"https://antigravity.google/docs/models","source":"Antigravity /docs/models enumeration","note":"Bare harness slug asserted to the published Gemini 3.1 Pro Preview identity; weaker than the labeled enumeration form.","added_at":"2026-09-24"},{"alias":"qwen/glm-5","standard_slug":"z-ai/glm-5","evidence":"established","source_url":"https://www.alibabacloud.com/help/en/model-studio/model-pricing","note":"DashScope hosts GLM-5; pin to the direct zai catalog row as the standard identity. The direct zai rate is a counterfactual reference for the qwen/DashScope route.","added_at":"2026-09-24"},{"alias":"qwen/kimi-k2.5","standard_slug":"moonshot/kimi-k2.5","evidence":"established","source_url":"https://www.alibabacloud.com/help/en/model-studio/model-pricing","note":"DashScope hosts Kimi K2.5; pin to the direct moonshot catalog row as the standard identity. The direct moonshot rate is a counterfactual reference for the qwen/DashScope route.","added_at":"2026-09-24"},{"alias":"qwen/qwen3.5-plus","standard_slug":"dashscope/qwen3.5-plus","evidence":"established","source_url":"https://www.alibabacloud.com/help/en/model-studio/model-pricing","note":"Native qwen routes to DashScope; official tiered pricing now fills the null catalog row.","added_at":"2026-09-24"},{"alias":"qwen/qwen3.6-plus","standard_slug":"dashscope/qwen3.6-plus","evidence":"established","source_url":"https://www.alibabacloud.com/help/en/model-studio/model-pricing","note":"Official DashScope model and tiered pricing; native qwen billing route.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.6-plus","standard_slug":"openrouter/qwen/qwen3.6-plus","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.6-plus","note":"OpenRouter sub-provider is the actual opencode billing path; gateway-priced actual, with route-rate oscillation caveat.","added_at":"2026-09-24"},{"alias":"codex/gpt-5.3-codex-spark","standard_slug":"openai/gpt-5.3-codex-spark","evidence":"established","source_url":"https://help.openai.com/en/articles/20001415-chatgpt-rate-card-enterprise-token-based-pricing","note":"Exact catalog row and established Codex subscription SKU; OpenAI marks all rates research preview/not final, so this is known-unpriced terminal.","added_at":"2026-09-24"},{"alias":"opencode/claude-haiku-4.5","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no direct vendor LiteLLM row exists for this exact model, so no standard-price proxy is asserted.","added_at":"2026-09-24"},{"alias":"opencode/claude-opus-4.5","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no direct vendor LiteLLM row exists for this exact model, so no standard-price proxy is asserted.","added_at":"2026-09-24"},{"alias":"opencode/claude-opus-4.6","standard_slug":"anthropic/claude-opus-4-6","evidence":"established","source_url":"https://platform.claude.com/docs/en/about-claude/models","note":"GitHub Copilot plan billing; direct vendor rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/claude-opus-4.7","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no direct vendor LiteLLM row exists for this exact model, so no standard-price proxy is asserted.","added_at":"2026-09-24"},{"alias":"opencode/claude-opus-4.8","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; only gateway/reference rows exist, not a direct vendor LiteLLM row.","added_at":"2026-09-24"},{"alias":"opencode/claude-sonnet-4.5","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no direct vendor LiteLLM row exists for this exact model.","added_at":"2026-09-24"},{"alias":"opencode/claude-sonnet-4.6","standard_slug":"anthropic/claude-sonnet-4-6","evidence":"established","source_url":"https://platform.claude.com/docs/en/about-claude/models","note":"GitHub Copilot plan billing; direct vendor rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/claude-sonnet-5","standard_slug":"anthropic/claude-sonnet-5","evidence":"established","source_url":"https://platform.claude.com/docs/en/about-claude/models","note":"GitHub Copilot plan billing; direct vendor rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/deepseek-chat","standard_slug":"deepseek/deepseek-chat","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek sub-provider; direct vendor billing route.","added_at":"2026-09-24"},{"alias":"opencode/deepseek-reasoner","standard_slug":"deepseek/deepseek-reasoner","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek sub-provider; direct vendor billing route.","added_at":"2026-09-24"},{"alias":"opencode/deepseek-v4-flash","standard_slug":"deepseek/deepseek-v4-flash","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek sub-provider; direct vendor billing route.","added_at":"2026-09-24"},{"alias":"opencode/deepseek-v4-pro","standard_slug":"deepseek/deepseek-v4-pro","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek sub-provider; direct vendor billing route.","added_at":"2026-09-24"},{"alias":"opencode/deepseek/deepseek-flash","standard_slug":"deepseek/deepseek-flash","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek route-qualified form; direct vendor billing route.","added_at":"2026-09-24"},{"alias":"opencode/deepseek/deepseek-v4-flash","standard_slug":"deepseek/deepseek-v4-flash","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek route-qualified form; direct vendor billing route.","added_at":"2026-09-24"},{"alias":"opencode/gemini-2.5-pro","standard_slug":"google/gemini-2.5-pro","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/pricing","note":"GitHub Copilot plan billing; direct Google rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gemini-3-flash-preview","standard_slug":"google/gemini-3-flash-preview","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/pricing","note":"GitHub Copilot plan billing; direct Google rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gemini-3.1-pro-preview","standard_slug":"google/gemini-3.1-pro-preview","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/pricing","note":"GitHub Copilot plan billing; direct Google rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gemini-3.5-flash","standard_slug":"google/gemini-3.5-flash","evidence":"established","source_url":"https://ai.google.dev/gemini-api/docs/pricing","note":"GitHub Copilot plan billing; direct Google rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/github-copilot/claude-opus-4.8","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no direct vendor LiteLLM row exists for Claude Opus 4.8.","added_at":"2026-09-24"},{"alias":"opencode/github-copilot/claude-sonnet-5","standard_slug":"anthropic/claude-sonnet-5","evidence":"established","source_url":"https://platform.claude.com/docs/en/about-claude/models","note":"GitHub Copilot plan billing; direct vendor rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/github-copilot/gpt-5.5","standard_slug":"openai/gpt-5.5","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/github-copilot/gpt-5.6-sol","standard_slug":"openai/gpt-5.6-sol","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/glm-4.5-air","standard_slug":"z-ai/glm-4.5-air","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Z-AI coding-plan route; direct zai rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/glm-5","standard_slug":"z-ai/glm-5","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Z-AI coding-plan route; direct zai rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/glm-5-turbo","standard_slug":"z-ai/glm-5-turbo","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Z-AI coding-plan route; OpenRouter rate is the counterfactual reference because no direct zai row exists.","added_at":"2026-09-24"},{"alias":"opencode/glm-5.2","standard_slug":"z-ai/glm-5.2","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Z-AI coding-plan route; direct zai rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-4.1","standard_slug":"openai/gpt-4.1","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-4.1-2025-04-14","standard_slug":"openai/gpt-4.1-2025-04-14","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-4o-mini","standard_slug":"openai/gpt-4o-mini","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-4o-mini-2024-07-18","standard_slug":"openai/gpt-4o-mini-2024-07-18","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5-mini","standard_slug":"openai/gpt-5-mini","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.2","standard_slug":"openai/gpt-5.2","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.2-codex","standard_slug":"openai/gpt-5.2-codex","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.3-codex","standard_slug":"openai/gpt-5.3-codex","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.4","standard_slug":"openai/gpt-5.4","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.4-mini","standard_slug":"openai/gpt-5.4-mini","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.4-nano","standard_slug":"openai/gpt-5.4-nano","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-5.5","standard_slug":"openai/gpt-5.5","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"opencode/gpt-6-astra","standard_slug":"openai/gpt-6-astra","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"OpenAI sub-provider; direct OpenAI billing route.","added_at":"2026-09-24"},{"alias":"opencode/mai-code-1-flash-picker","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no catalog row or vendor identity evidence exists for this picker id.","added_at":"2026-09-24"},{"alias":"opencode/openai/gpt-6-astra","standard_slug":"openai/gpt-6-astra","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"OpenAI route-qualified form; direct OpenAI billing route.","added_at":"2026-09-24"},{"alias":"opencode/openrouter/qwen/qwen3.7-plus","standard_slug":"qwen/qwen3.7-plus","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.7-plus","note":"OpenRouter route-qualified form; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3-coder","standard_slug":"qwen/qwen3-coder","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3-coder","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3-coder-flash","standard_slug":"qwen/qwen3-coder-flash","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3-coder-flash","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3-coder-plus","standard_slug":"qwen/qwen3-coder-plus","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3-coder-plus","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.5-397b-a17b","standard_slug":"qwen/qwen3.5-397b-a17b","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.5-397b-a17b","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.5-9b","standard_slug":"qwen/qwen3.5-9b","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.5-9b","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.5-plus-20260420","standard_slug":"qwen/qwen3.5-plus-20260420","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.5-plus-20260420","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.6-flash","standard_slug":"qwen/qwen3.6-flash","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.6-flash","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.6-max-preview","standard_slug":"qwen/qwen3.6-max-preview","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.6-max-preview","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/qwen/qwen3.7-plus","standard_slug":"qwen/qwen3.7-plus","evidence":"established","source_url":"https://openrouter.ai/qwen/qwen3.7-plus","note":"OpenRouter sub-provider; gateway-priced actual billing path.","added_at":"2026-09-24"},{"alias":"opencode/z-ai-coding/GLM-5.2","standard_slug":"z-ai/glm-5.2","evidence":"established","source_url":"https://docs.z.ai/guides/overview","note":"Z-AI coding-plan route; direct zai rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"lmplayer/deepseek/deepseek-v4-pro","standard_slug":"deepseek/deepseek-v4-pro","evidence":"established","source_url":"https://api-docs.deepseek.com/quick_start/pricing","note":"DeepSeek route; direct vendor billing path.","added_at":"2026-09-24"},{"alias":"lmplayer/github-copilot/claude-opus-4.8","standard_slug":null,"evidence":"unresolved","source_url":null,"note":"GitHub Copilot plan route; no direct vendor LiteLLM row exists for Claude Opus 4.8.","added_at":"2026-09-24"},{"alias":"lmplayer/github-copilot/claude-sonnet-5","standard_slug":"anthropic/claude-sonnet-5","evidence":"established","source_url":"https://platform.claude.com/docs/en/about-claude/models","note":"GitHub Copilot plan billing; direct vendor rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"lmplayer/github-copilot/gpt-5.5","standard_slug":"openai/gpt-5.5","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"GitHub Copilot plan billing; direct OpenAI rate is a standard-rate counterfactual.","added_at":"2026-09-24"},{"alias":"lmplayer/openai/gpt-6-astra","standard_slug":"openai/gpt-6-astra","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"OpenAI route; direct vendor billing path.","added_at":"2026-09-24"},{"alias":"pi/openai/gpt-5.6-luna","standard_slug":"openai/gpt-5.6-luna","evidence":"established","source_url":"https://platform.openai.com/docs/pricing","note":"OpenAI route; direct vendor billing path.","added_at":"2026-09-24"}]}