@lmctl-ai/lmctl 0.2.306 → 0.2.308
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 +3 -1
- package/build-info.json +1 -1
- package/dist/cli/lmscript.js +302 -300
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased — schema/import review fixes
|
|
4
4
|
|
|
5
|
+
- LMScript strict member access (issue 003): reading a missing map key or list index is a run-time error naming the container and the member instead of `undefined`; built-in methods per type (`map.get(key, default)`, `has`, `len`, `keys`; `list.get(index, default)`, `len`; `string.len`) are the one optional form; `X.name(args)` is a method call while `pkg.fn(x)` stays a package call; unknown method names and wrong arities are check errors. Top-level functions are unchanged.
|
|
6
|
+
|
|
5
7
|
- LMScript data-embedding D16/D17: `${expr}` in a `_graphql_` body is plain text substitution (linted as a placeholder at check time, the final text linted again at run time; null/list/map are run-time errors naming the marker) and `${expr}` inside `_toml_` string values inserts text after parsing; a field in a TOML key and inside single quotes in `_cmd_` stay "not supported yet".
|
|
6
8
|
|
|
7
9
|
- LMScript checked path literals: `i"…"`, `o"…"` and `io"…"` resolve a literal path to its OS form (`./x`, `.\x`, normalized separators) and are verified read-only before the first statement of a normal run, under `--dry-run` and under `--check-files` (exit 2 with a located error before any effect; `--check`/`--lint` stay filesystem-free). Uppercase or combined prefixes, triple quotes, `${}` and `~` are errors with hints.
|
|
@@ -28,7 +30,7 @@ All notable public-preview changes for `@lmctl-ai/lmctl` are recorded here.
|
|
|
28
30
|
|
|
29
31
|
## Unreleased
|
|
30
32
|
|
|
31
|
-
- LMScript strict syntax (issue 002): every simple statement ends with a mandatory `;` (including `system p;` and `x = cmd p;` command statements) and every if/else/while/for body is a `{ }` block; violations are check errors with hints. `scripts/strict-syntax.ts
|
|
33
|
+
- LMScript strict syntax (issue 002): every simple statement ends with a mandatory `;` (including `system p;` and `x = cmd p;` command statements) and every if/else/while/for body is a `{ }` block; violations are check errors with hints. The temporary `scripts/strict-syntax.ts` migration tool was removed after the last migration (operator: clean, break, fix).
|
|
32
34
|
- LMScript gains data-embedding blocks: reserved `_csv_`, `_toml_`, `_props_`, `_json_`, `_cmd_` and `_graphql_` markers are expressions whose body lines follow the statement's mandatory `;` and close with `end _x_`; options and `${}` fields are validated at check time, values are substituted per value after parsing (a _toml_ field must stand alone as a value), and `end _x_` outside a block, mismatched closers and a missing `;` are check errors naming expected/found; `_cmd_` builds argv over several lines with the one-line cmd rules, `system(_cmd_)` runs it and a standalone `_cmd_;` statement runs it. `_graphql_` keeps the executable-syntax/schema-free lint as a string value (`${}` not supported yet). The csv"""/toml"""/javaprops"""/graphql""" literals are removed (each error names its marker). The pinned smol-toml parser stays bundled into the lmscript artifact.
|
|
33
35
|
- `lmctl init` generates example provider slots from installed provider detection. Each managed slot now contains only `provider` and `model1`; model1 is the provider's first live id (Claude Code uses the highest-version undated catalog id). Model2/model3 tier values and the curated model table are removed. Provider slots remain open examples: files may omit managed slots or add user tables, and init refreshes only managed slots present.
|
|
34
36
|
|
package/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"sha": "
|
|
1
|
+
{"sha": "e9f0cadcab4a744d77d463e5e5264342bc198f88", "dirty": false, "builtAt": "2026-10-17T18:35:51.000Z"}
|