@tuned-tensor/cli 0.27.0 → 0.28.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.
@@ -6,7 +6,7 @@ import {
6
6
  safeName,
7
7
  verifyLocalBaseModel,
8
8
  verifyModelPrefetchCacheReport
9
- } from "./chunk-2AIP63QO.js";
9
+ } from "./chunk-FSVTMX4L.js";
10
10
  export {
11
11
  buildModelPrefetchPayload,
12
12
  buildModelSourcePrefetchPayload,
@@ -15,4 +15,4 @@ export {
15
15
  verifyLocalBaseModel,
16
16
  verifyModelPrefetchCacheReport
17
17
  };
18
- //# sourceMappingURL=prefetch-B6I7B4LR.js.map
18
+ //# sourceMappingURL=prefetch-LBIOO7ZO.js.map
@@ -0,0 +1,151 @@
1
+ # Windows and PowerShell
2
+
3
+ The CLI runs natively in Windows PowerShell 5.1 and PowerShell 7. Windows x64
4
+ setup includes a private Node.js runtime, installs for the current user without
5
+ administrator access, and adds `tt` to the user PATH. It does not change your
6
+ PowerShell execution policy or your system Node.js installation.
7
+
8
+ ## Install
9
+
10
+ Until the first Windows release and WinGet catalog submission are published,
11
+ use the npm route below. Merging CLI changes alone does not publish a package.
12
+
13
+ For a release with Windows assets, download and run
14
+ `tuned-tensor-cli-<version>-windows-x64.exe` from the
15
+ [GitHub releases](https://github.com/tunedtensor/tuned-tensor-cli/releases).
16
+ Open a new terminal and run:
17
+
18
+ ```powershell
19
+ tt --version
20
+ tt
21
+ ```
22
+
23
+ An inspectable PowerShell installer is available in
24
+ [`scripts/install.ps1`](../scripts/install.ps1). Download it, inspect it, and
25
+ execute it with a policy permitted by your organization. It downloads the
26
+ release installer, checks its SHA-256 against the release checksum, and runs
27
+ setup. `-Version 0.27.0` (example) or `$env:TT_VERSION` pins an exact release;
28
+ the default is the latest stable release. It fails if that release has no
29
+ Windows asset. The standalone installer currently supports x64 only.
30
+
31
+ After `TunedTensor.CLI` is accepted into the public WinGet catalog:
32
+
33
+ ```powershell
34
+ winget install --id TunedTensor.CLI --exact --source winget
35
+ # Open a new PowerShell window after installation.
36
+ tt --version
37
+ winget upgrade --id TunedTensor.CLI --exact --source winget
38
+ winget uninstall --id TunedTensor.CLI --exact
39
+ ```
40
+
41
+ The first catalog submission requires a published stable installer; these
42
+ commands are not available just because this repository contains manifests.
43
+ Setup can also be updated by running a newer installer, and removed through
44
+ Windows **Installed apps**. Close running TT sessions before updating.
45
+ `tt upgrade` detects setup-managed installs and shows the appropriate instructions.
46
+ Uninstall removes the application's PATH entry and managed files, preserving
47
+ `~/.tuned-tensor` and project data.
48
+
49
+ ## npm installation, including Windows ARM64
50
+
51
+ With Node.js 22.19.0 or newer already installed:
52
+
53
+ ```powershell
54
+ npm.cmd install -g --ignore-scripts @tuned-tensor/cli
55
+ tt.cmd --version
56
+ tt.cmd
57
+ tt.cmd upgrade
58
+ ```
59
+
60
+ You can install Node.js through WinGet first:
61
+
62
+ ```powershell
63
+ winget install --id OpenJS.NodeJS.LTS --exact --source winget
64
+ # Open a new terminal so Node and npm are on PATH, then run the npm commands above.
65
+ ```
66
+
67
+ Use `npm.cmd` and `tt.cmd` explicitly when PowerShell blocks npm's generated
68
+ `.ps1` launchers. No execution-policy change is needed. The standalone setup
69
+ ships only `tt.cmd`, so plain `tt` works there even with Restricted policy.
70
+ `TT` also works because Windows command lookup is case-insensitive.
71
+
72
+ For npm installs, uninstall with `npm.cmd uninstall -g @tuned-tensor/cli`.
73
+ If you selected a custom npm `--prefix`, supply the same prefix on uninstall
74
+ and add that directory itself (not a `bin` subdirectory) to your user PATH.
75
+ Use an install prefix without `&`: npm's generated `tt.cmd` launcher can fail
76
+ when that character appears in its directory, including in a Windows username.
77
+ If affected, select an accessible prefix such as `C:\TunedTensor` and add it
78
+ to your user PATH. Quoted paths containing spaces work.
79
+ `tt upgrade` finds the prefix of the running installation automatically.
80
+ Use `Get-Command tt -All` to find older installations if the wrong version runs.
81
+
82
+ ## Native CLI scope
83
+
84
+ Account commands, the conversational interface, hardware discovery, spec
85
+ inspection, data commands, and pipeline previews run from PowerShell. Environment
86
+ variables use PowerShell syntax, for example `$env:TT_NO_UPDATE_CHECK = '1'`.
87
+ Use Windows paths and quotes around paths containing spaces.
88
+ Inside TT's conversational terminal, backslashes stay literal on Windows:
89
+ `/cd "C:\work files"` and `spec view .\tunedtensor.json` work as expected.
90
+
91
+ Agent-approved spec creation, editing and revision history also work on Windows.
92
+ TT pins real workspace directories while applying the reviewed changes. These
93
+ operations require the built-in Windows PowerShell host with .NET interop allowed;
94
+ an organizational policy that blocks it causes TT to refuse the write. No global
95
+ execution-policy change is made. `tt init`, your editor, `tt spec view` and
96
+ `tt pipeline run --dry-run` remain available for manual workflows.
97
+
98
+ Some runtime features have narrower platform requirements:
99
+
100
+ - Native Windows x64 decision training is not yet end-to-end certified; Windows
101
+ ARM64 lacks compatible wheels in the current Python lockfiles. The packaged
102
+ LLM training/serving stack still requires a supported Linux/CUDA environment.
103
+ - AWS GPU transport uses local rsync and POSIX path conventions. Run that
104
+ workflow, including background training and cancellation, inside WSL2/Linux.
105
+ A native Windows install does not provide those tools or certify that workflow.
106
+
107
+ See the platform table in the [README](../README.md) and the
108
+ [AWS guide](local-runtime/aws-gpu.md) for training prerequisites.
109
+
110
+ ## Release and WinGet maintenance
111
+
112
+ `scripts/build-windows.ps1` builds the CLI, packs and installs the npm artifact
113
+ with `--ignore-scripts`, includes the build's Node 22 x64 runtime and its license,
114
+ and compiles an Inno Setup 7 installer. Run it on Windows with Node/npm and
115
+ Inno Setup 7 installed (or supply `-CompilerPath`). Version 7 is required for
116
+ [extended-length dependency paths](https://jrsoftware.org/files/is7-whatsnew.htm).
117
+ CI downloads a pinned compiler and verifies its SHA-256. Outputs are under
118
+ `windows-dist/`.
119
+
120
+ The Windows CI job runs on PRs and gates npm releases. It tests the built
121
+ installer in PowerShell 5.1 and 7: repeated install, private runtime without
122
+ system Node on PATH, CLI inspection and dry-run, upgrade ownership, and uninstall
123
+ with unrelated PATH entries and user data preserved. It also exercises npm
124
+ global installation, including actual status, spec inspection, hardware discovery
125
+ and pipeline previews in both shells. A native Windows ARM64 job checks the npm
126
+ route, architecture rejection in the x64 downloader, and the same CLI regressions.
127
+ The complete CLI suite runs on both Windows architectures, including the real
128
+ agent loop with scripted provider responses, approved spec writes, resume,
129
+ dataset splitting, CLI handoff and cancellation. POSIX rsync transport fixtures
130
+ run in Linux/WSL; file-symlink fixtures require Developer Mode or the relevant
131
+ Windows privilege. Directory junction refusal is tested without that privilege.
132
+ This is CLI/distribution coverage, not a real model-training
133
+ certification.
134
+
135
+ The release workflow attaches the tested `.exe`, `.exe.sha256`, and, for stable
136
+ versions, `winget-manifests.zip` to the same GitHub release after npm publication.
137
+ The manifests contain the actual installer hash and versioned release URL.
138
+ Prereleases never generate stable WinGet manifests.
139
+
140
+ For each stable release:
141
+
142
+ 1. Download and extract `winget-manifests.zip` from the release.
143
+ 2. Run `winget validate --manifest .\manifests\t\TunedTensor\CLI\<version>`.
144
+ 3. Follow Microsoft's [sandbox test and submission procedure](https://learn.microsoft.com/en-us/windows/package-manager/package/repository)
145
+ to test the published installer and submit that directory to `microsoft/winget-pkgs`.
146
+ 4. Wait for the catalog PR to be accepted before announcing WinGet availability.
147
+
148
+ No catalog PR is opened by the release workflow. Keep the installer AppId and
149
+ manifest ProductCode stable so upgrades and uninstall identify the same app.
150
+ Release assets must remain immutable; regenerate checksums/manifests after any
151
+ signing step if signing is added to the release process.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuned-tensor/cli",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "description": "Local TT agent and CUDA fine-tuning CLI for Tuned Tensor workflows",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,6 +16,7 @@
16
16
  "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json",
17
17
  "test": "npm run test:cli && npm run test:local-runtime && npm run test:python",
18
18
  "test:cli": "vitest run",
19
+ "test:windows": "npm run test:cli && npm run test:local-runtime",
19
20
  "test:workflows": "vitest run src/__tests__/workflows",
20
21
  "eval:agent": "tsx scripts/eval-agent.ts",
21
22
  "test:local-runtime": "node --import tsx --test \"test/local-runtime/**/*.test.ts\"",
@@ -38,6 +39,7 @@
38
39
  "training/decision/src/*.py",
39
40
  "docs/local-runtime",
40
41
  "docs/spec-workflow.md",
42
+ "docs/windows.md",
41
43
  "docs/spec-architecture.html",
42
44
  "examples/local-runtime/*.json",
43
45
  "examples/local-runtime/*.jsonl",