@slashfi/agents-sdk 0.69.8 → 0.69.9

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.
@@ -2,8 +2,8 @@
2
2
  * adk check / adk run
3
3
  *
4
4
  * Type-checks (and optionally runs) TypeScript files with auto-injected
5
- * ADK agent type augmentation. No user config needed the augmentation
6
- * import is prepended automatically.
5
+ * ADK agent type augmentation. Writes a temp file next to the original
6
+ * so module resolution works naturally from node_modules.
7
7
  *
8
8
  * Usage:
9
9
  * adk check <file> Type-check a file
@@ -12,13 +12,9 @@
12
12
  * adk run -e "<code>" Type-check + execute inline code
13
13
  */
14
14
  export interface CheckOptions {
15
- /** File to check, or undefined if using inline code */
16
15
  file?: string;
17
- /** Inline code (-e flag) */
18
16
  code?: string;
19
- /** Also execute after type-check (adk run) */
20
17
  run?: boolean;
21
- /** ADK config dir (default: ~/.adk) */
22
18
  configDir?: string;
23
19
  }
24
20
  export declare function adkCheck(opts: CheckOptions): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"adk-check.d.ts","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmG7F"}
1
+ {"version":3,"file":"adk-check.d.ts","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqE7F"}
package/dist/adk-check.js CHANGED
@@ -2,8 +2,8 @@
2
2
  * adk check / adk run
3
3
  *
4
4
  * Type-checks (and optionally runs) TypeScript files with auto-injected
5
- * ADK agent type augmentation. No user config needed the augmentation
6
- * import is prepended automatically.
5
+ * ADK agent type augmentation. Writes a temp file next to the original
6
+ * so module resolution works naturally from node_modules.
7
7
  *
8
8
  * Usage:
9
9
  * adk check <file> Type-check a file
@@ -11,10 +11,9 @@
11
11
  * adk run <file> Type-check + execute
12
12
  * adk run -e "<code>" Type-check + execute inline code
13
13
  */
14
- import { join, dirname, resolve } from "node:path";
14
+ import { join, dirname, basename, resolve } from "node:path";
15
15
  import { homedir } from "node:os";
16
- import { existsSync, mkdtempSync, writeFileSync, readFileSync, rmSync } from "node:fs";
17
- import { tmpdir } from "node:os";
16
+ import { existsSync, writeFileSync, readFileSync, unlinkSync } from "node:fs";
18
17
  import { spawnSync } from "node:child_process";
