@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.
- package/bin/argent-android-devtools-0.1.0.apk +0 -0
- package/bin/argent-simulator-server.cjs +11 -3
- package/bin/darwin/ax-service +0 -0
- package/bin/darwin/resources/android/LICENSE.txt +186 -0
- package/bin/darwin/resources/android/README.md +11 -0
- package/bin/darwin/resources/android/arm64-v8a/libscreen-sharing-agent.so +0 -0
- package/bin/darwin/resources/android/armeabi-v7a/libscreen-sharing-agent.so +0 -0
- package/bin/darwin/resources/android/screen-sharing-agent.jar +0 -0
- package/bin/darwin/resources/android/x86_64/libscreen-sharing-agent.so +0 -0
- package/bin/darwin/simulator-server +0 -0
- package/bin/linux/resources/android/LICENSE.txt +186 -0
- package/bin/linux/resources/android/README.md +11 -0
- package/bin/linux/resources/android/arm64-v8a/libscreen-sharing-agent.so +0 -0
- package/bin/linux/resources/android/armeabi-v7a/libscreen-sharing-agent.so +0 -0
- package/bin/linux/resources/android/screen-sharing-agent.jar +0 -0
- package/bin/linux/resources/android/x86_64/libscreen-sharing-agent.so +0 -0
- package/bin/linux/simulator-server +0 -0
- package/bin/linux-arm64/resources/android/LICENSE.txt +186 -0
- package/bin/linux-arm64/resources/android/README.md +11 -0
- package/bin/linux-arm64/resources/android/arm64-v8a/libscreen-sharing-agent.so +0 -0
- package/bin/linux-arm64/resources/android/armeabi-v7a/libscreen-sharing-agent.so +0 -0
- package/bin/linux-arm64/resources/android/screen-sharing-agent.jar +0 -0
- package/bin/linux-arm64/resources/android/x86_64/libscreen-sharing-agent.so +0 -0
- package/bin/linux-arm64/simulator-server +0 -0
- package/dist/cli-cmds.mjs +139 -26
- package/dist/cli.js +0 -3
- package/dist/cli.js.map +1 -1
- package/dist/installer.mjs +111 -97
- package/dist/mcp-server.mjs +204 -62
- package/dist/preview-ui/index.html +4500 -645
- package/dist/preview-ui/theme.css +231 -0
- package/dist/preview-window/main.cjs +182 -0
- package/dist/tool-server.cjs +7719 -3531
- package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/libKeyboardPatch.dylib +0 -0
- package/dylibs/libNativeDevtoolsIos.dylib +0 -0
- package/package.json +4 -1
- package/rules/argent.md +8 -2
- package/scripts/postinstall.cjs +6 -2
- package/skills/argent-device-interact/SKILL.md +36 -28
- package/skills/argent-lens/SKILL.md +101 -0
- package/skills/argent-metro-debugger/SKILL.md +18 -16
- 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
|
-
|
|
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
|
|
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
|
|
517
|
-
const url = `${u.protocol}//${u.host}${
|
|
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(
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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 =
|
|
1129
|
-
var STATE_FILE2 =
|
|
1130
|
-
var LOG_FILE2 =
|
|
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
|
|
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 =
|
|
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(
|
|
1660
|
+
if (fs4.existsSync(path6.join(current, marker))) return current;
|
|
1548
1661
|
}
|
|
1549
|
-
const parent =
|
|
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
|
|
1670
|
+
return path6.join(home, ".argent", "flags.json");
|
|
1558
1671
|
}
|
|
1559
1672
|
const cwd = options.cwd ?? process.cwd();
|
|
1560
|
-
return
|
|
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 =
|
|
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(
|
|
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":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,uEAAuE;QACvE,oDAAoD;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAyB,CAAC;QACjF,OAAO,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAC5C,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC;AAEtC,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAEtC,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,mBAAmB,EAAE,IAAI,SAAS,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;UACJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;WA0BN,YAAY;CACtB,CAAC,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,mEAAmE;AACnE,KAAK,UAAU,aAAa;IAC1B,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|