@slashfi/agents-sdk 0.69.9 → 0.69.10
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/adk-check.d.ts +0 -6
- package/dist/adk-check.d.ts.map +1 -1
- package/dist/adk-check.js +24 -18
- package/dist/adk-check.js.map +1 -1
- package/dist/cjs/adk-check.js +24 -18
- package/dist/cjs/adk-check.js.map +1 -1
- package/package.json +1 -1
- package/src/adk-check.ts +22 -18
package/dist/adk-check.d.ts
CHANGED
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* Type-checks (and optionally runs) TypeScript files with auto-injected
|
|
5
5
|
* ADK agent type augmentation. Writes a temp file next to the original
|
|
6
6
|
* so module resolution works naturally from node_modules.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* adk check <file> Type-check a file
|
|
10
|
-
* adk check -e "<code>" Type-check inline code
|
|
11
|
-
* adk run <file> Type-check + execute
|
|
12
|
-
* adk run -e "<code>" Type-check + execute inline code
|
|
13
7
|
*/
|
|
14
8
|
export interface CheckOptions {
|
|
15
9
|
file?: string;
|
package/dist/adk-check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adk-check.d.ts","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adk-check.d.ts","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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,CAkF7F"}
|
package/dist/adk-check.js
CHANGED
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* Type-checks (and optionally runs) TypeScript files with auto-injected
|
|
5
5
|
* ADK agent type augmentation. Writes a temp file next to the original
|
|
6
6
|
* so module resolution works naturally from node_modules.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* adk check <file> Type-check a file
|
|
10
|
-
* adk check -e "<code>" Type-check inline code
|
|
11
|
-
* adk run <file> Type-check + execute
|
|
12
|
-
* adk run -e "<code>" Type-check + execute inline code
|
|
13
7
|
*/
|
|
14
8
|
import { join, dirname, basename, resolve } from "node:path";
|
|
15
9
|
import { homedir } from "node:os";
|
|
@@ -26,14 +20,14 @@ export async function adkCheck(opts) {
|
|
|
26
20
|
? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
|
|
27
21
|
: "";
|
|
28
22
|
let checkFile;
|
|
23
|
+
let tsconfigFile;
|
|
29
24
|
let originalFile;
|
|
30
25
|
let cwd;
|
|
31
26
|
if (opts.code) {
|
|
32
|
-
// Inline: write temp file in cwd
|
|
33
27
|
cwd = process.cwd();
|
|
34
|
-
checkFile = join(cwd, "
|
|
28
|
+
checkFile = join(cwd, ".adk_check.ts");
|
|
35
29
|
writeFileSync(checkFile, preamble + opts.code);
|
|
36
|
-
originalFile = checkFile;
|
|
30
|
+
originalFile = checkFile;
|
|
37
31
|
}
|
|
38
32
|
else if (opts.file) {
|
|
39
33
|
originalFile = resolve(opts.file);
|
|
@@ -41,30 +35,45 @@ export async function adkCheck(opts) {
|
|
|
41
35
|
console.error(`File not found: ${originalFile}`);
|
|
42
36
|
return { ok: false, exitCode: 1 };
|
|
43
37
|
}
|
|
44
|
-
// Write temp file next to original so module resolution works
|
|
45
38
|
cwd = dirname(originalFile);
|
|
46
|
-
|
|
47
|
-
checkFile = join(cwd, name);
|
|
39
|
+
checkFile = join(cwd, `.adk_check_${basename(originalFile)}`);
|
|
48
40
|
writeFileSync(checkFile, preamble + readFileSync(originalFile, "utf-8"));
|
|
49
41
|
}
|
|
50
42
|
else {
|
|
51
43
|
console.error('Usage: adk check <file> | adk check -e "<code>"');
|
|
52
44
|
return { ok: false, exitCode: 1 };
|
|
53
45
|
}
|
|
46
|
+
// Write a minimal tsconfig next to the check file
|
|
47
|
+
tsconfigFile = join(cwd, ".adk_tsconfig.json");
|
|
48
|
+
writeFileSync(tsconfigFile, JSON.stringify({
|
|
49
|
+
compilerOptions: {
|
|
50
|
+
target: "ES2022",
|
|
51
|
+
module: "ESNext",
|
|
52
|
+
moduleResolution: "bundler",
|
|
53
|
+
esModuleInterop: true,
|
|
54
|
+
strict: true,
|
|
55
|
+
noEmit: true,
|
|
56
|
+
skipLibCheck: true,
|
|
57
|
+
},
|
|
58
|
+
include: [basename(checkFile)],
|
|
59
|
+
}, null, 2));
|
|
54
60
|
// Find tsgo or tsc
|
|
55
61
|
const checker = findTypeChecker();
|
|
56
62
|
// Type-check
|
|
57
|
-
const result = spawnSync(checker.cmd, [...checker.args, "--
|
|
58
|
-
// Clean up
|
|
63
|
+
const result = spawnSync(checker.cmd, [...checker.args, "--project", tsconfigFile], { cwd, stdio: "inherit", env: process.env });
|
|
64
|
+
// Clean up
|
|
59
65
|
try {
|
|
60
66
|
unlinkSync(checkFile);
|
|
61
67
|
}
|
|
62
68
|
catch { }
|
|
69
|
+
try {
|
|
70
|
+
unlinkSync(tsconfigFile);
|
|
71
|
+
}
|
|
72
|
+
catch { }
|
|
63
73
|
if (result.status !== 0) {
|
|
64
74
|
return { ok: false, exitCode: result.status ?? 1 };
|
|
65
75
|
}
|
|
66
76
|
console.error("\x1b[32m\u2713\x1b[0m Type check passed");
|
|
67
|
-
// Run mode: execute original file with bun
|
|
68
77
|
if (opts.run) {
|
|
69
78
|
const runResult = spawnSync("bun", ["run", originalFile], {
|
|
70
79
|
cwd,
|
|
@@ -76,15 +85,12 @@ export async function adkCheck(opts) {
|
|
|
76
85
|
return { ok: true, exitCode: 0 };
|
|
77
86
|
}
|
|
78
87
|
function findTypeChecker() {
|
|
79
|
-
// Prefer tsgo
|
|
80
88
|
const tsgo = spawnSync("which", ["tsgo"], { stdio: "pipe" });
|
|
81
89
|
if (tsgo.status === 0)
|
|
82
90
|
return { cmd: "tsgo", args: [] };
|
|
83
|
-
// npx tsgo
|
|
84
91
|
const npxTsgo = spawnSync("npx", ["tsgo", "--version"], { stdio: "pipe", timeout: 5000 });
|
|
85
92
|
if (npxTsgo.status === 0)
|
|
86
93
|
return { cmd: "npx", args: ["tsgo"] };
|
|
87
|
-
// Fallback: npx tsc
|
|
88
94
|
return { cmd: "npx", args: ["tsc"] };
|
|
89
95
|
}
|
|
90
96
|
//# sourceMappingURL=adk-check.js.map
|
package/dist/adk-check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../src/adk-check.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/adk-check.js
CHANGED
|
@@ -5,12 +5,6 @@
|
|
|
5
5
|
* Type-checks (and optionally runs) TypeScript files with auto-injected
|
|
6
6
|
* ADK agent type augmentation. Writes a temp file next to the original
|
|
7
7
|
* so module resolution works naturally from node_modules.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* adk check <file> Type-check a file
|
|
11
|
-
* adk check -e "<code>" Type-check inline code
|
|
12
|
-
* adk run <file> Type-check + execute
|
|
13
|
-
* adk run -e "<code>" Type-check + execute inline code
|
|
14
8
|
*/
|
|
15
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
10
|
exports.adkCheck = adkCheck;
|
|
@@ -29,14 +23,14 @@ async function adkCheck(opts) {
|
|
|
29
23
|
? `import ${JSON.stringify(adkTypes.replace(/\.d\.ts$/, ""))};\n`
|
|
30
24
|
: "";
|
|
31
25
|
let checkFile;
|
|
26
|
+
let tsconfigFile;
|
|
32
27
|
let originalFile;
|
|
33
28
|
let cwd;
|
|
34
29
|
if (opts.code) {
|
|
35
|
-
// Inline: write temp file in cwd
|
|
36
30
|
cwd = process.cwd();
|
|
37
|
-
checkFile = (0, node_path_1.join)(cwd, "
|
|
31
|
+
checkFile = (0, node_path_1.join)(cwd, ".adk_check.ts");
|
|
38
32
|
(0, node_fs_1.writeFileSync)(checkFile, preamble + opts.code);
|
|
39
|
-
originalFile = checkFile;
|
|
33
|
+
originalFile = checkFile;
|
|
40
34
|
}
|
|
41
35
|
else if (opts.file) {
|
|
42
36
|
originalFile = (0, node_path_1.resolve)(opts.file);
|
|
@@ -44,30 +38,45 @@ async function adkCheck(opts) {
|
|
|
44
38
|
console.error(`File not found: ${originalFile}`);
|
|
45
39
|
return { ok: false, exitCode: 1 };
|
|
46
40
|
}
|
|
47
|
-
// Write temp file next to original so module resolution works
|
|
48
41
|
cwd = (0, node_path_1.dirname)(originalFile);
|
|
49
|
-
|
|
50
|
-
checkFile = (0, node_path_1.join)(cwd, name);
|
|
42
|
+
checkFile = (0, node_path_1.join)(cwd, `.adk_check_${(0, node_path_1.basename)(originalFile)}`);
|
|
51
43
|
(0, node_fs_1.writeFileSync)(checkFile, preamble + (0, node_fs_1.readFileSync)(originalFile, "utf-8"));
|
|
52
44
|
}
|
|
53
45
|
else {
|
|
54
46
|
console.error('Usage: adk check <file> | adk check -e "<code>"');
|
|
55
47
|
return { ok: false, exitCode: 1 };
|
|
56
48
|
}
|
|
49
|
+
// Write a minimal tsconfig next to the check file
|
|
50
|
+
tsconfigFile = (0, node_path_1.join)(cwd, ".adk_tsconfig.json");
|
|
51
|
+
(0, node_fs_1.writeFileSync)(tsconfigFile, JSON.stringify({
|
|
52
|
+
compilerOptions: {
|
|
53
|
+
target: "ES2022",
|
|
54
|
+
module: "ESNext",
|
|
55
|
+
moduleResolution: "bundler",
|
|
56
|
+
esModuleInterop: true,
|
|
57
|
+
strict: true,
|
|
58
|
+
noEmit: true,
|
|
59
|
+
skipLibCheck: true,
|
|
60
|
+
},
|
|
61
|
+
include: [(0, node_path_1.basename)(checkFile)],
|
|
62
|
+
}, null, 2));
|
|
57
63
|
// Find tsgo or tsc
|
|
58
64
|
const checker = findTypeChecker();
|
|
59
65
|
// Type-check
|
|
60
|
-
const result = (0, node_child_process_1.spawnSync)(checker.cmd, [...checker.args, "--
|
|
61
|
-
// Clean up
|
|
66
|
+
const result = (0, node_child_process_1.spawnSync)(checker.cmd, [...checker.args, "--project", tsconfigFile], { cwd, stdio: "inherit", env: process.env });
|
|
67
|
+
// Clean up
|
|
62
68
|
try {
|
|
63
69
|
(0, node_fs_1.unlinkSync)(checkFile);
|
|
64
70
|
}
|
|
65
71
|
catch { }
|
|
72
|
+
try {
|
|
73
|
+
(0, node_fs_1.unlinkSync)(tsconfigFile);
|
|
74
|
+
}
|
|
75
|
+
catch { }
|
|
66
76
|
if (result.status !== 0) {
|
|
67
77
|
return { ok: false, exitCode: result.status ?? 1 };
|
|
68
78
|
}
|
|
69
79
|
console.error("\x1b[32m\u2713\x1b[0m Type check passed");
|
|
70
|
-
// Run mode: execute original file with bun
|
|
71
80
|
if (opts.run) {
|
|
72
81
|
const runResult = (0, node_child_process_1.spawnSync)("bun", ["run", originalFile], {
|
|
73
82
|
cwd,
|
|
@@ -79,15 +88,12 @@ async function adkCheck(opts) {
|
|
|
79
88
|
return { ok: true, exitCode: 0 };
|
|
80
89
|
}
|
|
81
90
|
function findTypeChecker() {
|
|
82
|
-
// Prefer tsgo
|
|
83
91
|
const tsgo = (0, node_child_process_1.spawnSync)("which", ["tsgo"], { stdio: "pipe" });
|
|
84
92
|
if (tsgo.status === 0)
|
|
85
93
|
return { cmd: "tsgo", args: [] };
|
|
86
|
-
// npx tsgo
|
|
87
94
|
const npxTsgo = (0, node_child_process_1.spawnSync)("npx", ["tsgo", "--version"], { stdio: "pipe", timeout: 5000 });
|
|
88
95
|
if (npxTsgo.status === 0)
|
|
89
96
|
return { cmd: "npx", args: ["tsgo"] };
|
|
90
|
-
// Fallback: npx tsc
|
|
91
97
|
return { cmd: "npx", args: ["tsc"] };
|
|
92
98
|
}
|
|
93
99
|
//# sourceMappingURL=adk-check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../../src/adk-check.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"adk-check.js","sourceRoot":"","sources":["../../src/adk-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/adk-check.ts
CHANGED
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* Type-checks (and optionally runs) TypeScript files with auto-injected
|
|
5
5
|
* ADK agent type augmentation. Writes a temp file next to the original
|
|
6
6
|
* so module resolution works naturally from node_modules.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* adk check <file> Type-check a file
|
|
10
|
-
* adk check -e "<code>" Type-check inline code
|
|
11
|
-
* adk run <file> Type-check + execute
|
|
12
|
-
* adk run -e "<code>" Type-check + execute inline code
|
|
13
7
|
*/
|
|
14
8
|
|
|
15
9
|
import { join, dirname, basename, resolve } from "node:path";
|
|
@@ -38,43 +32,57 @@ export async function adkCheck(opts: CheckOptions): Promise<{ ok: boolean; exitC
|
|
|
38
32
|
: "";
|
|
39
33
|
|
|
40
34
|
let checkFile: string;
|
|
35
|
+
let tsconfigFile: string;
|
|
41
36
|
let originalFile: string | undefined;
|
|
42
37
|
let cwd: string;
|
|
43
38
|
|
|
44
39
|
if (opts.code) {
|
|
45
|
-
// Inline: write temp file in cwd
|
|
46
40
|
cwd = process.cwd();
|
|
47
|
-
checkFile = join(cwd, "
|
|
41
|
+
checkFile = join(cwd, ".adk_check.ts");
|
|
48
42
|
writeFileSync(checkFile, preamble + opts.code);
|
|
49
|
-
originalFile = checkFile;
|
|
43
|
+
originalFile = checkFile;
|
|
50
44
|
} else if (opts.file) {
|
|
51
45
|
originalFile = resolve(opts.file);
|
|
52
46
|
if (!existsSync(originalFile)) {
|
|
53
47
|
console.error(`File not found: ${originalFile}`);
|
|
54
48
|
return { ok: false, exitCode: 1 };
|
|
55
49
|
}
|
|
56
|
-
// Write temp file next to original so module resolution works
|
|
57
50
|
cwd = dirname(originalFile);
|
|
58
|
-
|
|
59
|
-
checkFile = join(cwd, name);
|
|
51
|
+
checkFile = join(cwd, `.adk_check_${basename(originalFile)}`);
|
|
60
52
|
writeFileSync(checkFile, preamble + readFileSync(originalFile, "utf-8"));
|
|
61
53
|
} else {
|
|
62
54
|
console.error('Usage: adk check <file> | adk check -e "<code>"');
|
|
63
55
|
return { ok: false, exitCode: 1 };
|
|
64
56
|
}
|
|
65
57
|
|
|
58
|
+
// Write a minimal tsconfig next to the check file
|
|
59
|
+
tsconfigFile = join(cwd, ".adk_tsconfig.json");
|
|
60
|
+
writeFileSync(tsconfigFile, JSON.stringify({
|
|
61
|
+
compilerOptions: {
|
|
62
|
+
target: "ES2022",
|
|
63
|
+
module: "ESNext",
|
|
64
|
+
moduleResolution: "bundler",
|
|
65
|
+
esModuleInterop: true,
|
|
66
|
+
strict: true,
|
|
67
|
+
noEmit: true,
|
|
68
|
+
skipLibCheck: true,
|
|
69
|
+
},
|
|
70
|
+
include: [basename(checkFile)],
|
|
71
|
+
}, null, 2));
|
|
72
|
+
|
|
66
73
|
// Find tsgo or tsc
|
|
67
74
|
const checker = findTypeChecker();
|
|
68
75
|
|
|
69
76
|
// Type-check
|
|
70
77
|
const result = spawnSync(
|
|
71
78
|
checker.cmd,
|
|
72
|
-
[...checker.args, "--
|
|
79
|
+
[...checker.args, "--project", tsconfigFile],
|
|
73
80
|
{ cwd, stdio: "inherit", env: process.env },
|
|
74
81
|
);
|
|
75
82
|
|
|
76
|
-
// Clean up
|
|
83
|
+
// Clean up
|
|
77
84
|
try { unlinkSync(checkFile); } catch {}
|
|
85
|
+
try { unlinkSync(tsconfigFile); } catch {}
|
|
78
86
|
|
|
79
87
|
if (result.status !== 0) {
|
|
80
88
|
return { ok: false, exitCode: result.status ?? 1 };
|
|
@@ -82,7 +90,6 @@ export async function adkCheck(opts: CheckOptions): Promise<{ ok: boolean; exitC
|
|
|
82
90
|
|
|
83
91
|
console.error("\x1b[32m\u2713\x1b[0m Type check passed");
|
|
84
92
|
|
|
85
|
-
// Run mode: execute original file with bun
|
|
86
93
|
if (opts.run) {
|
|
87
94
|
const runResult = spawnSync("bun", ["run", originalFile!], {
|
|
88
95
|
cwd,
|
|
@@ -96,14 +103,11 @@ export async function adkCheck(opts: CheckOptions): Promise<{ ok: boolean; exitC
|
|
|
96
103
|
}
|
|
97
104
|
|
|
98
105
|
function findTypeChecker(): { cmd: string; args: string[] } {
|
|
99
|
-
// Prefer tsgo
|
|
100
106
|
const tsgo = spawnSync("which", ["tsgo"], { stdio: "pipe" });
|
|
101
107
|
if (tsgo.status === 0) return { cmd: "tsgo", args: [] };
|
|
102
108
|
|
|
103
|
-
// npx tsgo
|
|
104
109
|
const npxTsgo = spawnSync("npx", ["tsgo", "--version"], { stdio: "pipe", timeout: 5000 });
|
|
105
110
|
if (npxTsgo.status === 0) return { cmd: "npx", args: ["tsgo"] };
|
|
106
111
|
|
|
107
|
-
// Fallback: npx tsc
|
|
108
112
|
return { cmd: "npx", args: ["tsc"] };
|
|
109
113
|
}
|