@hlix/cli 0.7.2 → 1.0.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/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
1
  Hlix Code and the hlix CLI
2
- Copyright (c) 2026 hlix.ai. All rights reserved.
2
+ Copyright (c) 2026 Hlix, Inc. All rights reserved.
3
3
 
4
4
  This software is proprietary. It is distributed in compiled form so that you
5
5
  can install and run it.
package/README.md CHANGED
@@ -47,15 +47,15 @@ platform (`@hlix/cli-darwin-arm64`, `-darwin-x64`, `-linux-x64` or
47
47
  `-linux-arm64`) and `hlix` runs it directly. Where there is none (Windows,
48
48
  musl-based Linux, `--omit=optional`) the Node build in this package runs
49
49
  instead, after one line on stderr. Without npm,
50
- `curl -fsSL https://staging.hlix.ai/install.sh | bash` installs the same
50
+ `curl -fsSL https://hlix.ai/install.sh | bash` installs the same
51
51
  executable, and so does `brew install hlix-ai/tap/hlix`.
52
52
 
53
53
  For CI, and for anything else that must not change underneath you, pin the
54
54
  version instead of floating to `latest`:
55
55
 
56
56
  ```bash
57
- npm install --global @hlix/cli@0.7.2
58
- npx @hlix/cli@0.7.2 status --json
57
+ npm install --global @hlix/cli@1.0.0
58
+ npx @hlix/cli@1.0.0 status --json
59
59
  ```
60
60
 
61
61
  ## Authenticate
@@ -110,26 +110,21 @@ hlix status [--json]
110
110
  hlix init [folder] [--project <id>] [--json]
111
111
  hlix terminal [project-id] [--print] [--web] [--json]
112
112
  hlix import [folder] [--dry-run] [--env-file <path>] [--history preserve] [--yes]
113
- hlix push [--dry-run] | hlix pull [--force] [--yes] [--dry-run] | hlix sync [--dry-run]
113
+ hlix push [--dry-run] | hlix pull [--dry-run] | hlix sync [--dry-run]
114
114
  hlix projects list [--json]
115
115
  hlix projects get [project-id] [--json]
116
+ hlix projects watch [--project <id>] # the project manager's feed, until you stop it
117
+ hlix projects message [--project <id>] <text> # ask the project manager, print its answer
116
118
  hlix tasks list [--project <id>] [--status <status>] [--json]
117
119
  hlix tasks get <id> [--json]
118
120
  hlix tasks review <id> [--json]
119
- hlix tasks watch <id> # follows the task's status stream over SSE
121
+ hlix tasks watch <id> # follows the task's live status until it is over
120
122
  ```
121
123
 
122
124
  `--dry-run` on `push`, `pull` and `sync` prints the divergence and the verdict
123
- the real command would reach, and changes nothing. `pull --force` replaces local
124
- files, so it asks first; `--yes` is the documented script bypass.
125
+ the real command would reach, and changes nothing. Sync refuses simultaneous local and remote changes.
125
126
 
126
- `hlix import .` scans the selected root, builds a temporary Git bundle without
127
- mutating the source repository, uploads it resumably, restores it into the
128
- project's Coding Workspace, and records the initial immutable revision. Dotenv
129
- values never enter the bundle: choose one file with `--env-file`, review the
130
- key-only dry-run, and approve with `--yes`. Agent instructions, skills, and MCP
131
- configuration are quarantined for separate review instead of being executed
132
- during import.
127
+ `hlix import .` scans the selected root and pushes source files into **HLIX Repos** through Git. It keeps the local repository and its origin intact. `--history preserve` retains scanned source history; incomplete scans or secret findings require review or `--history sanitize`. Protected files move through the encrypted secrets channel. File browsing does not start the project's Coding Workspace.
133
128
 
134
129
  ## Hlix Code
135
130
 
@@ -144,23 +139,23 @@ hlix -p "what does this repo do" --json # JSONL events instead of prose
144
139
 
145
140
  Inside the shell:
146
141
 
147
- | | |
148
- | --- | --- |
149
- | `/help` | every command this build knows |
150
- | `/model` | pick the model, from what your workspace serves |
151
- | `/harness` | pick which coder does the work |
152
- | `/sandbox` | pick where this session's files and commands run |
153
- | `/rules` | which rules files the agent loaded, and how big they are |
154
- | `/standards` | what this folder gave the agent, and which MCP servers connected |
155
- | `/yolo` | run without being asked for approval — toggles |
156
- | `/log` | what this session's libraries logged, which the screen never shows |
142
+ | | |
143
+ | ----------------------------------------- | ---------------------------------------------------------------------------------------- |
144
+ | `/help` | every command this build knows |
145
+ | `/model` | pick the model, from what your workspace serves |
146
+ | `/harness` | pick which coder does the work |
147
+ | `/sandbox` | pick where this session's files and commands run |
148
+ | `/rules` | which rules files the agent loaded, and how big they are |
149
+ | `/standards` | what this folder gave the agent, and which MCP servers connected |
150
+ | `/yolo` | run without being asked for approval — toggles |
151
+ | `/log` | what this session's libraries logged, which the screen never shows |
157
152
  | `/new`, `/threads`, `/resume`, `/compact` | start a conversation, list this project's, pick an earlier one, condense one into memory |
158
- | `/<any hlix command>` | `/status`, `/tasks-list`, `/push` — the CLI, inline, as its own panel |
159
- | `/<your own>` | every `.md` file in `.claude/commands` or `.hlix/commands` |
160
- | ⇧Tab | switch between `build` and `plan` |
161
- | Ctrl-O | expand the newest tool, command or subagent panel |
162
- | ESC | stop the turn that is running |
163
- | Ctrl-C twice | leave |
153
+ | `/<any hlix command>` | `/status`, `/tasks-list`, `/push` — the CLI, inline, as its own panel |
154
+ | `/<your own>` | every `.md` file in `.claude/commands` or `.hlix/commands` |
155
+ | ⇧Tab | switch between `build` and `plan` |
156
+ | Ctrl-O | expand the newest tool, command or subagent panel |
157
+ | ESC | stop the turn that is running |
158
+ | Ctrl-C twice | leave |
164
159
 
165
160
  A tool that changes something asks first, as a block above the prompt: allow
166
161
  once, decline with a reason, or allow that family for the rest of the session.
@@ -225,9 +220,17 @@ rather than writing a secret into the file.
225
220
  {
226
221
  "schemaVersion": 1,
227
222
  "providers": [
228
- { "name": "lab", "url": "http://localhost:1234/v1", "models": ["qwen3-coder"] },
229
- { "name": "acme", "url": "https://api.acme.test/v1", "models": ["acme-coder"],
230
- "apiKeyEnv": "ACME_API_KEY" }
223
+ {
224
+ "name": "lab",
225
+ "url": "http://localhost:1234/v1",
226
+ "models": ["qwen3-coder"]
227
+ },
228
+ {
229
+ "name": "acme",
230
+ "url": "https://api.acme.test/v1",
231
+ "models": ["acme-coder"],
232
+ "apiKeyEnv": "ACME_API_KEY"
233
+ }
231
234
  ]
232
235
  }
233
236
  ```
