@lmctl-ai/lmctl 0.2.450 → 0.2.451

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 CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased — schema/import review fixes
4
4
 
5
+ - LMScript hosts may provide a passive dryRun(args, context) preview without activating their real provider. Calls without one return fresh typed dummies. Public arguments are unchanged; hidden mode parameters, readonly classifications and command grants are removed. Implicit preflight remains temporarily.
6
+
5
7
  - Provider failures are classified once, in lmctl: `src/providers/failure-class.ts` (ordered, conservative rule table over the fleet's recorded errors; `unknown` stays `unknown`). `lmctl prompt --json` failure lines carry `errorClass`, the API `promptMember` result (script `lm_prompt`) carries `errorClass` and a `usage` summary (tokens, reason, estimated cost), and the new pure operation `classifyFailure` (script `lm_classify_failure(text, {model, status})`) classifies stored error text, so consumers keep routing policy only and no regex table. Classes: quota_exhausted, binary_missing, auth_required, upstream_undisclosed, upstream_throttled, model_not_offered, stale_session, transport_interrupted, context_exhausted, receiver_busy, holder_died, unknown.
6
8
  - 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.
7
9