19
18
  export async function adkCheck(opts) {
20
19
  const configDir = opts.configDir ?? process.env.ADK_CONFIG_DIR ?? join(homedir(), ".adk");
@@ -23,19 +22,18 @@ export async function adkCheck(opts) {
23
22
  if (!hasTypes) {
24
23
  console.error("\x1b[33m\u26a0\x1b[0m No adk.d.ts found. Run `adk sync` first to generate agent types.");
25
24
  }
26
- // Resolve input
27
- let sourceFile; // the file tsgo actually checks
28
- let originalFile; // the user's original file (for `adk run`)
29
- let tmpDir = null;
30
- tmpDir = mkdtempSync(join(tmpdir(), "adk-"));
25
+ const preamble = hasTypes
26
+ ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
27
+ : "";
28
+ let checkFile;
29
+ let originalFile;
30
+ let cwd;
31
31
  if (opts.code) {
32
- // Inline code: write to temp file with augmentation preamble
33
- sourceFile = join(tmpDir, "__adk_inline.ts");
34
- const preamble = hasTypes
35
- ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
36
- : "";
37
- writeFileSync(sourceFile, preamble + opts.code);
38
- originalFile = sourceFile;
32
+ // Inline: write temp file in cwd
33
+ cwd = process.cwd();
34
+ checkFile = join(cwd, "__adk_inline.ts");
35
+ writeFileSync(checkFile, preamble + opts.code);
36
+ originalFile = checkFile; // for run, execute the same file (bun ignores types)
39
37
  }
40
38
  else if (opts.file) {
41
39
  originalFile = resolve(opts.file);
@@ -43,83 +41,50 @@ export async function adkCheck(opts) {
43
41
  console.error(`File not found: ${originalFile}`);
44
42
  return { ok: false, exitCode: 1 };
45
43
  }
46
- // Read original file and prepend the augmentation import
47
- const original = readFileSync(originalFile, "utf-8");
48
- sourceFile = join(tmpDir, "__adk_check.ts");
49
- const preamble = hasTypes
50
- ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
51
- : "";
52
- writeFileSync(sourceFile, preamble + original);
44
+ // Write temp file next to original so module resolution works
45
+ cwd = dirname(originalFile);
46
+ const name = `__adk_check_${basename(originalFile)}`;
47
+ checkFile = join(cwd, name);
48
+ writeFileSync(checkFile, preamble + readFileSync(originalFile, "utf-8"));
53
49
  }
54
50
  else {
55
- console.error("Usage: adk check <file> | adk check -e \"<code>\"");
51
+ console.error('Usage: adk check <file> | adk check -e "<code>"');
56
52
  return { ok: false, exitCode: 1 };
57
53
  }
58
- // Generate a tsconfig for the check
59
- const cwd = opts.file ? dirname(resolve(opts.file)) : process.cwd();
60
- const tsconfig = {
61
- compilerOptions: {
62
- target: "ES2022",
63
- module: "ESNext",
64
- moduleResolution: "bundler",
65
- esModuleInterop: true,
66
- strict: true,
67
- noEmit: true,
68
- skipLibCheck: true,
69
- types: ["node"],
70
- baseUrl: cwd,
71
- paths: {
72
- // Ensure bare specifiers resolve from the user's project
73
- "*": [join(cwd, "node_modules", "*"), "*"],
74
- },
75
- },
76
- include: [sourceFile],
77
- };
78
- const tsconfigPath = join(tmpDir, "tsconfig.adk.json");
79
- writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 2));
80
- // Find type checker: prefer tsgo, fall back to tsc
54
+ // Find tsgo or tsc
81
55
  const checker = findTypeChecker();
82
- // Run type-check
83
- const checkResult = spawnSync(checker.cmd, [...checker.args, "--project", tsconfigPath], {
84
- cwd,
85
- stdio: "inherit",
86
- env: process.env,
87
- });
88
- if (checkResult.status !== 0) {
89
- cleanup(tmpDir);
90
- return { ok: false, exitCode: checkResult.status ?? 1 };
56
+ // Type-check
57
+ const result = spawnSync(checker.cmd, [...checker.args, "--noEmit", checkFile], { cwd, stdio: "inherit", env: process.env });
58
+ // Clean up temp file
59
+ try {
60
+ unlinkSync(checkFile);
61
+ }
62
+ catch { }
63
+ if (result.status !== 0) {
64
+ return { ok: false, exitCode: result.status ?? 1 };
91
65
  }
92
66
  console.error("\x1b[32m\u2713\x1b[0m Type check passed");
93
- // If run mode, execute the original file with bun
67
+ // Run mode: execute original file with bun
94
68
  if (opts.run) {
95
69
  const runResult = spawnSync("bun", ["run", originalFile], {
96
70
  cwd,
97
71
  stdio: "inherit",
98
72
  env: process.env,
99
73
  });
100
- cleanup(tmpDir);
101
74
  return { ok: runResult.status === 0, exitCode: runResult.status ?? 1 };
102
75
  }
103
- cleanup(tmpDir);
104
76
  return { ok: true, exitCode: 0 };
105
77
  }
106
78
  function findTypeChecker() {
107
79
  // Prefer tsgo
108
- const tsgoResult = spawnSync("which", ["tsgo"], { stdio: "pipe" });
109
- if (tsgoResult.status === 0)
80
+ const tsgo = spawnSync("which", ["tsgo"], { stdio: "pipe" });
81
+ if (tsgo.status === 0)
110
82
  return { cmd: "tsgo", args: [] };
111
- // Fall back to npx tsgo, then npx tsc
112
- const npxTsgo = spawnSync("npx", ["tsgo", "--version"], { stdio: "pipe" });
83
+ // npx tsgo
84
+ const npxTsgo = spawnSync("npx", ["tsgo", "--version"], { stdio: "pipe", timeout: 5000 });
113
85
  if (npxTsgo.status === 0)
114
86
  return { cmd: "npx", args: ["tsgo"] };
87
+ // Fallback: npx tsc
115
88
  return { cmd: "npx", args: ["tsc"] };
116
89
  }
