@ours.network/install 1.2.1-nightly.25 → 1.2.1-nightly.26
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 +1 -1
- package/assets/release-lock.json +7 -7
- package/assets/release.json +3 -3
- package/assets/sources.json +4 -4
- package/lib/client-cli.mjs +1 -1
- package/lib/server-onboarding.mjs +2 -1
- package/lib/setup-options.mjs +10 -2
- package/lib/usage.mjs +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -591,4 +591,4 @@ Existing installation records keep their ports and identities. A listener acquir
|
|
|
591
591
|
by another process after preflight still causes startup to fail safely; no foreign
|
|
592
592
|
process is stopped and no retained installation is silently moved.
|
|
593
593
|
|
|
594
|
-
Workspace setup pins Fleet `1.2.0-nightly.
|
|
594
|
+
Workspace setup pins Fleet `1.2.0-nightly.33` with its recorded registry integrity. This release includes the packaged `/fleet` browser entry, separate `ours-fleet setup-tunnel` and `ours-fleet link-device` commands, host prerequisite checks before the one-time workspace proof (`setup-tunnel --check`), `setup-tunnel --resume` to finish a setup that stopped after the host saved its private pending setup record (not when the proof's answer was lost, or after the setup window expired with an unconfirmed non-default port), and persists the available Fleet loopback port used by the workspace tunnel. Existing installation identities and configured ports remain retained; a retained-port collision fails safely.
|
package/assets/release-lock.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@ours.network/codex": "1.2.0-nightly.10",
|
|
14
14
|
"@ours.network/cowork": "1.3.3-nightly.20261001.6d49d3a",
|
|
15
15
|
"@ours.network/daemon": "3.8.1-nightly.7",
|
|
16
|
-
"@ours.network/fleet": "1.2.0-nightly.
|
|
16
|
+
"@ours.network/fleet": "1.2.0-nightly.33",
|
|
17
17
|
"@ours.network/mcp": "1.2.0-nightly.10",
|
|
18
18
|
"@ours.network/messenger-server": "1.0.31-nightly.13",
|
|
19
19
|
"@ours.network/sdk": "3.8.1-nightly.15",
|
|
@@ -440,9 +440,9 @@
|
|
|
440
440
|
}
|
|
441
441
|
},
|
|
442
442
|
"node_modules/@agentclientprotocol/sdk": {
|
|
443
|
-
"version": "1.6.
|
|
444
|
-
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.6.
|
|
445
|
-
"integrity": "sha512-
|
|
443
|
+
"version": "1.6.1",
|
|
444
|
+
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.6.1.tgz",
|
|
445
|
+
"integrity": "sha512-ziLAZzqrAyW3bkK24c2DSTzLw48fUSKtgG3MTe2pqZgmsvepxXZFlUh9y8UZ2eYOnQ3qBgdcl879YrdWiTu6HQ==",
|
|
446
446
|
"license": "Apache-2.0",
|
|
447
447
|
"peerDependencies": {
|
|
448
448
|
"zod": "^3.25.0 || ^4.0.0"
|
|
@@ -1085,9 +1085,9 @@
|
|
|
1085
1085
|
}
|
|
1086
1086
|
},
|
|
1087
1087
|
"node_modules/@ours.network/fleet": {
|
|
1088
|
-
"version": "1.2.0-nightly.
|
|
1089
|
-
"resolved": "https://registry.npmjs.org/@ours.network/fleet/-/fleet-1.2.0-nightly.
|
|
1090
|
-
"integrity": "sha512-
|
|
1088
|
+
"version": "1.2.0-nightly.33",
|
|
1089
|
+
"resolved": "https://registry.npmjs.org/@ours.network/fleet/-/fleet-1.2.0-nightly.33.tgz",
|
|
1090
|
+
"integrity": "sha512-2z1Q01LeLRnq1HOcBeYJ67WnH5hI/tC/YdTkA4/K2LFdFtbff0j7M2l4SZDpKQaL8zgLjL8NREMSlOufdULJaA==",
|
|
1091
1091
|
"license": "FSL-1.1-Apache-2.0",
|
|
1092
1092
|
"dependencies": {
|
|
1093
1093
|
"@agentclientprotocol/sdk": "^1.3.0",
|
package/assets/release.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": 1,
|
|
3
3
|
"channel": "nightly",
|
|
4
|
-
"installerVersion": "1.2.1-nightly.
|
|
4
|
+
"installerVersion": "1.2.1-nightly.26",
|
|
5
5
|
"packages": {
|
|
6
6
|
"@ours.network/sdk": {
|
|
7
7
|
"version": "3.8.1-nightly.15",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"integrity": "sha512-hDosXHgQ+vyzPdSxqTz6vCaOCn0LMTmOL4TJiWplkJhzyw2c586RckXJbqNJsTa0mmodvLxW0ewZyQ/xJVIeXA=="
|
|
25
25
|
},
|
|
26
26
|
"@ours.network/fleet": {
|
|
27
|
-
"version": "1.2.0-nightly.
|
|
28
|
-
"integrity": "sha512-
|
|
27
|
+
"version": "1.2.0-nightly.33",
|
|
28
|
+
"integrity": "sha512-2z1Q01LeLRnq1HOcBeYJ67WnH5hI/tC/YdTkA4/K2LFdFtbff0j7M2l4SZDpKQaL8zgLjL8NREMSlOufdULJaA=="
|
|
29
29
|
},
|
|
30
30
|
"@ours.network/mcp": {
|
|
31
31
|
"version": "1.2.0-nightly.10",
|
package/assets/sources.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"release": {
|
|
3
3
|
"schema": 1,
|
|
4
4
|
"channel": "nightly",
|
|
5
|
-
"installerVersion": "1.2.1-nightly.
|
|
5
|
+
"installerVersion": "1.2.1-nightly.26",
|
|
6
6
|
"packages": {
|
|
7
7
|
"@ours.network/sdk": {
|
|
8
8
|
"version": "3.8.1-nightly.15",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"integrity": "sha512-hDosXHgQ+vyzPdSxqTz6vCaOCn0LMTmOL4TJiWplkJhzyw2c586RckXJbqNJsTa0mmodvLxW0ewZyQ/xJVIeXA=="
|
|
26
26
|
},
|
|
27
27
|
"@ours.network/fleet": {
|
|
28
|
-
"version": "1.2.0-nightly.
|
|
29
|
-
"integrity": "sha512-
|
|
28
|
+
"version": "1.2.0-nightly.33",
|
|
29
|
+
"integrity": "sha512-2z1Q01LeLRnq1HOcBeYJ67WnH5hI/tC/YdTkA4/K2LFdFtbff0j7M2l4SZDpKQaL8zgLjL8NREMSlOufdULJaA=="
|
|
30
30
|
},
|
|
31
31
|
"@ours.network/mcp": {
|
|
32
32
|
"version": "1.2.0-nightly.10",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
},
|
|
80
80
|
"@ours.network/fleet": {
|
|
81
81
|
"type": "npm",
|
|
82
|
-
"version": "1.2.0-nightly.
|
|
82
|
+
"version": "1.2.0-nightly.33"
|
|
83
83
|
},
|
|
84
84
|
"@ours.network/mcp": {
|
|
85
85
|
"type": "npm",
|
package/lib/client-cli.mjs
CHANGED
|
@@ -88,7 +88,7 @@ export async function publishClientCli(effects, packagePath, { policy = {}, isol
|
|
|
88
88
|
if (sdk.name !== '@ours.network/sdk' || sdk.version !== policy.release.packages['@ours.network/sdk'].version) throw new Error('Private CLI SDK differs from selection');
|
|
89
89
|
mkdirSync(dirname(entry), { recursive: true });
|
|
90
90
|
const binDir = lstatSync(dirname(entry));
|
|
91
|
-
if (!binDir.isDirectory() || binDir.uid !== process.getuid() || (binDir.mode & 0o022)) throw new Error(
|
|
91
|
+
if (!binDir.isDirectory() || binDir.uid !== process.getuid() || (binDir.mode & 0o022)) throw new Error(`CLI bin directory ${dirname(entry)} must be owned by you and not writable by group or others; run chmod go-w on it, or point npm's global prefix at a directory you own`);
|
|
92
92
|
const current = stat(entry);
|
|
93
93
|
if (before ? !current || current.dev !== before.dev || current.ino !== before.ino : current) throw new Error('CLI entry changed during publication');
|
|
94
94
|
const staged = entry + '.' + randomUUID();
|
|
@@ -136,7 +136,8 @@ else { await request('identity/profile', selection.human); process.stdout.write(
|
|
|
136
136
|
`;
|
|
137
137
|
const docker = record.mode === 'docker';
|
|
138
138
|
const selection = { base: `http://127.0.0.1:${docker ? 8420 : record.messengerPort}`,
|
|
139
|
-
origin
|
|
139
|
+
// Behind the gateway Messenger accepts mutations only from the gateway origin.
|
|
140
|
+
origin: record.gateway ? gatewayAddress(record).origin : `http://127.0.0.1:${record.messengerPort}`,
|
|
140
141
|
credentialPath: docker ? '/credentials/messenger/daemon-token' : installationPaths(record).credentials.messenger,
|
|
141
142
|
human: { name: human.name, surname: human.surname } };
|
|
142
143
|
const args = ['--input-type=module', '-e', script, JSON.stringify(selection)];
|
package/lib/setup-options.mjs
CHANGED
|
@@ -219,9 +219,17 @@ export async function collectSetupOptions(effects, presets = {}) {
|
|
|
219
219
|
}
|
|
220
220
|
if (options.scope !== 'client') {
|
|
221
221
|
const recommendation = recommendedMode({ ...effects.platform, arch: effects.platform?.arch ?? process.arch });
|
|
222
|
-
|
|
222
|
+
// Native runs the server only: local clients need the container gateway. A retained
|
|
223
|
+
// native installation keeps its mode, so a full setup of it cannot finish.
|
|
224
|
+
// (An unfinished migration is resumed in its recorded mode and is validated with the plan.)
|
|
225
|
+
if (options.scope === 'all' && existing?.mode === 'packages' && !options.migrateFrom)
|
|
226
|
+
throw new Error('This installation runs natively, which supports the server only. Choose the server-only setup to maintain it (ours-install server); local clients need an installation that runs in Docker or Podman. Nothing was changed.');
|
|
227
|
+
const nativeOffered = options.scope === 'server' || existing?.mode === 'packages';
|
|
228
|
+
effects.out(nativeOffered
|
|
229
|
+
? `${recommendation.reason} Native runs directly on this computer; Docker runs in containers and needs Docker installed and running. An existing installation must keep its current mode.`
|
|
230
|
+
: 'The server runs in containers. Docker and Podman both work; the one you choose must be installed and running. An existing installation must keep its current mode.');
|
|
223
231
|
const runtime = options.mode ?? await effects.select('How should the server run?', [
|
|
224
|
-
{ value: 'packages', label: 'Native packages' }, { value: 'docker', label: 'Docker' }, { value: 'podman', label: 'Podman' },
|
|
232
|
+
...(nativeOffered ? [{ value: 'packages', label: 'Native packages' }] : []), { value: 'docker', label: 'Docker' }, { value: 'podman', label: 'Podman' },
|
|
225
233
|
], existing?.mode === 'docker' && existing?.containerEngine === 'podman' ? 'podman' : existing?.mode ?? recommendation.mode);
|
|
226
234
|
options.mode = runtime === 'podman' ? 'docker' : runtime;
|
|
227
235
|
if (runtime === 'podman') options.containerEngine = 'podman';
|
package/lib/usage.mjs
CHANGED
|
@@ -4,7 +4,8 @@ export const USAGE = `ours-install — interactive setup with optional CLI prese
|
|
|
4
4
|
ours-install
|
|
5
5
|
Opens the console form. Choose all (server + clients), server, or client;
|
|
6
6
|
runtime, installation directory, identity, integrations and Fleet settings.
|
|
7
|
-
|
|
7
|
+
Full setup runs the server in Docker or Podman, which provide the gateway local clients need.
|
|
8
|
+
Native mode is offered for server-only setup. Windows uses WSL.
|
|
8
9
|
|
|
9
10
|
Install now, configure Fleet agents in the App after linking:
|
|
10
11
|
ours-install --username alex --name Alex --surname Taylor --disable-fleet-agents-setup
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/install",
|
|
3
|
-
"version": "1.2.1-nightly.
|
|
3
|
+
"version": "1.2.1-nightly.26",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The all-in-one ours.network installer: one shared daemon, MCP, cowork, Telegram, Fleet initialization, harness plugins, Human identity, progress UI, and guided next steps.",
|
|
6
6
|
"type": "module",
|