@mmmbuto/nexuscrew 0.8.4 → 0.8.6
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 +55 -24
- package/frontend/dist/assets/index-CEFh0hI4.js +90 -0
- package/frontend/dist/assets/{index-COsoJxXQ.css → index-kX5IUxt4.css} +2 -2
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/version.json +1 -1
- package/lib/cli/fleet-service.js +8 -3
- package/lib/fleet/builtin.js +146 -23
- package/lib/fleet/definitions.js +20 -0
- package/lib/fleet/index.js +42 -1
- package/lib/fleet/managed.js +63 -30
- package/lib/fleet/provider.js +12 -11
- package/lib/fleet/routes.js +20 -4
- package/lib/nodes/peering.js +59 -7
- package/lib/nodes/store.js +2 -2
- package/lib/settings/routes.js +22 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-C1AFIaRR.js +0 -90
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
## What it is (v0.8.
|
|
19
|
+
## What it is (v0.8.6 "Connected Fleet")
|
|
20
20
|
|
|
21
21
|
- Runs a small server on the host where your tmux sessions live.
|
|
22
22
|
- Each attach spawns a real PTY running `tmux attach` and bridges its bytes over a WebSocket
|
|
@@ -33,8 +33,12 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
33
33
|
management use the selected location through a scoped single-origin route.
|
|
34
34
|
- **Settings and wizard**: manage roles, nodes, token rotation, and service regeneration
|
|
35
35
|
from the UI; a skippable first-run wizard guides initial setup.
|
|
36
|
-
- **
|
|
37
|
-
|
|
36
|
+
- **Cell lifecycle from the UI**: the primary `+` creates a managed Fleet cell at Local or
|
|
37
|
+
any reachable node. Power opens one shared launch sheet where engine, model, permission
|
|
38
|
+
policy and boot can be reviewed before every start; deletion lives in Settings → Fleet.
|
|
39
|
+
- **Legacy session adoption**: Settings → Fleet lists managed and unmanaged tmux sessions on
|
|
40
|
+
every route. A live unmanaged session can be explicitly imported as a managed cell without
|
|
41
|
+
inventing its engine, provider or model.
|
|
38
42
|
- **Rich cards**: last activity, current command, a sanitized one-line preview per session.
|
|
39
43
|
- **Fleet control**: a built-in schema-driven fleet manager handles cells, engines, model
|
|
40
44
|
selection, and boot persistence; an existing external `fleet` CLI can take ownership through
|
|
@@ -65,19 +69,34 @@ over a real PTY. On the right, a `codex-vl` session running inside the browser c
|
|
|
65
69
|
## Fleet integration
|
|
66
70
|
|
|
67
71
|
A clean install includes the built-in, schema-driven fleet manager. Its safe defaults contain
|
|
68
|
-
|
|
69
|
-
API keys, or machine-specific paths.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
four CLI adapters — **Claude Code**, **Codex**, **Codex-VL**, and **Pi** — and no cells,
|
|
73
|
+
prompts, API keys, or machine-specific paths. Provider, credential-variable name and reusable
|
|
74
|
+
engine definitions live in Settings → Fleet. When a cell is off, its shared launch sheet lets
|
|
75
|
+
you choose the engine, model, permission policy and boot state before starting it; the last
|
|
76
|
+
model and permission choice is remembered separately for each cell and engine.
|
|
77
|
+
|
|
78
|
+
The concise provider catalog is scoped per CLI:
|
|
79
|
+
|
|
80
|
+
- **Claude Code:** Anthropic account, Amazon Bedrock, Google Vertex AI, Microsoft Foundry,
|
|
81
|
+
Ollama Cloud, local Ollama, Z.AI, and a renameable Anthropic-compatible endpoint.
|
|
82
|
+
- **Codex / Codex-VL:** OpenAI/ChatGPT account, OpenAI API, Ollama Cloud, local Ollama,
|
|
83
|
+
LM Studio, and a renameable custom endpoint using the real Responses wire API only.
|
|
84
|
+
- **Pi:** its configured default, Anthropic, OpenAI API, OpenAI Codex OAuth, Google Gemini,
|
|
85
|
+
GitHub Copilot, OpenRouter, local Ollama, DeepSeek, Z.AI, and a custom provider.
|
|
86
|
+
|
|
87
|
+
Provider credentials are resolved from the selected CLI's native login or from an environment
|
|
88
|
+
variable named in the PWA; NexusCrew never stores a new secret value. Legacy Z.AI A/P engines
|
|
89
|
+
remain launch-compatible for existing fleets but are not provider choices for new engines.
|
|
90
|
+
Model discovery is used where the CLI/provider documents it, with a manual model field as the
|
|
91
|
+
portable fallback.
|
|
92
|
+
|
|
93
|
+
Managed engines expose a permission selector both in their definition and in the cell launch
|
|
94
|
+
sheet. New Claude engines (native, Z.AI, Ollama, or custom) default to **Bypass permissions**
|
|
95
|
+
and launch with `--dangerously-skip-permissions`; choose **Standard permissions** to disable
|
|
96
|
+
it. New Codex and Codex-VL engines default to Standard and offer an explicit opt-in for
|
|
97
|
+
`--dangerously-bypass-approvals-and-sandbox`. Pi is always launched with its native Standard
|
|
98
|
+
permission behavior. Claude-compatible managed models also receive matching context and
|
|
99
|
+
auto-compaction window variables, including one-million-token profiles where declared.
|
|
81
100
|
|
|
82
101
|
Custom argv-based engines remain supported. Their command, environment, cwd, and prompt are
|
|
83
102
|
validated against a strict trust boundary and launched without a shell.
|
|
@@ -95,14 +114,19 @@ trusted executable (default `~/.local/bin/fleet`, configurable via `fleet.bin` i
|
|
|
95
114
|
"engines":[{"id":"native","label":"Claude","rc":true},{"id":"my-engine","label":"My Engine"}]}
|
|
96
115
|
```
|
|
97
116
|
|
|
98
|
-
`engines` is optional: it declares the engine
|
|
99
|
-
|
|
100
|
-
|
|
117
|
+
`engines` is optional: it declares the configured engine inventory — `id` is the stable
|
|
118
|
+
identifier, `label` is what the UI displays, and `rc: true` marks engines that support your
|
|
119
|
+
remote-control path. In external mode the external CLI owns its engine list and configuration;
|
|
120
|
+
the NexusCrew power control starts or stops the cell without changing that configuration.
|
|
101
121
|
|
|
102
122
|
and accepts `up <Cell> [--engine E] [--boot]`, `down <Cell> [--boot]`, `engine <Cell> <E>`,
|
|
103
123
|
`boot|noboot <Cell>`. The binary is trust-checked (regular file, not a symlink, not
|
|
104
124
|
world-writable) and the schema is validated strictly — anything else and the feature stays
|
|
105
|
-
off.
|
|
125
|
+
off. Automatic discovery checks the configured path, Termux's `$PREFIX/bin/fleet`, then
|
|
126
|
+
`~/.local/bin/fleet`; startup-service ownership uses the same resolver so built-in and external
|
|
127
|
+
boot managers cannot both take ownership. An explicitly pinned external binary fails closed
|
|
128
|
+
instead of silently switching to another executable. Set `NEXUSCREW_FLEET=0` to disable Fleet
|
|
129
|
+
entirely.
|
|
106
130
|
|
|
107
131
|
## Requirements
|
|
108
132
|
|
|
@@ -134,9 +158,16 @@ token travels in the URL **fragment** (`#token=…`), so it never reaches the se
|
|
|
134
158
|
## Federated Hydra nodes (configured from the PWA)
|
|
135
159
|
|
|
136
160
|
Every installation is always the local node and can join other NexusCrew nodes. Open
|
|
137
|
-
**Settings → Nodes
|
|
138
|
-
|
|
139
|
-
|
|
161
|
+
**Settings → Nodes** and create a ten-minute pairing link/QR. The creator supplies the
|
|
162
|
+
OpenSSH target or Host alias through which that installation is reachable; the v2 link carries
|
|
163
|
+
that routing information, its display label, route slug and optional SSH port. Paste or scan the
|
|
164
|
+
single link on the other device, review the pre-filled fields, then choose **Test and connect**.
|
|
165
|
+
Older v1 links remain accepted and simply require the missing routing fields to be entered.
|
|
166
|
+
|
|
167
|
+
The link never contains an SSH key, identity file, API key or PWA token. Its only credential is
|
|
168
|
+
the random, one-time pairing invite; SSH routing fields are non-secret configuration. A
|
|
169
|
+
successful pairing creates a reciprocal loopback-only link and both sides exchange a redacted
|
|
170
|
+
topology automatically.
|
|
140
171
|
|
|
141
172
|
NexusCrew does not create SSH keys or edit `authorized_keys`. OpenSSH remains authoritative for
|
|
142
173
|
identity files, agents, host keys, ports, ProxyJump and forwarding policy. NexusCrew uses
|
|
@@ -292,7 +323,7 @@ node bin/nexuscrew.js serve
|
|
|
292
323
|
|
|
293
324
|
## Status
|
|
294
325
|
|
|
295
|
-
The current stable release is **v0.8.
|
|
326
|
+
The current stable release is **v0.8.6**, published on npm under the **`latest`** dist-tag.
|
|
296
327
|
|
|
297
328
|
## License
|
|
298
329
|
|