117
- function cleanup(tmpDir) {
118
- if (tmpDir) {
119
- try {
120
- rmSync(tmpDir, { recursive: true });
121
- }
122
- catch { }
123
- }
124
- }
125
90
  //# sourceMappingURL=adk-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  * adk check / adk run
4
4
  *
5
5
  * Type-checks (and optionally runs) TypeScript files with auto-injected
6
- * ADK agent type augmentation. No user config needed the augmentation
7
- * import is prepended automatically.
6
+ * ADK agent type augmentation. Writes a temp file next to the original
7
+ * so module resolution works naturally from node_modules.
8
8
  *
9
9
  * Usage:
10
10
  * adk check <file> Type-check a file
@@ -17,7 +17,6 @@ exports.adkCheck = adkCheck;
17
17
  const node_path_1 = require("node:path");
18
18
  const node_os_1 = require("node:os");
19
19
  const node_fs_1 = require("node:fs");
20
- const node_os_2 = require("node:os");
21
20
  const node_child_process_1 = require("node:child_process");
22
21
  async function adkCheck(opts) {
23
22
  const configDir = opts.configDir ?? process.env.ADK_CONFIG_DIR ?? (0, node_path_1.join)((0, node_os_1.homedir)(), ".adk");
@@ -26,19 +25,18 @@ async function adkCheck(opts) {
26
25
  if (!hasTypes) {
27
26
  console.error("\x1b[33m\u26a0\x1b[0m No adk.d.ts found. Run `adk sync` first to generate agent types.");
28
27
  }
29
- // Resolve input
30
- let sourceFile; // the file tsgo actually checks
31
- let originalFile; // the user's original file (for `adk run`)
32
- let tmpDir = null;
33
- tmpDir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_2.tmpdir)(), "adk-"));
28
+ const preamble = hasTypes
29
+ ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
30
+ : "";
31
+ let checkFile;
32
+ let originalFile;
33
+ let cwd;
34
34
  if (opts.code) {
35
- // Inline code: write to temp file with augmentation preamble
36
- sourceFile = (0, node_path_1.join)(tmpDir, "__adk_inline.ts");
37
- const preamble = hasTypes
38
- ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
39
- : "";
40
- (0, node_fs_1.writeFileSync)(sourceFile, preamble + opts.code);
41
- originalFile = sourceFile;
35
+ // Inline: write temp file in cwd
36
+ cwd = process.cwd();
37
+ checkFile = (0, node_path_1.join)(cwd, "__adk_inline.ts");
38
+ (0, node_fs_1.writeFileSync)(checkFile, preamble + opts.code);
39
+ originalFile = checkFile; // for run, execute the same file (bun ignores types)
42
40
  }
43
41
  else if (opts.file) {
44
42
  originalFile = (0, node_path_1.resolve)(opts.file);
@@ -46,83 +44,50 @@ async function adkCheck(opts) {
46
44
  console.error(`File not found: ${originalFile}`);
47
45
  return { ok: false, exitCode: 1 };
48
46
  }
49
- // Read original file and prepend the augmentation import
50
- const original = (0, node_fs_1.readFileSync)(originalFile, "utf-8");
51
- sourceFile = (0, node_path_1.join)(tmpDir, "__adk_check.ts");
52
- const preamble = hasTypes
53
- ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
54
- : "";
55
- (0, node_fs_1.writeFileSync)(sourceFile, preamble + original);
47
+ // Write temp file next to original so module resolution works
48
+ cwd = (0, node_path_1.dirname)(originalFile);
49
+ const name = `__adk_check_${(0, node_path_1.basename)(originalFile)}`;
50
+ checkFile = (0, node_path_1.join)(cwd, name);
51
+ (0, node_fs_1.writeFileSync)(checkFile, preamble + (0, node_fs_1.readFileSync)(originalFile, "utf-8"));
56
52
  }
57
53
  else {
58
- console.error("Usage: adk check <file> | adk check -e \"<code>\"");
54
+ console.error('Usage: adk check <file> | adk check -e "<code>"');
59
55
  return { ok: false, exitCode: 1 };
60
56
  }
