@swmansion/argent 0.15.1-next.0 → 0.15.1-next.1
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/dist/cli-cmds.mjs +12 -1
- package/dist/installer.mjs +16 -5
- package/dist/mcp-server.mjs +12 -1
- package/dist/tool-server.cjs +154 -53
- package/package.json +1 -1
package/dist/cli-cmds.mjs
CHANGED
|
@@ -6469,6 +6469,10 @@ var FAILURE_SPAWN_CODE = oneOf(FAILURE_SPAWN_CODES);
|
|
|
6469
6469
|
var NETWORK_FAILURE = oneOf(NETWORK_FAILURES);
|
|
6470
6470
|
var AI_CLIENT = oneOf(AI_CLIENTS);
|
|
6471
6471
|
var INSTALL_MODE = oneOf(["global", "local"]);
|
|
6472
|
+
var ERROR_NAME = matches(/^[A-Za-z][A-Za-z0-9_]{0,63}$/, 64);
|
|
6473
|
+
var ERROR_SYSCALL = matches(/^E[A-Z0-9_]{1,31}$/, 32);
|
|
6474
|
+
var CRASH_FINGERPRINT = matches(/^[0-9a-f]{16}$/, 16);
|
|
6475
|
+
var CRASH_PHASE = oneOf(["startup", "serving"]);
|
|
6472
6476
|
var AI_TELEMETRY = {
|
|
6473
6477
|
ai_client: AI_CLIENT
|
|
6474
6478
|
};
|
|
@@ -6599,7 +6603,11 @@ var ALLOWED = {
|
|
|
6599
6603
|
reason: oneOf(["idle", "signal", "crash"]),
|
|
6600
6604
|
uptime_ms: DURATION_MS,
|
|
6601
6605
|
total_tool_calls: COUNT,
|
|
6602
|
-
...FAILURE_SIGNAL
|
|
6606
|
+
...FAILURE_SIGNAL,
|
|
6607
|
+
error_name: ERROR_NAME,
|
|
6608
|
+
error_syscall: ERROR_SYSCALL,
|
|
6609
|
+
crash_fingerprint: CRASH_FINGERPRINT,
|
|
6610
|
+
crash_phase: CRASH_PHASE
|
|
6603
6611
|
},
|
|
6604
6612
|
"lens:preview_opened": {
|
|
6605
6613
|
round: COUNT,
|
|
@@ -7857,6 +7865,9 @@ var FIRST_RUN_NOTICE = [
|
|
|
7857
7865
|
`Details: ${TELEMETRY_DETAILS_URL}`
|
|
7858
7866
|
].join("\n");
|
|
7859
7867
|
|
|
7868
|
+
// ../telemetry/src/crash-diagnostics.ts
|
|
7869
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
7870
|
+
|
|
7860
7871
|
// ../telemetry/src/index.ts
|
|
7861
7872
|
var SHORT_FLUSH_TIMEOUT_MS = 1500;
|
|
7862
7873
|
var state = null;
|
package/dist/installer.mjs
CHANGED
|
@@ -16376,6 +16376,10 @@ var FAILURE_SPAWN_CODE = oneOf(FAILURE_SPAWN_CODES);
|
|
|
16376
16376
|
var NETWORK_FAILURE = oneOf(NETWORK_FAILURES);
|
|
16377
16377
|
var AI_CLIENT = oneOf(AI_CLIENTS);
|
|
16378
16378
|
var INSTALL_MODE = oneOf(["global", "local"]);
|
|
16379
|
+
var ERROR_NAME = matches(/^[A-Za-z][A-Za-z0-9_]{0,63}$/, 64);
|
|
16380
|
+
var ERROR_SYSCALL = matches(/^E[A-Z0-9_]{1,31}$/, 32);
|
|
16381
|
+
var CRASH_FINGERPRINT = matches(/^[0-9a-f]{16}$/, 16);
|
|
16382
|
+
var CRASH_PHASE = oneOf(["startup", "serving"]);
|
|
16379
16383
|
var AI_TELEMETRY = {
|
|
16380
16384
|
ai_client: AI_CLIENT
|
|
16381
16385
|
};
|
|
@@ -16506,7 +16510,11 @@ var ALLOWED = {
|
|
|
16506
16510
|
reason: oneOf(["idle", "signal", "crash"]),
|
|
16507
16511
|
uptime_ms: DURATION_MS,
|
|
16508
16512
|
total_tool_calls: COUNT,
|
|
16509
|
-
...FAILURE_SIGNAL
|
|
16513
|
+
...FAILURE_SIGNAL,
|
|
16514
|
+
error_name: ERROR_NAME,
|
|
16515
|
+
error_syscall: ERROR_SYSCALL,
|
|
16516
|
+
crash_fingerprint: CRASH_FINGERPRINT,
|
|
16517
|
+
crash_phase: CRASH_PHASE
|
|
16510
16518
|
},
|
|
16511
16519
|
"lens:preview_opened": {
|
|
16512
16520
|
round: COUNT,
|
|
@@ -17700,6 +17708,9 @@ async function resetLocalTelemetryState() {
|
|
|
17700
17708
|
return { localIdRemoved, noticeReset };
|
|
17701
17709
|
}
|
|
17702
17710
|
|
|
17711
|
+
// ../telemetry/src/crash-diagnostics.ts
|
|
17712
|
+
import { createHash } from "node:crypto";
|
|
17713
|
+
|
|
17703
17714
|
// ../telemetry/src/index.ts
|
|
17704
17715
|
var SHORT_FLUSH_TIMEOUT_MS = 1500;
|
|
17705
17716
|
var state = null;
|
|
@@ -23062,7 +23073,7 @@ import * as path14 from "node:path";
|
|
|
23062
23073
|
import * as readline from "node:readline";
|
|
23063
23074
|
import { homedir as homedir5 } from "node:os";
|
|
23064
23075
|
import { spawn as spawn4, execFileSync as execFileSync5 } from "node:child_process";
|
|
23065
|
-
import { createHash, randomBytes } from "node:crypto";
|
|
23076
|
+
import { createHash as createHash2, randomBytes } from "node:crypto";
|
|
23066
23077
|
import { mkdir, writeFile, readFile, readdir, unlink, rename, chmod } from "node:fs/promises";
|
|
23067
23078
|
var STATE_DIR = path14.join(homedir5(), ".argent");
|
|
23068
23079
|
var STATE_FILE = path14.join(STATE_DIR, "tool-server.json");
|
|
@@ -23077,7 +23088,7 @@ function isProcessAlive(pid) {
|
|
|
23077
23088
|
}
|
|
23078
23089
|
}
|
|
23079
23090
|
function stateFileForBundle(bundlePath) {
|
|
23080
|
-
const key =
|
|
23091
|
+
const key = createHash2("sha256").update(bundlePath).digest("hex").slice(0, 12);
|
|
23081
23092
|
return path14.join(STATE_DIR, `tool-server-${key}.json`);
|
|
23082
23093
|
}
|
|
23083
23094
|
async function readStateFile(file) {
|
|
@@ -23222,7 +23233,7 @@ var LINK_DIR = path15.join(homedir6(), ".argent");
|
|
|
23222
23233
|
var LINK_FILE = path15.join(LINK_DIR, "link.json");
|
|
23223
23234
|
|
|
23224
23235
|
// ../argent-tools-client/src/file-inputs.ts
|
|
23225
|
-
import { createHash as
|
|
23236
|
+
import { createHash as createHash3, randomUUID as randomUUID6 } from "node:crypto";
|
|
23226
23237
|
import { createReadStream as createReadStream2 } from "node:fs";
|
|
23227
23238
|
import { mkdir as mkdir3, readFile as readFile3, rm as rm2, stat as stat2, writeFile as writeFile3 } from "node:fs/promises";
|
|
23228
23239
|
import { tmpdir } from "node:os";
|
|
@@ -23242,7 +23253,7 @@ var MAX_CONTENT_BYTES = 32 * 1024 * 1024;
|
|
|
23242
23253
|
import { mkdir as mkdir4, readFile as readFile4, rm as rm3, stat as stat3, writeFile as writeFile4 } from "node:fs/promises";
|
|
23243
23254
|
import { tmpdir as tmpdir2 } from "node:os";
|
|
23244
23255
|
import { basename as basename4, join as join19 } from "node:path";
|
|
23245
|
-
import { createHash as
|
|
23256
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
23246
23257
|
|
|
23247
23258
|
// ../argent-installer/src/update.ts
|
|
23248
23259
|
function getRequestedVersion(args) {
|
package/dist/mcp-server.mjs
CHANGED
|
@@ -17916,6 +17916,10 @@ var FAILURE_SPAWN_CODE = oneOf(FAILURE_SPAWN_CODES);
|
|
|
17916
17916
|
var NETWORK_FAILURE = oneOf(NETWORK_FAILURES);
|
|
17917
17917
|
var AI_CLIENT = oneOf(AI_CLIENTS);
|
|
17918
17918
|
var INSTALL_MODE = oneOf(["global", "local"]);
|
|
17919
|
+
var ERROR_NAME = matches(/^[A-Za-z][A-Za-z0-9_]{0,63}$/, 64);
|
|
17920
|
+
var ERROR_SYSCALL = matches(/^E[A-Z0-9_]{1,31}$/, 32);
|
|
17921
|
+
var CRASH_FINGERPRINT = matches(/^[0-9a-f]{16}$/, 16);
|
|
17922
|
+
var CRASH_PHASE = oneOf(["startup", "serving"]);
|
|
17919
17923
|
var AI_TELEMETRY = {
|
|
17920
17924
|
ai_client: AI_CLIENT
|
|
17921
17925
|
};
|
|
@@ -18046,7 +18050,11 @@ var ALLOWED = {
|
|
|
18046
18050
|
reason: oneOf(["idle", "signal", "crash"]),
|
|
18047
18051
|
uptime_ms: DURATION_MS,
|
|
18048
18052
|
total_tool_calls: COUNT,
|
|
18049
|
-
...FAILURE_SIGNAL
|
|
18053
|
+
...FAILURE_SIGNAL,
|
|
18054
|
+
error_name: ERROR_NAME,
|
|
18055
|
+
error_syscall: ERROR_SYSCALL,
|
|
18056
|
+
crash_fingerprint: CRASH_FINGERPRINT,
|
|
18057
|
+
crash_phase: CRASH_PHASE
|
|
18050
18058
|
},
|
|
18051
18059
|
"lens:preview_opened": {
|
|
18052
18060
|
round: COUNT,
|
|
@@ -18751,6 +18759,9 @@ function shouldShowFirstRunNotice() {
|
|
|
18751
18759
|
return isEnabled() && !hasShownFirstRunNotice();
|
|
18752
18760
|
}
|
|
18753
18761
|
|
|
18762
|
+
// ../telemetry/src/crash-diagnostics.ts
|
|
18763
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
18764
|
+
|
|
18754
18765
|
// ../argent-mcp/src/content.ts
|
|
18755
18766
|
import { readFile as readFile5 } from "node:fs/promises";
|
|
18756
18767
|
var PNG_SIGNATURE = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]);
|
package/dist/tool-server.cjs
CHANGED
|
@@ -68630,14 +68630,14 @@ var require_re = __commonJS({
|
|
|
68630
68630
|
return value;
|
|
68631
68631
|
};
|
|
68632
68632
|
var createToken = (name, value, isGlobal) => {
|
|
68633
|
-
const
|
|
68633
|
+
const safe2 = makeSafeRegex(value);
|
|
68634
68634
|
const index = R++;
|
|
68635
68635
|
debug(name, index, value);
|
|
68636
68636
|
t[name] = index;
|
|
68637
68637
|
src[index] = value;
|
|
68638
|
-
safeSrc[index] =
|
|
68638
|
+
safeSrc[index] = safe2;
|
|
68639
68639
|
re[index] = new RegExp(value, isGlobal ? "g" : void 0);
|
|
68640
|
-
safeRe[index] = new RegExp(
|
|
68640
|
+
safeRe[index] = new RegExp(safe2, isGlobal ? "g" : void 0);
|
|
68641
68641
|
};
|
|
68642
68642
|
createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*");
|
|
68643
68643
|
createToken("NUMERICIDENTIFIERLOOSE", "\\d+");
|
|
@@ -81109,7 +81109,7 @@ var require_websocket = __commonJS({
|
|
|
81109
81109
|
var http3 = require("http");
|
|
81110
81110
|
var net6 = require("net");
|
|
81111
81111
|
var tls = require("tls");
|
|
81112
|
-
var { randomBytes, createHash:
|
|
81112
|
+
var { randomBytes, createHash: createHash3 } = require("crypto");
|
|
81113
81113
|
var { Duplex, Readable } = require("stream");
|
|
81114
81114
|
var { URL: URL2 } = require("url");
|
|
81115
81115
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
@@ -81777,7 +81777,7 @@ var require_websocket = __commonJS({
|
|
|
81777
81777
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
81778
81778
|
return;
|
|
81779
81779
|
}
|
|
81780
|
-
const digest =
|
|
81780
|
+
const digest = createHash3("sha1").update(key + GUID).digest("base64");
|
|
81781
81781
|
if (res.headers["sec-websocket-accept"] !== digest) {
|
|
81782
81782
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
81783
81783
|
return;
|
|
@@ -82146,7 +82146,7 @@ var require_websocket_server = __commonJS({
|
|
|
82146
82146
|
var EventEmitter2 = require("events");
|
|
82147
82147
|
var http3 = require("http");
|
|
82148
82148
|
var { Duplex } = require("stream");
|
|
82149
|
-
var { createHash:
|
|
82149
|
+
var { createHash: createHash3 } = require("crypto");
|
|
82150
82150
|
var extension2 = require_extension();
|
|
82151
82151
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
82152
82152
|
var subprotocol2 = require_subprotocol();
|
|
@@ -82453,7 +82453,7 @@ var require_websocket_server = __commonJS({
|
|
|
82453
82453
|
);
|
|
82454
82454
|
}
|
|
82455
82455
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
82456
|
-
const digest =
|
|
82456
|
+
const digest = createHash3("sha1").update(key + GUID).digest("base64");
|
|
82457
82457
|
const headers = [
|
|
82458
82458
|
"HTTP/1.1 101 Switching Protocols",
|
|
82459
82459
|
"Upgrade: websocket",
|
|
@@ -82588,8 +82588,8 @@ var require_ini = __commonJS({
|
|
|
82588
82588
|
const keys = opt.sort ? Object.keys(obj).sort() : Object.keys(obj);
|
|
82589
82589
|
let padToChars = 0;
|
|
82590
82590
|
if (opt.align) {
|
|
82591
|
-
padToChars =
|
|
82592
|
-
keys.filter((k) => obj[k] === null || Array.isArray(obj[k]) || typeof obj[k] !== "object").map((k) => Array.isArray(obj[k]) ? `${k}[]` : k).concat([""]).reduce((a, b) =>
|
|
82591
|
+
padToChars = safe2(
|
|
82592
|
+
keys.filter((k) => obj[k] === null || Array.isArray(obj[k]) || typeof obj[k] !== "object").map((k) => Array.isArray(obj[k]) ? `${k}[]` : k).concat([""]).reduce((a, b) => safe2(a).length >= safe2(b).length ? a : b)
|
|
82593
82593
|
).length;
|
|
82594
82594
|
}
|
|
82595
82595
|
let out = "";
|
|
@@ -82598,16 +82598,16 @@ var require_ini = __commonJS({
|
|
|
82598
82598
|
const val = obj[k];
|
|
82599
82599
|
if (val && Array.isArray(val)) {
|
|
82600
82600
|
for (const item of val) {
|
|
82601
|
-
out +=
|
|
82601
|
+
out += safe2(`${k}${arraySuffix}`).padEnd(padToChars, " ") + separator + safe2(item) + eol;
|
|
82602
82602
|
}
|
|
82603
82603
|
} else if (val && typeof val === "object") {
|
|
82604
82604
|
children.push(k);
|
|
82605
82605
|
} else {
|
|
82606
|
-
out +=
|
|
82606
|
+
out += safe2(k).padEnd(padToChars, " ") + separator + safe2(val) + eol;
|
|
82607
82607
|
}
|
|
82608
82608
|
}
|
|
82609
82609
|
if (opt.section && out.length) {
|
|
82610
|
-
out = "[" +
|
|
82610
|
+
out = "[" + safe2(opt.section) + "]" + (opt.newline ? eol + eol : eol) + out;
|
|
82611
82611
|
}
|
|
82612
82612
|
for (const k of children) {
|
|
82613
82613
|
const nk = splitSections(k, ".").join("\\.");
|
|
@@ -82726,7 +82726,7 @@ var require_ini = __commonJS({
|
|
|
82726
82726
|
var isQuoted = (val) => {
|
|
82727
82727
|
return val.startsWith('"') && val.endsWith('"') || val.startsWith("'") && val.endsWith("'");
|
|
82728
82728
|
};
|
|
82729
|
-
var
|
|
82729
|
+
var safe2 = (val) => {
|
|
82730
82730
|
if (typeof val !== "string" || val.match(/[=\r\n]/) || val.match(/^\[/) || val.length > 1 && isQuoted(val) || val !== val.trim()) {
|
|
82731
82731
|
return JSON.stringify(val);
|
|
82732
82732
|
}
|
|
@@ -82774,7 +82774,7 @@ var require_ini = __commonJS({
|
|
|
82774
82774
|
decode: decode8,
|
|
82775
82775
|
stringify: encode9,
|
|
82776
82776
|
encode: encode9,
|
|
82777
|
-
safe,
|
|
82777
|
+
safe: safe2,
|
|
82778
82778
|
unsafe
|
|
82779
82779
|
};
|
|
82780
82780
|
}
|
|
@@ -103747,6 +103747,10 @@ var FAILURE_SPAWN_CODE = oneOf(FAILURE_SPAWN_CODES);
|
|
|
103747
103747
|
var NETWORK_FAILURE = oneOf(NETWORK_FAILURES);
|
|
103748
103748
|
var AI_CLIENT = oneOf(AI_CLIENTS);
|
|
103749
103749
|
var INSTALL_MODE = oneOf(["global", "local"]);
|
|
103750
|
+
var ERROR_NAME = matches(/^[A-Za-z][A-Za-z0-9_]{0,63}$/, 64);
|
|
103751
|
+
var ERROR_SYSCALL = matches(/^E[A-Z0-9_]{1,31}$/, 32);
|
|
103752
|
+
var CRASH_FINGERPRINT = matches(/^[0-9a-f]{16}$/, 16);
|
|
103753
|
+
var CRASH_PHASE = oneOf(["startup", "serving"]);
|
|
103750
103754
|
var AI_TELEMETRY = {
|
|
103751
103755
|
ai_client: AI_CLIENT
|
|
103752
103756
|
};
|
|
@@ -103877,7 +103881,11 @@ var ALLOWED = {
|
|
|
103877
103881
|
reason: oneOf(["idle", "signal", "crash"]),
|
|
103878
103882
|
uptime_ms: DURATION_MS,
|
|
103879
103883
|
total_tool_calls: COUNT,
|
|
103880
|
-
...FAILURE_SIGNAL2
|
|
103884
|
+
...FAILURE_SIGNAL2,
|
|
103885
|
+
error_name: ERROR_NAME,
|
|
103886
|
+
error_syscall: ERROR_SYSCALL,
|
|
103887
|
+
crash_fingerprint: CRASH_FINGERPRINT,
|
|
103888
|
+
crash_phase: CRASH_PHASE
|
|
103881
103889
|
},
|
|
103882
103890
|
"lens:preview_opened": {
|
|
103883
103891
|
round: COUNT,
|
|
@@ -105043,6 +105051,79 @@ function attachRegistryTelemetry(registry2) {
|
|
|
105043
105051
|
};
|
|
105044
105052
|
}
|
|
105045
105053
|
|
|
105054
|
+
// ../telemetry/src/crash-diagnostics.ts
|
|
105055
|
+
var import_node_crypto4 = require("node:crypto");
|
|
105056
|
+
var MAX_FRAMES = 8;
|
|
105057
|
+
var FRAME_RE = /^\s*at\s+(?:(.*?)\s+\()?(.+?):(\d+):(\d+)\)?\s*$/;
|
|
105058
|
+
function deidentifyPath(file2) {
|
|
105059
|
+
const unified = file2.replace(/\\/g, "/");
|
|
105060
|
+
if (unified.startsWith("node:")) return unified;
|
|
105061
|
+
const marker = "node_modules/";
|
|
105062
|
+
const idx = unified.lastIndexOf(marker);
|
|
105063
|
+
if (idx !== -1) return unified.slice(idx + marker.length);
|
|
105064
|
+
const slash = unified.lastIndexOf("/");
|
|
105065
|
+
return slash === -1 ? unified : unified.slice(slash + 1);
|
|
105066
|
+
}
|
|
105067
|
+
function normalizeFrame(line) {
|
|
105068
|
+
const m = FRAME_RE.exec(line);
|
|
105069
|
+
if (!m) return null;
|
|
105070
|
+
const fn = (m[1] ?? "").trim() || "?";
|
|
105071
|
+
const file2 = deidentifyPath(m[2]);
|
|
105072
|
+
return `${fn}@${file2}:${m[3]}`;
|
|
105073
|
+
}
|
|
105074
|
+
function stackOf(err) {
|
|
105075
|
+
if (err instanceof Error && typeof err.stack === "string") return err.stack;
|
|
105076
|
+
if (err && typeof err === "object") {
|
|
105077
|
+
const stack = err.stack;
|
|
105078
|
+
if (typeof stack === "string") return stack;
|
|
105079
|
+
}
|
|
105080
|
+
return void 0;
|
|
105081
|
+
}
|
|
105082
|
+
function fingerprintStack(err) {
|
|
105083
|
+
const stack = stackOf(err);
|
|
105084
|
+
if (!stack) return void 0;
|
|
105085
|
+
const frames = [];
|
|
105086
|
+
for (const line of stack.split("\n")) {
|
|
105087
|
+
const norm = normalizeFrame(line);
|
|
105088
|
+
if (norm) frames.push(norm);
|
|
105089
|
+
if (frames.length >= MAX_FRAMES) break;
|
|
105090
|
+
}
|
|
105091
|
+
if (frames.length === 0) return void 0;
|
|
105092
|
+
return (0, import_node_crypto4.createHash)("sha256").update(frames.join("\n")).digest("hex").slice(0, 16);
|
|
105093
|
+
}
|
|
105094
|
+
function safe(fn) {
|
|
105095
|
+
try {
|
|
105096
|
+
return fn();
|
|
105097
|
+
} catch {
|
|
105098
|
+
return void 0;
|
|
105099
|
+
}
|
|
105100
|
+
}
|
|
105101
|
+
function errorName(err) {
|
|
105102
|
+
if (err instanceof Error && typeof err.name === "string" && err.name) return err.name;
|
|
105103
|
+
if (err && typeof err === "object") {
|
|
105104
|
+
const ctor = err.constructor;
|
|
105105
|
+
if (ctor && typeof ctor.name === "string" && ctor.name) return ctor.name;
|
|
105106
|
+
}
|
|
105107
|
+
return void 0;
|
|
105108
|
+
}
|
|
105109
|
+
function syscallCode(err) {
|
|
105110
|
+
if (err && typeof err === "object") {
|
|
105111
|
+
const code = err.code;
|
|
105112
|
+
if (typeof code === "string" && code) return code;
|
|
105113
|
+
}
|
|
105114
|
+
return void 0;
|
|
105115
|
+
}
|
|
105116
|
+
function describeCrash(err, phase) {
|
|
105117
|
+
const diagnostics = { crash_phase: phase };
|
|
105118
|
+
const name = safe(() => errorName(err));
|
|
105119
|
+
if (name !== void 0) diagnostics.error_name = name;
|
|
105120
|
+
const syscall = safe(() => syscallCode(err));
|
|
105121
|
+
if (syscall !== void 0) diagnostics.error_syscall = syscall;
|
|
105122
|
+
const fingerprint = safe(() => fingerprintStack(err));
|
|
105123
|
+
if (fingerprint !== void 0) diagnostics.crash_fingerprint = fingerprint;
|
|
105124
|
+
return diagnostics;
|
|
105125
|
+
}
|
|
105126
|
+
|
|
105046
105127
|
// ../telemetry/src/index.ts
|
|
105047
105128
|
var SHORT_FLUSH_TIMEOUT_MS = 1500;
|
|
105048
105129
|
var state = null;
|
|
@@ -105133,7 +105214,7 @@ var import_node_fs10 = require("node:fs");
|
|
|
105133
105214
|
var import_promises9 = require("node:fs/promises");
|
|
105134
105215
|
var import_node_os8 = require("node:os");
|
|
105135
105216
|
var import_node_path9 = require("node:path");
|
|
105136
|
-
var
|
|
105217
|
+
var import_node_crypto6 = require("node:crypto");
|
|
105137
105218
|
init_src();
|
|
105138
105219
|
init_src();
|
|
105139
105220
|
|
|
@@ -113753,7 +113834,7 @@ function settleWithin(p, ms, signal) {
|
|
|
113753
113834
|
var fs9 = __toESM(require("node:fs/promises"));
|
|
113754
113835
|
var path9 = __toESM(require("node:path"));
|
|
113755
113836
|
var os4 = __toESM(require("node:os"));
|
|
113756
|
-
var
|
|
113837
|
+
var import_node_crypto5 = require("node:crypto");
|
|
113757
113838
|
var import_node_url = require("node:url");
|
|
113758
113839
|
var DEFAULT_SCREENSHOT_SCALE = 0.3;
|
|
113759
113840
|
var NO_IMAGE_ERROR = /no image to export/i;
|
|
@@ -113914,7 +113995,7 @@ function createMoqTransport(moq, options) {
|
|
|
113914
113995
|
const screenshotDir = path9.join(os4.tmpdir(), "argent-remote-screenshots");
|
|
113915
113996
|
const writeScreenshotToDisk = async (bytes) => {
|
|
113916
113997
|
await fs9.mkdir(screenshotDir, { recursive: true });
|
|
113917
|
-
const file2 = path9.join(screenshotDir, `${(0,
|
|
113998
|
+
const file2 = path9.join(screenshotDir, `${(0, import_node_crypto5.randomUUID)()}.png`);
|
|
113918
113999
|
await fs9.writeFile(file2, bytes);
|
|
113919
114000
|
return { url: (0, import_node_url.pathToFileURL)(file2).toString(), path: file2 };
|
|
113920
114001
|
};
|
|
@@ -119827,7 +119908,7 @@ function createHttpApp(registry2, options) {
|
|
|
119827
119908
|
});
|
|
119828
119909
|
return;
|
|
119829
119910
|
}
|
|
119830
|
-
const id = (0,
|
|
119911
|
+
const id = (0, import_node_crypto6.randomUUID)();
|
|
119831
119912
|
const tarPath = (0, import_node_path9.join)((0, import_node_os8.tmpdir)(), `argent-upload-${id}.tar.gz`);
|
|
119832
119913
|
const ws = (0, import_node_fs10.createWriteStream)(tarPath);
|
|
119833
119914
|
let received = 0;
|
|
@@ -119844,7 +119925,7 @@ function createHttpApp(registry2, options) {
|
|
|
119844
119925
|
});
|
|
119845
119926
|
if (!res.headersSent) res.status(status).json({ error: message });
|
|
119846
119927
|
};
|
|
119847
|
-
const digest = (0,
|
|
119928
|
+
const digest = (0, import_node_crypto6.createHash)("sha256");
|
|
119848
119929
|
req.on("data", (chunk) => {
|
|
119849
119930
|
if (released) return;
|
|
119850
119931
|
received += chunk.length;
|
|
@@ -120034,7 +120115,7 @@ function createHttpApp(registry2, options) {
|
|
|
120034
120115
|
});
|
|
120035
120116
|
const keepAlive = def.longRunning && options?.idleTimeoutMs && options.idleTimeoutMs > 0 ? setInterval(() => idleTimer.touch(), Math.max(1e3, IDLE_CHECK_INTERVAL_MS / 2)) : null;
|
|
120036
120117
|
if (keepAlive) keepAlive.unref?.();
|
|
120037
|
-
const toolInvocationId = (0,
|
|
120118
|
+
const toolInvocationId = (0, import_node_crypto6.randomUUID)();
|
|
120038
120119
|
let releaseInvocationMeta;
|
|
120039
120120
|
let recordChildInvocation;
|
|
120040
120121
|
const recordInvocation = options?.recordInvocation;
|
|
@@ -126938,14 +127019,14 @@ Returns { pressed, count }.`,
|
|
|
126938
127019
|
init_zod();
|
|
126939
127020
|
|
|
126940
127021
|
// ../tool-server/src/utils/sub-invoke.ts
|
|
126941
|
-
var
|
|
127022
|
+
var import_node_crypto7 = require("node:crypto");
|
|
126942
127023
|
async function invokeSubTool(registry2, ctx, toolId, args) {
|
|
126943
127024
|
const signal = ctx?.signal;
|
|
126944
127025
|
const recordChildInvocation = ctx?.recordChildInvocation;
|
|
126945
127026
|
if (!recordChildInvocation) {
|
|
126946
127027
|
return signal ? registry2.invokeTool(toolId, args, { signal }) : registry2.invokeTool(toolId, args);
|
|
126947
127028
|
}
|
|
126948
|
-
const toolInvocationId = (0,
|
|
127029
|
+
const toolInvocationId = (0, import_node_crypto7.randomUUID)();
|
|
126949
127030
|
const release = recordChildInvocation(toolInvocationId, args);
|
|
126950
127031
|
try {
|
|
126951
127032
|
return await registry2.invokeTool(toolId, args, {
|
|
@@ -132620,7 +132701,7 @@ function ownText(node) {
|
|
|
132620
132701
|
function isMeaningful(node, ownTextValue) {
|
|
132621
132702
|
return Boolean(node.attrs.role) || isInteractive2(node.attrs) || ownTextValue.length > 0 || hasAuthoredTestId(node.attrs);
|
|
132622
132703
|
}
|
|
132623
|
-
function
|
|
132704
|
+
function normalizeFrame2(attrs, screenW, screenH) {
|
|
132624
132705
|
const x = num(attrs, "x") ?? 0;
|
|
132625
132706
|
const y = num(attrs, "y") ?? 0;
|
|
132626
132707
|
const w = num(attrs, "width") ?? 0;
|
|
@@ -132658,7 +132739,7 @@ function convert(node, screenW, screenH) {
|
|
|
132658
132739
|
const keptChildren = label && childrenReconstructLabel(childNodes2, label) ? [] : childNodes2;
|
|
132659
132740
|
const out = {
|
|
132660
132741
|
role: attrs.role || "view",
|
|
132661
|
-
frame:
|
|
132742
|
+
frame: normalizeFrame2(attrs, screenW, screenH),
|
|
132662
132743
|
children: keptChildren
|
|
132663
132744
|
};
|
|
132664
132745
|
if (label) out.label = label;
|
|
@@ -144837,7 +144918,7 @@ function roleFromClassName(cn) {
|
|
|
144837
144918
|
if (/(ScrollView|TableView|CollectionView)/i.test(cn)) return "AXScrollArea";
|
|
144838
144919
|
return "AXGroup";
|
|
144839
144920
|
}
|
|
144840
|
-
function
|
|
144921
|
+
function normalizeFrame3(rect, screenW, screenH) {
|
|
144841
144922
|
if (screenW <= 0 || screenH <= 0) return null;
|
|
144842
144923
|
const x1 = clamp013(rect.x / screenW);
|
|
144843
144924
|
const y1 = clamp013(rect.y / screenH);
|
|
@@ -144862,7 +144943,7 @@ function projectIosNode(node, screenW, screenH) {
|
|
|
144862
144943
|
let frame = null;
|
|
144863
144944
|
if (!skip2 && (node.identifier || node.label || role !== "AXGroup" || node.firstResponder)) {
|
|
144864
144945
|
const leafRect = node.windowFrame ?? node.frame;
|
|
144865
|
-
frame = leafRect ?
|
|
144946
|
+
frame = leafRect ? normalizeFrame3(leafRect, screenW, screenH) : null;
|
|
144866
144947
|
if (frame) {
|
|
144867
144948
|
leaf = {
|
|
144868
144949
|
role,
|
|
@@ -148960,7 +149041,7 @@ var dismissUpdateTool = {
|
|
|
148960
149041
|
};
|
|
148961
149042
|
|
|
148962
149043
|
// ../tool-server/src/tools/screenshot-diff/index.ts
|
|
148963
|
-
var
|
|
149044
|
+
var import_node_crypto8 = __toESM(require("node:crypto"));
|
|
148964
149045
|
var import_promises13 = __toESM(require("fs/promises"));
|
|
148965
149046
|
var import_node_os11 = __toESM(require("node:os"));
|
|
148966
149047
|
var import_path9 = __toESM(require("path"));
|
|
@@ -149046,7 +149127,7 @@ async function resolveOutputDir(params, options) {
|
|
|
149046
149127
|
const dir = import_path9.default.join(
|
|
149047
149128
|
import_node_os11.default.tmpdir(),
|
|
149048
149129
|
"argent-screenshot-diff",
|
|
149049
|
-
|
|
149130
|
+
import_node_crypto8.default.randomBytes(6).toString("hex")
|
|
149050
149131
|
);
|
|
149051
149132
|
await import_promises13.default.mkdir(dir, { recursive: true });
|
|
149052
149133
|
return dir;
|
|
@@ -149123,7 +149204,7 @@ async function captureLiveInput(params) {
|
|
|
149123
149204
|
} catch {
|
|
149124
149205
|
capture = await params.captureScreenshot(params.api, params.rotation, params.signal);
|
|
149125
149206
|
}
|
|
149126
|
-
const suffix =
|
|
149207
|
+
const suffix = import_node_crypto8.default.randomBytes(4).toString("hex");
|
|
149127
149208
|
const destination = import_path9.default.join(params.outputDir, `${params.name}-${suffix}.live.png`);
|
|
149128
149209
|
await import_promises13.default.mkdir(params.outputDir, { recursive: true });
|
|
149129
149210
|
await import_promises13.default.copyFile(capture.path, destination);
|
|
@@ -149956,8 +150037,10 @@ function start() {
|
|
|
149956
150037
|
let finalExitCode = 0;
|
|
149957
150038
|
let shutdownReason = "signal";
|
|
149958
150039
|
let shutdownFailureSignal = null;
|
|
150040
|
+
let shutdownCrashDiagnostics = null;
|
|
150041
|
+
let listening = false;
|
|
149959
150042
|
let shutdown2 = null;
|
|
149960
|
-
function crashShutdown(label, detail, signal) {
|
|
150043
|
+
function crashShutdown(label, detail, signal, err) {
|
|
149961
150044
|
process.stderr.write(`[tool-server] ${label}: ${detail}
|
|
149962
150045
|
`);
|
|
149963
150046
|
if (crashing) return;
|
|
@@ -149965,6 +150048,11 @@ function start() {
|
|
|
149965
150048
|
shutdownReason = "crash";
|
|
149966
150049
|
finalExitCode = 1;
|
|
149967
150050
|
shutdownFailureSignal = signal;
|
|
150051
|
+
try {
|
|
150052
|
+
shutdownCrashDiagnostics = describeCrash(err, listening ? "serving" : "startup");
|
|
150053
|
+
} catch {
|
|
150054
|
+
shutdownCrashDiagnostics = { crash_phase: listening ? "serving" : "startup" };
|
|
150055
|
+
}
|
|
149968
150056
|
setTimeout(() => process.exit(1), PROCESS_TIMEOUT_MS);
|
|
149969
150057
|
if (shutdown2) {
|
|
149970
150058
|
shutdown2(1).catch(() => process.exit(1));
|
|
@@ -149973,12 +150061,17 @@ function start() {
|
|
|
149973
150061
|
}
|
|
149974
150062
|
}
|
|
149975
150063
|
process.on("uncaughtException", (err) => {
|
|
149976
|
-
crashShutdown(
|
|
149977
|
-
|
|
149978
|
-
|
|
149979
|
-
|
|
149980
|
-
|
|
149981
|
-
|
|
150064
|
+
crashShutdown(
|
|
150065
|
+
"Uncaught exception",
|
|
150066
|
+
String(err.stack ?? err),
|
|
150067
|
+
{
|
|
150068
|
+
error_code: FAILURE_CODES.TOOLSERVER_UNCAUGHT_EXCEPTION,
|
|
150069
|
+
failure_stage: "toolserver_uncaught_exception",
|
|
150070
|
+
failure_area: "tool_server",
|
|
150071
|
+
error_kind: "crash"
|
|
150072
|
+
},
|
|
150073
|
+
err
|
|
150074
|
+
);
|
|
149982
150075
|
});
|
|
149983
150076
|
process.on("unhandledRejection", (reason) => {
|
|
149984
150077
|
crashShutdown(
|
|
@@ -149989,7 +150082,8 @@ function start() {
|
|
|
149989
150082
|
failure_stage: "toolserver_unhandled_rejection",
|
|
149990
150083
|
failure_area: "tool_server",
|
|
149991
150084
|
error_kind: "crash"
|
|
149992
|
-
}
|
|
150085
|
+
},
|
|
150086
|
+
reason
|
|
149993
150087
|
);
|
|
149994
150088
|
});
|
|
149995
150089
|
const PORT = parseInt(process.env.ARGENT_PORT ?? DEFAULT_PORT, 10);
|
|
@@ -150133,7 +150227,8 @@ function start() {
|
|
|
150133
150227
|
reason: shutdownReason,
|
|
150134
150228
|
uptime_ms: Date.now() - serverStartedAt,
|
|
150135
150229
|
total_tool_calls: telemetryHandle.getTotalToolCalls(),
|
|
150136
|
-
...shutdownFailureSignal ?? {}
|
|
150230
|
+
...shutdownFailureSignal ?? {},
|
|
150231
|
+
...shutdownCrashDiagnostics ?? {}
|
|
150137
150232
|
});
|
|
150138
150233
|
telemetryHandle.detach();
|
|
150139
150234
|
await shutdown(1500);
|
|
@@ -150173,6 +150268,7 @@ function start() {
|
|
|
150173
150268
|
});
|
|
150174
150269
|
Promise.all([watcherReady, identityWarm]).then(() => {
|
|
150175
150270
|
server = httpHandle.app.listen(PORT, HOST, () => {
|
|
150271
|
+
listening = true;
|
|
150176
150272
|
const addr = server.address();
|
|
150177
150273
|
const boundPort = typeof addr === "object" && addr ? addr.port : PORT;
|
|
150178
150274
|
const origin = formatOrigin(HOST, boundPort);
|
|
@@ -150198,12 +150294,7 @@ function start() {
|
|
|
150198
150294
|
} catch {
|
|
150199
150295
|
}
|
|
150200
150296
|
});
|
|
150201
|
-
server.on("error",
|
|
150202
|
-
const code = err.code ? `${err.code}: ` : "";
|
|
150203
|
-
process.stderr.write(
|
|
150204
|
-
`[tool-server] Failed to bind ${HOST}:${PORT} \u2014 ${code}${err.message}
|
|
150205
|
-
`
|
|
150206
|
-
);
|
|
150297
|
+
server.on("error", (err) => {
|
|
150207
150298
|
eventLog?.error({
|
|
150208
150299
|
type: "tool_server.bind_failed",
|
|
150209
150300
|
msg: `Tool server failed to bind ${HOST}:${PORT}.`,
|
|
@@ -150213,16 +150304,21 @@ function start() {
|
|
|
150213
150304
|
error_code: FAILURE_CODES.ARGENT_UNCLASSIFIED_FAILURE,
|
|
150214
150305
|
failure_stage: "toolserver_bind",
|
|
150215
150306
|
failure_area: "tool_server",
|
|
150216
|
-
error_kind: "
|
|
150307
|
+
error_kind: "crash"
|
|
150217
150308
|
}
|
|
150218
150309
|
});
|
|
150219
|
-
|
|
150220
|
-
|
|
150221
|
-
|
|
150222
|
-
|
|
150223
|
-
|
|
150224
|
-
|
|
150225
|
-
|
|
150310
|
+
const code = err.code ? `${err.code}: ` : "";
|
|
150311
|
+
crashShutdown(
|
|
150312
|
+
`Failed to bind ${HOST}:${PORT}`,
|
|
150313
|
+
`${code}${err.message}`,
|
|
150314
|
+
{
|
|
150315
|
+
error_code: FAILURE_CODES.ARGENT_UNCLASSIFIED_FAILURE,
|
|
150316
|
+
failure_stage: "toolserver_bind",
|
|
150317
|
+
failure_area: "tool_server",
|
|
150318
|
+
error_kind: "crash"
|
|
150319
|
+
},
|
|
150320
|
+
err
|
|
150321
|
+
);
|
|
150226
150322
|
});
|
|
150227
150323
|
httpHandle.attachChromiumWebsockets(server);
|
|
150228
150324
|
}).catch((err) => {
|
|
@@ -150242,6 +150338,11 @@ function start() {
|
|
|
150242
150338
|
}
|
|
150243
150339
|
});
|
|
150244
150340
|
shutdownReason = "crash";
|
|
150341
|
+
try {
|
|
150342
|
+
shutdownCrashDiagnostics = describeCrash(err, "startup");
|
|
150343
|
+
} catch {
|
|
150344
|
+
shutdownCrashDiagnostics = { crash_phase: "startup" };
|
|
150345
|
+
}
|
|
150245
150346
|
await shutdown2?.(1);
|
|
150246
150347
|
})();
|
|
150247
150348
|
});
|