opera-browser-cli 0.1.45 → 0.1.47
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 +106 -16
- package/SKILL.md +34 -2
- package/dist/src/bridge.d.ts +69 -1
- package/dist/src/bridge.js +260 -23
- package/dist/src/bridge.js.map +1 -1
- package/dist/src/browser-target.d.ts +84 -0
- package/dist/src/browser-target.js +161 -0
- package/dist/src/browser-target.js.map +1 -0
- package/dist/src/cli.d.ts +72 -2
- package/dist/src/cli.js +1134 -214
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client.d.ts +75 -8
- package/dist/src/client.js +689 -119
- package/dist/src/client.js.map +1 -1
- package/dist/src/config.d.ts +58 -0
- package/dist/src/config.js +171 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/detect.d.ts +21 -0
- package/dist/src/detect.js +76 -0
- package/dist/src/detect.js.map +1 -0
- package/dist/src/identity.d.ts +61 -0
- package/dist/src/identity.js +87 -0
- package/dist/src/identity.js.map +1 -0
- package/dist/src/profile.d.ts +80 -0
- package/dist/src/profile.js +187 -0
- package/dist/src/profile.js.map +1 -0
- package/dist/src/version.d.ts +10 -0
- package/dist/src/version.js +34 -0
- package/dist/src/version.js.map +1 -0
- package/package.json +1 -1
- package/dist/bin/opera-cli-bridge.d.ts +0 -2
- package/dist/bin/opera-cli-bridge.js +0 -7
- package/dist/bin/opera-cli-bridge.js.map +0 -1
- package/dist/bin/opera-cli.d.ts +0 -2
- package/dist/bin/opera-cli.js +0 -4
- package/dist/bin/opera-cli.js.map +0 -1
- package/openclaw/.claude/settings.local.json +0 -8
package/dist/src/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading, writing, validating, and — on a fresh machine — inventing the
|
|
3
|
+
* configuration file.
|
|
4
|
+
*
|
|
5
|
+
* The guiding rule: config is a cache of decisions, not a prerequisite. A user
|
|
6
|
+
* who has never run `setup` should get a working browser on their first
|
|
7
|
+
* command, not a hint telling them to go and configure something. Detection is
|
|
8
|
+
* cheap and unambiguous on the platforms Opera ships for, so there is nothing
|
|
9
|
+
* worth asking about up front.
|
|
10
|
+
*/
|
|
11
|
+
import { type DetectedBrowser } from "./detect.js";
|
|
12
|
+
/**
|
|
13
|
+
* Every variable the CLI reads. Used to catch typos, which otherwise sit in the
|
|
14
|
+
* config file doing nothing and looking correct.
|
|
15
|
+
*/
|
|
16
|
+
export declare const KNOWN_CONFIG_KEYS: readonly ["OPERA_CLI_PORT", "OPERA_CLI_MCP_BIN", "OPERA_CLI_EXECUTABLE_PATH", "OPERA_CLI_BROWSER_URL", "OPERA_CLI_USER_DATA_DIR", "OPERA_CLI_HEADED", "OPERA_CLI_CHROME_ARGS", "OPERA_CLI_ENABLE_HOOKS", "OPERA_CLI_TAKEOVER", "OPERA_CLI_DEV"];
|
|
17
|
+
export interface UnknownKey {
|
|
18
|
+
key: string;
|
|
19
|
+
suggestion: string | null;
|
|
20
|
+
}
|
|
21
|
+
/** Config keys the CLI does not read, with a likely intended key where obvious. */
|
|
22
|
+
export declare function findUnknownConfigKeys(config: Record<string, string>): UnknownKey[];
|
|
23
|
+
export declare function readConfigFile(): Record<string, string>;
|
|
24
|
+
export declare function writeConfigFile(config: Record<string, string>): void;
|
|
25
|
+
/** Apply a patch to the config file. A null value removes the key. */
|
|
26
|
+
export declare function updateConfigFile(patch: Record<string, string | null>): void;
|
|
27
|
+
export interface AutoConfigureOptions {
|
|
28
|
+
home?: string;
|
|
29
|
+
platform?: NodeJS.Platform;
|
|
30
|
+
exists?: (path: string) => boolean;
|
|
31
|
+
/** Write the result to disk. Off for previewing what would happen. */
|
|
32
|
+
persist?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export type AutoConfigureResult = {
|
|
35
|
+
status: "already-configured";
|
|
36
|
+
} | {
|
|
37
|
+
status: "no-browser";
|
|
38
|
+
} | {
|
|
39
|
+
status: "configured";
|
|
40
|
+
browser: DetectedBrowser;
|
|
41
|
+
settings: Record<string, string>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Decide the settings for a machine that has never been configured.
|
|
45
|
+
*
|
|
46
|
+
* Chooses the browser's real profile when there is one, rather than a private
|
|
47
|
+
* CLI profile: the point of using Opera is the session you are already signed
|
|
48
|
+
* in to. A profile that turns out to be in use is resolved at launch time —
|
|
49
|
+
* see `browser-target.ts` — so preferring it here costs nothing.
|
|
50
|
+
*/
|
|
51
|
+
export declare function computeAutoConfig(options?: AutoConfigureOptions): AutoConfigureResult;
|
|
52
|
+
/** Apply settings to this process, so the current command uses them too. */
|
|
53
|
+
export declare function applySettingsToEnv(settings: Record<string, string>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Configure a fresh machine, if it needs it. Returns what happened so the
|
|
56
|
+
* caller can tell the user in one line.
|
|
57
|
+
*/
|
|
58
|
+
export declare function autoConfigure(options?: AutoConfigureOptions): AutoConfigureResult;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading, writing, validating, and — on a fresh machine — inventing the
|
|
3
|
+
* configuration file.
|
|
4
|
+
*
|
|
5
|
+
* The guiding rule: config is a cache of decisions, not a prerequisite. A user
|
|
6
|
+
* who has never run `setup` should get a working browser on their first
|
|
7
|
+
* command, not a hint telling them to go and configure something. Detection is
|
|
8
|
+
* cheap and unambiguous on the platforms Opera ships for, so there is nothing
|
|
9
|
+
* worth asking about up front.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
12
|
+
import { homedir } from "node:os";
|
|
13
|
+
import { join } from "node:path";
|
|
14
|
+
import { getConfigFile, getStateDir, parseConfigValue } from "./client.js";
|
|
15
|
+
import { detectBrowser } from "./detect.js";
|
|
16
|
+
import { defaultProfileDir } from "./profile.js";
|
|
17
|
+
/**
|
|
18
|
+
* Every variable the CLI reads. Used to catch typos, which otherwise sit in the
|
|
19
|
+
* config file doing nothing and looking correct.
|
|
20
|
+
*/
|
|
21
|
+
export const KNOWN_CONFIG_KEYS = [
|
|
22
|
+
"OPERA_CLI_PORT",
|
|
23
|
+
"OPERA_CLI_MCP_BIN",
|
|
24
|
+
"OPERA_CLI_EXECUTABLE_PATH",
|
|
25
|
+
"OPERA_CLI_BROWSER_URL",
|
|
26
|
+
"OPERA_CLI_USER_DATA_DIR",
|
|
27
|
+
"OPERA_CLI_HEADED",
|
|
28
|
+
"OPERA_CLI_CHROME_ARGS",
|
|
29
|
+
"OPERA_CLI_ENABLE_HOOKS",
|
|
30
|
+
"OPERA_CLI_TAKEOVER",
|
|
31
|
+
"OPERA_CLI_DEV",
|
|
32
|
+
];
|
|
33
|
+
/** Levenshtein distance, capped — only used to suggest a corrected key. */
|
|
34
|
+
function editDistance(a, b) {
|
|
35
|
+
const rows = a.length + 1;
|
|
36
|
+
const cols = b.length + 1;
|
|
37
|
+
let prev = Array.from({ length: cols }, (_, i) => i);
|
|
38
|
+
for (let i = 1; i < rows; i++) {
|
|
39
|
+
const curr = [i, ...Array(cols - 1).fill(0)];
|
|
40
|
+
for (let j = 1; j < cols; j++) {
|
|
41
|
+
curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
|
|
42
|
+
}
|
|
43
|
+
prev = curr;
|
|
44
|
+
}
|
|
45
|
+
return prev[cols - 1];
|
|
46
|
+
}
|
|
47
|
+
/** Config keys the CLI does not read, with a likely intended key where obvious. */
|
|
48
|
+
export function findUnknownConfigKeys(config) {
|
|
49
|
+
const known = new Set(KNOWN_CONFIG_KEYS);
|
|
50
|
+
const unknown = [];
|
|
51
|
+
for (const key of Object.keys(config)) {
|
|
52
|
+
if (known.has(key))
|
|
53
|
+
continue;
|
|
54
|
+
let best = null;
|
|
55
|
+
let bestDistance = Number.POSITIVE_INFINITY;
|
|
56
|
+
for (const candidate of KNOWN_CONFIG_KEYS) {
|
|
57
|
+
const distance = editDistance(key, candidate);
|
|
58
|
+
if (distance < bestDistance) {
|
|
59
|
+
bestDistance = distance;
|
|
60
|
+
best = candidate;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Scale the tolerance with key length. A fixed threshold is too tight for
|
|
64
|
+
// the common abbreviation typo (EXEC_PATH for EXECUTABLE_PATH is six
|
|
65
|
+
// edits) while still being loose enough to "suggest" a wholly unrelated
|
|
66
|
+
// key, which is worse than saying nothing.
|
|
67
|
+
const tolerance = Math.max(4, Math.ceil(key.length / 3));
|
|
68
|
+
unknown.push({ key, suggestion: bestDistance <= tolerance ? best : null });
|
|
69
|
+
}
|
|
70
|
+
return unknown;
|
|
71
|
+
}
|
|
72
|
+
export function readConfigFile() {
|
|
73
|
+
const configFile = getConfigFile();
|
|
74
|
+
const config = {};
|
|
75
|
+
if (!existsSync(configFile))
|
|
76
|
+
return config;
|
|
77
|
+
try {
|
|
78
|
+
for (const line of readFileSync(configFile, "utf-8").split("\n")) {
|
|
79
|
+
const trimmed = line.trim();
|
|
80
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
81
|
+
continue;
|
|
82
|
+
const eq = trimmed.indexOf("=");
|
|
83
|
+
if (eq === -1)
|
|
84
|
+
continue;
|
|
85
|
+
config[trimmed.slice(0, eq).trim()] = parseConfigValue(trimmed.slice(eq + 1).trim());
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Unreadable config is treated as absent — never fail a command over it.
|
|
90
|
+
}
|
|
91
|
+
return config;
|
|
92
|
+
}
|
|
93
|
+
export function writeConfigFile(config) {
|
|
94
|
+
mkdirSync(getStateDir(), { recursive: true });
|
|
95
|
+
const lines = [
|
|
96
|
+
"# opera-browser-cli configuration — auto-loaded on every run",
|
|
97
|
+
"# Values here are used as defaults when the env var is not already set.",
|
|
98
|
+
"",
|
|
99
|
+
...Object.entries(config).map(([key, value]) => `${key}="${value.replace(/"/g, '\\"')}"`),
|
|
100
|
+
];
|
|
101
|
+
writeFileSync(getConfigFile(), lines.join("\n") + "\n");
|
|
102
|
+
}
|
|
103
|
+
/** Apply a patch to the config file. A null value removes the key. */
|
|
104
|
+
export function updateConfigFile(patch) {
|
|
105
|
+
const config = readConfigFile();
|
|
106
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
107
|
+
if (value === null)
|
|
108
|
+
delete config[key];
|
|
109
|
+
else
|
|
110
|
+
config[key] = value;
|
|
111
|
+
}
|
|
112
|
+
writeConfigFile(config);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Decide the settings for a machine that has never been configured.
|
|
116
|
+
*
|
|
117
|
+
* Chooses the browser's real profile when there is one, rather than a private
|
|
118
|
+
* CLI profile: the point of using Opera is the session you are already signed
|
|
119
|
+
* in to. A profile that turns out to be in use is resolved at launch time —
|
|
120
|
+
* see `browser-target.ts` — so preferring it here costs nothing.
|
|
121
|
+
*/
|
|
122
|
+
export function computeAutoConfig(options = {}) {
|
|
123
|
+
const home = options.home ?? homedir();
|
|
124
|
+
const platform = options.platform ?? process.platform;
|
|
125
|
+
const exists = options.exists ?? existsSync;
|
|
126
|
+
const alreadyConfigured = exists(getConfigFile()) ||
|
|
127
|
+
Boolean(process.env.OPERA_CLI_EXECUTABLE_PATH) ||
|
|
128
|
+
Boolean(process.env.OPERA_CLI_BROWSER_URL);
|
|
129
|
+
if (alreadyConfigured)
|
|
130
|
+
return { status: "already-configured" };
|
|
131
|
+
const browser = detectBrowser(platform, home, exists);
|
|
132
|
+
if (browser === null)
|
|
133
|
+
return { status: "no-browser" };
|
|
134
|
+
const settings = {
|
|
135
|
+
OPERA_CLI_EXECUTABLE_PATH: browser.path,
|
|
136
|
+
// Every Opera AI feature needs a window to sign in with; a real browser
|
|
137
|
+
// implies the user wants to see it.
|
|
138
|
+
OPERA_CLI_HEADED: "1",
|
|
139
|
+
OPERA_CLI_USER_DATA_DIR: defaultProfileDir(browser.path, home, platform) ??
|
|
140
|
+
join(getStateDir(), "profile"),
|
|
141
|
+
};
|
|
142
|
+
return { status: "configured", browser, settings };
|
|
143
|
+
}
|
|
144
|
+
/** Apply settings to this process, so the current command uses them too. */
|
|
145
|
+
export function applySettingsToEnv(settings) {
|
|
146
|
+
for (const [key, value] of Object.entries(settings)) {
|
|
147
|
+
if (!(key in process.env))
|
|
148
|
+
process.env[key] = value;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Configure a fresh machine, if it needs it. Returns what happened so the
|
|
153
|
+
* caller can tell the user in one line.
|
|
154
|
+
*/
|
|
155
|
+
export function autoConfigure(options = {}) {
|
|
156
|
+
const result = computeAutoConfig(options);
|
|
157
|
+
if (result.status !== "configured")
|
|
158
|
+
return result;
|
|
159
|
+
if (options.persist !== false) {
|
|
160
|
+
try {
|
|
161
|
+
writeConfigFile(result.settings);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// An unwritable state dir should not stop this run — the settings still
|
|
165
|
+
// apply in-process, and `doctor` reports the directory problem.
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
applySettingsToEnv(result.settings);
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finding an installed browser.
|
|
3
|
+
*
|
|
4
|
+
* Opera Neon is preferred because it is the only build with the full Opera AI
|
|
5
|
+
* tool set; a plain Opera still gives `chat`. Anything else means the AI
|
|
6
|
+
* commands cannot work, which the caller reports rather than discovering
|
|
7
|
+
* halfway through a command.
|
|
8
|
+
*/
|
|
9
|
+
export declare function neonCandidatePaths(platform?: NodeJS.Platform, home?: string): string[];
|
|
10
|
+
export declare function operaCandidatePaths(platform?: NodeJS.Platform, home?: string): string[];
|
|
11
|
+
export declare function browserDisplayName(binPath: string): string;
|
|
12
|
+
export interface DetectedBrowser {
|
|
13
|
+
path: string;
|
|
14
|
+
name: string;
|
|
15
|
+
/** Only Neon has invoke-do / make / research. */
|
|
16
|
+
isNeon: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Every Opera install we can find, Neon first. */
|
|
19
|
+
export declare function detectBrowsers(platform?: NodeJS.Platform, home?: string, exists?: (p: string) => boolean): DetectedBrowser[];
|
|
20
|
+
/** The browser to use when nobody has said which. */
|
|
21
|
+
export declare function detectBrowser(platform?: NodeJS.Platform, home?: string, exists?: (p: string) => boolean): DetectedBrowser | null;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finding an installed browser.
|
|
3
|
+
*
|
|
4
|
+
* Opera Neon is preferred because it is the only build with the full Opera AI
|
|
5
|
+
* tool set; a plain Opera still gives `chat`. Anything else means the AI
|
|
6
|
+
* commands cannot work, which the caller reports rather than discovering
|
|
7
|
+
* halfway through a command.
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync } from "node:fs";
|
|
10
|
+
export function neonCandidatePaths(platform = process.platform, home = "") {
|
|
11
|
+
if (platform === "darwin") {
|
|
12
|
+
return [
|
|
13
|
+
"/Applications/Opera Neon.app/Contents/MacOS/Opera",
|
|
14
|
+
"/Applications/Opera Neon Developer.app/Contents/MacOS/Opera",
|
|
15
|
+
`${home}/Applications/Opera Neon.app/Contents/MacOS/Opera`,
|
|
16
|
+
`${home}/Applications/Opera Neon Developer.app/Contents/MacOS/Opera`,
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
if (platform === "win32") {
|
|
20
|
+
const localAppData = process.env.LOCALAPPDATA ?? `${home}\\AppData\\Local`;
|
|
21
|
+
const programFiles = process.env.PROGRAMFILES ?? "C:\\Program Files";
|
|
22
|
+
return [
|
|
23
|
+
`${localAppData}\\Programs\\Opera Neon\\opera.exe`,
|
|
24
|
+
`${programFiles}\\Opera Neon\\opera.exe`,
|
|
25
|
+
`${localAppData}\\Programs\\Opera Neon Developer\\opera.exe`,
|
|
26
|
+
`${programFiles}\\Opera Neon Developer\\opera.exe`,
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
// Opera Neon does not ship for Linux.
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
export function operaCandidatePaths(platform = process.platform, home = "") {
|
|
33
|
+
if (platform === "darwin") {
|
|
34
|
+
return [
|
|
35
|
+
"/Applications/Opera GX.app/Contents/MacOS/Opera",
|
|
36
|
+
"/Applications/Opera.app/Contents/MacOS/Opera",
|
|
37
|
+
`${home}/Applications/Opera GX.app/Contents/MacOS/Opera`,
|
|
38
|
+
`${home}/Applications/Opera.app/Contents/MacOS/Opera`,
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
if (platform === "win32") {
|
|
42
|
+
const localAppData = process.env.LOCALAPPDATA ?? `${home}\\AppData\\Local`;
|
|
43
|
+
const programFiles = process.env.PROGRAMFILES ?? "C:\\Program Files";
|
|
44
|
+
return [
|
|
45
|
+
`${localAppData}\\Programs\\Opera GX\\opera.exe`,
|
|
46
|
+
`${localAppData}\\Programs\\Opera\\opera.exe`,
|
|
47
|
+
`${programFiles}\\Opera GX\\opera.exe`,
|
|
48
|
+
`${programFiles}\\Opera\\opera.exe`,
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
export function browserDisplayName(binPath) {
|
|
54
|
+
if (binPath.includes("Neon Developer"))
|
|
55
|
+
return "Opera Neon Developer";
|
|
56
|
+
if (binPath.includes("Neon"))
|
|
57
|
+
return "Opera Neon";
|
|
58
|
+
if (binPath.includes("GX"))
|
|
59
|
+
return "Opera GX";
|
|
60
|
+
return "Opera";
|
|
61
|
+
}
|
|
62
|
+
/** Every Opera install we can find, Neon first. */
|
|
63
|
+
export function detectBrowsers(platform = process.platform, home = "", exists = existsSync) {
|
|
64
|
+
const neon = neonCandidatePaths(platform, home).filter(exists);
|
|
65
|
+
const opera = operaCandidatePaths(platform, home).filter(exists);
|
|
66
|
+
return [...neon, ...opera].map((path) => ({
|
|
67
|
+
path,
|
|
68
|
+
name: browserDisplayName(path),
|
|
69
|
+
isNeon: neon.includes(path),
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
/** The browser to use when nobody has said which. */
|
|
73
|
+
export function detectBrowser(platform = process.platform, home = "", exists = existsSync) {
|
|
74
|
+
return detectBrowsers(platform, home, exists)[0] ?? null;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge identity — the contract that lets a CLI process decide whether a
|
|
3
|
+
* process or a listening port is *our* bridge, and whether it is running the
|
|
4
|
+
* same code we are.
|
|
5
|
+
*
|
|
6
|
+
* Two problems this solves:
|
|
7
|
+
*
|
|
8
|
+
* 1. Version skew. A bridge started before an upgrade keeps serving stale
|
|
9
|
+
* code from memory and looks perfectly healthy. `version` makes the skew
|
|
10
|
+
* visible so the client can restart it.
|
|
11
|
+
*
|
|
12
|
+
* 2. PID recycling. After a reboot the PID in a leftover PID file may belong
|
|
13
|
+
* to an unrelated process. Signalling it would kill a stranger's process.
|
|
14
|
+
* `bootMinute` scopes a PID to the boot it was recorded in.
|
|
15
|
+
*
|
|
16
|
+
* The rule the client enforces: never signal a PID that has not been positively
|
|
17
|
+
* identified as our bridge, either by answering /health or by matching both the
|
|
18
|
+
* PID file and the current boot.
|
|
19
|
+
*/
|
|
20
|
+
export declare const BRIDGE_SERVER_NAME = "opera-browser-cli";
|
|
21
|
+
/** Payload returned by GET /health. */
|
|
22
|
+
export interface BridgeHealth {
|
|
23
|
+
status: "ok" | "not-connected";
|
|
24
|
+
server: string;
|
|
25
|
+
version: string;
|
|
26
|
+
pid: number;
|
|
27
|
+
startedAt: number;
|
|
28
|
+
bootMinute: number;
|
|
29
|
+
browser: {
|
|
30
|
+
connected: boolean;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The instant this machine booted, in whole minutes since the epoch.
|
|
35
|
+
*
|
|
36
|
+
* Derived from uptime rather than stored, so any process can compute it
|
|
37
|
+
* independently. Uptime drifts by a second or two across suspend/resume and
|
|
38
|
+
* between processes, so callers must compare with `sameBoot` (±1 minute)
|
|
39
|
+
* rather than testing for equality.
|
|
40
|
+
*/
|
|
41
|
+
export declare function computeBootMinute(nowMs?: number, uptimeSeconds?: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* True when two boot minutes describe the same boot.
|
|
44
|
+
*
|
|
45
|
+
* The ±1 tolerance absorbs both uptime drift and the case where two processes
|
|
46
|
+
* compute the value either side of a minute boundary. A false negative is
|
|
47
|
+
* cheap (we decline to signal a PID and start a fresh bridge on another port);
|
|
48
|
+
* a false positive would mean signalling a stranger, so the tolerance stays
|
|
49
|
+
* tight.
|
|
50
|
+
*/
|
|
51
|
+
export declare function sameBoot(a: number, b: number): boolean;
|
|
52
|
+
/** True when the payload came from a bridge of ours (any version). */
|
|
53
|
+
export declare function isOurBridge(health: BridgeHealth | null): health is BridgeHealth;
|
|
54
|
+
/** True when the bridge is ours, connected, and running our exact version. */
|
|
55
|
+
export declare function isUsableBridge(health: BridgeHealth | null, ourVersion: string): health is BridgeHealth;
|
|
56
|
+
/**
|
|
57
|
+
* Parse a /health response body. Returns null for anything that is not a
|
|
58
|
+
* well-formed bridge identity — a foreign server, an HTML error page, or a
|
|
59
|
+
* bridge old enough to predate the identity fields.
|
|
60
|
+
*/
|
|
61
|
+
export declare function parseHealth(body: string): BridgeHealth | null;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge identity — the contract that lets a CLI process decide whether a
|
|
3
|
+
* process or a listening port is *our* bridge, and whether it is running the
|
|
4
|
+
* same code we are.
|
|
5
|
+
*
|
|
6
|
+
* Two problems this solves:
|
|
7
|
+
*
|
|
8
|
+
* 1. Version skew. A bridge started before an upgrade keeps serving stale
|
|
9
|
+
* code from memory and looks perfectly healthy. `version` makes the skew
|
|
10
|
+
* visible so the client can restart it.
|
|
11
|
+
*
|
|
12
|
+
* 2. PID recycling. After a reboot the PID in a leftover PID file may belong
|
|
13
|
+
* to an unrelated process. Signalling it would kill a stranger's process.
|
|
14
|
+
* `bootMinute` scopes a PID to the boot it was recorded in.
|
|
15
|
+
*
|
|
16
|
+
* The rule the client enforces: never signal a PID that has not been positively
|
|
17
|
+
* identified as our bridge, either by answering /health or by matching both the
|
|
18
|
+
* PID file and the current boot.
|
|
19
|
+
*/
|
|
20
|
+
import { uptime } from "node:os";
|
|
21
|
+
export const BRIDGE_SERVER_NAME = "opera-browser-cli";
|
|
22
|
+
/**
|
|
23
|
+
* The instant this machine booted, in whole minutes since the epoch.
|
|
24
|
+
*
|
|
25
|
+
* Derived from uptime rather than stored, so any process can compute it
|
|
26
|
+
* independently. Uptime drifts by a second or two across suspend/resume and
|
|
27
|
+
* between processes, so callers must compare with `sameBoot` (±1 minute)
|
|
28
|
+
* rather than testing for equality.
|
|
29
|
+
*/
|
|
30
|
+
export function computeBootMinute(nowMs = Date.now(), uptimeSeconds = uptime()) {
|
|
31
|
+
return Math.floor((nowMs - uptimeSeconds * 1000) / 60_000);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* True when two boot minutes describe the same boot.
|
|
35
|
+
*
|
|
36
|
+
* The ±1 tolerance absorbs both uptime drift and the case where two processes
|
|
37
|
+
* compute the value either side of a minute boundary. A false negative is
|
|
38
|
+
* cheap (we decline to signal a PID and start a fresh bridge on another port);
|
|
39
|
+
* a false positive would mean signalling a stranger, so the tolerance stays
|
|
40
|
+
* tight.
|
|
41
|
+
*/
|
|
42
|
+
export function sameBoot(a, b) {
|
|
43
|
+
return Math.abs(a - b) <= 1;
|
|
44
|
+
}
|
|
45
|
+
/** True when the payload came from a bridge of ours (any version). */
|
|
46
|
+
export function isOurBridge(health) {
|
|
47
|
+
return health !== null && health.server === BRIDGE_SERVER_NAME;
|
|
48
|
+
}
|
|
49
|
+
/** True when the bridge is ours, connected, and running our exact version. */
|
|
50
|
+
export function isUsableBridge(health, ourVersion) {
|
|
51
|
+
return (isOurBridge(health) &&
|
|
52
|
+
health.status === "ok" &&
|
|
53
|
+
health.version === ourVersion);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse a /health response body. Returns null for anything that is not a
|
|
57
|
+
* well-formed bridge identity — a foreign server, an HTML error page, or a
|
|
58
|
+
* bridge old enough to predate the identity fields.
|
|
59
|
+
*/
|
|
60
|
+
export function parseHealth(body) {
|
|
61
|
+
let data;
|
|
62
|
+
try {
|
|
63
|
+
data = JSON.parse(body);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (!data || typeof data !== "object")
|
|
69
|
+
return null;
|
|
70
|
+
const record = data;
|
|
71
|
+
if (record.server !== BRIDGE_SERVER_NAME)
|
|
72
|
+
return null;
|
|
73
|
+
const browser = record.browser;
|
|
74
|
+
return {
|
|
75
|
+
status: record.status === "ok" ? "ok" : "not-connected",
|
|
76
|
+
server: BRIDGE_SERVER_NAME,
|
|
77
|
+
// Pre-identity bridges (<= 0.1.45) omit these. Coercing to sentinel values
|
|
78
|
+
// rather than rejecting keeps them recognisable as ours — which is what
|
|
79
|
+
// lets the client shut one down instead of colliding with it.
|
|
80
|
+
version: typeof record.version === "string" ? record.version : "unknown",
|
|
81
|
+
pid: typeof record.pid === "number" ? record.pid : 0,
|
|
82
|
+
startedAt: typeof record.startedAt === "number" ? record.startedAt : 0,
|
|
83
|
+
bootMinute: typeof record.bootMinute === "number" ? record.bootMinute : Number.NaN,
|
|
84
|
+
browser: { connected: browser?.connected === true },
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAatD;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,IAAI,CAAC,GAAG,EAAE,EAC1B,gBAAwB,MAAM,EAAE;IAEhC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,MAA2B;IACrD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAC5B,MAA2B,EAC3B,UAAkB;IAElB,OAAO,CACL,WAAW,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,MAAM,KAAK,IAAI;QACtB,MAAM,CAAC,OAAO,KAAK,UAAU,CAC9B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAA8C,CAAC;IACtE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;QACvD,MAAM,EAAE,kBAAkB;QAC1B,2EAA2E;QAC3E,wEAAwE;QACxE,8DAA8D;QAC9D,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACxE,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtE,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;QACxE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,EAAE;KACpD,CAAC;AACJ,CAAC"}
|