@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 +1 -1
- package/README.md +38 -35
- package/THIRD_PARTY_NOTICES +1 -28
- package/bin/hlix +1 -1
- package/dist/index-jf4vh8hj.js +403 -0
- package/dist/index.js +4 -4
- package/dist/main-003f6m56.js +161 -0
- package/dist/package-qbwm0yj5.js +2 -0
- package/package.json +16 -15
- package/skills/hlix/SKILL.md +38 -125
- package/dist/index-70g03k87.js +0 -446
- package/dist/main-73kw5ktg.js +0 -144
- package/dist/package-844qvsxr.js +0 -2
package/LICENSE
CHANGED
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://
|
|
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.
|
|
58
|
-
npx @hlix/cli@0.
|
|
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 [--
|
|
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
|
|
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.
|
|
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
|
|
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`
|
|
150
|
-
| `/model`
|
|
151
|
-
| `/harness`
|
|
152
|
-
| `/sandbox`
|
|
153
|
-
| `/rules`
|
|
154
|
-
| `/standards`
|
|
155
|
-
| `/yolo`
|
|
156
|
-
| `/log`
|
|
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>`
|
|
159
|
-
| `/<your own>`
|
|
160
|
-
| ⇧Tab
|
|
161
|
-
| Ctrl-O
|
|
162
|
-
| ESC
|
|
163
|
-
| Ctrl-C twice
|
|
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
|
-
{
|
|
229
|
-
|
|
230
|
-
"
|
|
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
|
|
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
|
|
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
|
|
package/THIRD_PARTY_NOTICES
CHANGED
|
@@ -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 (
|
|
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)
|