tauri-agent-tools 0.9.1 → 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 +32 -13
- 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 +35 -14
- 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/interact/select.d.ts +6 -1
- package/dist/commands/interact/select.js +87 -29
- package/dist/commands/interact/select.js.map +1 -1
- package/dist/commands/interact/shared.d.ts +96 -0
- package/dist/commands/interact/shared.js +266 -1
- package/dist/commands/interact/shared.js.map +1 -1
- package/dist/commands/interact/type.d.ts +10 -2
- package/dist/commands/interact/type.js +44 -29
- package/dist/commands/interact/type.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/schemas/interact.d.ts +58 -0
- package/dist/schemas/interact.js +25 -0
- package/dist/schemas/interact.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 +10 -3
- package/rust-bridge/README.md +7 -1
package/dist/errors.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class CliError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
hint;
|
|
4
|
+
constructor(code, message, hint) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.code = code;
|
|
7
|
+
this.hint = hint;
|
|
8
|
+
this.name = 'CliError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function errorDetail(error) {
|
|
12
|
+
if (error instanceof CliError)
|
|
13
|
+
return { code: error.code, message: error.message, hint: error.hint };
|
|
14
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
15
|
+
if (/authenticat|Unauthorized/i.test(message)) {
|
|
16
|
+
return { code: 'AUTH_FAILED', message, hint: 'Check the target --port and --token, or rediscover it with probe.' };
|
|
17
|
+
}
|
|
18
|
+
if (/timeout|timed out/i.test(message)) {
|
|
19
|
+
return { code: 'TIMEOUT', message, hint: 'Check app responsiveness with probe and verify the requested timeout.' };
|
|
20
|
+
}
|
|
21
|
+
if (/No bridge|fetch failed|ECONNREFUSED/i.test(message)) {
|
|
22
|
+
return { code: 'BRIDGE_UNAVAILABLE', message, hint: 'Run probe and select the running dev app with --pid.' };
|
|
23
|
+
}
|
|
24
|
+
return { code: 'COMMAND_FAILED', message, hint: 'Run this command with --help to check its arguments and prerequisites.' };
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IAEA;IAHlB,YACkB,IAAY,EAC5B,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAQ;QAEZ,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACrG,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC;IACrH,CAAC;IACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,uEAAuE,EAAE,CAAC;IACrH,CAAC;IACD,IAAI,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,sDAAsD,EAAE,CAAC;IAC/G,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,wEAAwE,EAAE,CAAC;AAC7H,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DisplayServer } from '../types.js';
|
|
1
|
+
import type { DisplayServer, AdapterOperation } from '../types.js';
|
|
2
2
|
export declare function detectDisplayServer(): DisplayServer;
|
|
3
3
|
export interface ToolCheck {
|
|
4
4
|
name: string;
|
|
@@ -9,4 +9,4 @@ export declare function checkX11Tools(): Promise<ToolCheck[]>;
|
|
|
9
9
|
export declare function checkSwayTools(): Promise<ToolCheck[]>;
|
|
10
10
|
export declare function checkHyprlandTools(): Promise<ToolCheck[]>;
|
|
11
11
|
export declare function checkMacOSTools(): Promise<ToolCheck[]>;
|
|
12
|
-
export declare function ensureTools(displayServer: DisplayServer): Promise<void>;
|
|
12
|
+
export declare function ensureTools(displayServer: DisplayServer, operation?: AdapterOperation): Promise<void>;
|
package/dist/platform/detect.js
CHANGED
|
@@ -95,8 +95,17 @@ export async function checkMacOSTools() {
|
|
|
95
95
|
]);
|
|
96
96
|
return [screencapture, osascript, sips, magick];
|
|
97
97
|
}
|
|
98
|
-
export async function ensureTools(displayServer) {
|
|
98
|
+
export async function ensureTools(displayServer, operation = 'image') {
|
|
99
99
|
let checks;
|
|
100
|
+
if (operation === 'inspect') {
|
|
101
|
+
const name = displayServer === 'darwin' ? 'osascript'
|
|
102
|
+
: displayServer === 'x11' ? 'xdotool'
|
|
103
|
+
: displayServer === 'wayland-hyprland' ? 'hyprctl' : 'swaymsg';
|
|
104
|
+
if (!(await commandExists(name))) {
|
|
105
|
+
throw new Error(`Missing required tool: ${name}. Install the window-inspection tool for your display server.`);
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
100
109
|
if (displayServer === 'darwin') {
|
|
101
110
|
checks = await checkMacOSTools();
|
|
102
111
|
}
|
|
@@ -113,7 +122,7 @@ export async function ensureTools(displayServer) {
|
|
|
113
122
|
else {
|
|
114
123
|
checks = await checkX11Tools();
|
|
115
124
|
}
|
|
116
|
-
const missing = checks.filter(
|
|
125
|
+
const missing = checks.filter(t => !t.available && (operation === 'image' || displayServer === 'x11' || t.name !== 'magick (ImageMagick)'));
|
|
117
126
|
if (missing.length > 0) {
|
|
118
127
|
const hints = missing.map((t) => ` ${t.name}: ${t.installHint}`).join('\n');
|
|
119
128
|
throw new Error(`Missing required tools:\n${hints}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/platform/detect.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/platform/detect.ts"],"names":[],"mappings":"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"}
|
package/dist/platform/x11.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PlatformAdapter, WindowInfo } from '../types.js';
|
|
2
2
|
import type { ImageFormat } from '../schemas/commands.js';
|
|
3
3
|
export declare class X11Adapter implements PlatformAdapter {
|
|
4
|
+
private searchWindows;
|
|
4
5
|
findWindow(title: string): Promise<string>;
|
|
5
6
|
captureWindow(windowId: string, format: ImageFormat): Promise<Buffer>;
|
|
6
7
|
getWindowGeometry(windowId: string): Promise<WindowInfo>;
|
package/dist/platform/x11.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { exec, validateWindowId } from '../util/exec.js';
|
|
1
|
+
import { exec, ExecError, validateWindowId } from '../util/exec.js';
|
|
2
2
|
import { magickCommand } from '../util/magick.js';
|
|
3
3
|
function parseShellVar(output, key, fallback) {
|
|
4
4
|
const match = output.match(new RegExp(`${key}=(\\d+)`));
|
|
@@ -10,9 +10,21 @@ function parseShellVar(output, key, fallback) {
|
|
|
10
10
|
return parseInt(match[1], 10);
|
|
11
11
|
}
|
|
12
12
|
export class X11Adapter {
|
|
13
|
+
async searchWindows(title) {
|
|
14
|
+
try {
|
|
15
|
+
const { stdout } = await exec('xdotool', ['search', '--name', title]);
|
|
16
|
+
return stdout.toString().trim().split('\n').filter(Boolean);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
// xdotool returns 1 with no stderr when a search has no matches.
|
|
20
|
+
// Display, syntax, and missing-command errors must remain actionable.
|
|
21
|
+
if (error instanceof ExecError && error.code === 1 && error.stderr.trim() === '')
|
|
22
|
+
return [];
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
13
26
|
async findWindow(title) {
|
|
14
|
-
const
|
|
15
|
-
const ids = stdout.toString().trim().split('\n').filter(Boolean);
|
|
27
|
+
const ids = await this.searchWindows(title);
|
|
16
28
|
if (ids.length === 0) {
|
|
17
29
|
throw new Error(`No window found matching: ${title}`);
|
|
18
30
|
}
|
|
@@ -43,8 +55,7 @@ export class X11Adapter {
|
|
|
43
55
|
return stdout.toString().trim();
|
|
44
56
|
}
|
|
45
57
|
async listWindows() {
|
|
46
|
-
const
|
|
47
|
-
const ids = stdout.toString().trim().split('\n').filter(Boolean);
|
|
58
|
+
const ids = await this.searchWindows('');
|
|
48
59
|
const windows = [];
|
|
49
60
|
for (const id of ids) {
|
|
50
61
|
try {
|
package/dist/platform/x11.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x11.js","sourceRoot":"","sources":["../../src/platform/x11.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"x11.js","sourceRoot":"","sources":["../../src/platform/x11.ts"],"names":[],"mappings":"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"}
|
|
@@ -250,6 +250,8 @@ export declare const CaptureManifestSchema: z.ZodObject<{
|
|
|
250
250
|
height: number;
|
|
251
251
|
}>>;
|
|
252
252
|
errorCount: z.ZodOptional<z.ZodNumber>;
|
|
253
|
+
partial: z.ZodOptional<z.ZodBoolean>;
|
|
254
|
+
warnings: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
253
255
|
files: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
254
256
|
}, "strip", z.ZodTypeAny, {
|
|
255
257
|
timestamp: string;
|
|
@@ -261,6 +263,8 @@ export declare const CaptureManifestSchema: z.ZodObject<{
|
|
|
261
263
|
height: number;
|
|
262
264
|
} | undefined;
|
|
263
265
|
errorCount?: number | undefined;
|
|
266
|
+
partial?: boolean | undefined;
|
|
267
|
+
warnings?: string[] | undefined;
|
|
264
268
|
}, {
|
|
265
269
|
timestamp: string;
|
|
266
270
|
files: Record<string, string>;
|
|
@@ -271,6 +275,8 @@ export declare const CaptureManifestSchema: z.ZodObject<{
|
|
|
271
275
|
height: number;
|
|
272
276
|
} | undefined;
|
|
273
277
|
errorCount?: number | undefined;
|
|
278
|
+
partial?: boolean | undefined;
|
|
279
|
+
warnings?: string[] | undefined;
|
|
274
280
|
}>;
|
|
275
281
|
export type CaptureManifest = z.infer<typeof CaptureManifestSchema>;
|
|
276
282
|
export declare const PackageJsonSchema: z.ZodObject<{
|
package/dist/schemas/commands.js
CHANGED
|
@@ -65,6 +65,8 @@ export const CaptureManifestSchema = z.object({
|
|
|
65
65
|
title: z.string().optional(),
|
|
66
66
|
viewport: z.object({ width: z.number(), height: z.number() }).optional(),
|
|
67
67
|
errorCount: z.number().optional(),
|
|
68
|
+
partial: z.boolean().optional(),
|
|
69
|
+
warnings: z.array(z.string()).optional(),
|
|
68
70
|
files: z.record(z.string(), z.string()),
|
|
69
71
|
});
|
|
70
72
|
// === CLI: package.json ===
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/schemas/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/schemas/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,25 +37,56 @@ export declare const ClickResultSchema: z.ZodObject<{
|
|
|
37
37
|
tagName?: string | undefined;
|
|
38
38
|
}>;
|
|
39
39
|
export type ClickResult = z.infer<typeof ClickResultSchema>;
|
|
40
|
+
/**
|
|
41
|
+
* Outcome of the post-write re-read performed by `type` and `select`:
|
|
42
|
+
* - `matched`: the element still reports the value the setter applied.
|
|
43
|
+
* - `transformed`: the app replaced it with a different value (mask, formatter) — a soft success.
|
|
44
|
+
* - `reverted`: the element reads its pre-write value again — the app rejected the write (failure).
|
|
45
|
+
*/
|
|
46
|
+
export declare const WriteVerificationSchema: z.ZodEnum<["matched", "transformed", "reverted"]>;
|
|
47
|
+
export type WriteVerification = z.infer<typeof WriteVerificationSchema>;
|
|
40
48
|
export declare const TypeResultSchema: z.ZodObject<{
|
|
41
49
|
success: z.ZodBoolean;
|
|
42
50
|
selector: z.ZodOptional<z.ZodString>;
|
|
43
51
|
tagName: z.ZodOptional<z.ZodString>;
|
|
44
52
|
error: z.ZodOptional<z.ZodString>;
|
|
45
53
|
} & {
|
|
54
|
+
/** The value as requested on the command line. */
|
|
55
|
+
requestedValue: z.ZodOptional<z.ZodString>;
|
|
56
|
+
/** `el.value` before the write. */
|
|
57
|
+
previousValue: z.ZodOptional<z.ZodString>;
|
|
58
|
+
/** True when the re-read equals the value the setter applied. */
|
|
59
|
+
verified: z.ZodOptional<z.ZodBoolean>;
|
|
60
|
+
verification: z.ZodOptional<z.ZodEnum<["matched", "transformed", "reverted"]>>;
|
|
61
|
+
/** Available `<option>` values when a `<select>` had no match. */
|
|
62
|
+
options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
63
|
+
/** Actionable guidance accompanying a failure. */
|
|
64
|
+
hint: z.ZodOptional<z.ZodString>;
|
|
46
65
|
value: z.ZodOptional<z.ZodString>;
|
|
47
66
|
}, "strip", z.ZodTypeAny, {
|
|
48
67
|
success: boolean;
|
|
49
68
|
value?: string | undefined;
|
|
69
|
+
options?: string[] | undefined;
|
|
50
70
|
error?: string | undefined;
|
|
51
71
|
selector?: string | undefined;
|
|
72
|
+
hint?: string | undefined;
|
|
52
73
|
tagName?: string | undefined;
|
|
74
|
+
requestedValue?: string | undefined;
|
|
75
|
+
previousValue?: string | undefined;
|
|
76
|
+
verified?: boolean | undefined;
|
|
77
|
+
verification?: "matched" | "transformed" | "reverted" | undefined;
|
|
53
78
|
}, {
|
|
54
79
|
success: boolean;
|
|
55
80
|
value?: string | undefined;
|
|
81
|
+
options?: string[] | undefined;
|
|
56
82
|
error?: string | undefined;
|
|
57
83
|
selector?: string | undefined;
|
|
84
|
+
hint?: string | undefined;
|
|
58
85
|
tagName?: string | undefined;
|
|
86
|
+
requestedValue?: string | undefined;
|
|
87
|
+
previousValue?: string | undefined;
|
|
88
|
+
verified?: boolean | undefined;
|
|
89
|
+
verification?: "matched" | "transformed" | "reverted" | undefined;
|
|
59
90
|
}>;
|
|
60
91
|
export type TypeResult = z.infer<typeof TypeResultSchema>;
|
|
61
92
|
export declare const ScrollResultSchema: z.ZodObject<{
|
|
@@ -81,22 +112,49 @@ export declare const SelectResultSchema: z.ZodObject<{
|
|
|
81
112
|
tagName: z.ZodOptional<z.ZodString>;
|
|
82
113
|
error: z.ZodOptional<z.ZodString>;
|
|
83
114
|
} & {
|
|
115
|
+
/** The value as requested on the command line. */
|
|
116
|
+
requestedValue: z.ZodOptional<z.ZodString>;
|
|
117
|
+
/** `el.value` before the write. */
|
|
118
|
+
previousValue: z.ZodOptional<z.ZodString>;
|
|
119
|
+
/** True when the re-read equals the value the setter applied. */
|
|
120
|
+
verified: z.ZodOptional<z.ZodBoolean>;
|
|
121
|
+
verification: z.ZodOptional<z.ZodEnum<["matched", "transformed", "reverted"]>>;
|
|
122
|
+
/** Available `<option>` values when a `<select>` had no match. */
|
|
123
|
+
options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
124
|
+
/** Actionable guidance accompanying a failure. */
|
|
125
|
+
hint: z.ZodOptional<z.ZodString>;
|
|
84
126
|
value: z.ZodOptional<z.ZodString>;
|
|
85
127
|
checked: z.ZodOptional<z.ZodBoolean>;
|
|
128
|
+
/** `checked` before a `--toggle`. */
|
|
129
|
+
previousChecked: z.ZodOptional<z.ZodBoolean>;
|
|
86
130
|
}, "strip", z.ZodTypeAny, {
|
|
87
131
|
success: boolean;
|
|
88
132
|
value?: string | undefined;
|
|
133
|
+
options?: string[] | undefined;
|
|
89
134
|
error?: string | undefined;
|
|
90
135
|
selector?: string | undefined;
|
|
136
|
+
hint?: string | undefined;
|
|
91
137
|
tagName?: string | undefined;
|
|
138
|
+
requestedValue?: string | undefined;
|
|
139
|
+
previousValue?: string | undefined;
|
|
140
|
+
verified?: boolean | undefined;
|
|
141
|
+
verification?: "matched" | "transformed" | "reverted" | undefined;
|
|
92
142
|
checked?: boolean | undefined;
|
|
143
|
+
previousChecked?: boolean | undefined;
|
|
93
144
|
}, {
|
|
94
145
|
success: boolean;
|
|
95
146
|
value?: string | undefined;
|
|
147
|
+
options?: string[] | undefined;
|
|
96
148
|
error?: string | undefined;
|
|
97
149
|
selector?: string | undefined;
|
|
150
|
+
hint?: string | undefined;
|
|
98
151
|
tagName?: string | undefined;
|
|
152
|
+
requestedValue?: string | undefined;
|
|
153
|
+
previousValue?: string | undefined;
|
|
154
|
+
verified?: boolean | undefined;
|
|
155
|
+
verification?: "matched" | "transformed" | "reverted" | undefined;
|
|
99
156
|
checked?: boolean | undefined;
|
|
157
|
+
previousChecked?: boolean | undefined;
|
|
100
158
|
}>;
|
|
101
159
|
export type SelectResult = z.infer<typeof SelectResultSchema>;
|
|
102
160
|
export declare const InvokeResultSchema: z.ZodObject<{
|
package/dist/schemas/interact.js
CHANGED
|
@@ -9,8 +9,30 @@ export const InteractionResultSchema = z.object({
|
|
|
9
9
|
export const ClickResultSchema = InteractionResultSchema.extend({
|
|
10
10
|
text: z.string().optional(),
|
|
11
11
|
});
|
|
12
|
+
/**
|
|
13
|
+
* Outcome of the post-write re-read performed by `type` and `select`:
|
|
14
|
+
* - `matched`: the element still reports the value the setter applied.
|
|
15
|
+
* - `transformed`: the app replaced it with a different value (mask, formatter) — a soft success.
|
|
16
|
+
* - `reverted`: the element reads its pre-write value again — the app rejected the write (failure).
|
|
17
|
+
*/
|
|
18
|
+
export const WriteVerificationSchema = z.enum(['matched', 'transformed', 'reverted']);
|
|
19
|
+
/** Optional-only fields shared by the value-writing commands. */
|
|
20
|
+
const WriteResultFields = {
|
|
21
|
+
/** The value as requested on the command line. */
|
|
22
|
+
requestedValue: z.string().optional(),
|
|
23
|
+
/** `el.value` before the write. */
|
|
24
|
+
previousValue: z.string().optional(),
|
|
25
|
+
/** True when the re-read equals the value the setter applied. */
|
|
26
|
+
verified: z.boolean().optional(),
|
|
27
|
+
verification: WriteVerificationSchema.optional(),
|
|
28
|
+
/** Available `<option>` values when a `<select>` had no match. */
|
|
29
|
+
options: z.array(z.string()).optional(),
|
|
30
|
+
/** Actionable guidance accompanying a failure. */
|
|
31
|
+
hint: z.string().optional(),
|
|
32
|
+
};
|
|
12
33
|
export const TypeResultSchema = InteractionResultSchema.extend({
|
|
13
34
|
value: z.string().optional(),
|
|
35
|
+
...WriteResultFields,
|
|
14
36
|
});
|
|
15
37
|
export const ScrollResultSchema = z.object({
|
|
16
38
|
success: z.boolean(),
|
|
@@ -21,6 +43,9 @@ export const ScrollResultSchema = z.object({
|
|
|
21
43
|
export const SelectResultSchema = InteractionResultSchema.extend({
|
|
22
44
|
value: z.string().optional(),
|
|
23
45
|
checked: z.boolean().optional(),
|
|
46
|
+
/** `checked` before a `--toggle`. */
|
|
47
|
+
previousChecked: z.boolean().optional(),
|
|
48
|
+
...WriteResultFields,
|
|
24
49
|
});
|
|
25
50
|
export const InvokeResultSchema = z.object({
|
|
26
51
|
success: z.boolean(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interact.js","sourceRoot":"","sources":["../../src/schemas/interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8BAA8B;AAE9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"interact.js","sourceRoot":"","sources":["../../src/schemas/interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8BAA8B;AAE9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAGH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;AAGtF,iEAAiE;AACjE,MAAM,iBAAiB,GAAG;IACxB,kDAAkD;IAClD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,mCAAmC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iEAAiE;IACjE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAChD,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,kDAAkD;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,GAAG,iBAAiB;CACrB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,qCAAqC;IACrC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,GAAG,iBAAiB;CACrB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -21,3 +21,5 @@ export interface WindowListEntry extends WindowInfo {
|
|
|
21
21
|
tauri: boolean;
|
|
22
22
|
bridge?: BridgeConfig;
|
|
23
23
|
}
|
|
24
|
+
export type AdapterOperation = 'inspect' | 'capture' | 'image';
|
|
25
|
+
export type AdapterFactory = (operation?: AdapterOperation) => PlatformAdapter | Promise<PlatformAdapter>;
|
package/dist/util/exec.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ export interface ExecResult {
|
|
|
3
3
|
stdout: Buffer;
|
|
4
4
|
stderr: string;
|
|
5
5
|
}
|
|
6
|
+
export declare class ExecError extends Error {
|
|
7
|
+
readonly code: number | string | null | undefined;
|
|
8
|
+
readonly stdout: Buffer;
|
|
9
|
+
readonly stderr: string;
|
|
10
|
+
constructor(message: string, code: number | string | null | undefined, stdout: Buffer, stderr: string);
|
|
11
|
+
}
|
|
6
12
|
export declare function exec(cmd: string, args: string[], options?: {
|
|
7
13
|
stdin?: Buffer;
|
|
8
14
|
timeout?: number;
|
package/dist/util/exec.js
CHANGED
|
@@ -4,6 +4,18 @@ const MAX_BUFFER = 100 * 1024 * 1024; // 100MB
|
|
|
4
4
|
export function validateWindowId(id) {
|
|
5
5
|
WindowIdSchema.parse(id);
|
|
6
6
|
}
|
|
7
|
+
export class ExecError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
stdout;
|
|
10
|
+
stderr;
|
|
11
|
+
constructor(message, code, stdout, stderr) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.stdout = stdout;
|
|
15
|
+
this.stderr = stderr;
|
|
16
|
+
this.name = 'ExecError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
7
19
|
export function exec(cmd, args, options) {
|
|
8
20
|
return new Promise((resolve, reject) => {
|
|
9
21
|
const child = cpExecFile(cmd, args, {
|
|
@@ -13,7 +25,7 @@ export function exec(cmd, args, options) {
|
|
|
13
25
|
}, (error, stdout, stderr) => {
|
|
14
26
|
if (error) {
|
|
15
27
|
const stderrStr = Buffer.isBuffer(stderr) ? stderr.toString() : String(stderr ?? '');
|
|
16
|
-
reject(new
|
|
28
|
+
reject(new ExecError(`${cmd} failed: ${stderrStr || error.message}`, error.code, Buffer.isBuffer(stdout) ? stdout : Buffer.from(stdout ?? ''), stderrStr));
|
|
17
29
|
return;
|
|
18
30
|
}
|
|
19
31
|
resolve({
|
package/dist/util/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/util/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAE9C,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAOD,MAAM,UAAU,IAAI,CAClB,GAAW,EACX,IAAc,EACd,OAA8C;IAE9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EACH,IAAI,EACJ;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACrF,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/util/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAE9C,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAOD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IACA;IACA;IAJlB,YACE,OAAe,EACC,IAAwC,EACxC,MAAc,EACd,MAAc;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAoC;QACxC,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QAG9B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAClB,GAAW,EACX,IAAc,EACd,OAA8C;IAE9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EACH,IAAI,EACJ;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACrF,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,GAAG,YAAY,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,EAC7E,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YACD,OAAO,CAAC;gBACN,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAA2B,CAAC;gBACnF,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;aAC3E,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function artifactFiles(root: string, prefix?: string): Promise<string[]>;
|
|
2
|
+
/** Preflight every generated destination before replacing any files. */
|
|
3
|
+
export declare function publishArtifacts(source: string, destination: string): Promise<void>;
|
|
4
|
+
/** Rename a newly copied file instead of following links or truncating hardlinks. */
|
|
5
|
+
export declare function publishFile(source: string, destination: string): Promise<void>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { copyFile, lstat, mkdir, mkdtemp, readdir, rename, rm } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
export async function artifactFiles(root, prefix = '') {
|
|
4
|
+
const files = [];
|
|
5
|
+
for (const entry of await readdir(join(root, prefix), { withFileTypes: true })) {
|
|
6
|
+
const path = join(prefix, entry.name);
|
|
7
|
+
if (entry.isSymbolicLink())
|
|
8
|
+
throw new Error(`Refusing artifact symlink: ${path}`);
|
|
9
|
+
if (entry.isDirectory())
|
|
10
|
+
files.push(...await artifactFiles(root, path));
|
|
11
|
+
else if (entry.isFile())
|
|
12
|
+
files.push(path);
|
|
13
|
+
else
|
|
14
|
+
throw new Error(`Not a regular artifact: ${path}`);
|
|
15
|
+
}
|
|
16
|
+
return files.sort();
|
|
17
|
+
}
|
|
18
|
+
async function checkDestination(path, directory) {
|
|
19
|
+
const st = await lstat(path).catch((error) => {
|
|
20
|
+
if (error.code === 'ENOENT')
|
|
21
|
+
return null;
|
|
22
|
+
throw error;
|
|
23
|
+
});
|
|
24
|
+
if (st && (st.isSymbolicLink() || (directory ? !st.isDirectory() : !st.isFile()))) {
|
|
25
|
+
throw new Error(`Refusing incompatible or symlink output path: ${path}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** Preflight every generated destination before replacing any files. */
|
|
29
|
+
export async function publishArtifacts(source, destination) {
|
|
30
|
+
const root = resolve(destination);
|
|
31
|
+
const files = await artifactFiles(source);
|
|
32
|
+
const dirs = new Set([root]);
|
|
33
|
+
for (const file of files) {
|
|
34
|
+
let dir = dirname(join(root, file));
|
|
35
|
+
while (dir !== root) {
|
|
36
|
+
dirs.add(dir);
|
|
37
|
+
dir = dirname(dir);
|
|
38
|
+
}
|
|
39
|
+
await checkDestination(join(root, file), false);
|
|
40
|
+
}
|
|
41
|
+
for (const dir of dirs)
|
|
42
|
+
await checkDestination(dir, true);
|
|
43
|
+
for (const dir of [...dirs].sort((a, b) => a.length - b.length))
|
|
44
|
+
await mkdir(dir, { recursive: true });
|
|
45
|
+
for (const file of files)
|
|
46
|
+
await publishFile(join(source, file), join(root, file));
|
|
47
|
+
}
|
|
48
|
+
/** Rename a newly copied file instead of following links or truncating hardlinks. */
|
|
49
|
+
export async function publishFile(source, destination) {
|
|
50
|
+
await checkDestination(destination, false);
|
|
51
|
+
const temporary = await mkdtemp(join(dirname(destination), '.tauri-publish-'));
|
|
52
|
+
try {
|
|
53
|
+
const staged = join(temporary, 'artifact');
|
|
54
|
+
await copyFile(source, staged);
|
|
55
|
+
await rename(staged, destination);
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
await rm(temporary, { recursive: true, force: true });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=incidentFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incidentFiles.js","sourceRoot":"","sources":["../../src/util/incidentFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Own signal handlers for the entire collector, including setup and cleanup. */
|
|
2
|
+
export declare function createSignalScope(): {
|
|
3
|
+
signal: AbortSignal;
|
|
4
|
+
dispose: () => void;
|
|
5
|
+
};
|
|
6
|
+
/** Signal-aware polling with a final sample, including durations below interval. */
|
|
7
|
+
export declare function monitorFor(opts: {
|
|
8
|
+
interval: number;
|
|
9
|
+
duration?: number;
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
}, sample: () => Promise<void>): Promise<'completed' | 'interrupted'>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Own signal handlers for the entire collector, including setup and cleanup. */
|
|
2
|
+
export function createSignalScope() {
|
|
3
|
+
const controller = new AbortController();
|
|
4
|
+
const interrupt = () => controller.abort('SIGINT');
|
|
5
|
+
const terminate = () => controller.abort('SIGTERM');
|
|
6
|
+
process.on('SIGINT', interrupt);
|
|
7
|
+
process.on('SIGTERM', terminate);
|
|
8
|
+
return {
|
|
9
|
+
signal: controller.signal,
|
|
10
|
+
dispose: () => {
|
|
11
|
+
process.off('SIGINT', interrupt);
|
|
12
|
+
process.off('SIGTERM', terminate);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Signal-aware polling with a final sample, including durations below interval. */
|
|
17
|
+
export async function monitorFor(opts, sample) {
|
|
18
|
+
const deadline = opts.duration === undefined ? Infinity : Date.now() + opts.duration;
|
|
19
|
+
const ownedScope = opts.signal ? undefined : createSignalScope();
|
|
20
|
+
const signal = opts.signal ?? ownedScope.signal;
|
|
21
|
+
try {
|
|
22
|
+
do {
|
|
23
|
+
if (!signal.aborted) {
|
|
24
|
+
await new Promise(resolve => {
|
|
25
|
+
const finish = () => {
|
|
26
|
+
clearTimeout(timer);
|
|
27
|
+
signal.removeEventListener('abort', finish);
|
|
28
|
+
resolve();
|
|
29
|
+
};
|
|
30
|
+
const timer = setTimeout(finish, Math.max(0, Math.min(opts.interval, deadline - Date.now())));
|
|
31
|
+
signal.addEventListener('abort', finish, { once: true });
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
await sample();
|
|
35
|
+
} while (!signal.aborted && Date.now() < deadline);
|
|
36
|
+
return signal.aborted ? 'interrupted' : 'completed';
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
ownedScope?.dispose();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/util/monitor.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAmE,EACnE,MAA2B;IAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAW,CAAC,MAAM,CAAC;IACjD,IAAI,CAAC;QACH,GAAG,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;oBAChC,MAAM,MAAM,GAAG,GAAS,EAAE;wBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC5C,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;oBACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC9F,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,EAAE,CAAC;QACjB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;QACnD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,OAAO,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CliError } from '../errors.js';
|
|
2
|
+
/** Each request and sleep consumes the same overall time budget. */
|
|
3
|
+
export async function pollUntil(attempt, timeoutMs, intervalMs, message) {
|
|
4
|
+
const deadline = Date.now() + timeoutMs;
|
|
5
|
+
while (Date.now() < deadline) {
|
|
6
|
+
const remaining = Math.max(1, deadline - Date.now());
|
|
7
|
+
let timer;
|
|
8
|
+
try {
|
|
9
|
+
const result = await Promise.race([
|
|
10
|
+
attempt(remaining),
|
|
11
|
+
new Promise((_, reject) => {
|
|
12
|
+
timer = setTimeout(() => reject(new CliError('TIMEOUT', message, 'Check the target and its readiness.')), remaining);
|
|
13
|
+
}),
|
|
14
|
+
]);
|
|
15
|
+
if (result !== null)
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
finally {
|
|
19
|
+
if (timer)
|
|
20
|
+
clearTimeout(timer);
|
|
21
|
+
}
|
|
22
|
+
const sleep = Math.min(intervalMs, deadline - Date.now());
|
|
23
|
+
if (sleep > 0)
|
|
24
|
+
await new Promise(resolve => setTimeout(resolve, sleep));
|
|
25
|
+
}
|
|
26
|
+
throw new CliError('TIMEOUT', message, 'Check the target and its readiness.');
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=poll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/util/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAmD,EACnD,SAAiB,EACjB,UAAkB,EAClB,OAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,KAAgD,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,OAAO,CAAC,SAAS,CAAC;gBAClB,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,qCAAqC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACvH,CAAC,CAAC;aACH,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,qCAAqC,CAAC,CAAC;AAChF,CAAC"}
|