@swmansion/argent 0.11.0 → 0.12.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.
Files changed (43) hide show
  1. package/bin/argent-android-devtools-0.1.0.apk +0 -0
  2. package/bin/argent-simulator-server.cjs +11 -3
  3. package/bin/darwin/ax-service +0 -0
  4. package/bin/darwin/resources/android/LICENSE.txt +186 -0
  5. package/bin/darwin/resources/android/README.md +11 -0
  6. package/bin/darwin/resources/android/arm64-v8a/libscreen-sharing-agent.so +0 -0
  7. package/bin/darwin/resources/android/armeabi-v7a/libscreen-sharing-agent.so +0 -0
  8. package/bin/darwin/resources/android/screen-sharing-agent.jar +0 -0
  9. package/bin/darwin/resources/android/x86_64/libscreen-sharing-agent.so +0 -0
  10. package/bin/darwin/simulator-server +0 -0
  11. package/bin/linux/resources/android/LICENSE.txt +186 -0
  12. package/bin/linux/resources/android/README.md +11 -0
  13. package/bin/linux/resources/android/arm64-v8a/libscreen-sharing-agent.so +0 -0
  14. package/bin/linux/resources/android/armeabi-v7a/libscreen-sharing-agent.so +0 -0
  15. package/bin/linux/resources/android/screen-sharing-agent.jar +0 -0
  16. package/bin/linux/resources/android/x86_64/libscreen-sharing-agent.so +0 -0
  17. package/bin/linux/simulator-server +0 -0
  18. package/bin/linux-arm64/resources/android/LICENSE.txt +186 -0
  19. package/bin/linux-arm64/resources/android/README.md +11 -0
  20. package/bin/linux-arm64/resources/android/arm64-v8a/libscreen-sharing-agent.so +0 -0
  21. package/bin/linux-arm64/resources/android/armeabi-v7a/libscreen-sharing-agent.so +0 -0
  22. package/bin/linux-arm64/resources/android/screen-sharing-agent.jar +0 -0
  23. package/bin/linux-arm64/resources/android/x86_64/libscreen-sharing-agent.so +0 -0
  24. package/bin/linux-arm64/simulator-server +0 -0
  25. package/dist/cli-cmds.mjs +139 -26
  26. package/dist/cli.js +0 -3
  27. package/dist/cli.js.map +1 -1
  28. package/dist/installer.mjs +111 -97
  29. package/dist/mcp-server.mjs +204 -62
  30. package/dist/preview-ui/index.html +4500 -645
  31. package/dist/preview-ui/theme.css +231 -0
  32. package/dist/preview-window/main.cjs +182 -0
  33. package/dist/tool-server.cjs +7719 -3531
  34. package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
  35. package/dylibs/libKeyboardPatch.dylib +0 -0
  36. package/dylibs/libNativeDevtoolsIos.dylib +0 -0
  37. package/package.json +4 -1
  38. package/rules/argent.md +8 -2
  39. package/scripts/postinstall.cjs +6 -2
  40. package/skills/argent-device-interact/SKILL.md +36 -28
  41. package/skills/argent-lens/SKILL.md +101 -0
  42. package/skills/argent-metro-debugger/SKILL.md +18 -16
  43. package/skills/argent-react-native-app-workflow/SKILL.md +8 -8
Binary file
package/dist/cli-cmds.mjs CHANGED
@@ -6,7 +6,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
8
  var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ try {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ } catch (e2) {
12
+ throw mod = 0, e2;
13
+ }
10
14
  };