61
- // Generate a tsconfig for the check
62
- const cwd = opts.file ? (0, node_path_1.dirname)((0, node_path_1.resolve)(opts.file)) : process.cwd();
63
- const tsconfig = {
64
- compilerOptions: {
65
- target: "ES2022",
66
- module: "ESNext",
67
- moduleResolution: "bundler",
68
- esModuleInterop: true,
69
- strict: true,
70
- noEmit: true,
71
- skipLibCheck: true,
72
- types: ["node"],
73
- baseUrl: cwd,
74
- paths: {
75
- // Ensure bare specifiers resolve from the user's project
76
- "*": [(0, node_path_1.join)(cwd, "node_modules", "*"), "*"],
77
- },
78
- },
79
- include: [sourceFile],
80
- };
81
- const tsconfigPath = (0, node_path_1.join)(tmpDir, "tsconfig.adk.json");
82
- (0, node_fs_1.writeFileSync)(tsconfigPath, JSON.stringify(tsconfig, null, 2));
83
- // Find type checker: prefer tsgo, fall back to tsc
57
+ // Find tsgo or tsc
84
58
  const checker = findTypeChecker();
85
- // Run type-check
86
- const checkResult = (0, node_child_process_1.spawnSync)(checker.cmd, [...checker.args, "--project", tsconfigPath], {
87
- cwd,
88
- stdio: "inherit",
89
- env: process.env,
90
- });
91
- if (checkResult.status !== 0) {
92
- cleanup(tmpDir);
93
- return { ok: false, exitCode: checkResult.status ?? 1 };
59
+ // Type-check
60
+ const result = (0, node_child_process_1.spawnSync)(checker.cmd, [...checker.args, "--noEmit", checkFile], { cwd, stdio: "inherit", env: process.env });
61
+ // Clean up temp file
62
+ try {
63
+ (0, node_fs_1.unlinkSync)(checkFile);
64
+ }
65
+ catch { }
66
+ if (result.status !== 0) {
67
+ return { ok: false, exitCode: result.status ?? 1 };
94
68
  }
95
69
  console.error("\x1b[32m\u2713\x1b[0m Type check passed");
96
- // If run mode, execute the original file with bun
70
+ // Run mode: execute original file with bun
97
71
  if (opts.run) {
98
72
  const runResult = (0, node_child_process_1.spawnSync)("bun", ["run", originalFile], {
99
73
  cwd,
100
74
  stdio: "inherit",
101
75
  env: process.env,
102
76
  });
103
- cleanup(tmpDir);
104
77
  return { ok: runResult.status === 0, exitCode: runResult.status ?? 1 };
105
78
  }
106
- cleanup(tmpDir);
107
79
  return { ok: true, exitCode: 0 };
108
80
  }
109
81
  function findTypeChecker() {
110
82
  // Prefer tsgo
111
- const tsgoResult = (0, node_child_process_1.spawnSync)("which", ["tsgo"], { stdio: "pipe" });
112
- if (tsgoResult.status === 0)
83
+ const tsgo = (0, node_child_process_1.spawnSync)("which", ["tsgo"], { stdio: "pipe" });
84
+ if (tsgo.status === 0)
113
85
  return { cmd: "tsgo", args: [] };
114
- // Fall back to npx tsgo, then npx tsc
115
- const npxTsgo = (0, node_child_process_1.spawnSync)("npx", ["tsgo", "--version"], { stdio: "pipe" });
86
+ // npx tsgo
87
+ const npxTsgo = (0, node_child_process_1.spawnSync)("npx", ["tsgo", "--version"], { stdio: "pipe", timeout: 5000 });
116
88
  if (npxTsgo.status === 0)
117
89
  return { cmd: "npx", args: ["tsgo"] };
90
+ // Fallback: npx tsc
118
91
  return { cmd: "npx", args: ["tsc"] };
119
92
  }
120
- function cleanup(tmpDir) {
121
- if (tmpDir) {
122
- try {
123
- (0, node_fs_1.rmSync)(tmpDir, { recursive: true });
124
- }
125
- catch { }
126
- }
127
- }
128
93
  //# sourceMappingURL=adk-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../../src/adk-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../../src/adk-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slashfi/agents-sdk",
