@swmansion/argent 0.5.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.
Files changed (63) hide show
  1. package/LICENSE +195 -0
  2. package/README.md +103 -0
  3. package/agents/argent-environment-inspector.md +106 -0
  4. package/agents/references/quality-control-checklist.md +45 -0
  5. package/bin/ax-service +0 -0
  6. package/bin/simulator-server +0 -0
  7. package/dist/Argent.tracetemplate +0 -0
  8. package/dist/auto-screenshot.d.ts +22 -0
  9. package/dist/auto-screenshot.js +79 -0
  10. package/dist/auto-screenshot.js.map +1 -0
  11. package/dist/cli/constants.d.ts +6 -0
  12. package/dist/cli/constants.js +12 -0
  13. package/dist/cli/constants.js.map +1 -0
  14. package/dist/cli/init.d.ts +2 -0
  15. package/dist/cli/init.js +466 -0
  16. package/dist/cli/init.js.map +1 -0
  17. package/dist/cli/mcp-configs.d.ts +38 -0
  18. package/dist/cli/mcp-configs.js +724 -0
  19. package/dist/cli/mcp-configs.js.map +1 -0
  20. package/dist/cli/uninstall.d.ts +13 -0
  21. package/dist/cli/uninstall.js +389 -0
  22. package/dist/cli/uninstall.js.map +1 -0
  23. package/dist/cli/update.d.ts +1 -0
  24. package/dist/cli/update.js +126 -0
  25. package/dist/cli/update.js.map +1 -0
  26. package/dist/cli/utils.d.ts +27 -0
  27. package/dist/cli/utils.js +158 -0
  28. package/dist/cli/utils.js.map +1 -0
  29. package/dist/cli.d.ts +13 -0
  30. package/dist/cli.js +80 -0
  31. package/dist/cli.js.map +1 -0
  32. package/dist/content.d.ts +31 -0
  33. package/dist/content.js +59 -0
  34. package/dist/content.js.map +1 -0
  35. package/dist/launcher.d.ts +8 -0
  36. package/dist/launcher.js +183 -0
  37. package/dist/launcher.js.map +1 -0
  38. package/dist/mcp-server.d.ts +1 -0
  39. package/dist/mcp-server.js +228 -0
  40. package/dist/mcp-server.js.map +1 -0
  41. package/dist/tool-server.cjs +51288 -0
  42. package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
  43. package/dylibs/libKeyboardPatch.dylib +0 -0
  44. package/dylibs/libNativeDevtoolsIos.dylib +0 -0
  45. package/package.json +53 -0
  46. package/rules/argent.md +121 -0
  47. package/scripts/postinstall.cjs +34 -0
  48. package/skills/argent-create-flow/SKILL.md +213 -0
  49. package/skills/argent-ios-profiler/SKILL.md +103 -0
  50. package/skills/argent-metro-debugger/SKILL.md +117 -0
  51. package/skills/argent-metro-debugger/references/failure-scenarios.md +10 -0
  52. package/skills/argent-metro-debugger/references/source-maps.md +27 -0
  53. package/skills/argent-react-native-app-workflow/SKILL.md +237 -0
  54. package/skills/argent-react-native-optimization/SKILL.md +64 -0
  55. package/skills/argent-react-native-optimization/references/fix-reference.md +14 -0
  56. package/skills/argent-react-native-optimization/references/lint-rules.md +55 -0
  57. package/skills/argent-react-native-optimization/references/semantic-checklist.md +34 -0
  58. package/skills/argent-react-native-profiler/SKILL.md +160 -0
  59. package/skills/argent-react-native-profiler/references/diagnostic-tools.md +94 -0
  60. package/skills/argent-simulator-interact/SKILL.md +272 -0
  61. package/skills/argent-simulator-interact/references/gesture-examples.md +114 -0
  62. package/skills/argent-simulator-setup/SKILL.md +19 -0
  63. package/skills/argent-test-ui-flow/SKILL.md +84 -0
