@tuned-tensor/cli 0.13.1-beta.7 → 0.14.0

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/README.md CHANGED
@@ -11,15 +11,17 @@
11
11
  This release unregisters the hosted API commands (`tt auth`, `tt publish`,
12
12
  `tt push`, `tt balance`, `tt topup`, `tt cloud`, and the rest of the managed
13
13
  tree). The modules remain in the repository so they can be restored later.
14
- `tt local …` is kept as a hidden alias; new scripts should call `tt run`,
15
- `tt doctor`, `tt runs list`, and so on directly.
14
+ `tt local …` is kept as a hidden alias. `tt run` is also retained as a hidden
15
+ compatibility alias for the canonical adapter pipeline; new scripts should use
16
+ `tt pipeline run --spec tunedtensor.json`.
16
17
 
17
18
  ## Migrating from 0.11
18
19
 
19
20
  `0.13` is the local-only CLI. If you are coming from `0.11.0`:
20
21
 
21
- - Call `tt run`, `tt doctor`, and `tt serve` at the root. `tt local …` still
22
- works as a hidden alias.
22
+ - Run `tt` for the conversational workflow, `tt pipeline run` for explicit or
23
+ automated execution, and `tt serve` for the serving lifecycle. `tt run` and
24
+ `tt local …` remain hidden compatibility aliases.
23
25
  - Hosted account commands (`tt auth`, `tt publish`, `tt push`, and the rest)
24
26
  are unregistered.
25
27
  - `Qwen/Qwen3.5-2B` is pinned to Hugging Face snapshot
@@ -79,9 +81,11 @@ The interactive agent harness and conversation state run on your laptop.
79
81
  Inference runs through the provider/model you select, which may be a
80
82
  local endpoint or a remote provider.
81
83
 
82
- Run `tt` to open one terminal for conversation and commands. Workflow commands
83
- such as `runs list` and `doctor` work immediately. Chat waits until you choose
84
- a provider and model from inside the shell:
84
+ Run `tt` to open the primary conversational workflow. The agent can inspect the
85
+ project, derive the canonical pipeline from `tunedtensor.json`, present the
86
+ resolved plan, and prepare a sealed dry-run for `/approve`. Workflow commands such
87
+ as `runs list` and `doctor` also work immediately. Chat waits until you choose a
88
+ provider and model from inside the shell:
85
89
 
86
90
  ```text
87
91
  tt v0.13.1-beta.2
@@ -125,14 +129,19 @@ Ask TT anything. Known commands run directly.
125
129
  Ordinary sentences go through the locally orchestrated model session. The
126
130
  model has no shell or general filesystem tool. It can prepare one new folder
127
131
  directly beneath the shell's current working directory with a validated
128
- `tunedtensor.json`. The tool refuses path traversal, symlinked workspace
129
- roots, existing targets, and unsupported spec fields. Known CLI commands such
130
- as `runs list`, `doctor`, and `models list` still execute directly. Prefix a
131
- command with `:` when you want to make that intent explicit.
132
+ `tunedtensor.json`, or prepare a local pipeline dry-run sealed to the reviewed
133
+ workspace and spec contents. Neither action starts until `/approve`. The tools refuse path
134
+ traversal, symlinked workspace roots, existing spec targets, unsupported spec
135
+ fields, cloud pipeline targets, and spec changes after review. Known CLI
136
+ commands such as `runs list`, `doctor`, and `models list` still execute directly.
137
+ Prefix a command with `:` when you want to make that intent explicit.
132
138
 
133
139
  The agent can describe the built-in adapter and foundation pipeline stages,
134
- including optional foundation RL, and returns the exact `tt pipeline` commands
135
- for initialization, validation, planning, dry-run, and execution. It can also
140
+ including optional foundation RL. When asked to train or dry-run, it derives or
141
+ validates the pipeline, shows the exact plan, and prepares a deterministic
142
+ dry-run. `/approve` starts that preview outside the model, and Ctrl-C stops the
143
+ child process group. Real training is intentionally not model-mediated: run the
144
+ displayed `tt pipeline run` command directly when you choose to execute. It can also
136
145
  search public Hugging Face model or dataset metadata for foundation and
137
146
  fine-tuning discovery. A Hub search sends only the search query to
138
147
  `huggingface.co`; it uses no Hugging Face token, downloads nothing, and omits
@@ -163,6 +172,13 @@ are anchored to open workspace and destination-directory handles. The proposal
163
172
  is bound to the current workspace so changing directories before approval fails
164
173
  safely instead of writing somewhere else. Ambiguous write failures remain
165
174
  sealed as `outcome_unknown` for manual inspection. `/reject` never mutates.
175
+ Pipeline dry-runs also wait for `/approve`. Preparation fingerprints the
176
+ workspace directory identity, spec, and adjacent config, revalidates them,
177
+ copies the resolved spec, config, and pipeline into private temporary inputs,
178
+ and invokes `tt pipeline run --dry-run` deterministically. Persisted proposals
179
+ that request real execution fail before the child command is dispatched. Real
180
+ training remains available through the explicit direct `tt pipeline run` command.
181
+ A changed workspace or spec requires a new review.
166
182
 
167
183
  Useful shell controls include `/help`, `/status`, `/context`, `/model`,
168
184
  `/login`, `/cd`, `/clear`, and `/exit`.
@@ -199,9 +215,10 @@ adds execution planning (step selection) on top of it.
199
215
  Two local engines share that document version:
200
216
 
201
217
  - **Adapter** (default): LoRA SFT on a certified Hugging Face checkpoint.
202
- `tt run` and `tt pipeline` both work. Uses `train` / `evaluate` / `compare`
203
- with `evaluate.with.evaluator: "behavior"`.
204
- - **Foundation**: from-scratch tokenizer + GPT. `tt pipeline` only. Uses
218
+ Runs through `tt pipeline run`. Uses `train` / `evaluate` / `compare` with
219
+ `evaluate.with.evaluator: "behavior"`.
220
+ - **Foundation**: from-scratch tokenizer + GPT. Also runs through
221
+ `tt pipeline run`. Uses
205
222
  `tokenize` / `pretrain` / `finetune` / optional `rl` plus `bpb`, `chat`, and
206
223
  `inference` evaluators. Requires a foundation `tunedtensor.json`
207
224
  (`engine: "foundation"`, at least two examples, no `base_model`).
@@ -239,10 +256,14 @@ tt --json pipeline run --spec tunedtensor.json --dry-run
239
256
  tt pipeline run --spec tunedtensor.json --resume /absolute/path/to/foundation-run
240
257
  ```
