@tuned-tensor/cli 0.16.0 → 0.18.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
@@ -21,6 +21,11 @@ Inference choice is independent of where training uses a GPU. Your AWS GPU
21
21
  needs AWS credentials and SSH access; TT account operations under `tt cloud`
22
22
  require a TT access token.
23
23
 
24
+ New to cloud GPU training? Follow [your first AWS run](docs/local-runtime/aws-gpu.md)
25
+ for project creation, AWS quota and SSH setup, a preview, training, result
26
+ verification, and shutdown. You still run `tt pipeline run` on your laptop;
27
+ `tt cloud` is for TT account records, not user-owned GPU execution.
28
+
24
29
  ## Unified commands
25
30
 
26
31
  Local workflows remain the default: `tt pipeline run`, `tt runs list`,
@@ -86,6 +91,14 @@ npm run build
86
91
  npm link
87
92
  ```
88
93
 
94
+ ## Behavior spec workflow
95
+
96
+ `tunedtensor.json` is the source of truth for behavior and training settings.
97
+ Use `/spec`, `/spec diff`, `/spec validate`, and `/spec history` in the shell to
98
+ review it without a model call. Ask the agent for changes, inspect its proposed
99
+ diff, then `/approve` to save a validated edit with revision history. Pipeline
100
+ runs use the saved spec. See [the spec workflow](docs/spec-workflow.md).
101
+
89
102
  ## Conversational terminal
90
103
 
91
104
  The interactive agent harness and conversation state run on your laptop.
@@ -157,11 +170,11 @@ Ask TT anything. Known commands run directly.
157
170
  ```
158
171
 
159
172
  Ordinary sentences go through the locally orchestrated model session. The
160
- model has no shell or general filesystem tool. It can prepare one new folder
161
- directly beneath the shell's current working directory with a validated
173
+ model has no shell or general filesystem tool. It can read and propose reviewed
174
+ edits to an existing spec, or prepare one new folder directly beneath the shell's current working directory with a validated
162
175
  `tunedtensor.json`, or prepare a local pipeline dry-run sealed to the reviewed
163
- workspace and spec contents. Neither action starts until `/approve`. The tools refuse path
164
- traversal, symlinked workspace roots, existing spec targets, unsupported spec
176
+ workspace and spec contents. Writes and pipeline previews wait for `/approve`. The tools refuse path
177
+ traversal, symlinked workspace roots, overwriting a new-project target, unsupported spec
165
178
  fields, cloud pipeline targets, and spec changes after review. Known CLI
166
179
  commands such as `runs list`, `doctor`, and `models list` still execute directly.
167
180
  Prefix a command with `:` when you want to make that intent explicit.
@@ -275,25 +288,32 @@ expected output for every example. Treat those metrics as an end-to-end
275
288
  execution and overfit check—not held-out capability or multi-GPU evidence when
276
289
  no validation corpus is configured.
277
290
 
291
+ `tunedtensor.json` contains behavior, training settings, optional `evaluation`,
292
+ `runtime`, and advanced `pipeline` sections. Pipelines use the embedded recipe
293
+ or derive it from the saved spec. Only explicit `--file` loads a separate recipe;
294
+ it cannot override a conflicting embedded recipe. Foundation recipes must match
295
+ the spec's training settings.
296
+
278
297
  ```bash
279
- tt pipeline init --file pipeline.json
280
- tt pipeline init --engine foundation --file foundation.pipeline.json
281
- tt pipeline validate --file pipeline.json
282
- tt --json pipeline plan --file pipeline.json
283
- tt --json pipeline run --dry-run --file pipeline.json --only baseline
284
- tt --json pipeline run --file pipeline.json \
285
- --spec tunedtensor.json --config local-runner.json
286
- tt init --engine foundation --name "Tiny GPT"
287
- tt --json pipeline run --spec tunedtensor.json --dry-run
288
- tt pipeline run --spec tunedtensor.json --resume /absolute/path/to/foundation-run
298
+ tt pipeline validate --spec tunedtensor.json
299
+ tt --json pipeline plan --spec tunedtensor.json
300
+ tt pipeline run --spec tunedtensor.json --dry-run
301
+ tt pipeline run --spec tunedtensor.json
302
+ # Optional: embed the current derived recipe for customization
303
+ tt pipeline init --spec tunedtensor.json
304
+ # Existing projects: consolidate sidecars, retaining .bak copies
305
+ tt pipeline migrate --spec tunedtensor.json
289
306
  ```
