@hlix/cli 1.0.3 → 1.1.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 +36 -34
- package/THIRD_PARTY_NOTICES +3 -274
- package/dist/index-n4w0ewsg.js +400 -0
- package/dist/index.js +5 -5
- package/dist/main-gv3rc38q.js +206 -0
- package/dist/{package-3dm3bbn9.js → package-ctda701x.js} +1 -1
- package/package.json +11 -11
- package/skills/hlix/SKILL.md +22 -14
- package/dist/index-4376x4k9.js +0 -406
- package/dist/main-7r18kc5y.js +0 -184
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var e="@hlix/cli",i="1.0
|
|
2
|
+
var e="@hlix/cli",i="1.1.0",n="SEE LICENSE IN LICENSE",r="Hlix Code and the hlix control-plane CLI.",a=["hlix","cli","agents"],l="https://hlix.ai",p="module",o="./dist/index.js",b={hlix:"./bin/hlix"},c=["bin","install.cjs","dist","skills","LICENSE","THIRD_PARTY_NOTICES"],u={node:">=22.19.0"},d={access:"public"},m={build:"rm -rf dist && bun build src/index.ts --outdir dist --target node --format esm --splitting --packages external --minify --banner '#!/usr/bin/env node'",test:'bun test src --path-ignore-patterns "**/*.integration.test.ts" --timeout 20000',typecheck:"tsc --noEmit",prepublishOnly:"bun run typecheck && bun run build && bun run test","test:integration":"NODE_ENV=test bun run ../../apps/backend/scripts/with-aimock.ts -- bun run ../../apps/backend/scripts/with-test-db.ts -- bun test --isolate --preload ../../apps/backend/test/helpers/pool-lifecycle.ts --timeout 60000 .integration.test.ts","build:binary":"bun run scripts/build-binary.ts","test:binary":"bun run build:binary && HLIX_TEST_BINARY=dist-native/hlix bun test src/__tests__/binary.test.ts --timeout 60000 && bun run scripts/smoke-binary.ts","test:integration:binary":"bun run build:binary && HLIX_TEST_BINARY=dist-native/hlix NODE_ENV=test bun run ../../apps/backend/scripts/with-aimock.ts -- bun run ../../apps/backend/scripts/with-test-db.ts -- bun test --isolate --preload ../../apps/backend/test/helpers/pool-lifecycle.ts --timeout 60000 src/__tests__/auth.integration.test.ts"},h={"@agentclientprotocol/sdk":"1.8.0","@earendil-works/pi-tui":"1.3.0","@mastra/acp":"^0.4.2","@mastra/core":"1.79.0","@mastra/docker":"^0.11.0","@mastra/libsql":"1.26.2","@mastra/mcp":"2.4.1","@mastra/memory":"1.38.0","dinero.js":"2.0.2",ignore:"7.0.12","jsonc-parser":"3.3.1","openapi-fetch":"^0.17.0","smol-toml":"1.9.1",yaml:"2.9.1",zod:"4.6.7"},y={"@hlix/sdk":"^2.0.0","@hlix/shared":"*","@types/bun":"latest",typescript:"^7.0.2"},k={name:e,version:i,license:n,description:r,keywords:a,homepage:l,type:p,main:o,bin:b,files:c,engines:u,publishConfig:d,scripts:m,dependencies:h,devDependencies:y};export{b as bin,k as default,h as dependencies,r as description,y as devDependencies,u as engines,c as files,l as homepage,a as keywords,n as license,o as main,e as name,d as publishConfig,m as scripts,p as type,i as version};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hlix/cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"description": "Hlix Code and the hlix control-plane CLI.",
|
|
6
6
|
"keywords": [
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"@agentclientprotocol/sdk": "1.8.0",
|
|
44
44
|
"@earendil-works/pi-tui": "1.3.0",
|
|
45
45
|
"@mastra/acp": "^0.4.2",
|
|
46
|
-
"@mastra/core": "1.
|
|
47
|
-
"@mastra/docker": "^0.
|
|
48
|
-
"@mastra/libsql": "1.
|
|
49
|
-
"@mastra/mcp": "2.1
|
|
50
|
-
"@mastra/memory": "1.
|
|
46
|
+
"@mastra/core": "1.79.0",
|
|
47
|
+
"@mastra/docker": "^0.11.0",
|
|
48
|
+
"@mastra/libsql": "1.26.2",
|
|
49
|
+
"@mastra/mcp": "2.4.1",
|
|
50
|
+
"@mastra/memory": "1.38.0",
|
|
51
51
|
"dinero.js": "2.0.2",
|
|
52
52
|
"ignore": "7.0.12",
|
|
53
53
|
"jsonc-parser": "3.3.1",
|
|
@@ -57,15 +57,15 @@
|
|
|
57
57
|
"zod": "4.6.7"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@hlix/sdk": "^
|
|
60
|
+
"@hlix/sdk": "^2.0.0",
|
|
61
61
|
"@hlix/shared": "*",
|
|
62
62
|
"@types/bun": "latest",
|
|
63
63
|
"typescript": "^7.0.2"
|
|
64
64
|
},
|
|
65
65
|
"optionalDependencies": {
|
|
66
|
-
"@hlix/cli-darwin-arm64": "1.0
|
|
67
|
-
"@hlix/cli-darwin-x64": "1.0
|
|
68
|
-
"@hlix/cli-linux-x64": "1.0
|
|
69
|
-
"@hlix/cli-linux-arm64": "1.0
|
|
66
|
+
"@hlix/cli-darwin-arm64": "1.1.0",
|
|
67
|
+
"@hlix/cli-darwin-x64": "1.1.0",
|
|
68
|
+
"@hlix/cli-linux-x64": "1.1.0",
|
|
69
|
+
"@hlix/cli-linux-arm64": "1.1.0"
|
|
70
70
|
}
|
|
71
71
|
}
|
package/skills/hlix/SKILL.md
CHANGED
|
@@ -53,11 +53,18 @@ Every command resolves its workspace and API through one chain, highest first:
|
|
|
53
53
|
|
|
54
54
|
1. an explicit flag (`--workspace`, `--base-url`)
|
|
55
55
|
2. the `HLIX_*` environment
|
|
56
|
-
3. the nearest
|
|
56
|
+
3. the nearest `hlix.yml`, walking up from the working directory
|
|
57
57
|
4. the stored credential
|
|
58
58
|
5. the built-in default (`https://server.hlix.ai`)
|
|
59
59
|
|
|
60
|
-
The folder's binding
|
|
60
|
+
The folder's binding is the `hlix:` block in that file: workspace and project
|
|
61
|
+
id. `hlix.api` is optional. When it is absent, the folder uses
|
|
62
|
+
`https://server.hlix.ai`, and that host outranks the stored credential. `init`
|
|
63
|
+
and `import` write `hlix.api` only when the server is a different host. A file
|
|
64
|
+
that already names the production server keeps that line. Commands read
|
|
65
|
+
`hlix.yml` only. A folder that still has just `.hlix/config.json` is not bound;
|
|
66
|
+
`hlix init` copies that binding into `hlix.yml`. The binding outranks the
|
|
67
|
+
machine-wide credential: a folder
|
|
61
68
|
bound to workspace A is queried against workspace A even when the last login
|
|
62
69
|
named workspace B. A flag or environment variable that **contradicts** the
|
|
63
70
|
folder's binding is not resolved by precedence — it exits `workspace_mismatch`
|
|
@@ -77,27 +84,28 @@ hlix config get <dockerImage|harness|memoryTokens|model|sandbox|yolo> [--json]
|
|
|
77
84
|
hlix config set <dockerImage|harness|memoryTokens|model|sandbox|yolo> <value> [--global] [--json]
|
|
78
85
|
```
|
|
79
86
|
|
|
80
|
-
|
|
81
|
-
`~/.hlix/
|
|
87
|
+
`hlix.yml` sets `coder` and `local` for this folder. A field it leaves out comes
|
|
88
|
+
from the machine-wide `~/.hlix/hlix.yml`. The folder wins per field. `config list`
|
|
82
89
|
names the source of every value — `project`, `global`, or `default` when no
|
|
83
90
|
file sets it — and where it applies. The stored credential stays at
|
|
84
91
|
`~/.config/hlix/credentials.json` and is not part of this cascade.
|
|
85
92
|
|
|
86
93
|
`harness` names the coder Hlix Code runs (`hlix`, `claude-code`, `codex`,
|
|
87
|
-
`opencode`, `goose`, `qwen-code`, `pi`) and applies to
|
|
94
|
+
`opencode`, `goose`, `qwen-code`, `pi`) and applies to local environments and Docker containers only — a
|
|
88
95
|
cloud project's coder is the project's own harness setting on the server.
|
|
89
96
|
`model` is the model the hlix agent starts on; `sandbox` is where its files and
|
|
90
97
|
shell live (`cloud`, `docker`, `local`). `dockerImage` is the container image
|
|
91
|
-
the
|
|
98
|
+
the Docker container runs (default `node:22-bookworm`, which carries git, node
|
|
92
99
|
and python3 but no bun) and `--docker-image <ref>` sets it for one session.
|
|
93
100
|
`memoryTokens` is how much of a thread the agent's observational memory holds
|
|
94
101
|
before summarizing — the number the session footer counts against, 200000 by
|
|
95
102
|
default. `yolo` is `true` or `false`: `true` runs every tool — writes, shell
|
|
96
103
|
commands, `hlix_*` calls, MCP tools — without asking for approval, and the
|
|
97
|
-
session footer says `yolo` while it is on. `config set` writes this folder unless
|
|
98
|
-
|
|
99
|
-
refuses `projectId`, `workspaceId` and `apiUrl
|
|
100
|
-
|
|
104
|
+
session footer says `yolo` while it is on. `config set` writes this folder's `hlix.yml` unless `--global` is given, and
|
|
105
|
+
leaves every other field in the file untouched. `--global` writes
|
|
106
|
+
`~/.hlix/hlix.yml`. It refuses `projectId`, `workspaceId` and `apiUrl`.
|
|
107
|
+
Those live in the `hlix:` block of `hlix.yml`, which `init` and `import` write.
|
|
108
|
+
`hlix.api` is omitted when the server is `https://server.hlix.ai`.
|
|
101
109
|
|
|
102
110
|
## Project secrets
|
|
103
111
|
|
|
@@ -149,7 +157,7 @@ tracks**, because an exported file is plaintext and must not become a commit.
|
|
|
149
157
|
`--format` re-renders a source as another shape; omitted, it keeps the shape
|
|
150
158
|
the values were parsed as.
|
|
151
159
|
|
|
152
|
-
Secrets are agency-only on every route. A client
|
|
160
|
+
Secrets are agency-only on every route. A portal client gets `forbidden`.
|
|
153
161
|
|
|
154
162
|
## Dispatching work
|
|
155
163
|
|
|
@@ -192,7 +200,7 @@ hlix projects delete <id|name> [--yes] [--json]
|
|
|
192
200
|
hlix projects watch [--project <id>] [--json] # stream the project manager's feed until stopped
|
|
193
201
|
hlix projects message [--project <id>] <text> [--json] # send the project manager a message, print its answer
|
|
194
202
|
hlix init [folder] [--project <id>] [--json] # create committed project configuration; --project binds an existing cloud project
|
|
195
|
-
hlix terminal [project-id] [--print] [--web] [--json] # shell into the project's
|
|
203
|
+
hlix terminal [project-id] [--print] [--web] [--json] # shell into the project's Cloud Machine (ssh here, or the browser terminal)
|
|
196
204
|
hlix import [folder] [--dry-run] [--env-file <path>] [--history preserve|sanitize] [--include <path>] [--yes] [--json]
|
|
197
205
|
hlix sync [--dry-run] [--json] # push or pull when only one side changed
|
|
198
206
|
hlix pull [--dry-run] [--json]
|
|
@@ -234,7 +242,7 @@ Run `hlix import --dry-run` first. The report includes file count, byte count an
|
|
|
234
242
|
|
|
235
243
|
`--history preserve` retains local history after a complete secret scan. If the scan finds potential secrets or cannot complete, review the findings or use `--history sanitize` to upload current files. Source files travel through Git. Protected files use the encrypted secrets channel and never enter the source upload.
|
|
236
244
|
|
|
237
|
-
`push`, `pull` and `sync` compare an immutable commit SHA and local file identities. They refuse to overwrite simultaneous local and remote changes. `--dry-run` reports the intended action. `mirror` checks for changes every 15 seconds and stops when cancelled; conflicts leave both copies intact and require manual resolution. Neither sync nor browsing committed files requires a
|
|
245
|
+
`push`, `pull` and `sync` compare an immutable commit SHA and local file identities. They refuse to overwrite simultaneous local and remote changes. `--dry-run` reports the intended action. `mirror` checks for changes every 15 seconds and stops when cancelled; conflicts leave both copies intact and require manual resolution. Neither sync nor browsing committed files requires a Cloud Machine to wake up.
|
|
238
246
|
|
|
239
247
|
Import keeps the project binding after an interrupted push. Use `hlix push` to resume against that same repository. A folder bound with `init` can bootstrap an empty repository, or pull an existing repository into an empty local folder. A nonempty local folder with no known base cannot overwrite existing remote source.
|
|
240
248
|
|
|
@@ -266,7 +274,7 @@ Branch on `error.code`, never on `error.message`. Codes: `unauthenticated`,
|
|
|
266
274
|
`forbidden`, `not_found`, `conflict`, `invalid_request`, `bad_request`,
|
|
267
275
|
`rate_limited`, `not_implemented`, `server_error`, `unreachable`,
|
|
268
276
|
`missing_argument`, `invalid_usage`, `approval_required`, `cancelled`, `unknown_command`,
|
|
269
|
-
`workspace_mismatch`, `not_initialized`, `scan_blocked`,
|
|
277
|
+
`workspace_mismatch`, `not_initialized`, `invalid_project_file`, `scan_blocked`,
|
|
270
278
|
`workspace_required`, `invalid_base_url`, `missing_credential`, `unknown`.
|
|
271
279
|
|
|
272
280
|
That list is the complete set — `skill.test.ts` compares it against every code
|