11
15
  var __copyProps = (to, from, except, desc) => {
12
16
  if (from && typeof from === "object" || typeof from === "function") {
@@ -155,7 +159,7 @@ var require_src = __commonJS({
155
159
 
156
160
  // ../argent-cli/src/run.ts
157
161
  import * as fs2 from "node:fs";
158
- import * as path3 from "node:path";
162
+ import * as path4 from "node:path";
159
163
 
160
164
  // ../argent-tools-client/src/launcher.ts
161
165
  import * as net from "node:net";
@@ -513,12 +517,104 @@ function parseLinkTarget(input) {
513
517
  const host = u.hostname.startsWith("[") ? u.hostname.slice(1, -1) : u.hostname;
514
518
  if (!host) throw new Error(`URL "${input}" is missing a host.`);
515
519
  const port = u.port ? Number(u.port) : u.protocol === "https:" ? 443 : 80;
516
- const path6 = u.pathname === "/" ? "" : u.pathname.replace(/\/+$/, "");
517
- const url = `${u.protocol}//${u.host}${path6}`;
520
+ const path7 = u.pathname === "/" ? "" : u.pathname.replace(/\/+$/, "");
521
+ const url = `${u.protocol}//${u.host}${path7}`;
518
522
  const token = u.username ? decodeURIComponent(u.username) : void 0;
519
523
  return { url, host, port, ...token ? { token } : {} };
520
524
  }
521
525
 
526
+ // ../argent-tools-client/src/file-inputs.ts
527
+ import { mkdir as mkdir3, stat, writeFile as writeFile3 } from "node:fs/promises";
528
+ import { readFile as readFile3 } from "node:fs/promises";
529
+ import * as path3 from "node:path";
530
+ var FILE_INPUT_MARKER = "__argentFileInput";
531
+ var CLIENT_FILE_MARKER = "__argentClientFile";
532
+ var MAX_CONTENT_BYTES = 32 * 1024 * 1024;
533
+ function interpolatePath(template, args) {
534
+ let missing = false;
535
+ const out = template.replace(/\$\{([A-Za-z0-9_]+)\}/g, (_m, name) => {
536
+ const v2 = args[name];
537
+ if (typeof v2 !== "string" || v2.length === 0) {
538
+ missing = true;
539
+ return "";
540
+ }
541
+ return v2;
542
+ });
543
+ return missing ? null : out;
544
+ }
545
+ async function prepareFileInputs(specs, args, opts) {
546
+ if (!specs || specs.length === 0 || typeof args !== "object" || args === null) {
547
+ return args;
548
+ }
549
+ const record = args;
550
+ let out = null;
551
+ for (const spec of specs) {
552
+ if (spec.target in record && typeof record[spec.target] !== "string") continue;
553
+ const filePath = interpolatePath(spec.path, record);
554
+ if (filePath === null) continue;
555
+ if (spec.target in record && record[spec.target] !== filePath) continue;
556
+ const wire = { [FILE_INPUT_MARKER]: true, path: filePath };
557
+ if (spec.kind === "file") {
558
+ try {
559
+ const st2 = await stat(filePath);
560
+ if (st2.isFile()) {
561
+ wire.size = st2.size;
562
+ wire.mtimeMs = st2.mtimeMs;
563
+ if (opts.includeContent && st2.size <= MAX_CONTENT_BYTES) {
564
+ wire.content = (await readFile3(filePath)).toString("base64");
565
+ } else if (opts.includeContent) {
566
+ wire.contentOmitted = "size-limit";
567
+ }
568
+ }
569
+ } catch {
570
+ }
571
+ }
572
+ out = out ?? { ...record };
573
+ out[spec.target] = wire;
574
+ }
575
+ return out ?? args;
576
+ }
577
+ function isAllowedClientFilePath(p2) {
578
+ if (!path3.isAbsolute(p2)) return false;
579
+ const segments = p2.split(/[\\/]+/);
580
+ if (segments.includes("..")) return false;
581
+ const file = segments[segments.length - 1] ?? "";
582
+ if (!/^[A-Za-z0-9_-]+\.yaml$/.test(file)) return false;
583
+ return segments[segments.length - 3] === ".argent" && segments[segments.length - 2] === "flows";
584
+ }
585
+ function isClientFileDirective(value) {
586
+ return !!value && typeof value === "object" && value[CLIENT_FILE_MARKER] === true && typeof value.path === "string" && typeof value.content === "string";
587
+ }
588
+ async function applyClientFileDirectives(result) {
589
+ const written = [];
590
+ async function walk(value) {
591
+ if (isClientFileDirective(value)) {
592
+ if (!isAllowedClientFilePath(value.path)) return null;
593
+ try {
594
+ await mkdir3(path3.dirname(value.path), { recursive: true });
595
+ await writeFile3(value.path, value.content, "utf8");
596
+ written.push(value.path);
597
+ return value.path;
598
+ } catch {
599
+ return null;
600
+ }
601
+ }
602
+ if (Array.isArray(value)) {
603
+ return Promise.all(value.map(walk));
604
+ }
605
+ if (value && typeof value === "object") {
606
+ const out = {};
607
+ for (const [k2, v2] of Object.entries(value)) {
608
+ out[k2] = await walk(v2);
609
+ }
610
+ return out;
611
+ }
612
+ return value;
613
+ }
614
+ const rewritten = await walk(result);
615
+ return { result: rewritten, written };
616
+ }
617
+
522
618
  // ../argent-tools-client/src/tools-client.ts
523
619
  function authHeaders2(token) {
524
620
  return token ? { Authorization: `Bearer ${token}` } : {};
@@ -552,22 +648,31 @@ function createToolsClient(options = {}) {
552
648
  }
553
649
  async function callTool(name, args) {
554
650
  const { url, token } = await baseUrl();
651
+ let finalArgs = args;
652
+ const meta = await fetchTool(name);
653
+ if (meta?.fileInputs?.length) {
654
+ const { url: routedUrl } = await getResolvedToolsUrl();
655
+ finalArgs = await prepareFileInputs(meta.fileInputs, args ?? {}, {
656
+ includeContent: routedUrl !== null
657
+ });
658
+ }
555
659
  const res = await fetch(`${url}/tools/${encodeURIComponent(name)}`, {
556
660
  method: "POST",
557
661
  headers: { "Content-Type": "application/json", ...authHeaders2(token) },
558
- body: JSON.stringify(args ?? {})
662
+ body: JSON.stringify(finalArgs ?? {})
559
663
  });
560
664
  const json = await res.json().catch(() => ({}));
561
665
  if (!res.ok) {
562
666
  throw new Error(json.error ?? json.message ?? `${res.status} ${res.statusText}`);
563
667
  }
564
- return { data: json.data, note: json.note };
668
+ const { result: data } = await applyClientFileDirectives(json.data);
669
+ return { data, note: json.note };
565
670
  }
566
671
  return { fetchTools, fetchTool, callTool, baseUrl };
567
672
  }
568
673
 
569
674
  // ../argent-tools-client/src/artifacts.ts
570
- import { mkdir as mkdir3, readFile as readFile3, rm, stat, writeFile as writeFile3 } from "node:fs/promises";
675
+ import { mkdir as mkdir4, readFile as readFile4, rm, stat as stat2, writeFile as writeFile4 } from "node:fs/promises";
571
676
  import { tmpdir } from "node:os";
572
677
  import { basename, join as join3 } from "node:path";
573
678
  import { createHash } from "node:crypto";
@@ -606,7 +711,7 @@ function artifactDir(deviceId) {
606
711
  async function resolveLocalFile(handle) {
607
712
  if (!handle.hostPath) return null;
608
713
  try {
609
- const st2 = await stat(handle.hostPath);
714
+ const st2 = await stat2(handle.hostPath);
610
715
  if (handle.archive) {
611
716
  return st2.isDirectory() ? handle.hostPath : null;
612
717
  }
@@ -623,7 +728,7 @@ async function resolveLocalFile(handle) {
623
728
  async function downloadAndExtractArchive(handle, data, dir) {
624
729
  const tarball = join3(dir, `${sanitizeSegment(handle.filename)}.tar.gz`);
625
730
  try {
626
- await writeFile3(tarball, data);
731
+ await writeFile4(tarball, data);
627
732
  await execFileAsync("tar", ["-xzf", tarball, "-C", dir]);
628
733
  return join3(dir, handle.filename);
629
734
  } catch {
@@ -641,7 +746,7 @@ async function materializeArtifacts(result, ctx) {
641
746
  let dirReady = false;
642
747
  async function ensureDir() {
643
748
  if (!dirReady) {
644
- await mkdir3(dir, { recursive: true });
749
+ await mkdir4(dir, { recursive: true });
645
750
  dirReady = true;
646
751
  }
647
752
  }
@@ -650,7 +755,7 @@ async function materializeArtifacts(result, ctx) {
650
755
  const localPath = await resolveLocalFile(value);
651
756
  if (localPath) {
652
757
  if (value.mimeType.startsWith("image/")) {
653
- images.push({ localPath, data: await readFile3(localPath), mimeType: value.mimeType });
758
+ images.push({ localPath, data: await readFile4(localPath), mimeType: value.mimeType });
654
759
  }
655
760
  return localPath;
656
761
  }
@@ -666,7 +771,7 @@ async function materializeArtifacts(result, ctx) {
666
771
  }
667
772
  if (value.size > 0 && data.length !== value.size) return null;
668
773
  const downloadedPath = join3(dir, sanitizeSegment(value.filename));
669
- await writeFile3(downloadedPath, data);
774
+ await writeFile4(downloadedPath, data);
670
775
  if (value.mimeType.startsWith("image/")) {
671
776
  images.push({ localPath: downloadedPath, data, mimeType: value.mimeType });
672
777
  }
@@ -930,7 +1035,7 @@ async function fetchImageToFile(result, outPath) {
930
1035
  const res = await fetch(url);
931
1036
  if (!res.ok) throw new Error(`Failed to download image: ${res.status} ${res.statusText}`);
932
1037
  const buf = Buffer.from(await res.arrayBuffer());
933
- fs2.mkdirSync(path3.dirname(path3.resolve(outPath)), { recursive: true });
1038
+ fs2.mkdirSync(path4.dirname(path4.resolve(outPath)), { recursive: true });
934
1039
  fs2.writeFileSync(outPath, buf);
935
1040
  }
936
1041
  function renderResult(result, outputHint, images, json) {
@@ -1026,7 +1131,7 @@ Examples:
1026
1131
  if (outPath && meta.outputHint === "image") {
1027
1132
  try {
1028
1133
  if (images.length > 0) {
1029
- fs2.mkdirSync(path3.dirname(path3.resolve(outPath)), { recursive: true });
1134
+ fs2.mkdirSync(path4.dirname(path4.resolve(outPath)), { recursive: true });
1030
1135
  fs2.writeFileSync(outPath, images[0].data);
1031
1136
  } else if (result && typeof result === "object") {
1032
1137
  await fetchImageToFile(result, outPath);
@@ -1122,12 +1227,12 @@ Options:
1122
1227
 
1123
1228
  // ../argent-cli/src/server.ts
1124
1229
  import * as fs3 from "node:fs";
1125
- import * as path4 from "node:path";
1230
+ import * as path5 from "node:path";
1126
1231
  import { homedir as homedir3, networkInterfaces } from "node:os";
1127
1232
  import { spawn as spawn2 } from "node:child_process";
1128
- var STATE_DIR2 = path4.join(homedir3(), ".argent");
1129
- var STATE_FILE2 = path4.join(STATE_DIR2, "tool-server.json");
1130
- var LOG_FILE2 = path4.join(STATE_DIR2, "tool-server.log");
1233
+ var STATE_DIR2 = path5.join(homedir3(), ".argent");
1234
+ var STATE_FILE2 = path5.join(STATE_DIR2, "tool-server.json");
1235
+ var LOG_FILE2 = path5.join(STATE_DIR2, "tool-server.log");
1131
1236
  function readState2() {
1132
1237
  try {
1133
1238
  return JSON.parse(fs3.readFileSync(STATE_FILE2, "utf8"));
@@ -1527,12 +1632,20 @@ var import_picocolors = __toESM(require_picocolors(), 1);
1527
1632
 
1528
1633
  // ../configuration-core/src/flags.ts
1529
1634
  import * as fs4 from "node:fs";
1530
- import * as path5 from "node:path";
1635
+ import * as path6 from "node:path";
1531
1636
  import { homedir as homedir4 } from "node:os";
1532
1637
  var FLAG_REGISTRY = [
1533
1638
  {
1534
1639
  name: "disable-auto-screenshot",
1535
1640
  description: "Disable the automatic screenshot captured after interaction tools."
1641
+ },
1642
+ {
1643
+ name: "argent-lens",
1644
+ description: "Argent Lens \u2014 the propose_variant / await_user_selection tools and the Electron preview window for staging UI design variants and letting a human pick among them. Off by default while the feature is in development."
1645
+ },
1646
+ {
1647
+ name: "artifacts-list-endpoint",
1648
+ description: "Expose GET /artifacts for remote artifact inventory consumers."
1536
1649
  }
1537
1650
  ];
1538
1651
  function getFlagDefinition(name, registry = FLAG_REGISTRY) {
@@ -1540,13 +1653,13 @@ function getFlagDefinition(name, registry = FLAG_REGISTRY) {
1540
1653
  }
1541
1654
  var PROJECT_MARKERS = [".argent", ".git", "package.json"];
1542
1655
  function resolveProjectRoot(startDir) {
1543
- const initial = path5.resolve(startDir);
1656
+ const initial = path6.resolve(startDir);
1544
1657
  let current = initial;
1545
1658
  while (true) {
1546
1659
  for (const marker of PROJECT_MARKERS) {
1547
- if (fs4.existsSync(path5.join(current, marker))) return current;
1660
+ if (fs4.existsSync(path6.join(current, marker))) return current;
1548
1661
  }
1549
- const parent = path5.dirname(current);
1662
+ const parent = path6.dirname(current);
1550
1663
  if (parent === current) return initial;
1551
1664
  current = parent;
1552
1665
  }
@@ -1554,10 +1667,10 @@ function resolveProjectRoot(startDir) {
1554
1667
  function getFlagsPath(scope, options = {}) {
1555
1668
  const home = options.homeDir ?? homedir4();
1556
1669
  if (scope === "global") {
1557
- return path5.join(home, ".argent", "flags.json");
1670
+ return path6.join(home, ".argent", "flags.json");
1558
1671
  }
1559
1672
  const cwd = options.cwd ?? process.cwd();
1560
- return path5.join(resolveProjectRoot(cwd), ".argent", "flags.json");
1673
+ return path6.join(resolveProjectRoot(cwd), ".argent", "flags.json");
1561
1674
  }
1562
1675
  function readFlagsFile(filePath) {
1563
1676
  let raw;
@@ -1584,7 +1697,7 @@ function readFlagsFile(filePath) {
1584
1697
  function writeFlagsFile(filePath, flags2) {
1585
1698
  if (Object.keys(flags2).length === 0) {
1586
1699
  if (fs4.existsSync(filePath)) fs4.rmSync(filePath, { force: true });
1587
- const parent = path5.dirname(filePath);
1700
+ const parent = path6.dirname(filePath);
1588
1701
  try {
1589
1702
  if (fs4.existsSync(parent) && fs4.readdirSync(parent).length === 0) {
1590
1703
  fs4.rmdirSync(parent);
@@ -1593,7 +1706,7 @@ function writeFlagsFile(filePath, flags2) {
1593
1706
  }
1594
1707
  return;
1595
1708
  }
1596
- fs4.mkdirSync(path5.dirname(filePath), { recursive: true });
1709
+ fs4.mkdirSync(path6.dirname(filePath), { recursive: true });
1597
1710
  const tmp = `${filePath}.${process.pid}.tmp`;
1598
1711
  fs4.writeFileSync(tmp, JSON.stringify({ flags: flags2 }, null, 2) + "\n");
1599
1712
  fs4.renameSync(tmp, filePath);
package/dist/cli.js CHANGED
@@ -81,15 +81,12 @@ Package: ${PACKAGE_NAME}
81
81
  // scripts/bundle-tools.cjs and shipped alongside this dispatcher in dist/.
82
82
  // Typed against the workspace packages so calls are still checked.
83
83
  async function loadInstaller() {
84
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
84
  return (await import("./installer.mjs"));
86
85
  }
87
86
  async function loadMcp() {
88
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
87
  return (await import("./mcp-server.mjs"));
90
88
  }
91
89
  async function loadCli() {
92
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
90
  return (await import("./cli-cmds.mjs"));
94
91
  }
95
92
  async function main() {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}