@qialike/cli 0.8.1 → 0.9.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
@@ -15,11 +15,26 @@ Terminal client for **DeepSeek Harness** — a full-screen TUI over an agent ses
15
15
 
16
16
  ## Install (Windows)
17
17
 
18
- ```sh
18
+ Node.js **≥ 18** is required — it ships the `npm` used below. Install it first (the terminal must be
19
+ reopened afterwards so PATH picks it up), then install this package:
20
+
21
+ ```powershell
22
+ winget install OpenJS.NodeJS.LTS # or download the LTS installer from https://nodejs.org/
23
+ node --version # reopen the terminal, then check both
24
+ npm --version
19
25
  npm i -g @qialike/cli
20
26
  qialike --version
21
27
  ```
22
28
 
29
+ On Windows npm's global prefix is `%APPDATA%\npm` — inside your user profile, and on the user PATH
30
+ already — so this needs **no administrator rights**.
31
+
32
+ **Run it inside the Windows Terminal app**, not the legacy console window that `cmd.exe` /
33
+ `powershell.exe` open on their own: qialike draws 24-bit colour, `▀▄█` half-block art, emoji and a
34
+ flat cursor, and it takes mouse input — Windows Terminal handles all of that, the old console host
35
+ handles it poorly. Install it with `winget install Microsoft.WindowsTerminal` (Windows 11 ships it),
36
+ then open a PowerShell or cmd tab there — the shell is still your choice.
37
+
23
38
  **You do not choose an architecture.** The package declares one optional dependency per Windows
24
39
  target — `@qialike/cli-win32-x64` and `@qialike/cli-win32-arm64` — each restricted with `os`/`cpu`,
25
40
  so npm downloads only the payload that matches your machine (x64 or arm64), never both.
@@ -31,9 +46,25 @@ an interrupted install all leave the launcher without a binary. It then prints t
31
46
  install the package for your architecture, for example:
32
47
 
33
48
  ```sh
34
- npm i -g @qialike/cli-win32-arm64@0.8.1
49
+ npm i -g @qialike/cli-win32-arm64@0.9.0
35
50
  ```
36
51
 
52
+ The version is pinned to the one you already have: a bare `npm i -g
53
+ @qialike/cli-win32-arm64` can resolve a platform package that does not match the parent that sent
54
+ you here. Use the version the launcher printed.
55
+
56
+ ## Uninstalling
57
+
58
+ Two steps, because this package puts the program outside the harness home:
59
+
60
+ ```sh
61
+ qialike uninstall # clears the harness home (state, settings, sessions)
62
+ npm uninstall -g @qialike/cli # removes the program itself
63
+ ```
64
+
65
+ `qialike uninstall` prints that second command for you — it cannot run it, because the payload sits
66
+ under your package manager's prefix rather than in `%USERPROFILE%\.dsh\bin`.
67
+
37
68
  ## Alternative installers
38
69
 
39
70
  - Shell installer (Linux, macOS): `curl -fsSL https://qialike.com/install | bash`
package/bin/qialike.js CHANGED
@@ -150,7 +150,18 @@ if (!existsSync(exe)) {
150
150
 
151
151
  // Hand the terminal over: stdio is inherited, because the TUI owns raw mode,
152
152
  // colour and resize. The child's exit code is what the caller sees.
153
- const result = spawnSync(exe, process.argv.slice(2), { stdio: 'inherit' })
153
+ //
154
+ // `QIALIKE_INSTALLED_VIA` tells the program it was reached through a package
155
+ // manager. It matters for exactly one thing: `qialike uninstall` clears the
156
+ // harness home, but THIS copy lives under the manager's prefix (npm's
157
+ // %APPDATA%\npm\node_modules\…), so only `npm uninstall -g @qialike/cli` can
158
+ // remove it — and nothing in the home hints that the copy came from npm rather
159
+ // than from the shell installer. The launcher is the one component that knows,
160
+ // so it says so.
161
+ const result = spawnSync(exe, process.argv.slice(2), {
162
+ stdio: 'inherit',
163
+ env: { ...process.env, QIALIKE_INSTALLED_VIA: 'npm' },
164
+ })
154
165
 
155
166
  if (result.error) {
156
167
  const reason = result.error instanceof Error ? result.error.message : String(result.error)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qialike/cli",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "Terminal client for DeepSeek Harness. Installs the Windows binary for your architecture (x64 or arm64) automatically.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -18,8 +18,8 @@
18
18
  "node": ">=18"
19
19
  },
20
20
  "optionalDependencies": {
21
- "@qialike/cli-win32-x64": "0.8.1",
22
- "@qialike/cli-win32-arm64": "0.8.1"
21
+ "@qialike/cli-win32-x64": "0.9.0",
22
+ "@qialike/cli-win32-arm64": "0.9.0"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"