@@ -0,0 +1,158 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { execSync } from "node:child_process";
4
+ import { PACKAGE_NAME, NPM_REGISTRY } from "./constants.js";
5
+ import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
6
+ // ── Package root resolution ───────────────────────────────────────────────────
7
+ // tsc compiles src/cli/utils.ts -> dist/cli/utils.js.
8
+ // The package root (containing skills/, rules/, agents/) is two levels up.
9
+ // This is deterministic — tsc preserves directory structure, and npm packages
10
+ // keep their internal layout regardless of hoisting or monorepo setup.
11
+ /**
12
+ * Given the __dirname of a file inside dist/cli/, return the package root.
13
+ * Exported so it can be tested against simulated directory structures.
14
+ */
15
+ export function resolvePackageRoot(dirname) {
16
+ return path.resolve(dirname, "..", "..");
17
+ }
18
+ export const PACKAGE_ROOT = resolvePackageRoot(import.meta.dirname);
19
+ function resolveBundledDir(dirName) {
20
+ const packagedDir = path.join(PACKAGE_ROOT, dirName);
21
+ if (fs.existsSync(packagedDir))
22
+ return packagedDir;
23
+ // In the monorepo source tree, these assets live under packages/skills/.
24
+ return path.resolve(PACKAGE_ROOT, "..", "skills", dirName);
25
+ }
26
+ export const SKILLS_DIR = resolveBundledDir("skills");
27
+ export const RULES_DIR = resolveBundledDir("rules");
28
+ export const AGENTS_DIR = resolveBundledDir("agents");
29
+ const PROJECT_ROOT_MARKERS = [
30
+ ".mcp.json",
31
+ ".claude",
32
+ ".cursor",
33
+ ".vscode",
34
+ ".gemini",
35
+ ".codex",
36
+ ".agents",
37
+ ".zed",
38
+ "skills-lock.json",
39
+ ];
40
+ export function resolveProjectRoot(startDir) {
41
+ const initialDir = path.resolve(startDir);
42
+ let currentDir = initialDir;
43
+ while (true) {
44
+ if (PROJECT_ROOT_MARKERS.some((marker) => fs.existsSync(path.join(currentDir, marker)))) {
45
+ return currentDir;
46
+ }
47
+ if (fs.existsSync(path.join(currentDir, ".git"))) {
48
+ return currentDir;
49
+ }
50
+ const parentDir = path.dirname(currentDir);
51
+ if (parentDir === currentDir) {
52
+ return initialDir;
53
+ }
54
+ currentDir = parentDir;
55
+ }
56
+ }
57
+ // ── TOML helpers ─────────────────────────────────────────────────────────────
58
+ export function readToml(filePath) {
59
+ if (!fs.existsSync(filePath))
60
+ return {};
61
+ try {
62
+ return parseToml(fs.readFileSync(filePath, "utf8"));
63
+ }
64
+ catch {
65
+ return {};
66
+ }
67
+ }
68
+ export function writeToml(filePath, data) {
69
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
70
+ fs.writeFileSync(filePath, stringifyToml(data) + "\n");
71
+ }
72
+ // ── JSON helpers ──────────────────────────────────────────────────────────────
73
+ export function readJson(filePath) {
74
+ if (!fs.existsSync(filePath))
75
+ return {};
76
+ try {
77
+ return JSON.parse(fs.readFileSync(filePath, "utf8"));
78
+ }
79
+ catch {
80
+ return {};
81
+ }
82
+ }
83
+ export function writeJson(filePath, data) {
84
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
85
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n");
86
+ }
87
+ // ── Directory helpers ─────────────────────────────────────────────────────────
88
+ export function copyDir(src, dest) {
89
+ if (!fs.existsSync(src))
90
+ return false;
91
+ fs.mkdirSync(dest, { recursive: true });
92
+ fs.cpSync(src, dest, { recursive: true });
93
+ return true;
94
+ }
95
+ export function dirExists(p) {
96
+ try {
97
+ return fs.statSync(p).isDirectory();
98
+ }
99
+ catch {
100
+ return false;
101
+ }
102
+ }
103
+ // ── Version helpers ───────────────────────────────────────────────────────────
104
+ export function getInstalledVersion() {
105
+ try {
106
+ const pkgPath = path.join(PACKAGE_ROOT, "package.json");
107
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
108
+ return pkg.version ?? null;
109
+ }
110
+ catch {
111
+ return null;
112
+ }
113
+ }
114
+ export function getLatestVersion() {
115
+ const result = execSync(`npm view ${PACKAGE_NAME} version --registry ${NPM_REGISTRY}`, {
116
+ encoding: "utf8",
117
+ });
118
+ return result.trim();
119
+ }
120
+ export function formatShellCommand(cmd) {
121
+ const parts = [cmd.bin, ...cmd.args.map((a) => (a.includes(" ") ? `"${a}"` : a))];
122
+ return parts.join(" ");
123
+ }
124
+ export function detectPackageManager() {
125
+ const agent = process.env.npm_config_user_agent ?? "";
126
+ if (agent.startsWith("yarn"))
127
+ return "yarn";
128
+ if (agent.startsWith("pnpm"))
129
+ return "pnpm";
130
+ if (agent.startsWith("bun"))
131
+ return "bun";
132
+ return "npm";
133
+ }
134
+ export function globalInstallCommand(pm, pkg) {
135
+ switch (pm) {
136
+ case "yarn":
137
+ return { bin: "yarn", args: ["global", "add", pkg] };
138
+ case "pnpm":
139
+ return { bin: "pnpm", args: ["add", "-g", pkg] };
140
+ case "bun":
141
+ return { bin: "bun", args: ["add", "-g", pkg] };
142
+ default:
143
+ return { bin: "npm", args: ["install", "-g", pkg] };
144
+ }
145
+ }
146
+ export function globalUninstallCommand(pm, pkg) {
147
+ switch (pm) {
148
+ case "yarn":
149
+ return { bin: "yarn", args: ["global", "remove", pkg] };
150
+ case "pnpm":
151
+ return { bin: "pnpm", args: ["remove", "-g", pkg] };
152
+ case "bun":
153
+ return { bin: "bun", args: ["remove", "-g", pkg] };
154
+ default:
155
+ return { bin: "npm", args: ["uninstall", "-g", pkg] };
156
+ }
157
+ }
158
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * argent CLI — globally-installed entry point.
4
+ *
5
+ * Usage:
6
+ * argent mcp Start the MCP stdio server (used by editors)
7
+ * argent init Set up argent in a workspace (MCP + skills + rules)
8
+ * argent install Alias for init
9
+ * argent update Check for updates, refresh configuration
10
+ * argent uninstall Remove argent from a workspace
11
+ * argent remove Alias for uninstall
12
+ */
13
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * argent CLI — globally-installed entry point.
4
+ *
5
+ * Usage:
6
+ * argent mcp Start the MCP stdio server (used by editors)
7
+ * argent init Set up argent in a workspace (MCP + skills + rules)
8
+ * argent install Alias for init
9
+ * argent update Check for updates, refresh configuration
10
+ * argent uninstall Remove argent from a workspace
11
+ * argent remove Alias for uninstall
12
+ */
13
+ import { PACKAGE_NAME } from "./cli/constants.js";
14
+ import { getInstalledVersion } from "./cli/utils.js";
15
+ const [, , command, ...rest] = process.argv;
16
+ const isMcpServer = command === "mcp";
17
+ process.on("uncaughtException", (err) => {
18
+ process.stderr.write(`[argent] Uncaught exception: ${err.stack ?? err}\n`);
19
+ if (!isMcpServer)
20
+ process.exit(1);
21
+ });
22
+ process.on("unhandledRejection", (reason) => {
23
+ process.stderr.write(`[argent] Unhandled rejection: ${reason instanceof Error ? (reason.stack ?? reason.message) : reason}\n`);
24
+ if (!isMcpServer)
25
+ process.exit(1);
26
+ });
27
+ function printHelp() {
28
+ const version = getInstalledVersion() ?? "unknown";
29
+ console.log(`
30
+ argent v${version}
31
+
32
+ Usage: argent <command> [options]
33
+
34
+ Commands:
35
+ mcp Start the MCP stdio server (used by editors)
36
+ init Initialize argent in the current workspace (MCP server + skills)
37
+ install Alias for init
38
+ update Check for updates and refresh configuration
39
+ uninstall Remove argent configuration from the workspace
40
+ remove Alias for uninstall
41
+
42
+ Options:
43
+ --help, -h Show this help message
44
+ --version, -v Show version
45
+
46
+ Run \`argent <command> --help\` for command-specific help.
47
+
48
+ Package: ${PACKAGE_NAME}
49
+ `);
50
+ }
51
+ async function main() {
52
+ switch (command) {
53
+ case "mcp":
54
+ return (await import("./mcp-server.js")).startMcpServer();
55
+ case "init":
56
+ case "install":
57
+ return (await import("./cli/init.js")).init(rest);
58
+ case "update":
59
+ return (await import("./cli/update.js")).update(rest);
60
+ case "uninstall":
61
+ case "remove":
62
+ return (await import("./cli/uninstall.js")).uninstall(rest);
63
+ case "--version":
64
+ case "-v":
65
+ console.log(getInstalledVersion() ?? "unknown");
66
+ return;
67
+ case "--help":
68
+ case "-h":
69
+ default:
70
+ printHelp();
71
+ if (command && command !== "--help" && command !== "-h") {
72
+ process.exit(1);
73
+ }
74
+ }
75
+ }
76
+ main().catch((err) => {
77
+ console.error(err);
78
+ process.exit(1);
79
+ });
80
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAC5C,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC;AAEtC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iCAAiC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CACzG,CAAC;IACF,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,mBAAmB,EAAE,IAAI,SAAS,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;UACJ,OAAO;;;;;;;;;;;;;;;;;;WAkBN,YAAY;CACtB,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAC5D,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,KAAK,QAAQ;YACX,OAAO,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,KAAK,WAAW,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,SAAS,CAAC,CAAC;YAChD,OAAO;QACT,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV;YACE,SAAS,EAAE,CAAC;YACZ,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;IACL,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Convert raw tool results into MCP content blocks (text / image).
3
+ *
4
+ * Extracted so it can be tested independently of the MCP server wiring.
5
+ */
6
+ export type ContentBlock = {
7
+ type: "text";
8
+ text: string;
9
+ } | {
10
+ type: "image";
11
+ data: string;
12
+ mimeType: string;
13
+ };
14
+ export declare function toMcpContent(result: unknown, outputHint?: string): Promise<ContentBlock[]>;
15
+ export type FlowExecuteResult = {
16
+ flow: string;
17
+ executionPrerequisite?: string;
18
+ steps: {
19
+ kind: string;
20
+ tool?: string;
21
+ message?: string;
22
+ result?: unknown;
23
+ outputHint?: string;
24
+ error?: string;
25
+ }[];
26
+ };
27
+ /**
28
+ * Unpack flow-execute's structured step results into MCP content blocks.
29
+ * Each step carries its own outputHint so toMcpContent handles images correctly.
30
+ */
31
+ export declare function flowRunToMcpContent(result: FlowExecuteResult): Promise<ContentBlock[]>;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Convert raw tool results into MCP content blocks (text / image).
3
+ *
4
+ * Extracted so it can be tested independently of the MCP server wiring.
5
+ */
6
+ export async function toMcpContent(result, outputHint) {
7
+ if (outputHint === "image" && result && typeof result === "object" && "url" in result) {
8
+ const imgRes = await fetch(result.url);
9
+ const buf = Buffer.from(await imgRes.arrayBuffer());
10
+ const filePath = result.path ?? "";
11
+ return [
12
+ {
13
+ type: "image",
14
+ data: buf.toString("base64"),
15
+ mimeType: "image/png",
16
+ },
17
+ { type: "text", text: `Saved: ${filePath}` },
18
+ ];
19
+ }
20
+ return [{ type: "text", text: JSON.stringify(result, null, 2) }];
21
+ }
22
+ /**
23
+ * Unpack flow-execute's structured step results into MCP content blocks.
24
+ * Each step carries its own outputHint so toMcpContent handles images correctly.
25
+ */
26
+ export async function flowRunToMcpContent(result) {
27
+ const blocks = [];
28
+ if (result.executionPrerequisite) {
29
+ blocks.push({
30
+ type: "text",
31
+ text: `Prerequisite: ${result.executionPrerequisite}`,
32
+ });
33
+ }
34
+ blocks.push({
35
+ type: "text",
36
+ text: `Running flow "${result.flow}" (${result.steps.length} steps)`,
37
+ });
38
+ for (let i = 0; i < result.steps.length; i++) {
39
+ const step = result.steps[i];
40
+ const num = i + 1;
41
+ if (step.kind === "echo") {
42
+ blocks.push({ type: "text", text: `[${num}] ${step.message}` });
43
+ }
44
+ else if ("error" in step && step.error) {
45
+ blocks.push({
46
+ type: "text",
47
+ text: `[${num}] ${step.tool} ERROR: ${step.error}`,
48
+ });
49
+ }
50
+ else {
51
+ blocks.push({ type: "text", text: `[${num}] ${step.tool}` });
52
+ const stepContent = await toMcpContent(step.result, step.outputHint);
53
+ blocks.push(...stepContent);
54
+ }
55
+ }
56
+ blocks.push({ type: "text", text: `Flow "${result.flow}" complete.` });
57
+ return blocks;
58
+ }
59
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAe,EAAE,UAAmB;IACrE,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAE,MAA0B,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAI,MAA4B,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1D,OAAO;YACL;gBACE,IAAI,EAAE,OAAgB;gBACtB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5B,QAAQ,EAAE,WAAoB;aAC/B;YACD,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,QAAQ,EAAE,EAAE;SACtD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAeD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAyB;IACjE,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,iBAAiB,MAAM,CAAC,qBAAqB,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,iBAAiB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS;KACrE,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const BUNDLED_RUNTIME_PATHS: {
2
+ bundlePath: string;
3
+ simulatorServerDir: string;
4
+ nativeDevtoolsDir: string;
5
+ };
6
+ export declare function buildToolsServerEnv(port: number, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
7
+ export declare function killToolServer(): Promise<void>;
8
+ export declare function ensureToolsServer(): Promise<string>;
@@ -0,0 +1,183 @@
1
+ import * as net from "node:net";
2
+ import * as fs from "node:fs";
3
+ import * as path from "node:path";
4
+ import * as readline from "node:readline";
5
+ import { homedir } from "node:os";
6
+ import { spawn } from "node:child_process";
7
+ import { mkdir, writeFile, readFile, unlink } from "node:fs/promises";
8
+ const STATE_DIR = path.join(homedir(), ".argent");
9
+ const STATE_FILE = path.join(STATE_DIR, "tool-server.json");
10
+ const LOG_FILE = path.join(STATE_DIR, "tool-server.log");
11
+ // __dirname in ESM (compiled from TS) will be dist/
12
+ export const BUNDLED_RUNTIME_PATHS = {
13
+ bundlePath: path.join(import.meta.dirname, "tool-server.cjs"),
14
+ simulatorServerDir: path.join(import.meta.dirname, "..", "bin"),
15
+ nativeDevtoolsDir: path.join(import.meta.dirname, "..", "dylibs"),
16
+ };
17
+ const BUNDLE_PATH = BUNDLED_RUNTIME_PATHS.bundlePath;
18
+ export function buildToolsServerEnv(port, baseEnv = process.env) {
19
+ return {
20
+ ...baseEnv,
21
+ PORT: String(port),
22
+ ARGENT_SIMULATOR_SERVER_DIR: BUNDLED_RUNTIME_PATHS.simulatorServerDir,
23
+ ARGENT_NATIVE_DEVTOOLS_DIR: BUNDLED_RUNTIME_PATHS.nativeDevtoolsDir,
24
+ };
25
+ }
26
+ function findFreePort() {
27
+ return new Promise((resolve, reject) => {
28
+ const srv = net.createServer();
29
+ srv.listen(0, "127.0.0.1", () => {
30
+ const addr = srv.address();
31
+ if (!addr || typeof addr !== "object") {
32
+ srv.close(() => reject(new Error("Could not bind to find free port")));
33
+ return;
34
+ }
35
+ const port = addr.port;
36
+ srv.close((err) => {
37
+ if (err)
38
+ reject(err);
39
+ else
40
+ resolve(port);
41
+ });
42
+ });
43
+ srv.on("error", reject);
44
+ });
45
+ }
46
+ function isProcessAlive(pid) {
47
+ try {
48
+ process.kill(pid, 0);
49
+ return true;
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ async function isHealthy(port) {
56
+ const controller = new AbortController();
57
+ const timer = setTimeout(() => controller.abort(), 2000);
58
+ try {
59
+ const res = await fetch(`http://127.0.0.1:${port}/tools`, {
60
+ signal: controller.signal,
61
+ });
62
+ return res.ok;
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ finally {
68
+ clearTimeout(timer);
69
+ }
70
+ }
71
+ function spawnToolsServer(port) {
72
+ return new Promise((resolve, reject) => {
73
+ let logFd;
74
+ try {
75
+ fs.mkdirSync(STATE_DIR, { recursive: true });
76
+ logFd = fs.openSync(LOG_FILE, "a");
77
+ }
78
+ catch {
79
+ logFd = fs.openSync("/dev/null", "w");
80
+ }
81
+ const child = spawn("node", [BUNDLE_PATH, "start"], {
82
+ detached: true,
83
+ stdio: ["ignore", "pipe", logFd],
84
+ env: buildToolsServerEnv(port),
85
+ });
86
+ child.unref();
87
+ const pid = child.pid;
88
+ if (!pid) {
89
+ reject(new Error("Failed to get PID of spawned tools server"));
90
+ return;
91
+ }
92
+ let settled = false;
93
+ const settle = (fn) => {
94
+ if (settled)
95
+ return;
96
+ settled = true;
97
+ fn();
98
+ };
99
+ const rl = readline.createInterface({ input: child.stdout });
100
+ rl.on("line", (line) => {
101
+ // Match: "Tools server listening on http://127.0.0.1:<port>"
102
+ const match = line.match(/Tools server listening on http:\/\/127\.0\.0\.1:(\d+)/);
103
+ if (match) {
104
+ const actualPort = parseInt(match[1], 10);
105
+ rl.close();
106
+ // Resume stdout so the pipe stays open and the child's console.log calls
107
+ // don't fail with EPIPE once the readline interface stops consuming it.
108
+ child.stdout?.resume();
109
+ settle(() => resolve({ port: actualPort, pid }));
110
+ }
111
+ });
112
+ child.on("error", (err) => {
113
+ rl.close();
114
+ settle(() => reject(err));
115
+ });
116
+ child.on("exit", (code) => {
117
+ rl.close();
118
+ settle(() => reject(new Error(`tool-server exited with code ${code} before becoming ready`)));
119
+ });
120
+ const timer = setTimeout(() => {
121
+ rl.close();
122
+ settle(() => reject(new Error("Timed out waiting for tools server to become ready")));
123
+ }, 15_000);
124
+ rl.on("close", () => clearTimeout(timer));
125
+ });
126
+ }
127
+ async function readState() {
128
+ try {
129
+ const raw = await readFile(STATE_FILE, "utf8");
130
+ return JSON.parse(raw);
131
+ }
132
+ catch {
133
+ return null;
134
+ }
135
+ }
136
+ async function writeState(state) {
137
+ await mkdir(STATE_DIR, { recursive: true });
138
+ await writeFile(STATE_FILE, JSON.stringify(state, null, 2) + "\n", "utf8");
139
+ }
140
+ async function clearState() {
141
+ try {
142
+ await unlink(STATE_FILE);
143
+ }
144
+ catch {
145
+ // already gone
146
+ }
147
+ }
148
+ export async function killToolServer() {
149
+ const state = await readState();
150
+ if (!state)
151
+ return;
152
+ try {
153
+ process.kill(state.pid, "SIGTERM");
154
+ }
155
+ catch {
156
+ // already gone
157
+ }
158
+ await clearState();
159
+ }
160
+ export async function ensureToolsServer() {
161
+ const state = await readState();
162
+ if (state) {
163
+ const alive = isProcessAlive(state.pid);
164
+ if (alive) {
165
+ const healthy = await isHealthy(state.port);
166
+ if (healthy) {
167
+ return `http://127.0.0.1:${state.port}`;
168
+ }
169
+ }
170
+ await clearState();
171
+ }
172
+ // Spawn a new server
173
+ const port = await findFreePort();
174
+ const { port: actualPort, pid } = await spawnToolsServer(port);
175
+ await writeState({
176
+ port: actualPort,
177
+ pid,
178
+ startedAt: new Date().toISOString(),
179
+ bundlePath: BUNDLE_PATH,
180
+ });
181
+ return `http://127.0.0.1:${actualPort}`;
182
+ }
183
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function startMcpServer(): Promise<void>;