@omniaseo/cli 0.1.3 → 0.1.4
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 +25 -2
- package/dist/auth/callback-receiver.d.ts +3 -1
- package/dist/auth/callback-receiver.d.ts.map +1 -1
- package/dist/auth/callback-receiver.js +69 -6
- package/dist/auth/callback-receiver.js.map +1 -1
- package/dist/auth/callback-relay.d.ts +2 -0
- package/dist/auth/callback-relay.d.ts.map +1 -1
- package/dist/auth/callback-relay.js +10 -7
- package/dist/auth/callback-relay.js.map +1 -1
- package/dist/auth/managed-files.d.ts +8 -0
- package/dist/auth/managed-files.d.ts.map +1 -0
- package/dist/auth/managed-files.js +93 -0
- package/dist/auth/managed-files.js.map +1 -0
- package/dist/auth/managed-installation.d.ts +26 -0
- package/dist/auth/managed-installation.d.ts.map +1 -0
- package/dist/auth/managed-installation.js +151 -0
- package/dist/auth/managed-installation.js.map +1 -0
- package/dist/auth/managed-launcher.d.ts +2 -0
- package/dist/auth/managed-launcher.d.ts.map +1 -0
- package/dist/auth/managed-launcher.js +63 -0
- package/dist/auth/managed-launcher.js.map +1 -0
- package/dist/auth/managed-supervisor.d.ts +17 -0
- package/dist/auth/managed-supervisor.d.ts.map +1 -0
- package/dist/auth/managed-supervisor.js +233 -0
- package/dist/auth/managed-supervisor.js.map +1 -0
- package/dist/auth/managed-updater.d.ts +72 -0
- package/dist/auth/managed-updater.d.ts.map +1 -0
- package/dist/auth/managed-updater.js +209 -0
- package/dist/auth/managed-updater.js.map +1 -0
- package/dist/auth/profile-lock.d.ts +1 -1
- package/dist/auth/profile-lock.d.ts.map +1 -1
- package/dist/auth/profile-lock.js +3 -1
- package/dist/auth/profile-lock.js.map +1 -1
- package/dist/auth/receiver-service.d.ts.map +1 -1
- package/dist/auth/receiver-service.js +5 -4
- package/dist/auth/receiver-service.js.map +1 -1
- package/dist/commands/connect.d.ts +2 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +2 -1
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +20 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/dist/process/runner.d.ts +2 -0
- package/dist/process/runner.d.ts.map +1 -1
- package/dist/process/runner.js +1 -0
- package/dist/process/runner.js.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/actions/catalog.d.ts +1 -0
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/actions/catalog.d.ts.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/actions/catalog.js +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/actions/catalog.js.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/index.d.ts.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/index.js +1 -0
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/index.js.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/schemas/reference-slice.d.ts +37 -0
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/schemas/reference-slice.d.ts.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/schemas/reference-slice.js +41 -3
- package/node_modules/@omnia/omnia-connect-contracts/dist/src/schemas/reference-slice.js.map +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/src/actions/catalog.ts +1 -1
- package/node_modules/@omnia/omnia-connect-contracts/src/index.ts +1 -0
- package/node_modules/@omnia/omnia-connect-contracts/src/schemas/reference-slice.ts +40 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-launcher.d.ts","sourceRoot":"","sources":["../../src/auth/managed-launcher.ts"],"names":[],"mappings":"AAWA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBzF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Stable protocol-1 loader. The selected package supplies both the updater and
|
|
2
|
+
// receiver; it is re-imported after a swap so the updater is never frozen at its
|
|
3
|
+
// original installer version. This service never accepts remote shell commands.
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
import { rm } from 'node:fs/promises';
|
|
7
|
+
import { privateRead, privateWrite, pause } from './managed-files.js';
|
|
8
|
+
import { supervisorScript, verifiedSelection } from './managed-updater.js';
|
|
9
|
+
import { ProfileLock } from './profile-lock.js';
|
|
10
|
+
export async function runManagedLauncher(root, signal) {
|
|
11
|
+
const path = join(root, 'operational.json');
|
|
12
|
+
while (!signal.aborted) {
|
|
13
|
+
const state = await privateRead(path);
|
|
14
|
+
if (!state || state.schemaVersion !== 1)
|
|
15
|
+
throw new Error('UNSUPPORTED');
|
|
16
|
+
try {
|
|
17
|
+
await verifiedSelection(root, state.selected);
|
|
18
|
+
const module = await import(pathToFileURL(supervisorScript(root, state.selected)).href);
|
|
19
|
+
if (await module.runSupervisor(root, signal) === 'stopped')
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
if (signal.aborted)
|
|
24
|
+
return;
|
|
25
|
+
const current = await privateRead(path);
|
|
26
|
+
if (current?.pending && current.previous) {
|
|
27
|
+
await verifiedSelection(root, current.previous);
|
|
28
|
+
await privateWrite(path, { ...current, selected: current.previous, previous: current.selected, pending: false,
|
|
29
|
+
state: 'attention', reason: 'ROLLBACK', ...(current.localUpdate?.status === 'checking' ? { localUpdate: { ...current.localUpdate, status: 'failed' } } : {}),
|
|
30
|
+
requestAck: current.requestAck ? { ...current.requestAck, status: 'failed' } : null });
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
await privateWrite(path, { ...state, state: 'attention', reason: 'HEALTH' });
|
|
34
|
+
await pause(5000, signal);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
|
|
40
|
+
const controller = new AbortController();
|
|
41
|
+
process.once('SIGTERM', () => controller.abort());
|
|
42
|
+
process.once('SIGINT', () => controller.abort());
|
|
43
|
+
const root = process.argv[2] || '';
|
|
44
|
+
let checking = false;
|
|
45
|
+
const poll = setInterval(() => {
|
|
46
|
+
if (checking)
|
|
47
|
+
return;
|
|
48
|
+
checking = true;
|
|
49
|
+
void privateRead(join(root, 'restart-request.json')).then(async (request) => {
|
|
50
|
+
if (request && /^[a-f0-9-]{36}$/u.test(request.id) && Date.parse(request.at) > Date.now() - 60_000) {
|
|
51
|
+
await rm(join(root, 'restart-request.json'));
|
|
52
|
+
controller.abort();
|
|
53
|
+
}
|
|
54
|
+
}).finally(() => { checking = false; }).catch(() => controller.abort());
|
|
55
|
+
}, 250);
|
|
56
|
+
try {
|
|
57
|
+
await new ProfileLock('managed-supervisor', join(root, '.locks')).run(() => runManagedLauncher(root, controller.signal), controller.signal);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
clearInterval(poll);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=managed-launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-launcher.js","sourceRoot":"","sources":["../../src/auth/managed-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ChildProcess } from 'node:child_process';
|
|
2
|
+
import type { Selection } from './managed-updater.js';
|
|
3
|
+
export type ChildHealth = {
|
|
4
|
+
schemaVersion: 1;
|
|
5
|
+
pid: number;
|
|
6
|
+
runId: string;
|
|
7
|
+
runningVersion: string;
|
|
8
|
+
artifactSha256: string | null;
|
|
9
|
+
scriptSha256: string;
|
|
10
|
+
at: string;
|
|
11
|
+
busy: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare function matchingHealth(health: ChildHealth | undefined, selection: Selection, runId: string, pid: number, now?: number): boolean;
|
|
14
|
+
export declare function waitChildHealth(root: string, selection: Selection, runId: string, child: ChildProcess, timeout?: number): Promise<ChildHealth>;
|
|
15
|
+
export declare function stopChild(child: ChildProcess, grace?: number): Promise<void>;
|
|
16
|
+
export declare function runSupervisor(root: string, signal: AbortSignal, intervalMs?: number, heartbeatMs?: number): Promise<'restart' | 'stopped'>;
|
|
17
|
+
//# sourceMappingURL=managed-supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-supervisor.d.ts","sourceRoot":"","sources":["../../src/auth/managed-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAM9D,OAAO,KAAK,EAA2B,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG/E,MAAM,MAAM,WAAW,GAAG;IAAE,aAAa,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAC/F,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AACnF,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAI3I;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CASpJ;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlF;AAKD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,SAAW,EAAE,WAAW,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA4IlJ"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { privateRead, privateWrite, pause } from './managed-files.js';
|
|
5
|
+
import { ProfileLock } from './profile-lock.js';
|
|
6
|
+
import { acquireMigrationLease, releaseMigrationLease, prepareRelease, relayJson, retainReleases, receiverScript, verifiedSelection, validateRelease, SAFE_REASONS } from './managed-updater.js';
|
|
7
|
+
export function matchingHealth(health, selection, runId, pid, now = Date.now()) {
|
|
8
|
+
return Boolean(health && health.schemaVersion === 1 && health.pid === pid && health.runId === runId
|
|
9
|
+
&& health.runningVersion === selection.version && health.artifactSha256 === selection.artifactSha256
|
|
10
|
+
&& health.scriptSha256 === selection.scriptSha256 && Date.parse(health.at) <= now + 1000 && Date.parse(health.at) >= now - 15_000);
|
|
11
|
+
}
|
|
12
|
+
export async function waitChildHealth(root, selection, runId, child, timeout = 15_000) {
|
|
13
|
+
const deadline = Date.now() + timeout;
|
|
14
|
+
while (Date.now() < deadline) {
|
|
15
|
+
if (child.exitCode !== null || child.signalCode !== null || !child.pid)
|
|
16
|
+
throw new Error('HEALTH');
|
|
17
|
+
const health = await privateRead(join(root, 'health.json'));
|
|
18
|
+
if (matchingHealth(health, selection, runId, child.pid))
|
|
19
|
+
return health;
|
|
20
|
+
await pause(100);
|
|
21
|
+
}
|
|
22
|
+
throw new Error('HEALTH');
|
|
23
|
+
}
|
|
24
|
+
export async function stopChild(child, grace = 20_000) {
|
|
25
|
+
if (child.exitCode !== null || child.signalCode !== null)
|
|
26
|
+
return;
|
|
27
|
+
const closed = new Promise(resolve => child.once('close', () => resolve()));
|
|
28
|
+
// IPC works across all supported OSes and allows the delivery in flight to
|
|
29
|
+
// finish before exit. No SIGTERM is used to interrupt a claimed callback.
|
|
30
|
+
if (child.connected)
|
|
31
|
+
child.send('stop');
|
|
32
|
+
else
|
|
33
|
+
child.kill('SIGTERM');
|
|
34
|
+
let timer;
|
|
35
|
+
const outcome = await Promise.race([closed.then(() => true), new Promise(resolve => { timer = setTimeout(() => resolve(false), grace); })]);
|
|
36
|
+
if (timer)
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
if (!outcome) {
|
|
39
|
+
child.kill('SIGKILL');
|
|
40
|
+
await Promise.race([closed, pause(2000)]);
|
|
41
|
+
throw new Error('HEALTH');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function reason(error) {
|
|
45
|
+
return error instanceof Error && SAFE_REASONS.includes(error.message) ? error.message : 'OFFLINE';
|
|
46
|
+
}
|
|
47
|
+
export async function runSupervisor(root, signal, intervalMs = 3600_000, heartbeatMs = 60_000) {
|
|
48
|
+
const path = join(root, 'operational.json');
|
|
49
|
+
const config = await privateRead(join(root, 'receiver.json'));
|
|
50
|
+
let operational = await privateRead(path);
|
|
51
|
+
if (!config || !operational || operational.schemaVersion !== 1)
|
|
52
|
+
throw new Error('UNSUPPORTED');
|
|
53
|
+
if (!process.version.startsWith('v24.'))
|
|
54
|
+
throw new Error('UNSUPPORTED');
|
|
55
|
+
await verifiedSelection(root, operational.selected);
|
|
56
|
+
const selected = operational.selected;
|
|
57
|
+
const runId = randomUUID();
|
|
58
|
+
const child = spawn(process.execPath, [receiverScript(root, selected), join(root, 'receiver.json'), join(root, 'health.json'), runId,
|
|
59
|
+
selected.artifactSha256 || 'unknown'], { shell: false, stdio: ['ignore', 'ignore', 'ignore', 'ipc'], windowsHide: true });
|
|
60
|
+
// Credential and native OAuth output never goes to the service journal.
|
|
61
|
+
let childError = false;
|
|
62
|
+
child.on('error', () => { childError = true; });
|
|
63
|
+
try {
|
|
64
|
+
await waitChildHealth(root, selected, runId, child);
|
|
65
|
+
if (operational.pending) {
|
|
66
|
+
operational = { ...operational, pending: false, state: 'current', reason: 'NONE', lastConfirmedUpdate: new Date().toISOString(),
|
|
67
|
+
...(operational.localUpdate?.status === 'checking' ? { localUpdate: { ...operational.localUpdate, status: 'completed' } } : {}) };
|
|
68
|
+
await privateWrite(path, operational);
|
|
69
|
+
}
|
|
70
|
+
if (operational.migrationLease) {
|
|
71
|
+
// The previous supervisor held the OAuth fence across module reload. Only
|
|
72
|
+
// this fresh child (including a restored previous child) ends the switch.
|
|
73
|
+
await releaseMigrationLease(config, operational.migrationLease).catch(() => undefined);
|
|
74
|
+
const { migrationLease: _finishedLease, ...finished } = operational;
|
|
75
|
+
operational = finished;
|
|
76
|
+
await privateWrite(path, operational);
|
|
77
|
+
}
|
|
78
|
+
await retainReleases(root, [selected, ...(operational.previous ? [operational.previous] : [])]);
|
|
79
|
+
let nextCheck = operational.reason === 'ROLLBACK' ? Date.now() + 5 * 60_000 : 0;
|
|
80
|
+
let failures = 0;
|
|
81
|
+
let lastHeartbeat = 0;
|
|
82
|
+
let localCheckId;
|
|
83
|
+
const lock = new ProfileLock('managed-install', join(root, '.locks'));
|
|
84
|
+
while (!signal.aborted) {
|
|
85
|
+
if (childError || child.exitCode !== null || child.signalCode !== null || !child.pid)
|
|
86
|
+
throw new Error('HEALTH');
|
|
87
|
+
const currentHealth = await privateRead(join(root, 'health.json'));
|
|
88
|
+
if (!matchingHealth(currentHealth, selected, runId, child.pid))
|
|
89
|
+
throw new Error('HEALTH');
|
|
90
|
+
const localRequest = await privateRead(join(root, 'check-request.json'));
|
|
91
|
+
const localRequestFresh = localRequest?.id && localRequest.id !== operational.lastLocalRequestId
|
|
92
|
+
&& /^[a-f0-9-]{36}$/u.test(localRequest.id) && ['check', 'update'].includes(localRequest.action || '')
|
|
93
|
+
&& Date.parse(localRequest.at || '') > Date.now() - 15 * 60_000 && Date.parse(localRequest.at || '') <= Date.now() + 1000;
|
|
94
|
+
if (localRequestFresh && localRequest.id !== localCheckId) {
|
|
95
|
+
nextCheck = 0;
|
|
96
|
+
localCheckId = localRequest.id;
|
|
97
|
+
}
|
|
98
|
+
if (Date.now() - lastHeartbeat >= heartbeatMs || Date.now() >= nextCheck) {
|
|
99
|
+
await lock.run(async () => {
|
|
100
|
+
operational = await privateRead(path);
|
|
101
|
+
if (!operational || operational.selected.id !== selected.id)
|
|
102
|
+
throw new Error('HEALTH');
|
|
103
|
+
const explicitUpdate = Boolean(localRequestFresh && localRequest.id !== operational.lastLocalRequestId && localRequest.action === 'update');
|
|
104
|
+
if (localRequestFresh && localRequest.id !== operational.lastLocalRequestId) {
|
|
105
|
+
// Consume the private, fresh local approval before any download. A
|
|
106
|
+
// restart or failed request cannot turn it into repeated permission.
|
|
107
|
+
operational = { ...operational, lastLocalRequestId: localRequest.id, ...(explicitUpdate ? { localUpdate: {
|
|
108
|
+
id: localRequest.id, at: localRequest.at, targetVersion: null, targetSha256: null, status: 'checking'
|
|
109
|
+
} } : {}) };
|
|
110
|
+
await privateWrite(path, operational);
|
|
111
|
+
}
|
|
112
|
+
const telemetry = () => ({ protocolVersion: 1, packageVersion: selected.version, runningVersion: currentHealth.runningVersion,
|
|
113
|
+
artifactSha256: selected.artifactSha256, scriptSha256: selected.scriptSha256, nodeMajor: Number(process.versions.node.split('.')[0]), runId,
|
|
114
|
+
platform: process.platform === 'darwin' ? 'macos' : process.platform === 'win32' ? 'windows' : 'linux',
|
|
115
|
+
location: operational.location, autoUpdateEnabled: operational.autoUpdateEnabled, channel: operational.channel,
|
|
116
|
+
selectedPin: operational.selectedPin, lastCheckedAt: operational.lastCheck, lastUpdatedAt: operational.lastConfirmedUpdate,
|
|
117
|
+
health: operational.state === 'attention' ? 'failed' : operational.state === 'updating' ? 'updating' : 'healthy',
|
|
118
|
+
reason: operational.reason, ...(operational.requestAck ? { requestAck: operational.requestAck } : {}) });
|
|
119
|
+
const postTelemetry = async (extra = {}) => {
|
|
120
|
+
const fresh = await privateRead(join(root, 'health.json'));
|
|
121
|
+
if (!child.pid || child.exitCode !== null || child.signalCode !== null || !matchingHealth(fresh, selected, runId, child.pid))
|
|
122
|
+
throw new Error('HEALTH');
|
|
123
|
+
return relayJson(config, 'maintenance', { ...telemetry(), ...extra });
|
|
124
|
+
};
|
|
125
|
+
try {
|
|
126
|
+
const response = await postTelemetry();
|
|
127
|
+
if (operational.requestAck && operational.requestAck.status !== 'accepted') {
|
|
128
|
+
operational = { ...operational, requestAck: null };
|
|
129
|
+
await privateWrite(path, operational);
|
|
130
|
+
}
|
|
131
|
+
lastHeartbeat = Date.now();
|
|
132
|
+
const request = response.request;
|
|
133
|
+
const requestId = request?.action === 'check' && /^[a-f0-9-]{36}$/u.test(request.id || '') ? request.id : undefined;
|
|
134
|
+
if (Date.now() < nextCheck && !requestId)
|
|
135
|
+
return;
|
|
136
|
+
operational = { ...operational, state: 'checking', lastCheck: new Date().toISOString(), reason: 'NONE',
|
|
137
|
+
requestAck: requestId ? { id: requestId, status: 'accepted' } : null };
|
|
138
|
+
await privateWrite(path, operational);
|
|
139
|
+
const observed = await relayJson(config, 'release');
|
|
140
|
+
const observationExpiresAt = Date.parse(observed.observationExpiresAt || '');
|
|
141
|
+
if (!/^[a-f0-9-]{36}$/u.test(observed.observationNonce || '') || !Number.isFinite(observationExpiresAt)
|
|
142
|
+
|| observationExpiresAt <= Date.now() || observationExpiresAt > Date.now() + 360_000)
|
|
143
|
+
throw new Error('OFFLINE');
|
|
144
|
+
const approved = observed.release;
|
|
145
|
+
const approvedRelease = approved ? validateRelease(approved) : null;
|
|
146
|
+
operational = { ...operational, recommendedVersion: approvedRelease?.version || null,
|
|
147
|
+
...(explicitUpdate && operational.localUpdate ? { localUpdate: { ...operational.localUpdate,
|
|
148
|
+
targetVersion: approvedRelease?.version || null, targetSha256: approvedRelease?.sha256 || null } } : {}) };
|
|
149
|
+
const ack = operational.requestAck;
|
|
150
|
+
if (ack)
|
|
151
|
+
await postTelemetry({ requestAck: ack });
|
|
152
|
+
const pinMismatch = operational.selectedPin !== null && (!approved || validateRelease(approved).version !== operational.selectedPin);
|
|
153
|
+
const blocked = explicitUpdate ? pinMismatch : !operational.autoUpdateEnabled || operational.channel === 'pinned' || operational.selectedPin !== null;
|
|
154
|
+
if (approved && !blocked) {
|
|
155
|
+
const candidate = await prepareRelease(root, approved);
|
|
156
|
+
if (candidate.id !== selected.id) {
|
|
157
|
+
if (explicitUpdate && Date.parse(localRequest.at) + 15 * 60_000 <= Date.now())
|
|
158
|
+
throw new Error('PINNED');
|
|
159
|
+
operational = { ...operational, state: 'updating', reason: 'NONE' };
|
|
160
|
+
await privateWrite(path, operational);
|
|
161
|
+
await postTelemetry({ observationNonce: observed.observationNonce });
|
|
162
|
+
const lease = await acquireMigrationLease(config);
|
|
163
|
+
let committed = false;
|
|
164
|
+
try {
|
|
165
|
+
if (Date.now() + 50_000 >= Date.parse(lease.expiresAt))
|
|
166
|
+
throw new Error('MIGRATION_BUSY');
|
|
167
|
+
await stopChild(child);
|
|
168
|
+
// Keep the bounded server fence through the new supervisor's
|
|
169
|
+
// fresh child handshake, or the prior child's rollback health.
|
|
170
|
+
operational = { ...operational, selected: candidate, previous: selected, pending: true, migrationLease: lease,
|
|
171
|
+
requestAck: ack ? { ...ack, status: 'completed' } : null };
|
|
172
|
+
await privateWrite(path, operational);
|
|
173
|
+
committed = true;
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
if (!committed)
|
|
177
|
+
await releaseMigrationLease(config, lease).catch(() => undefined);
|
|
178
|
+
}
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
operational = { ...operational, state: blocked ? 'pinned' : 'current', reason: blocked ? 'PINNED' : 'NONE',
|
|
183
|
+
...(explicitUpdate && operational.localUpdate ? { localUpdate: { ...operational.localUpdate,
|
|
184
|
+
status: blocked || !approved ? 'failed' : 'completed' } } : {}),
|
|
185
|
+
requestAck: ack ? { ...ack, status: 'completed' } : null };
|
|
186
|
+
await privateWrite(path, operational);
|
|
187
|
+
await postTelemetry({ observationNonce: observed.observationNonce });
|
|
188
|
+
if (operational.requestAck) {
|
|
189
|
+
operational = { ...operational, requestAck: null };
|
|
190
|
+
await privateWrite(path, operational);
|
|
191
|
+
}
|
|
192
|
+
failures = 0;
|
|
193
|
+
nextCheck = Date.now() + intervalMs + Math.floor(Math.random() * Math.min(intervalMs / 10, 300_000));
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (signal.aborted)
|
|
197
|
+
return;
|
|
198
|
+
if (error instanceof Error && error.message === 'ACK_STALE') {
|
|
199
|
+
operational = { ...operational, requestAck: null };
|
|
200
|
+
await privateWrite(path, operational);
|
|
201
|
+
nextCheck = 0;
|
|
202
|
+
lastHeartbeat = 0;
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
if (error instanceof Error && error.message === 'MIGRATION_BUSY') {
|
|
206
|
+
operational = { ...operational, state: 'checking', reason: 'NONE',
|
|
207
|
+
...(explicitUpdate && operational.localUpdate ? { localUpdate: { ...operational.localUpdate, status: 'deferred' } } : {}) };
|
|
208
|
+
await privateWrite(path, operational);
|
|
209
|
+
nextCheck = Date.now() + 60_000;
|
|
210
|
+
lastHeartbeat = Date.now();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
failures += 1;
|
|
214
|
+
operational = { ...operational, state: 'attention', reason: reason(error),
|
|
215
|
+
...(explicitUpdate && operational.localUpdate ? { localUpdate: { ...operational.localUpdate, status: 'failed' } } : {}),
|
|
216
|
+
requestAck: operational.requestAck ? { ...operational.requestAck, status: operational.requestAck.status === 'accepted' ? 'failed' : operational.requestAck.status } : null };
|
|
217
|
+
await privateWrite(path, operational);
|
|
218
|
+
nextCheck = Date.now() + Math.min(3600_000, 60_000 * 2 ** Math.min(failures - 1, 6));
|
|
219
|
+
lastHeartbeat = Date.now();
|
|
220
|
+
}
|
|
221
|
+
}, signal);
|
|
222
|
+
if (operational?.pending)
|
|
223
|
+
return 'restart';
|
|
224
|
+
}
|
|
225
|
+
await pause(1000, signal);
|
|
226
|
+
}
|
|
227
|
+
return 'stopped';
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
await stopChild(child).catch(() => undefined);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=managed-supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-supervisor.js","sourceRoot":"","sources":["../../src/auth/managed-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { ReceiverConfig } from './callback-receiver.js';
|
|
2
|
+
export type Release = {
|
|
3
|
+
schemaVersion: 1;
|
|
4
|
+
package: '@omniaseo/cli';
|
|
5
|
+
version: string;
|
|
6
|
+
integrity: string;
|
|
7
|
+
sha256: string;
|
|
8
|
+
tarballUrl: string;
|
|
9
|
+
nodeMajor: 24;
|
|
10
|
+
protocolVersion: 1;
|
|
11
|
+
};
|
|
12
|
+
export declare const SAFE_REASONS: readonly ["NONE", "DOWNLOAD", "INTEGRITY", "UNSUPPORTED", "HEALTH", "ROLLBACK", "OFFLINE", "PINNED", "UNSAFE_STORAGE"];
|
|
13
|
+
export type SafeReason = typeof SAFE_REASONS[number];
|
|
14
|
+
export type Selection = {
|
|
15
|
+
id: string;
|
|
16
|
+
version: string;
|
|
17
|
+
artifactSha256: string | null;
|
|
18
|
+
scriptSha256: string;
|
|
19
|
+
supervisorSha256: string;
|
|
20
|
+
};
|
|
21
|
+
export type LocalUpdate = {
|
|
22
|
+
id: string;
|
|
23
|
+
at: string;
|
|
24
|
+
targetVersion: string | null;
|
|
25
|
+
targetSha256: string | null;
|
|
26
|
+
status: 'checking' | 'deferred' | 'completed' | 'failed';
|
|
27
|
+
};
|
|
28
|
+
export type Operational = {
|
|
29
|
+
schemaVersion: 1;
|
|
30
|
+
selected: Selection;
|
|
31
|
+
previous: Selection | null;
|
|
32
|
+
pending: boolean;
|
|
33
|
+
autoUpdateEnabled: boolean;
|
|
34
|
+
channel: 'stable' | 'pinned';
|
|
35
|
+
selectedPin: string | null;
|
|
36
|
+
location: 'local' | 'remote';
|
|
37
|
+
lastCheck: string | null;
|
|
38
|
+
lastConfirmedUpdate: string | null;
|
|
39
|
+
state: 'current' | 'checking' | 'updating' | 'attention' | 'pinned';
|
|
40
|
+
reason: SafeReason;
|
|
41
|
+
recommendedVersion?: string | null;
|
|
42
|
+
lastLocalRequestId?: string;
|
|
43
|
+
localUpdate?: LocalUpdate;
|
|
44
|
+
migrationLease?: MigrationLease;
|
|
45
|
+
requestAck: {
|
|
46
|
+
id: string;
|
|
47
|
+
status: 'accepted' | 'completed' | 'failed';
|
|
48
|
+
} | null;
|
|
49
|
+
};
|
|
50
|
+
export type ReleaseMarker = {
|
|
51
|
+
schemaVersion: 1;
|
|
52
|
+
selection: Selection;
|
|
53
|
+
release: Release | null;
|
|
54
|
+
};
|
|
55
|
+
export type MigrationLease = {
|
|
56
|
+
id: string;
|
|
57
|
+
expiresAt: string;
|
|
58
|
+
};
|
|
59
|
+
export declare function validateRelease(value: unknown): Release;
|
|
60
|
+
export declare function verifyArchive(bytes: Buffer, release: Release): void;
|
|
61
|
+
export declare function selectionId(value: string): boolean;
|
|
62
|
+
export declare function releaseDirectory(root: string, selection: Selection): string;
|
|
63
|
+
export declare function receiverScript(root: string, selection: Selection): string;
|
|
64
|
+
export declare function supervisorScript(root: string, selection: Selection): string;
|
|
65
|
+
export declare function verifiedSelection(root: string, selection: Selection): Promise<void>;
|
|
66
|
+
export declare function relayJson(config: ReceiverConfig, endpoint: 'release' | 'maintenance' | 'maintenance/migration', telemetry?: object, fetchFn?: typeof fetch): Promise<unknown>;
|
|
67
|
+
export declare function acquireMigrationLease(config: ReceiverConfig): Promise<MigrationLease>;
|
|
68
|
+
export declare function releaseMigrationLease(config: ReceiverConfig, lease: MigrationLease): Promise<void>;
|
|
69
|
+
export declare function withMigrationLease<T>(config: ReceiverConfig, operation: (expiresAt: number) => Promise<T>): Promise<T>;
|
|
70
|
+
export declare function prepareRelease(root: string, approved: unknown, fetchFn?: typeof fetch, installer?: (directory: string, archive: string) => Promise<void>): Promise<Selection>;
|
|
71
|
+
export declare function retainReleases(root: string, keep: readonly Selection[]): Promise<void>;
|
|
72
|
+
//# sourceMappingURL=managed-updater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-updater.d.ts","sourceRoot":"","sources":["../../src/auth/managed-updater.ts"],"names":[],"mappings":"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"}
|