241
258
 
259
+ When `--config` is omitted, `pipeline run` uses `local-runner.json` beside the
260
+ selected spec when that file exists.
261
+
242
262
  `--only` and `--skip` preserve dependency safety: a selected step cannot refer
243
263
  to an omitted predecessor. Cloud-targeted steps fail closed unless you pass
244
264
  `--dry-run`. Foundation documents are local-only. The TT agent may describe,
245
- validate, and prepare a plan, but has no direct pipeline-execute tool.
265
+ validate, and prepare a sealed pipeline action; only deterministic `/approve`
266
+ handling can execute it.
246
267
 
247
268
  Long pretraining uses BF16, warmup plus cosine decay, gradient clipping,
248
269
  periodic metrics, and atomic rolling checkpoints. `--resume <run-directory>`
@@ -274,7 +295,7 @@ placeholder examples, then preflight and run:
274
295
  tt doctor tunedtensor.json
275
296
  tt validate tunedtensor.json
276
297
  tt models prefetch tunedtensor.json
277
- tt run tunedtensor.json
298
+ tt pipeline run --spec tunedtensor.json
278
299
  ```
279
300
 
280
301
  Inspect, verify, and serve a completed adapter:
@@ -282,7 +303,7 @@ Inspect, verify, and serve a completed adapter:
282
303
  ```bash
283
304
  tt runs report <run-id>
284
305
  tt models verify local-<run-id>
285
- tt models serve local-<run-id> --config local-runner.json
306
+ tt serve local-<run-id> --config local-runner.json
286
307
  ```
287
308
 
288
309
  Local currently certifies text SFT with `Qwen/Qwen3.5-2B` (pinned to snapshot
@@ -304,6 +325,12 @@ not silently serve the protected base model. Once activated, use
304
325
 
305
326
  `tt serve base` does not automatically inject the adjacent project spec.
306
327
  Pass `--spec tunedtensor.json` when the server should enforce its instructions.
328
+ Serving uses a separate locked **vLLM** runtime on Linux/CUDA. A tuned launch
329
+ exposes both the adapter and its base model, sharing weights, with upstream
330
+ streaming and native tool-call parsing. `tt serve <target> --print-client-config pi`
331
+ exports isolated Pi configuration; tools no longer need to be disabled. See
332
+ [Local serving and coding harnesses](docs/local-runtime/serving.md) for Pi/OpenCode
333
+ setup, resource budgets, hardware limits, and the verified integration scope.
307
334
 
308
335
  Useful discovery commands:
309
336