3
- "version": "0.69.8",
3
+ "version": "0.69.9",
4
4
  "author": "Slash Financial",
5
5
  "repository": {
6
6
  "type": "git",
package/src/adk-check.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * adk check / adk run
3
3
  *
4
4
  * Type-checks (and optionally runs) TypeScript files with auto-injected
5
- * ADK agent type augmentation. No user config needed the augmentation
6
- * import is prepended automatically.
5
+ * ADK agent type augmentation. Writes a temp file next to the original
6
+ * so module resolution works naturally from node_modules.
7
7
  *
8
8
  * Usage:
9
9
  * adk check <file> Type-check a file
@@ -12,20 +12,15 @@
12
12
  * adk run -e "<code>" Type-check + execute inline code
13
13
  */
14
14
 
15
- import { join, dirname, resolve } from "node:path";
15
+ import { join, dirname, basename, resolve } from "node:path";
16
16
  import { homedir } from "node:os";
17
- import { existsSync, mkdtempSync, writeFileSync, readFileSync, rmSync } from "node:fs";
18
- import { tmpdir } from "node:os";
17
+ import { existsSync, writeFileSync, readFileSync, unlinkSync } from "node:fs";
19
18
  import { spawnSync } from "node:child_process";
20
19
 
21
20
  export interface CheckOptions {
22
- /** File to check, or undefined if using inline code */
23
21
  file?: string;
24
- /** Inline code (-e flag) */
25
22
  code?: string;
26
- /** Also execute after type-check (adk run) */
27
23
  run?: boolean;
28
- /** ADK config dir (default: ~/.adk) */
29
24
  configDir?: string;
30
25
  }
31
26
 
@@ -35,115 +30,80 @@ export async function adkCheck(opts: CheckOptions): Promise<{ ok: boolean; exitC
35
30
  const hasTypes = existsSync(adkTypes);
36
31
 
37
32
  if (!hasTypes) {
38
- console.error(
39
- "\x1b[33m\u26a0\x1b[0m No adk.d.ts found. Run `adk sync` first to generate agent types."
40
- );
33
+ console.error("\x1b[33m\u26a0\x1b[0m No adk.d.ts found. Run `adk sync` first to generate agent types.");
41
34
  }
42
35
 
43
- // Resolve input
44
- let sourceFile: string; // the file tsgo actually checks
45
- let originalFile: string | undefined; // the user's original file (for `adk run`)
46
- let tmpDir: string | null = null;
36
+ const preamble = hasTypes
37
+ ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
38
+ : "";
47
39
 
48
- tmpDir = mkdtempSync(join(tmpdir(), "adk-"));
40
+ let checkFile: string;
41
+ let originalFile: string | undefined;
42
+ let cwd: string;
49
43
 
50
44
  if (opts.code) {
51
- // Inline code: write to temp file with augmentation preamble
52
- sourceFile = join(tmpDir, "__adk_inline.ts");
53
- const preamble = hasTypes
54
- ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
55
- : "";
56
- writeFileSync(sourceFile, preamble + opts.code);
57
- originalFile = sourceFile;
45
+ // Inline: write temp file in cwd
46
+ cwd = process.cwd();
47
+ checkFile = join(cwd, "__adk_inline.ts");
48
+ writeFileSync(checkFile, preamble + opts.code);
49
+ originalFile = checkFile; // for run, execute the same file (bun ignores types)
58
50
  } else if (opts.file) {
59
51
  originalFile = resolve(opts.file);
60
52
  if (!existsSync(originalFile)) {
61
53
  console.error(`File not found: ${originalFile}`);
62
54
  return { ok: false, exitCode: 1 };
63
55
  }
64
-
65
- // Read original file and prepend the augmentation import
66
- const original = readFileSync(originalFile, "utf-8");
67
- sourceFile = join(tmpDir, "__adk_check.ts");
68
- const preamble = hasTypes
69
- ? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
70
- : "";
71
- writeFileSync(sourceFile, preamble + original);
56
+ // Write temp file next to original so module resolution works
57
+ cwd = dirname(originalFile);
58
+ const name = `__adk_check_${basename(originalFile)}`;
59
+ checkFile = join(cwd, name);
60
+ writeFileSync(checkFile, preamble + readFileSync(originalFile, "utf-8"));
72
61
  } else {
73
- console.error("Usage: adk check <file> | adk check -e \"<code>\"");
62
+ console.error('Usage: adk check <file> | adk check -e "<code>"');
74
63
  return { ok: false, exitCode: 1 };
75
64
  }
76
65
 
77
- // Generate a tsconfig for the check
78
- const cwd = opts.file ? dirname(resolve(opts.file)) : process.cwd();
79
- const tsconfig = {
80
- compilerOptions: {
81
- target: "ES2022",
82
- module: "ESNext",
83
- moduleResolution: "bundler",
84
- esModuleInterop: true,
85
- strict: true,
86
- noEmit: true,
87
- skipLibCheck: true,
88
- types: ["node"],
89
- baseUrl: cwd,
90
- paths: {
91
- // Ensure bare specifiers resolve from the user's project
92
- "*": [join(cwd, "node_modules", "*"), "*"],
93
- },
94
- },
95
- include: [sourceFile],
96
- };
97
-
98
- const tsconfigPath = join(tmpDir, "tsconfig.adk.json");
99
- writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 2));
100
-
101
- // Find type checker: prefer tsgo, fall back to tsc
66
+ // Find tsgo or tsc
102
67
  const checker = findTypeChecker();