@@ -253,9 +256,9 @@ always being 1.
253
256
 
254
257
  - **No execution commands.** Dispatching a run from a dropped connection can
255
258
  duplicate work, and the commands to do so are not part of this surface.
256
- - **No `tasks logs --follow`.** There is no log *stream* on the API — only plain
259
+ - **No `tasks logs --follow`.** There is no log _stream_ on the API — only plain
257
260
  reads — so a `--follow` here would be a poll dressed up as a stream. Use
258
- `hlix tasks watch` for the real status stream instead.
261
+ `hlix tasks watch` for the task's live status instead.
259
262
  - **No retries on non-idempotent verbs.** A retried POST is a duplicated
260
263
  request; the SDK refuses it and this CLI inherits that.
261
264
 
@@ -15,7 +15,7 @@ does not carry that entry can reproduce for it, and for a compiled binary it is
15
15
  also its own. Where such an entry ships a licence of its OWN, that text is kept
16
16
  with this generator instead and the entry is listed under it.
17
17
 
18
- Packages (271)
18
+ Packages (270)
19
19
  --------------
20
20
 
21
21
  @a2a-js/sdk (Apache-2.0)
@@ -261,7 +261,6 @@ Packages (271)
261
261
  tar-stream (MIT)
262
262
  teex (MIT)
263
263
  text-decoder (Apache-2.0)
264
- tokenx (MIT)
265
264
  trough (MIT)
266
265
  tslib (0BSD)
267
266
  tweetnacl (Unlicense)
@@ -5148,32 +5147,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5148
5147
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
5149
5148
  THE SOFTWARE.
5150
5149
 
5151
- ==============================================================================
5152
- tokenx (MIT)
5153
- ==============================================================================
5154
-
5155
- MIT License
5156
-
5157
- Copyright (c) 2023-PRESENT Johann Schopplich
5158
-
5159
- Permission is hereby granted, free of charge, to any person obtaining a copy
5160
- of this software and associated documentation files (the "Software"), to deal
5161
- in the Software without restriction, including without limitation the rights
5162
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5163
- copies of the Software, and to permit persons to whom the Software is
5164
- furnished to do so, subject to the following conditions:
5165
-
5166
- The above copyright notice and this permission notice shall be included in all
5167
- copies or substantial portions of the Software.
5168
-
5169
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5170
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5171
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5172
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5173
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5174
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
5175
- SOFTWARE.
5176
-
5177
5150
  ==============================================================================
5178
5151
  trough (MIT)
5179
5152
  ==============================================================================
package/bin/hlix CHANGED
@@ -20,12 +20,12 @@ if (!command) {
20
20
 
21
21
  // This copy is the one a person installed; the binary runs from the platform
22
22
  // package, so it is told which path to report (hlix status).
23
- const child = spawn(command, args, { stdio: "inherit", env: { ...process.env, HLIX_SELF: process.argv[1] } })
24
23
  // The terminal signals the whole process group; a signal sent to this
25
24
  // process alone (a supervisor, `kill`) is passed on instead of orphaning it.
26
25
  const forward = (signal) => child.kill(signal)
27
26
  const signals = ["SIGINT", "SIGTERM", "SIGHUP"]
28
27
  for (const signal of signals) process.on(signal, forward)
28
+ const child = spawn(command, args, { stdio: "inherit", env: { ...process.env, HLIX_SELF: process.argv[1] } })
29
29
  child.on("error", (error) => {
30
30
  process.stderr.write(`hlix: ${command}: ${error.message}\n`)
31
31
  process.exit(1)