@lmctl-ai/lmctl 0.2.8 → 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,2 +1,23 @@
|
|
|
1
1
|
/** Resolve the package.json version of lmctl-next, with a safe fallback. */
|
|
2
|
-
export declare function readLmctlNextVersion(): string;
|
|
2
|
+
export declare function readLmctlNextVersion(root?: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* Real incident, 2026-09-29 (math routing, strengthening queued#21790): a
|
|
5
|
+
* dev-linked lmctl reported `--version 0.2.1` while running code from a much
|
|
6
|
+
* newer, unreleased checkout -- package.json's version is only bumped by the
|
|
7
|
+
* release commit, so any checkout sitting between releases (or a stale one
|
|
8
|
+
* that never rebuilt) silently reports the PREVIOUS release's number while
|
|
9
|
+
* running different code. That produced real false confidence: a flag
|
|
10
|
+
* removed that same morning was about to be published as verified-current
|
|
11
|
+
* documentation.
|
|
12
|
+
*
|
|
13
|
+
* A real npm install has no `.git` directory (pack-release excludes it), so
|
|
14
|
+
* this only ever adds detail for a git checkout, and degrades safely (plain
|
|
15
|
+
* `readLmctlNextVersion()`) whenever git is unavailable, the directory isn't
|
|
16
|
+
* a repo, or any git call fails -- `--version` must never hard-depend on git
|
|
17
|
+
* being installed.
|
|
18
|
+
*
|
|
19
|
+
* `root` is a test seam (defaults to the real package root) so tests can
|
|
20
|
+
* point this at a throwaway fixture repo instead of asserting on whatever
|
|
21
|
+
* commit this repo's own checkout happens to be at when the suite runs.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveLmctlVersionDisplay(root?: string): string;
|
|
@@ -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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmctl-ai/lmctl",
|
|
3
|
-
"version": "0.2.
|
|
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",
|