@swmansion/argent 0.30.2-next.19 → 0.30.2-next.20
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/bin/darwin/simulator-server +0 -0
- package/bin/linux/simulator-server +0 -0
- package/bin/linux-arm64/simulator-server +0 -0
- package/bin/win32/simulator-server.exe +0 -0
- package/dist/cli-cmds.mjs +1 -1
- package/dist/installer.mjs +1 -1
- package/dist/mcp-server.mjs +52 -15
- package/dist/tool-server.cjs +1 -1
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/cli-cmds.mjs
CHANGED
|
@@ -35594,7 +35594,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
35594
35594
|
var SESSION_ID2 = randomUUID5();
|
|
35595
35595
|
function readCliVersion() {
|
|
35596
35596
|
if (true) {
|
|
35597
|
-
return "0.30.2-next.
|
|
35597
|
+
return "0.30.2-next.20";
|
|
35598
35598
|
}
|
|
35599
35599
|
return "0.0.0";
|
|
35600
35600
|
}
|
package/dist/installer.mjs
CHANGED
|
@@ -16900,7 +16900,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
16900
16900
|
var SESSION_ID = randomUUID4();
|
|
16901
16901
|
function readCliVersion() {
|
|
16902
16902
|
if (true) {
|
|
16903
|
-
return "0.30.2-next.
|
|
16903
|
+
return "0.30.2-next.20";
|
|
16904
16904
|
}
|
|
16905
16905
|
return "0.0.0";
|
|
16906
16906
|
}
|
package/dist/mcp-server.mjs
CHANGED
|
@@ -28531,6 +28531,7 @@ var AUTO_SCREENSHOT_DELAY_MS_BY_TOOL = {
|
|
|
28531
28531
|
"await-ui-element": 1500
|
|
28532
28532
|
};
|
|
28533
28533
|
var DEFAULT_DELAY_MS = 1400;
|
|
28534
|
+
var CAPTURE_TIMEOUT_MS = 15e3;
|
|
28534
28535
|
function autoScreenshotEnabled(options) {
|
|
28535
28536
|
return !isFlagEnabled("disable-auto-screenshot", options);
|
|
28536
28537
|
}
|
|
@@ -28648,22 +28649,50 @@ async function fetchWithReconnect(getUrl, reconnect, config2) {
|
|
|
28648
28649
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
28649
28650
|
const controller = new AbortController();
|
|
28650
28651
|
const timer = fetchTimeoutMs !== null ? setTimeout(() => controller.abort(), fetchTimeoutMs) : void 0;
|
|
28652
|
+
let callerSignal;
|
|
28651
28653
|
try {
|
|
28652
28654
|
const attemptInit = typeof init === "function" ? init() : init;
|
|
28653
|
-
|
|
28655
|
+
callerSignal = attemptInit?.signal;
|
|
28656
|
+
const signal = callerSignal ? AbortSignal.any([controller.signal, callerSignal]) : controller.signal;
|
|
28657
|
+
return await fetch(getUrl(), { ...attemptInit, signal });
|
|
28654
28658
|
} catch (err) {
|
|
28655
28659
|
lastError = err;
|
|
28656
|
-
if (attempt === maxRetries) break;
|
|
28657
|
-
|
|
28658
|
-
|
|
28660
|
+
if (callerSignal?.aborted || attempt === maxRetries) break;
|
|
28661
|
+
const pause = (async () => {
|
|
28662
|
+
if (attempt === 0) {
|
|
28663
|
+
await reconnect();
|
|
28664
|
+
}
|
|
28665
|
+
await new Promise((r) => setTimeout(r, expBackoffBase * Math.pow(2, attempt)));
|
|
28666
|
+
})();
|
|
28667
|
+
await untilAborted(pause, callerSignal);
|
|
28668
|
+
if (callerSignal?.aborted) {
|
|
28669
|
+
lastError = callerSignal.reason;
|
|
28670
|
+
break;
|
|
28659
28671
|
}
|
|
28660
|
-
await new Promise((r) => setTimeout(r, expBackoffBase * Math.pow(2, attempt)));
|
|
28661
28672
|
} finally {
|
|
28662
28673
|
clearTimeout(timer);
|
|
28663
28674
|
}
|
|
28664
28675
|
}
|
|
28665
28676
|
throw lastError;
|
|
28666
28677
|
}
|
|
28678
|
+
async function untilAborted(work, signal) {
|
|
28679
|
+
if (!signal) {
|
|
28680
|
+
await work;
|
|
28681
|
+
return;
|
|
28682
|
+
}
|
|
28683
|
+
let onAbort = () => {
|
|
28684
|
+
};
|
|
28685
|
+
const aborted2 = new Promise((resolve10) => {
|
|
28686
|
+
onAbort = resolve10;
|
|
28687
|
+
if (signal.aborted) resolve10();
|
|
28688
|
+
else signal.addEventListener("abort", onAbort, { once: true });
|
|
28689
|
+
});
|
|
28690
|
+
try {
|
|
28691
|
+
await Promise.race([work, aborted2]);
|
|
28692
|
+
} finally {
|
|
28693
|
+
signal.removeEventListener("abort", onAbort);
|
|
28694
|
+
}
|
|
28695
|
+
}
|
|
28667
28696
|
function parseUrl(url) {
|
|
28668
28697
|
let parsed;
|
|
28669
28698
|
try {
|
|
@@ -28708,8 +28737,8 @@ function createToolCaller(deps) {
|
|
|
28708
28737
|
});
|
|
28709
28738
|
return {
|
|
28710
28739
|
fetchTools: client.fetchTools,
|
|
28711
|
-
async callTool(name, args) {
|
|
28712
|
-
const { data, note, outputHint, profiling } = await client.callTool(name, args);
|
|
28740
|
+
async callTool(name, args, opts) {
|
|
28741
|
+
const { data, note, outputHint, profiling } = await client.callTool(name, args, opts);
|
|
28713
28742
|
return { result: data, outputHint, note, ...profiling ? { profiling } : {} };
|
|
28714
28743
|
}
|
|
28715
28744
|
};
|
|
@@ -28724,6 +28753,7 @@ async function startMcpServer(options) {
|
|
|
28724
28753
|
}
|
|
28725
28754
|
const autoScreenshotOn = autoScreenshotEnabled();
|
|
28726
28755
|
const autoDescribeOn = autoDescribeEnabled();
|
|
28756
|
+
const captureTimeoutMs = options.captureTimeoutMs ?? CAPTURE_TIMEOUT_MS;
|
|
28727
28757
|
let TOOLS_URL;
|
|
28728
28758
|
let AUTH_TOKEN;
|
|
28729
28759
|
const resolved = await getResolvedToolsUrl();
|
|
@@ -28786,8 +28816,14 @@ async function startMcpServer(options) {
|
|
|
28786
28816
|
async function awaitScreenSettled(udid, toolName) {
|
|
28787
28817
|
const maxWaitMs = getAutoScreenshotDelayMs(toolName);
|
|
28788
28818
|
if (maxWaitMs === 0) return true;
|
|
28819
|
+
const started = Date.now();
|
|
28789
28820
|
try {
|
|
28790
|
-
const idle = await callTool(
|
|
28821
|
+
const idle = await callTool(
|
|
28822
|
+
"await-screen-idle",
|
|
28823
|
+
{ udid, timeoutMs: maxWaitMs },
|
|
28824
|
+
// The tool bounds its poll to maxWaitMs; the rest covers its setup.
|
|
28825
|
+
{ signal: AbortSignal.timeout(maxWaitMs + captureTimeoutMs) }
|
|
28826
|
+
);
|
|
28791
28827
|
await spyLog({
|
|
28792
28828
|
ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
28793
28829
|
event: "auto_screenshot_readiness",
|
|
@@ -28797,13 +28833,13 @@ async function startMcpServer(options) {
|
|
|
28797
28833
|
});
|
|
28798
28834
|
return idle.result?.settled === true;
|
|
28799
28835
|
} catch {
|
|
28800
|
-
await new Promise((r) => setTimeout(r, maxWaitMs));
|
|
28836
|
+
await new Promise((r) => setTimeout(r, Math.max(0, maxWaitMs - (Date.now() - started))));
|
|
28801
28837
|
return false;
|
|
28802
28838
|
}
|
|
28803
28839
|
}
|
|
28804
|
-
async function captureScreenshotBlocks(udid) {
|
|
28840
|
+
async function captureScreenshotBlocks(udid, signal) {
|
|
28805
28841
|
try {
|
|
28806
|
-
const { result } = await callTool("screenshot", { udid });
|
|
28842
|
+
const { result } = await callTool("screenshot", { udid }, { signal });
|
|
28807
28843
|
const blocks = await toMcpContent(result, "image", {
|
|
28808
28844
|
toolsUrl: TOOLS_URL,
|
|
28809
28845
|
authToken: AUTH_TOKEN,
|
|
@@ -28815,10 +28851,10 @@ async function startMcpServer(options) {
|
|
|
28815
28851
|
return [];
|
|
28816
28852
|
}
|
|
28817
28853
|
}
|
|
28818
|
-
async function captureTreeBlocks(udid, toolName) {
|
|
28854
|
+
async function captureTreeBlocks(udid, toolName, signal) {
|
|
28819
28855
|
const t1 = Date.now();
|
|
28820
28856
|
try {
|
|
28821
|
-
const d = await callTool("describe", { udid });
|
|
28857
|
+
const d = await callTool("describe", { udid }, { signal });
|
|
28822
28858
|
const desc = d.result?.description;
|
|
28823
28859
|
await spyLog({
|
|
28824
28860
|
ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -28914,9 +28950,10 @@ ${desc}` }];
|
|
|
28914
28950
|
}
|
|
28915
28951
|
} else if (udid && (wantScreenshot || wantTree)) {
|
|
28916
28952
|
const screenSettled = await awaitScreenSettled(udid, params.name);
|
|
28917
|
-
const
|
|
28953
|
+
const signal = AbortSignal.timeout(captureTimeoutMs);
|
|
28954
|
+
const screenshot = wantScreenshot ? captureScreenshotBlocks(udid, signal) : Promise.resolve([]);
|
|
28918
28955
|
if (!screenSettled) await screenshot;
|
|
28919
|
-
const tree = wantTree ? captureTreeBlocks(udid, params.name) : Promise.resolve([]);
|
|
28956
|
+
const tree = wantTree ? captureTreeBlocks(udid, params.name, signal) : Promise.resolve([]);
|
|
28920
28957
|
content = [...content, ...await screenshot, ...await tree];
|
|
28921
28958
|
}
|
|
28922
28959
|
if (note) {
|
package/dist/tool-server.cjs
CHANGED
|
@@ -100945,7 +100945,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
100945
100945
|
var SESSION_ID = (0, import_node_crypto3.randomUUID)();
|
|
100946
100946
|
function readCliVersion() {
|
|
100947
100947
|
if (true) {
|
|
100948
|
-
return "0.30.2-next.
|
|
100948
|
+
return "0.30.2-next.20";
|
|
100949
100949
|
}
|
|
100950
100950
|
return "0.0.0";
|
|
100951
100951
|
}
|
package/package.json
CHANGED