tauri-agent-tools 0.9.2 → 0.9.3
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/.agents/skills/tauri-agent-tools/SKILL.md +25 -11
- package/.agents/skills/tauri-bridge-setup/SKILL.md +4 -3
- package/.agents/skills/tauri-debug-quickstart/SKILL.md +3 -1
- package/AGENTS.md +7 -3
- package/README.md +31 -12
- package/dist/bridge/client.d.ts +1 -0
- package/dist/bridge/client.js +2 -0
- package/dist/bridge/client.js.map +1 -1
- package/dist/bridge/evaluate.d.ts +11 -0
- package/dist/bridge/evaluate.js +33 -0
- package/dist/bridge/evaluate.js.map +1 -0
- package/dist/bridge/logReader.d.ts +27 -0
- package/dist/bridge/logReader.js +26 -0
- package/dist/bridge/logReader.js.map +1 -0
- package/dist/bridge/observers.d.ts +11 -0
- package/dist/bridge/observers.js +195 -0
- package/dist/bridge/observers.js.map +1 -0
- package/dist/cli.js +28 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/bundle.js +122 -101
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/capture.d.ts +3 -3
- package/dist/commands/capture.js +167 -141
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/check.js +44 -59
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/consoleMonitor.js +18 -85
- package/dist/commands/consoleMonitor.js.map +1 -1
- package/dist/commands/diagnose.js +4 -32
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/diff.js +28 -38
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/dom.js +2 -2
- package/dist/commands/dom.js.map +1 -1
- package/dist/commands/eval.js +11 -1
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/forensics.js +1 -7
- package/dist/commands/forensics.js.map +1 -1
- package/dist/commands/info.d.ts +2 -2
- package/dist/commands/info.js +3 -1
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/interact/click.js +14 -44
- package/dist/commands/interact/click.js.map +1 -1
- package/dist/commands/interact/scroll.js +6 -0
- package/dist/commands/interact/scroll.js.map +1 -1
- package/dist/commands/ipcMonitor.d.ts +3 -3
- package/dist/commands/ipcMonitor.js +26 -96
- package/dist/commands/ipcMonitor.js.map +1 -1
- package/dist/commands/listWindows.d.ts +2 -2
- package/dist/commands/listWindows.js.map +1 -1
- package/dist/commands/logs.d.ts +4 -27
- package/dist/commands/logs.js +12 -41
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mutations.js +20 -101
- package/dist/commands/mutations.js.map +1 -1
- package/dist/commands/osLogs.js +2 -5
- package/dist/commands/osLogs.js.map +1 -1
- package/dist/commands/probe.js +18 -16
- package/dist/commands/probe.js.map +1 -1
- package/dist/commands/rustLogs.js +23 -43
- package/dist/commands/rustLogs.js.map +1 -1
- package/dist/commands/screenshot.d.ts +2 -2
- package/dist/commands/screenshot.js +7 -4
- package/dist/commands/screenshot.js.map +1 -1
- package/dist/commands/shared.d.ts +4 -1
- package/dist/commands/shared.js +34 -4
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/sidecarReplay.js +4 -0
- package/dist/commands/sidecarReplay.js.map +1 -1
- package/dist/commands/snapshot.d.ts +2 -2
- package/dist/commands/snapshot.js +4 -4
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/commands/storeInspect.js +2 -2
- package/dist/commands/storeInspect.js.map +1 -1
- package/dist/commands/wait.d.ts +2 -2
- package/dist/commands/wait.js +42 -57
- package/dist/commands/wait.js.map +1 -1
- package/dist/errors.d.ts +10 -0
- package/dist/errors.js +26 -0
- package/dist/errors.js.map +1 -0
- package/dist/platform/detect.d.ts +2 -2
- package/dist/platform/detect.js +11 -2
- package/dist/platform/detect.js.map +1 -1
- package/dist/platform/x11.d.ts +1 -0
- package/dist/platform/x11.js +16 -5
- package/dist/platform/x11.js.map +1 -1
- package/dist/schemas/commands.d.ts +6 -0
- package/dist/schemas/commands.js +2 -0
- package/dist/schemas/commands.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/util/exec.d.ts +6 -0
- package/dist/util/exec.js +13 -1
- package/dist/util/exec.js.map +1 -1
- package/dist/util/incidentFiles.d.ts +5 -0
- package/dist/util/incidentFiles.js +61 -0
- package/dist/util/incidentFiles.js.map +1 -0
- package/dist/util/monitor.d.ts +11 -0
- package/dist/util/monitor.js +42 -0
- package/dist/util/monitor.js.map +1 -0
- package/dist/util/poll.d.ts +2 -0
- package/dist/util/poll.js +28 -0
- package/dist/util/poll.js.map +1 -0
- package/dist/util/redactText.d.ts +5 -2
- package/dist/util/redactText.js +44 -11
- package/dist/util/redactText.js.map +1 -1
- package/dist/util/tauriConfig.js +15 -18
- package/dist/util/tauriConfig.js.map +1 -1
- package/examples/tauri-bridge/Cargo.lock +4742 -0
- package/package.json +7 -3
- package/rust-bridge/README.md +7 -1
|
@@ -1,63 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { mutationObserver, readObserver, closeObserver } from '../bridge/observers.js';
|
|
3
|
+
import { monitorFor, createSignalScope } from '../util/monitor.js';
|
|
2
4
|
import { z } from 'zod';
|
|
3
|
-
import { addBridgeOptions, resolveBridge,
|
|
5
|
+
import { addBridgeOptions, resolveBridge, parsePositiveInt } from './shared.js';
|
|
4
6
|
import { MutationEntrySchema } from '../schemas/commands.js';
|
|
5
|
-
function buildPatchScript(selector, watchAttributes) {
|
|
6
|
-
const escaped = selector.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
7
|
-
return `(() => {
|
|
8
|
-
if (window.__tauriDevToolsMutationPatched) return 'already_patched';
|
|
9
|
-
var target = document.querySelector('${escaped}');
|
|
10
|
-
if (!target) return 'not_found';
|
|
11
|
-
window.__tauriDevToolsMutationLog = [];
|
|
12
|
-
function describeEl(el) {
|
|
13
|
-
if (!el || el.nodeType !== 1) return null;
|
|
14
|
-
var d = { tag: el.tagName.toLowerCase() };
|
|
15
|
-
if (el.id) d.id = el.id;
|
|
16
|
-
var cls = Array.from(el.classList).join(' ');
|
|
17
|
-
if (cls) d.class = cls;
|
|
18
|
-
return d;
|
|
19
|
-
}
|
|
20
|
-
window.__tauriDevToolsMutationObserver = new MutationObserver(function(mutations) {
|
|
21
|
-
for (var i = 0; i < mutations.length; i++) {
|
|
22
|
-
var m = mutations[i];
|
|
23
|
-
var entry = { type: m.type, timestamp: Date.now() };
|
|
24
|
-
var t = m.target;
|
|
25
|
-
entry.target = (t.id ? '#' + t.id : '') || (t.className && typeof t.className === 'string' ? '.' + t.className.split(' ').join('.') : t.tagName ? t.tagName.toLowerCase() : '?');
|
|
26
|
-
if (m.type === 'childList') {
|
|
27
|
-
entry.added = Array.from(m.addedNodes).map(describeEl).filter(Boolean);
|
|
28
|
-
entry.removed = Array.from(m.removedNodes).map(describeEl).filter(Boolean);
|
|
29
|
-
} else if (m.type === 'attributes') {
|
|
30
|
-
entry.attribute = m.attributeName;
|
|
31
|
-
entry.oldValue = m.oldValue;
|
|
32
|
-
entry.newValue = m.target.getAttribute(m.attributeName);
|
|
33
|
-
}
|
|
34
|
-
window.__tauriDevToolsMutationLog.push(entry);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
window.__tauriDevToolsMutationObserver.observe(target, {
|
|
38
|
-
childList: true,
|
|
39
|
-
subtree: true,
|
|
40
|
-
attributes: ${watchAttributes},
|
|
41
|
-
attributeOldValue: ${watchAttributes}
|
|
42
|
-
});
|
|
43
|
-
window.__tauriDevToolsMutationPatched = true;
|
|
44
|
-
return 'patched';
|
|
45
|
-
})()`;
|
|
46
|
-
}
|
|
47
|
-
const DRAIN_SCRIPT = `(() => {
|
|
48
|
-
var log = window.__tauriDevToolsMutationLog || [];
|
|
49
|
-
window.__tauriDevToolsMutationLog = [];
|
|
50
|
-
return JSON.stringify(log);
|
|
51
|
-
})()`;
|
|
52
|
-
const CLEANUP_SCRIPT = `(() => {
|
|
53
|
-
if (window.__tauriDevToolsMutationObserver) {
|
|
54
|
-
window.__tauriDevToolsMutationObserver.disconnect();
|
|
55
|
-
delete window.__tauriDevToolsMutationObserver;
|
|
56
|
-
delete window.__tauriDevToolsMutationLog;
|
|
57
|
-
delete window.__tauriDevToolsMutationPatched;
|
|
58
|
-
}
|
|
59
|
-
return 'cleaned';
|
|
60
|
-
})()`;
|
|
61
7
|
export function formatEntry(entry) {
|
|
62
8
|
const time = new Date(entry.timestamp).toISOString().slice(11, 23);
|
|
63
9
|
if (entry.type === 'childList') {
|
|
@@ -75,54 +21,30 @@ export function formatEntry(entry) {
|
|
|
75
21
|
}
|
|
76
22
|
return `[${time}] ${entry.type} ${entry.target}`;
|
|
77
23
|
}
|
|
78
|
-
async function cleanup(bridge) {
|
|
79
|
-
try {
|
|
80
|
-
await bridge.eval(CLEANUP_SCRIPT);
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// Best-effort cleanup
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
24
|
export function registerMutations(program) {
|
|
87
25
|
const cmd = new Command('mutations')
|
|
88
26
|
.description('Watch DOM mutations on a CSS selector (read-only)')
|
|
89
27
|
.argument('<selector>', 'CSS selector of the element to observe')
|
|
90
28
|
.option('--attributes', 'Also watch attribute changes')
|
|
91
|
-
.option('--interval <ms>', 'Poll interval in milliseconds',
|
|
92
|
-
.option('--duration <ms>', 'Auto-stop after N milliseconds',
|
|
29
|
+
.option('--interval <ms>', 'Poll interval in milliseconds', parsePositiveInt, 500)
|
|
30
|
+
.option('--duration <ms>', 'Auto-stop after N milliseconds', parsePositiveInt)
|
|
93
31
|
.option('--json', 'Output one JSON object per line');
|
|
94
32
|
addBridgeOptions(cmd);
|
|
95
33
|
cmd.action(async (selector, opts) => {
|
|
96
34
|
const bridge = await resolveBridge(opts);
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
throw new Error(`Element not found: ${selector}`);
|
|
100
|
-
}
|
|
101
|
-
if (patchResult === 'already_patched') {
|
|
102
|
-
console.error('Warning: mutation observer already active — draining existing log');
|
|
103
|
-
}
|
|
104
|
-
let stopped = false;
|
|
105
|
-
const onSignal = () => {
|
|
106
|
-
stopped = true;
|
|
107
|
-
};
|
|
108
|
-
process.on('SIGINT', onSignal);
|
|
109
|
-
process.on('SIGTERM', onSignal);
|
|
110
|
-
let timer;
|
|
111
|
-
if (opts.duration) {
|
|
112
|
-
timer = setTimeout(() => {
|
|
113
|
-
stopped = true;
|
|
114
|
-
}, opts.duration);
|
|
115
|
-
}
|
|
116
|
-
if (!opts.json) {
|
|
117
|
-
console.error(`Watching mutations on ${selector}... (Ctrl+C to stop)`);
|
|
118
|
-
}
|
|
35
|
+
const scripts = mutationObserver(selector, !!opts.attributes);
|
|
36
|
+
const signals = createSignalScope();
|
|
119
37
|
try {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
38
|
+
const patchResult = await bridge.eval(scripts.patch);
|
|
39
|
+
if (patchResult === 'not_found')
|
|
40
|
+
throw new Error(`Element not found: ${selector}`);
|
|
41
|
+
if (patchResult !== 'patched' && patchResult !== 'already_patched')
|
|
42
|
+
throw new Error(`Observer setup failed: ${String(patchResult)}`);
|
|
43
|
+
if (!opts.json) {
|
|
44
|
+
console.error(`Watching mutations on ${selector}... (Ctrl+C to stop)`);
|
|
45
|
+
}
|
|
46
|
+
await monitorFor({ ...opts, signal: signals.signal }, async () => {
|
|
47
|
+
const entries = z.array(MutationEntrySchema).parse(await readObserver(bridge, scripts));
|
|
126
48
|
for (const entry of entries) {
|
|
127
49
|
if (opts.json) {
|
|
128
50
|
console.log(JSON.stringify(entry));
|
|
@@ -131,14 +53,11 @@ export function registerMutations(program) {
|
|
|
131
53
|
console.log(formatEntry(entry));
|
|
132
54
|
}
|
|
133
55
|
}
|
|
134
|
-
}
|
|
56
|
+
});
|
|
135
57
|
}
|
|
136
58
|
finally {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
process.off('SIGINT', onSignal);
|
|
140
|
-
process.off('SIGTERM', onSignal);
|
|
141
|
-
await cleanup(bridge);
|
|
59
|
+
await closeObserver(bridge, scripts);
|
|
60
|
+
signals.dispose();
|
|
142
61
|
}
|
|
143
62
|
});
|
|
144
63
|
program.addCommand(cmd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/commands/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/commands/mutations.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/osLogs.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { parsePositiveInt } from './shared.js';
|
|
2
3
|
import { spawn } from 'node:child_process';
|
|
3
4
|
import * as darwin from '../platform/oslog/darwin.js';
|
|
4
5
|
import * as linux from '../platform/oslog/linux.js';
|
|
@@ -121,10 +122,6 @@ function validateLevel(input) {
|
|
|
121
122
|
function parseIntOrInfinity(value) {
|
|
122
123
|
if (value === 'infinity' || value === 'inf')
|
|
123
124
|
return Number.POSITIVE_INFINITY;
|
|
124
|
-
|
|
125
|
-
if (!Number.isFinite(n) || n <= 0) {
|
|
126
|
-
throw new Error(`--duration must be a positive integer (milliseconds), got: ${value}`);
|
|
127
|
-
}
|
|
128
|
-
return n;
|
|
125
|
+
return parsePositiveInt(value);
|
|
129
126
|
}
|
|
130
127
|
//# sourceMappingURL=osLogs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"osLogs.js","sourceRoot":"","sources":["../../src/commands/osLogs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"osLogs.js","sourceRoot":"","sources":["../../src/commands/osLogs.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/probe.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import { detectDisplayServer } from '../platform/detect.js';
|
|
3
3
|
import { BridgeClient } from '../bridge/client.js';
|
|
4
4
|
import { addBridgeOptions, resolveBridge, tryResolveBridgeConfig } from './shared.js';
|
|
5
|
-
import { discoverBridgesByPid
|
|
5
|
+
import { discoverBridgesByPid } from '../bridge/tokenDiscovery.js';
|
|
6
6
|
export function registerProbe(program) {
|
|
7
7
|
const cmd = new Command('probe')
|
|
8
8
|
.description('Discover and report Tauri app targets and bridge health')
|
|
@@ -27,6 +27,7 @@ export function registerProbe(program) {
|
|
|
27
27
|
const result = {
|
|
28
28
|
bridges: allBridges,
|
|
29
29
|
target: {
|
|
30
|
+
pid: null, port: null, windowLabel: opts.windowLabel ?? 'main',
|
|
30
31
|
alive: false,
|
|
31
32
|
version: null,
|
|
32
33
|
describe: null,
|
|
@@ -69,38 +70,38 @@ export function registerProbe(program) {
|
|
|
69
70
|
let title = null;
|
|
70
71
|
let viewport = null;
|
|
71
72
|
try {
|
|
72
|
-
|
|
73
|
+
if (alive)
|
|
74
|
+
url = String(await bridge.eval('window.location.href'));
|
|
73
75
|
}
|
|
74
76
|
catch {
|
|
75
77
|
// bridge may be unreachable or page not loaded
|
|
76
78
|
}
|
|
77
79
|
try {
|
|
78
|
-
|
|
80
|
+
if (alive)
|
|
81
|
+
title = String(await bridge.eval('document.title'));
|
|
79
82
|
}
|
|
80
83
|
catch {
|
|
81
84
|
// ignore
|
|
82
85
|
}
|
|
83
86
|
try {
|
|
84
|
-
|
|
87
|
+
if (alive)
|
|
88
|
+
viewport = await bridge.getViewportSize();
|
|
85
89
|
}
|
|
86
90
|
catch {
|
|
87
91
|
// ignore
|
|
88
92
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
if (targetPort === undefined) {
|
|
97
|
-
const first = await discoverBridge();
|
|
98
|
-
targetPort = first?.port;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
93
|
+
const targetPort = bridge.port;
|
|
94
|
+
const targetPid = describeInfo?.pid ?? allBridges.find(b => b.port === targetPort)?.pid ?? null;
|
|
95
|
+
const ambiguity = !hasExplicitTarget && allBridges.length > 1
|
|
96
|
+
? `Auto-selected PID ${targetPid ?? '?'} on port ${targetPort}. Use --pid <n> to select among ${allBridges.length} bridges.`
|
|
97
|
+
: undefined;
|
|
98
|
+
if (ambiguity)
|
|
99
|
+
console.error(`note: ${ambiguity}`);
|
|
101
100
|
const result = {
|
|
102
101
|
bridges: allBridges,
|
|
103
102
|
target: {
|
|
103
|
+
pid: targetPid, port: targetPort, windowLabel: opts.windowLabel ?? 'main',
|
|
104
|
+
...(ambiguity ? { note: ambiguity } : {}),
|
|
104
105
|
alive,
|
|
105
106
|
version: versionInfo,
|
|
106
107
|
describe: describeInfo,
|
|
@@ -127,6 +128,7 @@ export function registerProbe(program) {
|
|
|
127
128
|
console.log('');
|
|
128
129
|
console.log(`Platform: ${platform}`);
|
|
129
130
|
console.log(`Bridge alive: ${alive ? 'yes' : 'no'}`);
|
|
131
|
+
console.log(`Selected target: PID ${targetPid ?? '?'} port ${targetPort} window ${opts.windowLabel ?? 'main'}`);
|
|
130
132
|
if (versionInfo) {
|
|
131
133
|
console.log(`Bridge version: ${versionInfo.version}`);
|
|
132
134
|
console.log(`Endpoints: ${versionInfo.endpoints.join(', ')}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/commands/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/commands/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AA0BnE,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC7B,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEtB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAqC,EAAE,EAAE;QACzD,iCAAiC;QACjC,MAAM,YAAY,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,GAAG;YACH,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC,CAAC;QAEJ,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QAEvC,MAAM,iBAAiB,GACrB,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC;QAEhF,uDAAuD;QACvD,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,GACR,kFAAkF,CAAC;gBACrF,MAAM,MAAM,GAAgB;oBAC1B,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE;wBACN,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM;wBAC9D,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,IAAI;wBACd,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAChD,IAAI;qBACL;oBACD,QAAQ;iBACT,CAAC;gBAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,UAAU;QACV,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAElC,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAE3C,yCAAyC;QACzC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE7C,2DAA2D;QAC3D,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,IAAI,QAAQ,GAA6C,IAAI,CAAC;QAE9D,IAAI,CAAC;YACH,IAAI,KAAK;gBAAE,GAAG,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,KAAK;gBAAE,KAAK,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,IAAI,KAAK;gBAAE,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC;QAChG,MAAM,SAAS,GAAG,CAAC,iBAAiB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAC3D,CAAC,CAAC,qBAAqB,SAAS,IAAI,GAAG,YAAY,UAAU,mCAAmC,UAAU,CAAC,MAAM,WAAW;YAC5H,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAgB;YAC1B,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE;gBACN,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM;gBACzE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,KAAK;gBACL,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;aAC/B;YACD,QAAQ;SACT,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,IAAI,GAAG,UAAU,UAAU,YAAY,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,CAAC;QAEnH,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;YACzF,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;YACzF,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS;gBACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS;gBACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import {
|
|
2
|
+
import { readRustLogs, newLogCursor } from '../bridge/logReader.js';
|
|
3
|
+
import { monitorFor } from '../util/monitor.js';
|
|
4
|
+
import { addBridgeOptions, resolveBridge, parseEnum, parsePositiveInt } from './shared.js';
|
|
3
5
|
import { RustLogLevelSchema } from '../schemas/bridge.js';
|
|
4
6
|
function matchesLevel(entry, level) {
|
|
5
7
|
if (!level)
|
|
@@ -43,8 +45,8 @@ export function registerRustLogs(program) {
|
|
|
43
45
|
.option('--target <regex>', 'Filter by Rust module path (regex)')
|
|
44
46
|
.option('--source <source>', 'Filter by source: rust, sidecar, all, or sidecar:<name>', 'all')
|
|
45
47
|
.option('--filter <regex>', 'Filter messages by regex pattern')
|
|
46
|
-
.option('--interval <ms>', 'Poll interval in milliseconds',
|
|
47
|
-
.option('--duration <ms>', 'Auto-stop after N milliseconds',
|
|
48
|
+
.option('--interval <ms>', 'Poll interval in milliseconds', parsePositiveInt, 500)
|
|
49
|
+
.option('--duration <ms>', 'Auto-stop after N milliseconds', parsePositiveInt)
|
|
48
50
|
.option('--json', 'Output one JSON object per line');
|
|
49
51
|
addBridgeOptions(cmd);
|
|
50
52
|
cmd.action(async (opts) => {
|
|
@@ -54,51 +56,29 @@ export function registerRustLogs(program) {
|
|
|
54
56
|
const targetRegex = opts.target ? compileRegex(opts.target, 'target') : undefined;
|
|
55
57
|
const filterRegex = opts.filter ? compileRegex(opts.filter, 'filter') : undefined;
|
|
56
58
|
const bridge = await resolveBridge(opts);
|
|
57
|
-
|
|
58
|
-
const onSignal = () => {
|
|
59
|
-
stopped = true;
|
|
60
|
-
};
|
|
61
|
-
process.on('SIGINT', onSignal);
|
|
62
|
-
process.on('SIGTERM', onSignal);
|
|
63
|
-
let timer;
|
|
64
|
-
if (opts.duration) {
|
|
65
|
-
timer = setTimeout(() => {
|
|
66
|
-
stopped = true;
|
|
67
|
-
}, opts.duration);
|
|
68
|
-
}
|
|
59
|
+
const cursor = newLogCursor();
|
|
69
60
|
if (!opts.json) {
|
|
70
61
|
console.error('Monitoring Rust logs... (Ctrl+C to stop)');
|
|
71
62
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
console.log(JSON.stringify(entry));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
console.log(formatLogEntry(entry));
|
|
92
|
-
}
|
|
63
|
+
await monitorFor(opts, async () => {
|
|
64
|
+
const entries = await readRustLogs(bridge, cursor);
|
|
65
|
+
for (const entry of entries) {
|
|
66
|
+
if (!matchesLevel(entry, opts.level))
|
|
67
|
+
continue;
|
|
68
|
+
if (targetRegex && !targetRegex.test(entry.target))
|
|
69
|
+
continue;
|
|
70
|
+
if (!matchesSource(entry, opts.source))
|
|
71
|
+
continue;
|
|
72
|
+
if (filterRegex && !filterRegex.test(entry.message))
|
|
73
|
+
continue;
|
|
74
|
+
if (opts.json) {
|
|
75
|
+
console.log(JSON.stringify(entry));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.log(formatLogEntry(entry));
|
|
93
79
|
}
|
|
94
80
|
}
|
|
95
|
-
}
|
|
96
|
-
finally {
|
|
97
|
-
if (timer)
|
|
98
|
-
clearTimeout(timer);
|
|
99
|
-
process.off('SIGINT', onSignal);
|
|
100
|
-
process.off('SIGTERM', onSignal);
|
|
101
|
-
}
|
|
81
|
+
});
|
|
102
82
|
});
|
|
103
83
|
program.addCommand(cmd);
|
|
104
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rustLogs.js","sourceRoot":"","sources":["../../src/commands/rustLogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"rustLogs.js","sourceRoot":"","sources":["../../src/commands/rustLogs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function registerScreenshot(program: Command, getAdapter:
|
|
2
|
+
import type { AdapterFactory } from '../types.js';
|
|
3
|
+
export declare function registerScreenshot(program: Command, getAdapter: AdapterFactory): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeFile } from 'node:fs/promises';
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { ImageFormatSchema } from '../schemas/commands.js';
|
|
4
|
-
import { addBridgeOptions, resolveBridge, resolveWindowId,
|
|
4
|
+
import { addBridgeOptions, resolveBridge, resolveWindowId, parsePositiveInt } from './shared.js';
|
|
5
5
|
import { computeCropRect, cropImage, resizeImage } from '../util/image.js';
|
|
6
6
|
function autoOutputPath(format) {
|
|
7
7
|
const ts = new Date().toISOString().replace(/[:.]/g, '-');
|
|
@@ -11,11 +11,11 @@ export function registerScreenshot(program, getAdapter) {
|
|
|
11
11
|
const cmd = new Command('screenshot')
|
|
12
12
|
.description('Capture a screenshot of a window or DOM element')
|
|
13
13
|
.option('-s, --selector <css>', 'CSS selector — screenshot just this element (requires bridge)')
|
|
14
|
-
.option('-t, --title <
|
|
14
|
+
.option('-t, --title <pattern>', 'Window title (X11: regex; macOS/Wayland: substring); quote titles with spaces (default: auto-discover from bridge)')
|
|
15
15
|
.option('-w, --window-id <id>', 'Platform window id (from list-windows) — overrides --title')
|
|
16
16
|
.option('-o, --output <path>', 'Output file path (default: auto-named)')
|
|
17
17
|
.option('--format <fmt>', 'Output format: png or jpg', 'png')
|
|
18
|
-
.option('--max-width <number>', 'Resize to max width',
|
|
18
|
+
.option('--max-width <number>', 'Resize to max width', parsePositiveInt)
|
|
19
19
|
.option('--json', 'Output structured JSON metadata')
|
|
20
20
|
.addHelpText('after', `
|
|
21
21
|
Examples:
|
|
@@ -30,7 +30,10 @@ Examples:
|
|
|
30
30
|
throw new Error(`Invalid format: ${opts.format}. Must be one of: ${ImageFormatSchema.options.join(', ')}`);
|
|
31
31
|
}
|
|
32
32
|
const format = formatResult.data;
|
|
33
|
-
|
|
33
|
+
if (!opts.selector && !opts.title && !opts.windowId) {
|
|
34
|
+
throw new Error('Either --selector (with bridge), --title, or --window-id is required');
|
|
35
|
+
}
|
|
36
|
+
const adapter = await getAdapter(opts.selector || opts.maxWidth || format === 'jpg' ? 'image' : 'capture');
|
|
34
37
|
let buffer;
|
|
35
38
|
let windowId;
|
|
36
39
|
if (opts.selector) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/commands/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/commands/screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export interface WindowTargetOpts {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Resolve the platform window id for a window-consuming command.
|
|
30
|
-
* Precedence: --window-id (used verbatim) > --title
|
|
30
|
+
* Precedence: --window-id (used verbatim) > --title pattern > bridge document.title.
|
|
31
31
|
*
|
|
32
32
|
* The id is not validated here: its format is adapter-specific (X11/macOS/Sway
|
|
33
33
|
* numeric, Hyprland hex 0x…), and the adapters that interpolate ids into shell
|
|
@@ -45,6 +45,9 @@ export declare function parseEnum<T extends [string, ...string[]]>(schema: z.Zod
|
|
|
45
45
|
* default becomes the radix — `--depth 12` with default 3 parsed as 5.
|
|
46
46
|
*/
|
|
47
47
|
export declare function parseIntArg(value: string): number;
|
|
48
|
+
export declare function parseNonNegativeInt(value: string): number;
|
|
49
|
+
export declare function parsePositiveInt(value: string): number;
|
|
50
|
+
export declare function parsePercent(value: string): number;
|
|
48
51
|
export declare function addBridgeOptions(cmd: Command): Command;
|
|
49
52
|
/**
|
|
50
53
|
* Non-throwing gate for a v0.7+ bridge endpoint. Returns true when the caller
|
package/dist/commands/shared.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { BridgeClient } from '../bridge/client.js';
|
|
2
2
|
import { discoverBridge, discoverBridgesByPid } from '../bridge/tokenDiscovery.js';
|
|
3
|
+
import { CliError } from '../errors.js';
|
|
3
4
|
/**
|
|
4
5
|
* Resolve the platform window id for a window-consuming command.
|
|
5
|
-
* Precedence: --window-id (used verbatim) > --title
|
|
6
|
+
* Precedence: --window-id (used verbatim) > --title pattern > bridge document.title.
|
|
6
7
|
*
|
|
7
8
|
* The id is not validated here: its format is adapter-specific (X11/macOS/Sway
|
|
8
9
|
* numeric, Hyprland hex 0x…), and the adapters that interpolate ids into shell
|
|
@@ -36,13 +37,42 @@ export function parseEnum(schema, value, label) {
|
|
|
36
37
|
* default becomes the radix — `--depth 12` with default 3 parsed as 5.
|
|
37
38
|
*/
|
|
38
39
|
export function parseIntArg(value) {
|
|
39
|
-
|
|
40
|
+
const n = Number(value);
|
|
41
|
+
if (!/^[+-]?\d+$/.test(value) || !Number.isSafeInteger(n)) {
|
|
42
|
+
throw new CliError('INVALID_ARGUMENT', `Expected an integer, got: ${value}`, 'Use a whole number without units or trailing text.');
|
|
43
|
+
}
|
|
44
|
+
return n;
|
|
45
|
+
}
|
|
46
|
+
export function parseNonNegativeInt(value) {
|
|
47
|
+
const n = parseIntArg(value);
|
|
48
|
+
if (n < 0)
|
|
49
|
+
throw new CliError('INVALID_ARGUMENT', `Expected a non-negative integer, got: ${value}`, 'Use zero or a positive whole number.');
|
|
50
|
+
return n;
|
|
51
|
+
}
|
|
52
|
+
export function parsePositiveInt(value) {
|
|
53
|
+
const n = parseIntArg(value);
|
|
54
|
+
if (n <= 0 || n > 2_147_483_647)
|
|
55
|
+
throw new CliError('INVALID_ARGUMENT', `Expected a positive integer up to 2147483647, got: ${value}`, 'Use a positive whole number.');
|
|
56
|
+
return n;
|
|
57
|
+
}
|
|
58
|
+
function parsePort(value) {
|
|
59
|
+
const n = parsePositiveInt(value);
|
|
60
|
+
if (n > 65535)
|
|
61
|
+
throw new CliError('INVALID_ARGUMENT', `Invalid port: ${value}`, 'Use a port from 1 to 65535.');
|
|
62
|
+
return n;
|
|
63
|
+
}
|
|
64
|
+
export function parsePercent(value) {
|
|
65
|
+
const n = Number(value);
|
|
66
|
+
if (value.trim() === '' || !Number.isFinite(n) || n < 0 || n > 100) {
|
|
67
|
+
throw new CliError('INVALID_ARGUMENT', `Invalid percentage: ${value}`, 'Use a number from 0 to 100.');
|
|
68
|
+
}
|
|
69
|
+
return n;
|
|
40
70
|
}
|
|
41
71
|
export function addBridgeOptions(cmd) {
|
|
42
72
|
return cmd
|
|
43
|
-
.option('--port <number>', 'Bridge port (auto-discover if omitted)',
|
|
73
|
+
.option('--port <number>', 'Bridge port (auto-discover if omitted)', parsePort)
|
|
44
74
|
.option('--token <string>', 'Bridge token (auto-discover if omitted)')
|
|
45
|
-
.option('--pid <number>', 'Target app PID (auto-discover if omitted)',
|
|
75
|
+
.option('--pid <number>', 'Target app PID (auto-discover if omitted)', parsePositiveInt)
|
|
46
76
|
.option('--window-label <label>', 'Target window label (default: main)')
|
|
47
77
|
.option('--strict', 'Fail (instead of degrading) when the bridge lacks a required v0.7+ endpoint');
|
|
48
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
|