@swmansion/argent 0.32.1-next.9 → 0.33.0
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 +1 -1
- package/assets/manifest.json +2 -2
- package/bin/argent-android-devtools-0.4.0.apk +0 -0
- package/bin/darwin/argent-macos-helper +0 -0
- package/bin/darwin/ax-service +0 -0
- package/bin/darwin/tvos-ax-service +0 -0
- package/bin/darwin/tvos-hid-daemon +0 -0
- package/bin/network-inspector/network-inspector.jar +0 -0
- package/bin/tcp/ax-service +0 -0
- package/dist/cli-cmds.mjs +530 -438
- package/dist/client.d.ts +5 -0
- package/dist/client.js +60 -9
- package/dist/installer.mjs +372 -202
- package/dist/mcp-server.mjs +156 -20
- package/dist/tool-args.generated.d.ts +87 -51
- package/dist/tool-server.cjs +40742 -36285
- package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/libKeyboardPatch.dylib +0 -0
- package/dylibs/libNativeDevtoolsIos.dylib +0 -0
- package/dylibs/macos/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/macos/libNativeDevtoolsMacos.dylib +0 -0
- package/dylibs/tcp/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/tcp/libKeyboardPatch.dylib +0 -0
- package/dylibs/tcp/libNativeDevtoolsIos.dylib +0 -0
- package/dylibs/tvos/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/tvos/libKeyboardPatch.dylib +0 -0
- package/dylibs/tvos/libNativeDevtoolsIos.dylib +0 -0
- package/package.json +2 -2
- package/rules/argent.md +1 -1
- package/skills/argent-create-e2e/references/e2e-yaml.md +4 -4
- package/skills/argent-create-e2e/references/reliability-and-recovery.md +3 -3
- package/skills/argent-device-interact/SKILL.md +3 -2
- package/skills/argent-device-interact/references/chromium.md +1 -1
- package/skills/argent-device-interact/references/harmonyos.md +1 -1
- package/skills/argent-ios-simulator-setup/SKILL.md +1 -1
- package/skills/argent-macos-app-interact/SKILL.md +44 -0
- package/skills/argent-macos-app-interact/references/e2e.md +6 -0
- package/skills/argent-qa-e2e/SKILL.md +1 -1
- package/skills/argent-react-native-app-workflow/SKILL.md +2 -0
- package/skills/argent-react-native-optimization/SKILL.md +2 -3
- package/skills/argent-react-native-profiler/SKILL.md +8 -8
- package/skills/argent-screenshot-diff/SKILL.md +1 -1
- package/skills/argent-test-ui-flow/SKILL.md +1 -1
- package/bin/argent-android-devtools-0.3.0.apk +0 -0
package/dist/client.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export interface ArgentToolResult<T = unknown> {
|
|
|
12
12
|
data: T;
|
|
13
13
|
/** Optional advisory note the tool attached to the result. */
|
|
14
14
|
note?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Why the call did not do its job though it returned, such as an e2e test
|
|
17
|
+
* that does not pass. See the tool-server API reference for the list.
|
|
18
|
+
*/
|
|
19
|
+
failure?: string;
|
|
15
20
|
}
|
|
16
21
|
/**
|
|
17
22
|
* A node of the `ui-tree` result. A flag is set only when true; a field named in
|
package/dist/client.js
CHANGED
|
@@ -7802,6 +7802,11 @@ var FLAG_REGISTRY = [
|
|
|
7802
7802
|
name: "video-watermark",
|
|
7803
7803
|
description: "Overlay the argent corner watermark on recorded screen videos. On by default; turn it off with `argent disable video-watermark`.",
|
|
7804
7804
|
defaultEnabled: true
|
|
7805
|
+
},
|
|
7806
|
+
{
|
|
7807
|
+
name: "macos-apps",
|
|
7808
|
+
description: "Drive native Mac apps (AppKit, SwiftUI, react-native-macos) from inside the app. Adds the macos platform to list-devices and boot-device, and the file-panel and menu-bar tools. On by default; turn it off with `argent disable macos-apps`.",
|
|
7809
|
+
defaultEnabled: true
|
|
7805
7810
|
}
|
|
7806
7811
|
];
|
|
7807
7812
|
function getFlagDefinition(name, registry = FLAG_REGISTRY) {
|
|
@@ -9025,6 +9030,8 @@ var FAILURE_CODES = {
|
|
|
9025
9030
|
CLI_RUN_ARGS_JSON_INVALID: "CLI_RUN_ARGS_JSON_INVALID",
|
|
9026
9031
|
CLI_RUN_INPUT_VALIDATION_FAILED: "CLI_RUN_INPUT_VALIDATION_FAILED",
|
|
9027
9032
|
CLI_RUN_TOOL_CALL_FAILED: "CLI_RUN_TOOL_CALL_FAILED",
|
|
9033
|
+
// The result carried the tool-server's `failure` field.
|
|
9034
|
+
CLI_RUN_TOOL_RESULT_FAILED: "CLI_RUN_TOOL_RESULT_FAILED",
|
|
9028
9035
|
CLI_RUN_SAVE_IMAGE_FAILED: "CLI_RUN_SAVE_IMAGE_FAILED",
|
|
9029
9036
|
TOOL_CAPABILITY_UNSUPPORTED_OPERATION: "TOOL_CAPABILITY_UNSUPPORTED_OPERATION",
|
|
9030
9037
|
TOOL_PLATFORM_NOT_IMPLEMENTED: "TOOL_PLATFORM_NOT_IMPLEMENTED",
|
|
@@ -9040,6 +9047,7 @@ var FAILURE_CODES = {
|
|
|
9040
9047
|
INSTALL_MODE_FLAG_CONFLICT: "INSTALL_MODE_FLAG_CONFLICT",
|
|
9041
9048
|
INSTALL_FROM_TAR_PACKAGE_FAILED: "INSTALL_FROM_TAR_PACKAGE_FAILED",
|
|
9042
9049
|
INSTALL_INIT_TRIGGERED_UPDATE_FAILED: "INSTALL_INIT_TRIGGERED_UPDATE_FAILED",
|
|
9050
|
+
INSTALL_SKILLS_FAILED: "INSTALL_SKILLS_FAILED",
|
|
9043
9051
|
INSTALL_SKILLS_REFRESH_FAILED: "INSTALL_SKILLS_REFRESH_FAILED",
|
|
9044
9052
|
INSTALL_UNCLASSIFIED_FAILED: "INSTALL_UNCLASSIFIED_FAILED",
|
|
9045
9053
|
UPDATE_INSTALLED_VERSION_DETECT_FAILED: "UPDATE_INSTALLED_VERSION_DETECT_FAILED",
|
|
@@ -9236,6 +9244,8 @@ var FAILURE_CODES = {
|
|
|
9236
9244
|
REACT_PROFILER_START_FAILED: "REACT_PROFILER_START_FAILED",
|
|
9237
9245
|
REACT_PROFILER_START_VERIFY_FAILED: "REACT_PROFILER_START_VERIFY_FAILED",
|
|
9238
9246
|
REACT_PROFILER_SESSION_TORN_DOWN: "REACT_PROFILER_SESSION_TORN_DOWN",
|
|
9247
|
+
REACT_PROFILER_SESSION_TAKEN_OVER: "REACT_PROFILER_SESSION_TAKEN_OVER",
|
|
9248
|
+
REACT_PROFILER_STOP_IN_PROGRESS: "REACT_PROFILER_STOP_IN_PROGRESS",
|
|
9239
9249
|
REACT_PROFILER_HOOK_ERROR: "REACT_PROFILER_HOOK_ERROR",
|
|
9240
9250
|
REACT_PROFILER_ANALYZE_NO_DATA: "REACT_PROFILER_ANALYZE_NO_DATA",
|
|
9241
9251
|
NATIVE_PROFILER_FACTORY_OPTIONS_MISSING: "NATIVE_PROFILER_FACTORY_OPTIONS_MISSING",
|
|
@@ -9314,6 +9324,32 @@ var FAILURE_CODES = {
|
|
|
9314
9324
|
CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
|
|
9315
9325
|
CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
|
|
9316
9326
|
CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
|
|
9327
|
+
/**
|
|
9328
|
+
* Native Mac apps (the `macos-apps` flag)
|
|
9329
|
+
* @see [macos-app.ts](../../tool-server/src/blueprints/macos-app.ts)
|
|
9330
|
+
*/
|
|
9331
|
+
MACOS_APP_UNSUPPORTED_HOST: "MACOS_APP_UNSUPPORTED_HOST",
|
|
9332
|
+
MACOS_APP_PATH_INVALID: "MACOS_APP_PATH_INVALID",
|
|
9333
|
+
MACOS_APP_BUNDLE_INVALID: "MACOS_APP_BUNDLE_INVALID",
|
|
9334
|
+
MACOS_APP_NOT_FOUND: "MACOS_APP_NOT_FOUND",
|
|
9335
|
+
MACOS_APP_HARDENED_RUNTIME: "MACOS_APP_HARDENED_RUNTIME",
|
|
9336
|
+
MACOS_APP_LIBRARY_MISSING: "MACOS_APP_LIBRARY_MISSING",
|
|
9337
|
+
MACOS_APP_LIBRARY_STAGE_FAILED: "MACOS_APP_LIBRARY_STAGE_FAILED",
|
|
9338
|
+
MACOS_APP_ALREADY_RUNNING: "MACOS_APP_ALREADY_RUNNING",
|
|
9339
|
+
MACOS_APP_SPAWN_FAILED: "MACOS_APP_SPAWN_FAILED",
|
|
9340
|
+
MACOS_APP_EXITED_BEFORE_READY: "MACOS_APP_EXITED_BEFORE_READY",
|
|
9341
|
+
MACOS_APP_HANDSHAKE_TIMEOUT: "MACOS_APP_HANDSHAKE_TIMEOUT",
|
|
9342
|
+
MACOS_APP_HANDSHAKE_INVALID: "MACOS_APP_HANDSHAKE_INVALID",
|
|
9343
|
+
MACOS_APP_NOT_RUNNING: "MACOS_APP_NOT_RUNNING",
|
|
9344
|
+
MACOS_APP_NOT_CONNECTED: "MACOS_APP_NOT_CONNECTED",
|
|
9345
|
+
MACOS_APP_CONNECTION_LOST: "MACOS_APP_CONNECTION_LOST",
|
|
9346
|
+
MACOS_APP_CONNECTION_CLOSED: "MACOS_APP_CONNECTION_CLOSED",
|
|
9347
|
+
MACOS_APP_RPC_TIMEOUT: "MACOS_APP_RPC_TIMEOUT",
|
|
9348
|
+
MACOS_APP_RPC_ERROR: "MACOS_APP_RPC_ERROR",
|
|
9349
|
+
MACOS_APP_TERMINATE_FAILED: "MACOS_APP_TERMINATE_FAILED",
|
|
9350
|
+
MACOS_APP_BUNDLE_ID_MISMATCH: "MACOS_APP_BUNDLE_ID_MISMATCH",
|
|
9351
|
+
MACOS_APP_OPEN_URL_FAILED: "MACOS_APP_OPEN_URL_FAILED",
|
|
9352
|
+
MACOS_APP_FILE_ACCESS_FAILED: "MACOS_APP_FILE_ACCESS_FAILED",
|
|
9317
9353
|
KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
|
|
9318
9354
|
KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
|
|
9319
9355
|
KEYBOARD_TEXT_AND_KEY_COMBINED: "KEYBOARD_TEXT_AND_KEY_COMBINED",
|
|
@@ -10397,7 +10433,8 @@ async function consumeToolStream(name, body, onProgress, signal) {
|
|
|
10397
10433
|
final = {
|
|
10398
10434
|
data: msg.data,
|
|
10399
10435
|
note: msg.note,
|
|
10400
|
-
...msg.profiling === true ? { profiling: true } : {}
|
|
10436
|
+
...msg.profiling === true ? { profiling: true } : {},
|
|
10437
|
+
...typeof msg.failure === "string" ? { failure: msg.failure } : {}
|
|
10401
10438
|
};
|
|
10402
10439
|
} else if (msg.event === "error") {
|
|
10403
10440
|
throw new ToolInvocationError(msg.error ?? "tool invocation failed", {
|
|
@@ -10449,7 +10486,8 @@ async function consumeToolStream(name, body, onProgress, signal) {
|
|
|
10449
10486
|
return {
|
|
10450
10487
|
data: final.data,
|
|
10451
10488
|
note: final.note,
|
|
10452
|
-
...final.profiling ? { profiling: true } : {}
|
|
10489
|
+
...final.profiling ? { profiling: true } : {},
|
|
10490
|
+
...final.failure !== void 0 ? { failure: final.failure } : {}
|
|
10453
10491
|
};
|
|
10454
10492
|
}
|
|
10455
10493
|
function errorBodyMessage(body) {
|
|
@@ -10614,6 +10652,7 @@ function createToolsClient(options = {}) {
|
|
|
10614
10652
|
}
|
|
10615
10653
|
const shadowWarning = await e2eShadowWarningFor(name, args);
|
|
10616
10654
|
const baselineDirs = [];
|
|
10655
|
+
let unwrittenBaselines = [];
|
|
10617
10656
|
if (meta?.fileInputs?.length) {
|
|
10618
10657
|
if (remote) assertRequiredPresent(meta, finalArgs);
|
|
10619
10658
|
finalArgs = await prepareFileInputs(meta.fileInputs, finalArgs ?? {}, {
|
|
@@ -10627,8 +10666,9 @@ function createToolsClient(options = {}) {
|
|
|
10627
10666
|
signal: opts?.signal
|
|
10628
10667
|
});
|
|
10629
10668
|
}
|
|
10630
|
-
const settle = async (
|
|
10631
|
-
const applied = await applyClientFileDirectives(
|
|
10669
|
+
const settle = async (data2) => {
|
|
10670
|
+
const applied = await applyClientFileDirectives(data2, { allowedDirs: baselineDirs });
|
|
10671
|
+
unwrittenBaselines = applied.failed.map((f) => f.path);
|
|
10632
10672
|
for (const { path: file, error } of applied.failed) {
|
|
10633
10673
|
diagnose(`The baseline ${file} was not written on this client: ${error}`);
|
|
10634
10674
|
}
|
|
@@ -10645,6 +10685,7 @@ function createToolsClient(options = {}) {
|
|
|
10645
10685
|
}
|
|
10646
10686
|
return { ...result, warning: shadowWarning };
|
|
10647
10687
|
};
|
|
10688
|
+
const unwrittenFailure = () => unwrittenBaselines.length > 0 ? `Baselines not written on this client: ${unwrittenBaselines.join(", ")}` : void 0;
|
|
10648
10689
|
const stream = opts?.onProgress !== void 0 || carriesMembers(finalArgs);
|
|
10649
10690
|
const sentOnce = carriesUpload(finalArgs);
|
|
10650
10691
|
const forwarded = remote ? await forwardedSecrets(finalArgs) : void 0;
|
|
@@ -10708,11 +10749,14 @@ function createToolsClient(options = {}) {
|
|
|
10708
10749
|
}),
|
|
10709
10750
|
opts?.signal
|
|
10710
10751
|
);
|
|
10752
|
+
const data2 = await settle(streamed.data);
|
|
10753
|
+
const failure2 = streamed.failure ?? unwrittenFailure();
|
|
10711
10754
|
return {
|
|
10712
|
-
data:
|
|
10755
|
+
data: data2,
|
|
10713
10756
|
note: streamed.note,
|
|
10714
10757
|
outputHint: meta?.outputHint,
|
|
10715
|
-
...streamed.profiling ? { profiling: true } : {}
|
|
10758
|
+
...streamed.profiling ? { profiling: true } : {},
|
|
10759
|
+
...failure2 !== void 0 ? { failure: failure2 } : {}
|
|
10716
10760
|
};
|
|
10717
10761
|
}
|
|
10718
10762
|
let json;
|
|
@@ -10748,11 +10792,14 @@ function createToolsClient(options = {}) {
|
|
|
10748
10792
|
});
|
|
10749
10793
|
}
|
|
10750
10794
|
opts?.signal?.throwIfAborted();
|
|
10795
|
+
const data = await settle(json.data);
|
|
10796
|
+
const failure = (typeof json.failure === "string" ? json.failure : void 0) ?? unwrittenFailure();
|
|
10751
10797
|
return {
|
|
10752
|
-
data
|
|
10798
|
+
data,
|
|
10753
10799
|
note: json.note,
|
|
10754
10800
|
outputHint: meta?.outputHint,
|
|
10755
|
-
...json.profiling === true ? { profiling: true } : {}
|
|
10801
|
+
...json.profiling === true ? { profiling: true } : {},
|
|
10802
|
+
...failure !== void 0 ? { failure } : {}
|
|
10756
10803
|
};
|
|
10757
10804
|
}
|
|
10758
10805
|
return { fetchTools, fetchTool, callTool, baseUrl };
|
|
@@ -11162,7 +11209,11 @@ function createArgentClient() {
|
|
|
11162
11209
|
signal: options?.signal
|
|
11163
11210
|
});
|
|
11164
11211
|
options?.signal?.throwIfAborted();
|
|
11165
|
-
return {
|
|
11212
|
+
return {
|
|
11213
|
+
data: result,
|
|
11214
|
+
note: response.note,
|
|
11215
|
+
...response.failure !== void 0 ? { failure: response.failure } : {}
|
|
11216
|
+
};
|
|
11166
11217
|
} catch (err) {
|
|
11167
11218
|
if (err instanceof ToolInvocationError) {
|
|
11168
11219
|
throw new ArgentToolError(err.message, {
|