luxin-cli 0.2.7 → 0.2.9

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
@@ -6,6 +6,62 @@ provenance; this file is the human- and agent-readable release map.
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.2.9 - 2026-08-17
10
+
11
+ Discovery, batch work, and recovery — the release for agents doing real
12
+ multi-image jobs.
13
+
14
+ - New command: `luxin models overview` — a ~2KB orientation payload with
15
+ category groups and counts, the cheapest executable model per category,
16
+ alias hints, and runnable next commands. Read this instead of the full list.
17
+ - New command: `luxin models find` — terse, cost-sorted decision rows with
18
+ `--max-credits`, `--limit` (default 10), `--sort credits|usd`, a free-text
19
+ query, and the existing filters. Rows carry aspect-ratio support and honest
20
+ availability, include cataloged-but-not-yet-wired models (clearly marked,
21
+ ranked last), and report `total_matched` with a narrowing hint. The query
22
+ that used to return 4,000+ lines now answers in ~130. (#2114)
23
+ - `models list` gains the same `--limit` / `--sort` / `--max-credits` flags
24
+ and is byte-identical when you don't use them. Against an older hosted API,
25
+ find/overview/narrowing degrade honestly client-side and say so in
26
+ `warnings`.
27
+ - New: `luxin create --batch items.json` (or `--batch -`) — sequential
28
+ multi-image work as one command: shared defaults plus per-item prompts,
29
+ whole-document validation before any spend. `--dry-run` prices the whole
30
+ job with the same debit math the live run charges, checks your credits AND
31
+ the daily job cap, and answers "your credits cover K of N; the batch stops
32
+ at item K+1" with the top-up sized to the actual need. At any wall the
33
+ completed items are delivered and the batch stops cleanly with one digest
34
+ and one recovery block; re-running with the same `--batch-id` skips
35
+ completed, unchanged items. `seed_policy: fixed | increment | random` where
36
+ the model supports a seed. (#2304)
37
+ - Recovery handle in the envelope: live create/edit responses now carry
38
+ `data.idempotency_key` on success and `error.recovery.idempotency_key` plus
39
+ a re-runnable `error.recovery.recover_command` on failure, so an
40
+ interrupted spend is recoverable from the envelope alone. stdout is exactly
41
+ one JSON document per invocation — now stated plainly in the contract; the
42
+ in-flight recovery line stays on stderr. (#2240)
43
+ - Hosted-side, already live and noted for completeness: create/edit responses
44
+ echo `effective_parameters` (each knob tagged explicit / default_policy /
45
+ provider_default) so you can see the configuration that actually ran, and
46
+ `resolution` without `quality` on xai.grok-imagine-image-2.0 now sends the
47
+ medium tier you were already being quoted. (#2310)
48
+
49
+ ## 0.2.8 - 2026-08-12
50
+
51
+ - New command: `luxin skill` prints the full usage guidance from bundled
52
+ package bytes, so instructions always match the CLI you are running. The
53
+ installed SKILL.md is now a ~4KB discovery stub that points here; the full
54
+ body is also served at https://luxin.sh/skill-core.md.
55
+ - Skill freshness handshake: export `LUXIN_SKILL_REVISION=<the revision in
56
+ your stub's frontmatter>` and `create --guide`, `edit --guide`, and
57
+ `luxin skill` will return `data.skill_refresh` with the current revision and
58
+ the exact refresh command (`npx skills update luxin`) whenever your installed
59
+ copy no longer matches. The field is omitted entirely when you are current.
60
+ Nothing ever rewrites your files, config, or hooks — refresh is always an
61
+ explicit command you run.
62
+ - `agent_skill.read_command` now points at `luxin skill --json` instead of
63
+ curling the stub.
64
+
9
65
  ## 0.2.7 - 2026-08-12
10
66
 
11
67
  - Release (pricing): the guide's local credit quoting for xAI models moved from
package/README.md CHANGED
@@ -85,9 +85,67 @@ Naming note: Luxin is a creative-media runtime for agents. It is unrelated to
85
85
  `luxon`, the datetime library; the npm package here is `luxin-cli` and the
86
86
  installed binary is `luxin`.
87
87
 
88
+ ## Keeping The Skill Current
89
+
90
+ The installed `SKILL.md` is a ~4KB discovery stub. Everything volatile — flags,
91
+ workflows, recovery, funding — lives in the guidance the CLI itself carries, so
92
+ it always matches the code you are running:
93
+
94
+ ```bash
95
+ npm_config_update_notifier=false npx -y luxin-cli@latest skill
96
+ ```
97
+
98
+ Refresh the installed stub with the standard verb:
99
+
100
+ ```bash
101
+ npx skills update luxin
102
+ ```
103
+
104
+ The stub records its own identity as `metadata.skill_revision`. Export it and
105
+ the CLI will say when your copy no longer matches the guidance it ships,
106
+ returning `data.skill_refresh` plus one warning line on `luxin skill` and
107
+ `create --guide`:
108
+
109
+ ```bash
110
+ export LUXIN_SKILL_REVISION=<metadata.skill_revision from your installed SKILL.md>
111
+ ```
112
+
113
+ Detection is remote; mutation stays local and explicit. Luxin prints the refresh
114
+ command and never rewrites your skill files, agent config, or hook files.
115
+
116
+ ### Optional: refresh at session start (copy-paste, opt-in)
117
+
118
+ Some runtimes can run a command when a session starts. If you want an automatic
119
+ refresh, add it yourself — Luxin will not install it for you, and nothing below
120
+ runs unless you put it there. For Claude Code, in `.claude/settings.json`:
121
+
122
+ ```json
123
+ {
124
+ "hooks": {
125
+ "SessionStart": [
126
+ {
127
+ "hooks": [
128
+ {
129
+ "type": "command",
130
+ "command": "npx skills update luxin",
131
+ "timeout": 60
132
+ }
133
+ ]
134
+ }
135
+ ]
136
+ }
137
+ }
138
+ ```
139
+
140
+ Two things worth knowing before you adopt it: it adds a network call to every
141
+ session start, and it applies updates without showing you a diff first. Running
142
+ `npx skills update luxin` by hand when a nudge appears keeps the change
143
+ reviewable.
144
+
88
145
  Agent-facing contracts:
89
146
 
90
147
  - [Hosted skill contract](https://luxin.sh/skill.md)
148
+ - [Hosted skill guidance](https://luxin.sh/skill-core.md)
91
149
  - [Hosted LLM contract](https://luxin.sh/llms.txt)
92
150
  - [Hosted CLI contract](https://luxin.sh/cli.md)
93
151
  - [Public repo skill source](https://github.com/danielgwilson/luxin/tree/main/skills/luxin)