@lmctl-ai/lmctl 0.2.9 → 0.2.10

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.
@@ -1,5 +1,5 @@
1
1
  import { type CatalogSnapshot } from "../pricing.js";
2
- import type { MemberConfig } from "./team-config.js";
2
+ import type { MemberConfig, TeamValidationError } from "./team-config.js";
3
3
  export interface AgyModelsRunResult {
4
4
  status: number | null;
5
5
  stdout: string;
@@ -22,26 +22,14 @@ export declare function modelSelectionWarnings(members: MemberConfig[], opts?: {
22
22
  opencodeModelsRunner?: (provider: string) => OpencodeModelsRunResult;
23
23
  codexModelsRunner?: () => CodexModelsRunResult;
24
24
  }): string[];
25
- /**
26
- * lmprice catalog resolution for lint/seed (design v2 sections 2+5). Runs
27
- * resolveModel() for every member with model= on an adapter-covered
28
- * provider against ONE snapshot load (loadCatalogSnapshot is memoized per
29
- * process):
30
- * - unknown -> warning (`provider may still accept it`)
31
- * - known-unpriced -> warning (operator invariant 2026-09-25: "if we can
32
- * lint, then we can cost" -- a lint-recognized model that cost cannot
33
- * price must be surfaced at lint time; lmprice build validation is
34
- * tasked with never publishing such half-bindings again)
35
- * - priced/estimated -> ok
36
- * - unresolved -> silent (deliberate non-binding in lmprice's alias
37
- * table, not lint's claim to second-guess)
38
- * - no-catalog / catalog unavailable -> skip silently
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).
43
- */
25
+ /** Warnings only -- see resolveCatalogFindings for the full three-outcome contract. */
44
26
  export declare function catalogModelWarnings(members: MemberConfig[], opts?: {
45
27
  snapshot?: CatalogSnapshot;
46
28
  }): Promise<string[]>;
29
+ /** Errors only (a confirmed "this provider cannot run it" -- see
30
+ * resolveCatalogFindings). Shaped as TeamValidationError so callers can
31
+ * merge it directly into validateTeamConfig's own error array. */
32
+ export declare function catalogModelErrors(members: MemberConfig[], opts?: {
33
+ snapshot?: CatalogSnapshot;
34
+ }): Promise<TeamValidationError[]>;
47
35
  export declare function resolveModelSelectionDocPathFromHere(here: string): string;
@@ -39,6 +39,10 @@ export type ResolutionState = {
39
39
  } | {
40
40
  kind: "unknown";
41
41
  declared: string;
42
+ } | {
43
+ kind: "wrong-provider";
44
+ declared: string;
45
+ otherProviders: string[];
42
46
  } | {
43
47
  kind: "no-catalog";
44
48
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lmctl-ai/lmctl",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
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",