runpane 2.4.182 → 2.4.184
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 +167 -74
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +6 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +106 -10
- package/dist/commands.js.map +1 -1
- package/dist/docs-index.json +1 -1
- package/dist/doctor.d.ts +1 -3
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +5 -5
- package/dist/doctor.js.map +1 -1
- package/dist/generated/contract.d.ts +360 -164
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +720 -312
- package/dist/generated/contract.js.map +1 -1
- package/dist/localControl.d.ts +2 -1
- package/dist/localControl.d.ts.map +1 -1
- package/dist/localControl.js +51 -15
- package/dist/localControl.js.map +1 -1
- package/dist/update.d.ts +9 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +312 -0
- package/dist/update.js.map +1 -0
- package/dist/updateArtifacts.d.ts +12 -0
- package/dist/updateArtifacts.d.ts.map +1 -0
- package/dist/updateArtifacts.js +112 -0
- package/dist/updateArtifacts.js.map +1 -0
- package/dist/updateCapacity.d.ts +5 -0
- package/dist/updateCapacity.d.ts.map +1 -0
- package/dist/updateCapacity.js +72 -0
- package/dist/updateCapacity.js.map +1 -0
- package/dist/updateOperation.d.ts +48 -0
- package/dist/updateOperation.d.ts.map +1 -0
- package/dist/updateOperation.js +208 -0
- package/dist/updateOperation.js.map +1 -0
- package/dist/updatePackage.d.ts +14 -0
- package/dist/updatePackage.d.ts.map +1 -0
- package/dist/updatePackage.js +103 -0
- package/dist/updatePackage.js.map +1 -0
- package/dist/updatePreflight.d.ts +46 -0
- package/dist/updatePreflight.d.ts.map +1 -0
- package/dist/updatePreflight.js +134 -0
- package/dist/updatePreflight.js.map +1 -0
- package/dist/updatePython.d.ts +16 -0
- package/dist/updatePython.d.ts.map +1 -0
- package/dist/updatePython.js +46 -0
- package/dist/updatePython.js.map +1 -0
- package/dist/updateRuntime.d.ts +3 -0
- package/dist/updateRuntime.d.ts.map +1 -0
- package/dist/updateRuntime.js +61 -0
- package/dist/updateRuntime.js.map +1 -0
- package/dist/updateSupervisor.d.ts +13 -0
- package/dist/updateSupervisor.d.ts.map +1 -0
- package/dist/updateSupervisor.js +103 -0
- package/dist/updateSupervisor.js.map +1 -0
- package/dist/watchLines.d.ts +2 -1
- package/dist/watchLines.d.ts.map +1 -1
- package/dist/watchLines.js +12 -3
- package/dist/watchLines.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePreflight.js","sourceRoot":"","sources":["../src/updatePreflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function identifyPythonCli(python: string, expected: string): {
|
|
2
|
+
owner: "pip";
|
|
3
|
+
entrypoint: string;
|
|
4
|
+
prefix: string;
|
|
5
|
+
version: string;
|
|
6
|
+
packageManager: string;
|
|
7
|
+
pipUser: boolean;
|
|
8
|
+
};
|
|
9
|
+
export interface StagedPythonCli {
|
|
10
|
+
version: string;
|
|
11
|
+
archive: string;
|
|
12
|
+
packageRoot: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function stagePythonCli(python: string, requested: string, directory: string): StagedPythonCli;
|
|
15
|
+
export declare function installPythonCli(python: string, archive: string, user: boolean): void;
|
|
16
|
+
//# sourceMappingURL=updatePython.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePython.d.ts","sourceRoot":"","sources":["../src/updatePython.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;EAUjE;AAED,MAAM,WAAW,eAAe;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAepG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAErF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.identifyPythonCli = identifyPythonCli;
|
|
7
|
+
exports.stagePythonCli = stagePythonCli;
|
|
8
|
+
exports.installPythonCli = installPythonCli;
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_child_process_1 = require("node:child_process");
|
|
12
|
+
const boundaryDecoder_1 = require("./boundaryDecoder");
|
|
13
|
+
const errors_1 = require("./errors");
|
|
14
|
+
function identifyPythonCli(python, expected) {
|
|
15
|
+
const script = `import json,sys,site,os,runpane.cli,importlib.metadata as m
|
|
16
|
+
p=os.path.realpath(runpane.cli.__file__)
|
|
17
|
+
u=site.getusersitepackages()
|
|
18
|
+
print(json.dumps(dict(entrypoint=p,version=m.version('runpane'),prefix=os.path.dirname(os.path.dirname(p)),user=os.path.commonpath([p,u])==os.path.realpath(u),python=sys.executable)))`;
|
|
19
|
+
const result = (0, boundaryDecoder_1.decodeBoundary)(JSON.parse((0, node_child_process_1.execFileSync)(python, ['-c', script], { encoding: 'utf8', timeout: 15_000 })), boundaryDecoder_1.boundary.object({ entrypoint: boundaryDecoder_1.boundary.string, version: boundaryDecoder_1.boundary.string, prefix: boundaryDecoder_1.boundary.string, user: boundaryDecoder_1.boundary.boolean, python: boundaryDecoder_1.boundary.string }));
|
|
20
|
+
if (node_fs_1.default.realpathSync(result.entrypoint) !== node_fs_1.default.realpathSync(expected))
|
|
21
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_PIP_OWNER', 'The Python runtime resolved a different runpane package. Nothing was changed.', 'Invoke runpane from the Python environment that owns it.');
|
|
22
|
+
node_fs_1.default.accessSync(result.prefix, node_fs_1.default.constants.W_OK);
|
|
23
|
+
(0, node_child_process_1.execFileSync)(result.python, ['-m', 'pip', '--version'], { timeout: 15_000 });
|
|
24
|
+
return { owner: 'pip', entrypoint: result.entrypoint, prefix: result.prefix, version: result.version, packageManager: result.python, pipUser: result.user };
|
|
25
|
+
}
|
|
26
|
+
function stagePythonCli(python, requested, directory) {
|
|
27
|
+
node_fs_1.default.mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
28
|
+
(0, node_child_process_1.execFileSync)(python, ['-m', 'pip', 'download', '--disable-pip-version-check', '--no-deps', '--only-binary=:all:', '--dest', directory, requested === 'latest' ? 'runpane' : `runpane==${requested.replace(/^v/, '')}`], { timeout: 180_000, stdio: 'pipe' });
|
|
29
|
+
const wheels = node_fs_1.default.readdirSync(directory).filter(file => file.endsWith('.whl'));
|
|
30
|
+
if (wheels.length !== 1)
|
|
31
|
+
throw new Error('pip did not stage exactly one wheel.');
|
|
32
|
+
const archive = node_path_1.default.join(directory, wheels[0]);
|
|
33
|
+
const script = `import sys,zipfile,email,json
|
|
34
|
+
with zipfile.ZipFile(sys.argv[1]) as z:
|
|
35
|
+
names=[n for n in z.namelist() if n.endswith('.dist-info/METADATA')]
|
|
36
|
+
if len(names)!=1: raise ValueError('Invalid wheel metadata')
|
|
37
|
+
m=email.message_from_bytes(z.read(names[0]))
|
|
38
|
+
if m['Name']!='runpane': raise ValueError('Wrong wheel package')
|
|
39
|
+
print(json.dumps(dict(version=m['Version'])))`;
|
|
40
|
+
const metadata = (0, boundaryDecoder_1.decodeBoundary)(JSON.parse((0, node_child_process_1.execFileSync)(python, ['-c', script, archive], { encoding: 'utf8', timeout: 15_000 })), boundaryDecoder_1.boundary.object({ version: boundaryDecoder_1.boundary.nonEmptyString }));
|
|
41
|
+
return { version: metadata.version, archive, packageRoot: directory };
|
|
42
|
+
}
|
|
43
|
+
function installPythonCli(python, archive, user) {
|
|
44
|
+
(0, node_child_process_1.execFileSync)(python, ['-m', 'pip', 'install', '--disable-pip-version-check', '--no-index', '--no-deps', '--upgrade', ...(user ? ['--user'] : []), archive], { timeout: 180_000, stdio: 'pipe' });
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=updatePython.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePython.js","sourceRoot":"","sources":["../src/updatePython.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRuntime.d.ts","sourceRoot":"","sources":["../src/updateRuntime.ts"],"names":[],"mappings":"AAKA,oGAAoG;AACpG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA2C5E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.stageUpdateRuntime = stageUpdateRuntime;
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const errors_1 = require("./errors");
|
|
11
|
+
/** Stage a standalone Node runtime, including macOS relative dylibs, outside both installations. */
|
|
12
|
+
function stageUpdateRuntime(source, directory) {
|
|
13
|
+
const original = node_fs_1.default.realpathSync(source);
|
|
14
|
+
if (!/^node(?:\.exe)?$/i.test(node_path_1.default.basename(original))) {
|
|
15
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', 'The update helper requires a standalone Node executable. Nothing was changed.', 'Install Node 22 or newer and retry.');
|
|
16
|
+
}
|
|
17
|
+
// An Electron executable is not a standalone Node runtime. Copying it leaves
|
|
18
|
+
// framework dependencies behind (and pins the Windows app being replaced).
|
|
19
|
+
const environment = { ...process.env };
|
|
20
|
+
delete environment.ELECTRON_RUN_AS_NODE;
|
|
21
|
+
const probe = (0, node_child_process_1.execFileSync)(original, ['-p', 'JSON.stringify({node:process.versions.node,electron:process.versions.electron})'], {
|
|
22
|
+
encoding: 'utf8', env: environment, timeout: 10_000, stdio: ['ignore', 'pipe', 'pipe'],
|
|
23
|
+
});
|
|
24
|
+
if (probe.includes('electron'))
|
|
25
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', 'The updater requires standalone Node. Electron cannot supervise its own replacement. Nothing was changed.', 'Install Node 22 or newer on this host, then retry.');
|
|
26
|
+
node_fs_1.default.mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
27
|
+
const executable = node_path_1.default.join(directory, process.platform === 'win32' ? 'node.exe' : 'node');
|
|
28
|
+
node_fs_1.default.copyFileSync(original, executable, node_fs_1.default.constants.COPYFILE_EXCL);
|
|
29
|
+
node_fs_1.default.chmodSync(executable, 0o700);
|
|
30
|
+
if (process.platform === 'darwin') {
|
|
31
|
+
const pending = [original];
|
|
32
|
+
const copied = new Set();
|
|
33
|
+
while (pending.length) {
|
|
34
|
+
const binary = pending.pop();
|
|
35
|
+
const libraries = (0, node_child_process_1.execFileSync)('/usr/bin/otool', ['-L', binary], { encoding: 'utf8', timeout: 10_000 });
|
|
36
|
+
for (const line of libraries.split('\n').slice(1)) {
|
|
37
|
+
const reference = line.trim().split(' (')[0];
|
|
38
|
+
if (!reference.startsWith('@rpath/') && !reference.startsWith('@loader_path/'))
|
|
39
|
+
continue;
|
|
40
|
+
const name = node_path_1.default.basename(reference);
|
|
41
|
+
if (copied.has(name))
|
|
42
|
+
continue;
|
|
43
|
+
const candidates = [node_path_1.default.join(node_path_1.default.dirname(binary), name), node_path_1.default.join(node_path_1.default.dirname(binary), '..', 'lib', name)];
|
|
44
|
+
const found = candidates.find(file => node_fs_1.default.existsSync(file));
|
|
45
|
+
if (!found)
|
|
46
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', `Could not stage runtime library ${name}. Nothing was changed.`, 'Use a standalone Node distribution, then retry.');
|
|
47
|
+
node_fs_1.default.copyFileSync(found, node_path_1.default.join(directory, name), node_fs_1.default.constants.COPYFILE_EXCL);
|
|
48
|
+
copied.add(name);
|
|
49
|
+
pending.push(found);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// This is a real execution check, with no inherited Electron runtime flag.
|
|
54
|
+
const actual = (0, node_child_process_1.execFileSync)(executable, ['-p', 'JSON.stringify({node:process.versions.node,electron:process.versions.electron})'], {
|
|
55
|
+
encoding: 'utf8', env: environment, cwd: directory, timeout: 10_000, stdio: ['ignore', 'pipe', 'pipe'],
|
|
56
|
+
});
|
|
57
|
+
if (actual.trim() !== probe.trim())
|
|
58
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_RUNTIME', 'The staged runtime did not pass its execution check. Nothing was changed.', 'Use a standalone Node distribution, then retry.');
|
|
59
|
+
return executable;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=updateRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRuntime.js","sourceRoot":"","sources":["../src/updateRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface UpdateSupervisorJob {
|
|
2
|
+
id: string;
|
|
3
|
+
directory: string;
|
|
4
|
+
executable: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
}
|
|
7
|
+
/** Refuse before downtime when the current user's independent supervisor is unavailable. */
|
|
8
|
+
export declare function checkUpdateSupervisor(): void;
|
|
9
|
+
/** Launch through an OS service manager, never an inherited PTY/process tree. */
|
|
10
|
+
export declare function startUpdateSupervisor(job: UpdateSupervisorJob): void;
|
|
11
|
+
/** Removes only this operation's supervisor registration. It never stops Pane. */
|
|
12
|
+
export declare function removeUpdateSupervisor(id: string): void;
|
|
13
|
+
//# sourceMappingURL=updateSupervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateSupervisor.d.ts","sourceRoot":"","sources":["../src/updateSupervisor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAoBD,4FAA4F;AAC5F,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CA+CpE;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKvD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkUpdateSupervisor = checkUpdateSupervisor;
|
|
7
|
+
exports.startUpdateSupervisor = startUpdateSupervisor;
|
|
8
|
+
exports.removeUpdateSupervisor = removeUpdateSupervisor;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const errors_1 = require("./errors");
|
|
13
|
+
function windowsTool(name) {
|
|
14
|
+
return node_path_1.default.join(process.env.SystemRoot ?? 'C:\\Windows', 'System32', name);
|
|
15
|
+
}
|
|
16
|
+
function run(file, args) {
|
|
17
|
+
try {
|
|
18
|
+
return (0, node_child_process_1.execFileSync)(file, args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], timeout: 30_000 }).trim();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_SUPERVISOR', `The current-user supervisor command failed: ${error instanceof Error ? error.message : String(error)}`, 'Inspect the operation status. Before shutdown Pane remains running; enable the current-user OS supervisor or use the installer manually.');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function xml(value) {
|
|
25
|
+
return value.replace(/[<>&"']/g, character => ({ '<': '<', '>': '>', '&': '&', '"': '"', "'": ''' })[character]);
|
|
26
|
+
}
|
|
27
|
+
function jobName(id) {
|
|
28
|
+
if (!/^[a-zA-Z0-9-]{1,80}$/.test(id))
|
|
29
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_ID', 'The update operation ID is invalid. Nothing was changed.', 'Use the ID returned by runpane update.');
|
|
30
|
+
return `com.pane.update.${id}`;
|
|
31
|
+
}
|
|
32
|
+
/** Refuse before downtime when the current user's independent supervisor is unavailable. */
|
|
33
|
+
function checkUpdateSupervisor() {
|
|
34
|
+
if (process.platform === 'darwin')
|
|
35
|
+
run('/bin/launchctl', ['print', `gui/${process.getuid()}`]);
|
|
36
|
+
else if (process.platform === 'win32')
|
|
37
|
+
run(windowsTool('schtasks.exe'), ['/Query', '/FO', 'CSV', '/NH']);
|
|
38
|
+
else if (process.platform === 'linux')
|
|
39
|
+
run('systemctl', ['--user', 'show-environment']);
|
|
40
|
+
else
|
|
41
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_PLATFORM', `Independent updates are unavailable on ${process.platform}. Nothing was changed.`, 'Use the supported installer on the owning host.');
|
|
42
|
+
}
|
|
43
|
+
/** Launch through an OS service manager, never an inherited PTY/process tree. */
|
|
44
|
+
function startUpdateSupervisor(job) {
|
|
45
|
+
const name = jobName(job.id);
|
|
46
|
+
if (!node_path_1.default.isAbsolute(job.executable) || !node_path_1.default.isAbsolute(job.directory)) {
|
|
47
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_PATH', 'Update helper paths must be absolute. Nothing was changed.', 'Run update again from the supported CLI installation.');
|
|
48
|
+
}
|
|
49
|
+
node_fs_1.default.mkdirSync(job.directory, { recursive: true, mode: 0o700 });
|
|
50
|
+
if (process.platform === 'darwin') {
|
|
51
|
+
const file = node_path_1.default.join(job.directory, 'supervisor.plist');
|
|
52
|
+
node_fs_1.default.writeFileSync(file, `<?xml version="1.0" encoding="UTF-8"?>
|
|
53
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
54
|
+
<plist version="1.0"><dict>
|
|
55
|
+
<key>Label</key><string>${name}</string>
|
|
56
|
+
<key>ProgramArguments</key><array>${[job.executable, ...job.args].map(arg => `<string>${xml(arg)}</string>`).join('')}</array>
|
|
57
|
+
<key>WorkingDirectory</key><string>${xml(job.directory)}</string>
|
|
58
|
+
<key>RunAtLoad</key><true/>
|
|
59
|
+
<key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict>
|
|
60
|
+
<key>ThrottleInterval</key><integer>5</integer>
|
|
61
|
+
<key>StandardOutPath</key><string>${xml(node_path_1.default.join(job.directory, 'supervisor.log'))}</string>
|
|
62
|
+
<key>StandardErrorPath</key><string>${xml(node_path_1.default.join(job.directory, 'supervisor.log'))}</string>
|
|
63
|
+
</dict></plist>`, { mode: 0o600 });
|
|
64
|
+
run('/bin/launchctl', ['bootstrap', `gui/${process.getuid()}`, file]);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (process.platform === 'win32') {
|
|
68
|
+
const sid = run(windowsTool('whoami.exe'), ['/user', '/fo', 'csv', '/nh']).match(/S-1-[\d-]+/)?.[0];
|
|
69
|
+
if (!sid)
|
|
70
|
+
throw new errors_1.RunpaneError('ERR_UPDATE_IDENTITY', 'Could not identify the Windows account for the updater. Nothing was changed.', 'Run update from an interactive Windows login.');
|
|
71
|
+
const file = node_path_1.default.join(job.directory, 'supervisor.xml');
|
|
72
|
+
// Windows CommandLineToArgvW quoting, after XML escaping. No shell expansion.
|
|
73
|
+
const args = job.args.map(arg => `"${arg.replace(/(\\*)"/g, '$1$1\\"').replace(/(\\+)$/, '$1$1')}"`).join(' ');
|
|
74
|
+
node_fs_1.default.writeFileSync(file, `\uFEFF<?xml version="1.0" encoding="UTF-16"?>
|
|
75
|
+
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
|
76
|
+
<Principals><Principal id="Owner"><UserId>${sid}</UserId><LogonType>InteractiveToken</LogonType><RunLevel>LeastPrivilege</RunLevel></Principal></Principals>
|
|
77
|
+
<Settings><MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy><DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries><StopIfGoingOnBatteries>false</StopIfGoingOnBatteries><ExecutionTimeLimit>PT0S</ExecutionTimeLimit><RestartOnFailure><Interval>PT1M</Interval><Count>3</Count></RestartOnFailure></Settings>
|
|
78
|
+
<Actions Context="Owner"><Exec><Command>${xml(job.executable)}</Command><Arguments>${xml(args)}</Arguments><WorkingDirectory>${xml(job.directory)}</WorkingDirectory></Exec></Actions>
|
|
79
|
+
</Task>`, { encoding: 'utf16le', mode: 0o600 });
|
|
80
|
+
run(windowsTool('schtasks.exe'), ['/Create', '/TN', name, '/XML', file]);
|
|
81
|
+
// RunEx flag 2 avoids silently queuing behind battery/idle constraints.
|
|
82
|
+
// Startup is still unconfirmed until the helper writes its own acknowledgement.
|
|
83
|
+
const start = `$service = New-Object -ComObject Schedule.Service; $service.Connect(); $null = $service.GetFolder('\\').GetTask('${name}').RunEx($null, 2, 0, $null)`;
|
|
84
|
+
run(node_path_1.default.join(process.env.SystemRoot ?? 'C:\\Windows', 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe'), ['-NoProfile', '-NonInteractive', '-EncodedCommand', Buffer.from(start, 'utf16le').toString('base64')]);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (process.platform === 'linux') {
|
|
88
|
+
run('systemd-run', ['--user', '--collect', `--unit=${name}`, '--property=Restart=on-failure', '--property=RestartSec=5s', `--working-directory=${job.directory}`, '--', job.executable, ...job.args]);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
checkUpdateSupervisor();
|
|
92
|
+
}
|
|
93
|
+
/** Removes only this operation's supervisor registration. It never stops Pane. */
|
|
94
|
+
function removeUpdateSupervisor(id) {
|
|
95
|
+
const name = jobName(id);
|
|
96
|
+
if (process.platform === 'darwin')
|
|
97
|
+
run('/bin/launchctl', ['bootout', `gui/${process.getuid()}/${name}`]);
|
|
98
|
+
else if (process.platform === 'win32')
|
|
99
|
+
run(windowsTool('schtasks.exe'), ['/Delete', '/TN', name, '/F']);
|
|
100
|
+
else if (process.platform === 'linux')
|
|
101
|
+
run('systemctl', ['--user', 'stop', name]);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=updateSupervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateSupervisor.js","sourceRoot":"","sources":["../src/updateSupervisor.ts"],"names":[],"mappings":"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"}
|
package/dist/watchLines.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ interface WatchEntry {
|
|
|
17
17
|
number: number;
|
|
18
18
|
};
|
|
19
19
|
checks?: string;
|
|
20
|
+
reason?: string | null;
|
|
20
21
|
failingChecks?: string[];
|
|
21
22
|
idleMs?: number;
|
|
22
23
|
idleCount?: number;
|
|
@@ -44,6 +45,6 @@ export interface WatchResult {
|
|
|
44
45
|
*/
|
|
45
46
|
export declare function describeReport(report: WatchReport): string;
|
|
46
47
|
export declare function formatWaitResult(result: WatchResult, format: WatchFormat): string[];
|
|
47
|
-
export declare function formatNonEntry(kind: '_ok' | '_heartbeat' | '_error' | '_reconnected' | '_timeout', fields: Record<string, string | number | undefined>, format: WatchFormat): string;
|
|
48
|
+
export declare function formatNonEntry(kind: '_ok' | '_heartbeat' | '_error' | '_reconnected' | '_timeout' | '_expired', fields: Record<string, string | number | undefined>, format: WatchFormat): string;
|
|
48
49
|
export {};
|
|
49
50
|
//# sourceMappingURL=watchLines.d.ts.map
|
package/dist/watchLines.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchLines.d.ts","sourceRoot":"","sources":["../src/watchLines.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,yDAAyD;AACzD,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"watchLines.d.ts","sourceRoot":"","sources":["../src/watchLines.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,yDAAyD;AACzD,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAuDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ1D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAsBnF;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,EAChF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EACnD,MAAM,EAAE,WAAW,GAClB,MAAM,CAQR"}
|
package/dist/watchLines.js
CHANGED
|
@@ -44,6 +44,13 @@ function formatEntryLine(entry) {
|
|
|
44
44
|
case 'pr.conflicted': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} CONFLICTED`;
|
|
45
45
|
case 'pr.checks': return formatChecksLine(`PR ${name} ${pane} #${entry.pr?.number ?? '?'}`, entry);
|
|
46
46
|
case 'pr.merged': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} MERGED`;
|
|
47
|
+
case 'pr.closed': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} CLOSED${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
48
|
+
case 'pr.head': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} HEAD CHANGED${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
49
|
+
case 'pr.review': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} REVIEW${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
50
|
+
case 'pr.comment': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} COMMENT${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
51
|
+
case 'pr.stopped': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} WATCH STOPPED${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
52
|
+
case 'github.unavailable': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} GITHUB UNAVAILABLE${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
53
|
+
case 'github.recovered': return `PR ${name} ${pane} #${entry.pr?.number ?? '?'} GITHUB RECOVERED${entry.reason ? ': ' + sanitizeName(entry.reason) : ''}`;
|
|
47
54
|
case 'agent.report': return `REPORT ${name} ${pane}${panel} ${entry.report ? describeReport(entry.report) : 'unknown'}`;
|
|
48
55
|
default: return `UNKNOWN ${name} ${pane}${panel}`;
|
|
49
56
|
}
|
|
@@ -75,11 +82,11 @@ function formatWaitResult(result, format) {
|
|
|
75
82
|
if (format === 'json') {
|
|
76
83
|
const lines = [];
|
|
77
84
|
if (result.reset) {
|
|
78
|
-
lines.push(JSON.stringify({ kind: '_reset', reason: result.reset.reason, epoch: result.epoch }));
|
|
85
|
+
lines.push(JSON.stringify({ kind: '_reset', reason: result.reset.reason, epoch: result.epoch, generation: result.generation }));
|
|
79
86
|
}
|
|
80
87
|
if (result.dropped !== undefined)
|
|
81
|
-
lines.push(JSON.stringify({ kind: '_dropped', count: result.dropped }));
|
|
82
|
-
lines.push(...result.entries.map(entry => JSON.stringify(entry)));
|
|
88
|
+
lines.push(JSON.stringify({ kind: '_dropped', count: result.dropped, epoch: result.epoch, generation: result.generation }));
|
|
89
|
+
lines.push(...result.entries.map(entry => JSON.stringify({ ...entry, epoch: result.epoch })));
|
|
83
90
|
return lines;
|
|
84
91
|
}
|
|
85
92
|
const lines = [];
|
|
@@ -108,6 +115,8 @@ function formatNonEntry(kind, fields, format) {
|
|
|
108
115
|
return `WATCH RECONNECTED gen ${fields.generation}`;
|
|
109
116
|
if (kind === '_timeout')
|
|
110
117
|
return `WATCH TIMEOUT after ${fields.timeoutMs}ms`;
|
|
118
|
+
if (kind === '_expired')
|
|
119
|
+
return `WATCH EXPIRED after ${fields.expireAfterMs}ms quiet`;
|
|
111
120
|
return `WATCH ERROR ${sanitizeName(String(fields.code))}: ${sanitizeName(String(fields.message))}`;
|
|
112
121
|
}
|
|
113
122
|
//# sourceMappingURL=watchLines.js.map
|
package/dist/watchLines.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchLines.js","sourceRoot":"","sources":["../src/watchLines.ts"],"names":[],"mappings":";;AAEA,8DAGC;
|
|
1
|
+
{"version":3,"file":"watchLines.js","sourceRoot":"","sources":["../src/watchLines.ts"],"names":[],"mappings":"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"}
|