290
307
 
291
- When `--config` is omitted, `pipeline run` uses `local-runner.json` beside the
292
- selected spec when that file exists.
308
+ Relative runtime paths resolve beside the spec. New project state uses
309
+ `.tuned-tensor/store` and `.tuned-tensor/artifacts`. Legacy `local-runner.json`
310
+ remains readable with a warning; migrate it before adding inline runtime or
311
+ evaluation settings. See [single-file examples](examples/single-spec) and the
312
+ [spec workflow](docs/spec-workflow.md).
293
313
 
294
314
  `--only` and `--skip` preserve dependency safety: a selected step cannot refer
295
- to an omitted predecessor. Keep step targets local and configure `gpu` in
296
- `local-runner.json` to execute GPU work on your AWS instance. Adapter and
315
+ to an omitted predecessor. Keep step targets local and configure `runtime.gpu` in
316
+ `tunedtensor.json` to execute GPU work on your AWS instance. Adapter and
297
317
  foundation workflows use the same local pipeline. The TT agent may describe,
298
318
  validate, and prepare a sealed pipeline action; only deterministic `/approve`
299
319
  handling can execute it.
@@ -370,20 +390,22 @@ tt init \
370
390
  --model Qwen/Qwen3.5-2B
371
391
  ```
372
392
 
373
- Edit the generated `tunedtensor.json`, replacing both placeholder examples.
393
+ Edit the generated `tunedtensor.json`, replacing the placeholder system prompt and both placeholder examples.
374
394
  For a local GPU, `tt hardware` reports this machine's training and serving
375
- capacity. For an AWS GPU, save the following as `local-runner.json` beside the
376
- spec, replacing the instance, region, profile and SSH settings with your own:
395
+ capacity. For an AWS GPU, add the following `runtime` section to your
396
+ `tunedtensor.json`, replacing the instance, region, profile and SSH settings with your own:
377
397
 
378
398
  ```json
379
399
  {
380
- "gpu": {
381
- "provider": "aws",
382
- "profile": "research",
383
- "region": "eu-west-1",
384
- "instanceId": "i-0123456789abcdef0",
385
- "user": "ubuntu",
386
- "identityFile": "~/.ssh/research-gpu.pem"
400
+ "runtime": {
401
+ "gpu": {
402
+ "provider": "aws",
403
+ "profile": "research",
404
+ "region": "eu-west-1",
405
+ "instanceId": "i-0123456789abcdef0",
406
+ "user": "ubuntu",
407
+ "identityFile": "~/.ssh/research-gpu.pem"
408
+ }
387
409
  }
388
410
  }
389
411
  ```
@@ -402,7 +424,7 @@ tt pipeline run --spec tunedtensor.json --dry-run
402
424
  tt pipeline run --spec tunedtensor.json
403
425
  ```
404
426
 
405
- These commands discover the adjacent `local-runner.json`. The preview needs
427
+ These commands read runtime and evaluation settings from the core spec. The preview needs
406
428
  no GPU or AWS connection. Results return to the local run and model stores:
407
429
 
408
430
  ```bash
@@ -434,7 +456,7 @@ Activation is optional and requires the run to pass a configured
434
456
  `generalRegression` gate. Without that suite, `tt models activate` fails
435
457
  closed. `tt serve active` also fails closed if nothing is activated — it does
436
458
  not silently serve the protected base model. Once activated, use
437
- `tt serve active --config local-runner.json`.
459
+ `tt serve active`.
438
460
 
439
461
  `tt serve base` does not automatically inject the adjacent project spec.
440
462
  Pass `--spec tunedtensor.json` when the server should enforce its instructions.