@lmctl-ai/lmctl 0.2.83 → 0.2.85
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.
- package/CHANGELOG.md +4 -0
- package/build-info.json +1 -1
- package/dist/cli/lmscript.js +232 -232
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ All notable public-preview changes for `@lmctl-ai/lmctl` are recorded here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
- **LMScript suggests the regex split function's canonical name.** Calls and references written as `regex_split`, `regexSplit`, or `splitRegex` now suggest `split_regex` in check diagnostics.
|
|
8
|
+
- **LMScript catches unresolvable literal expand references during checking.** A literal template with no vars map or a literal map missing a referenced name now reports the missing name and advises passing a temporary variable in vars. Dynamic templates/maps keep runtime validation.
|
|
9
|
+
- **LMScript help is complete.** `lmscript --help` now shows the `--check-files`, `--base-dir`, and `--source-name` options, and `help topics` lists both conditional expressions and regular expressions.
|
|
10
|
+
- **LMScript import errors are clearer.** The unsupported `import "file.lms" as name` spelling now explains that imports are literal includes and module package names belong inside the module.
|
|
7
11
|
- **`lmctl cost` no longer over-counts Claude and Codex sessions.** Claude writes one session record per content block of a message, each repeating that message's usage; every record was added, so token totals were typically twice the real ones. The cost then priced cached input a second time at the full input rate, for Claude and for Codex. Each message is now counted once and each token priced once: uncached input, cache reads, and Claude cache writes at their own rates, with 1-hour cache writes at the catalog's 1-hour rate. Expect Claude token totals to drop by about half and Claude and Codex costs several-fold; on a checked session the result equals the provider's own reported cost. The displayed input total still includes cached tokens. Claude subagent transcripts are not part of a session's cost.
|
|
8
12
|
- **`lmctl cost` prices Gemini and Qwen cached input once.** Their input counters include cached reads, so that part is now removed before the input rate is applied; on checked sessions the old estimates were about 7.7 and 7.5 times too high. Gemini reports thinking tokens outside its output count and bills them as output: they are now part of the output shown and priced (on the checked session, 5.6% more than without them). Cache writes are charged at the catalog's write rate, otherwise at the input rate; for a Claude model without a write rate this replaces "no cost". Copilot counters are read the same way, but Copilot sessions still show no cost because the price catalog has no Copilot route. The `--json` schema is unchanged.
|
|
9
13
|
- **Hello model selection.** `lmctl hello <provider> --model <name>` sets the model of the Lead in the downloaded hello teamfile. For codex and agy the name is checked against the provider's own live catalog (`codex debug models`, `agy models`) before anything is started: a name that is not in it is refused with the list of valid models, and no teamfile is left behind. For other providers, and when the catalog cannot be read, the usual lint warning is shown and the seed proceeds. A name may contain spaces (`--model "Gemini 3.8 Flash (High)"`) but not quotes or line breaks. Without the flag nothing changes: the provider default is used.
|
package/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"sha": "
|
|
1
|
+
{"sha": "7f036e626506e82c111170f8138111253fa6b116", "dirty": false, "builtAt": "2026-10-05T20:21:29.000Z"}
|