@lmctl-ai/lmctl 0.2.3 → 0.2.5

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.
@@ -36,8 +36,10 @@ export declare function modelSelectionWarnings(members: MemberConfig[], opts?: {
36
36
  * - unresolved -> silent (deliberate non-binding in lmprice's alias
37
37
  * table, not lint's claim to second-guess)
38
38
  * - no-catalog / catalog unavailable -> skip silently
39
- * The returned warnings wire into lint/seed's standard warnings array, so
40
- * `lint --strict` promotes them exactly like every other warning.
39
+ * The returned warnings wire into lint/seed's standard warnings array
40
+ * (operator ruling, 2026-09-29: lint has exactly two outcomes, ok/warning --
41
+ * never an error, and the `--strict` flag that used to promote warnings to
42
+ * a failing exit code has been removed entirely).
41
43
  */
42
44
  export declare function catalogModelWarnings(members: MemberConfig[], opts?: {
43
45
  snapshot?: CatalogSnapshot;
@@ -10,15 +10,20 @@ For `.lmctl` teamfile compatibility mode:
10
10
  This REPLACED the static tested-model lists that used to live in this
11
11
  document (2026-09-24) — hand-copied lists contradicted the catalog.
12
12
 
13
- **Best-effort contract (operator, 2026-09-25): lint is advisory and is NOT
14
- claimed to be 100% up to date.** Checks can lag provider reality in BOTH
15
- directions — a model lint warns about may have just been added upstream, and
16
- a model lint accepts may have just been retired. Every model check is a
17
- warning, never an error (`lint --strict` is the operator's explicit
18
- promotion, not the default). The runtime stance for anything unrecognized
19
- or out of date is always: "not recognized — could still be valid; no cost
20
- information," never a failure. Cost is equally best-effort (n/a with a
21
- reason, never a guessed price).
13
+ **Best-effort contract (operator, 2026-09-25, hardened 2026-09-29): lint is
14
+ advisory and is NOT claimed to be 100% up to date.** Checks can lag provider
15
+ reality in BOTH directions — a model lint warns about may have just been
16
+ added upstream, and a model lint accepts may have just been retired. Every
17
+ model check is a warning, never an error, full stop: lint has exactly two
18
+ outcomes (ok / warning) and always exits 0 on warnings-only. There used to be
19
+ a `--strict` flag that could promote warnings to a failing exit code; the
20
+ operator removed it entirely (2026-09-29: "no need to give users the choice
21
+ with no obvious value") — lmctl decides the scoping, not the caller. Exit 1
22
+ is reserved for genuine validation errors (a malformed teamfile, an
23
+ unparseable member line), never for a warning. The runtime stance for
24
+ anything unrecognized or out of date is always: "not recognized — could
25
+ still be valid; no cost information," never a failure. Cost is equally
26
+ best-effort (n/a with a reason, never a guessed price).
22
27
  - `codex` and `agy` model validation queries each provider's own live
23
28
  catalog command (`codex debug models`, `agy models`) instead of a
24
29
  hand-copied list — see their `## Codex` / `## Antigravity` sections
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lmctl-ai/lmctl",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "A provider-agnostic control plane for teams of AI coding agents — across providers, with independent review and durable memory.",
5
5
  "type": "module",
6
6
  "homepage": "https://lmctl.com",