103
68
 
104
- // Run type-check
105
- const checkResult = spawnSync(checker.cmd, [...checker.args, "--project", tsconfigPath], {
106
- cwd,
107
- stdio: "inherit",
108
- env: process.env,
109
- });
69
+ // Type-check
70
+ const result = spawnSync(
71
+ checker.cmd,
72
+ [...checker.args, "--noEmit", checkFile],
73
+ { cwd, stdio: "inherit", env: process.env },
74
+ );
75
+
76
+ // Clean up temp file
77
+ try { unlinkSync(checkFile); } catch {}
110
78
 
111
- if (checkResult.status !== 0) {
112
- cleanup(tmpDir);
113
- return { ok: false, exitCode: checkResult.status ?? 1 };
79
+ if (result.status !== 0) {
80
+ return { ok: false, exitCode: result.status ?? 1 };
114
81
  }
115
82
 
116
83
  console.error("\x1b[32m\u2713\x1b[0m Type check passed");
117
84
 
118
- // If run mode, execute the original file with bun
85
+ // Run mode: execute original file with bun
119
86
  if (opts.run) {
120
87
  const runResult = spawnSync("bun", ["run", originalFile!], {
121
88
  cwd,
122
89
  stdio: "inherit",
123
90
  env: process.env,
124
91
  });
125
- cleanup(tmpDir);
126
92
  return { ok: runResult.status === 0, exitCode: runResult.status ?? 1 };
127
93
  }
128
94
 
129
- cleanup(tmpDir);
130
95
  return { ok: true, exitCode: 0 };
131
96
  }
132
97
 
133
98
  function findTypeChecker(): { cmd: string; args: string[] } {
134
99
  // Prefer tsgo
135
- const tsgoResult = spawnSync("which", ["tsgo"], { stdio: "pipe" });
136
- if (tsgoResult.status === 0) return { cmd: "tsgo", args: [] };
100
+ const tsgo = spawnSync("which", ["tsgo"], { stdio: "pipe" });
101
+ if (tsgo.status === 0) return { cmd: "tsgo", args: [] };
137
102
 
138
- // Fall back to npx tsgo, then npx tsc
139
- const npxTsgo = spawnSync("npx", ["tsgo", "--version"], { stdio: "pipe" });
103
+ // npx tsgo
104
+ const npxTsgo = spawnSync("npx", ["tsgo", "--version"], { stdio: "pipe", timeout: 5000 });
140
105
  if (npxTsgo.status === 0) return { cmd: "npx", args: ["tsgo"] };
141
106
 
107
+ // Fallback: npx tsc
142
108
  return { cmd: "npx", args: ["tsc"] };
143
109
  }
144
-
145
- function cleanup(tmpDir: string | null) {
146
- if (tmpDir) {
147
- try { rmSync(tmpDir, { recursive: true }); } catch {}
148
- }
149
- }