@vinhnt-sdk/tools 0.1.1 → 0.1.3
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/README.md +179 -0
- package/dist/agent-provider.d.ts +30 -0
- package/dist/agent-provider.d.ts.map +1 -0
- package/dist/agent-provider.js +35 -0
- package/dist/agent-provider.js.map +1 -0
- package/dist/define-tool.d.ts +6 -1
- package/dist/define-tool.d.ts.map +1 -1
- package/dist/define-tool.js +8 -5
- package/dist/define-tool.js.map +1 -1
- package/dist/definitions.d.ts +12 -1
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +2 -1
- package/dist/definitions.js.map +1 -1
- package/dist/description-lint.d.ts +2 -0
- package/dist/description-lint.d.ts.map +1 -1
- package/dist/description-lint.js.map +1 -1
- package/dist/diff.d.ts +2 -0
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +1 -0
- package/dist/diff.js.map +1 -1
- package/dist/file-history.d.ts +4 -0
- package/dist/file-history.d.ts.map +1 -1
- package/dist/file-history.js +3 -1
- package/dist/file-history.js.map +1 -1
- package/dist/file-tools.d.ts +45 -12
- package/dist/file-tools.d.ts.map +1 -1
- package/dist/file-tools.js +112 -37
- package/dist/file-tools.js.map +1 -1
- package/dist/git-tools.d.ts +5 -1
- package/dist/git-tools.d.ts.map +1 -1
- package/dist/git-tools.js +7 -2
- package/dist/git-tools.js.map +1 -1
- package/dist/history-hook.d.ts +2 -1
- package/dist/history-hook.d.ts.map +1 -1
- package/dist/history-hook.js +4 -3
- package/dist/history-hook.js.map +1 -1
- package/dist/image-tools.d.ts +13 -3
- package/dist/image-tools.d.ts.map +1 -1
- package/dist/image-tools.js +64 -14
- package/dist/image-tools.js.map +1 -1
- package/dist/index.d.ts +41 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -26
- package/dist/index.js.map +1 -1
- package/dist/json-schema.d.ts +3 -0
- package/dist/json-schema.d.ts.map +1 -1
- package/dist/kill-tree.d.ts +36 -0
- package/dist/kill-tree.d.ts.map +1 -0
- package/dist/kill-tree.js +80 -0
- package/dist/kill-tree.js.map +1 -0
- package/dist/lazy-registry.d.ts +5 -3
- package/dist/lazy-registry.d.ts.map +1 -1
- package/dist/lazy-registry.js +3 -1
- package/dist/lazy-registry.js.map +1 -1
- package/dist/policy.d.ts +1 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +2 -1
- package/dist/provider.js.map +1 -1
- package/dist/providers/builtin-provider.d.ts.map +1 -1
- package/dist/providers/builtin-provider.js +1 -4
- package/dist/providers/builtin-provider.js.map +1 -1
- package/dist/providers/file-loader.d.ts +20 -2
- package/dist/providers/file-loader.d.ts.map +1 -1
- package/dist/providers/file-loader.js +46 -6
- package/dist/providers/file-loader.js.map +1 -1
- package/dist/providers/index.d.ts +0 -4
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +0 -3
- package/dist/providers/index.js.map +1 -1
- package/dist/question-tool.d.ts +9 -3
- package/dist/question-tool.d.ts.map +1 -1
- package/dist/question-tool.js +5 -1
- package/dist/question-tool.js.map +1 -1
- package/dist/read-tracker.d.ts +10 -1
- package/dist/read-tracker.d.ts.map +1 -1
- package/dist/read-tracker.js +38 -8
- package/dist/read-tracker.js.map +1 -1
- package/dist/registry.d.ts +3 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +8 -2
- package/dist/registry.js.map +1 -1
- package/dist/saga.d.ts +32 -0
- package/dist/saga.d.ts.map +1 -0
- package/dist/saga.js +65 -0
- package/dist/saga.js.map +1 -0
- package/dist/sandbox.d.ts +2 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +10 -43
- package/dist/sandbox.js.map +1 -1
- package/dist/search-tools.d.ts +3 -1
- package/dist/search-tools.d.ts.map +1 -1
- package/dist/search-tools.js +7 -3
- package/dist/search-tools.js.map +1 -1
- package/dist/shell-parser.js +1 -0
- package/dist/shell-parser.js.map +1 -1
- package/dist/shell-tool.d.ts +11 -4
- package/dist/shell-tool.d.ts.map +1 -1
- package/dist/shell-tool.js +16 -9
- package/dist/shell-tool.js.map +1 -1
- package/dist/skill-provider.d.ts +21 -0
- package/dist/skill-provider.d.ts.map +1 -0
- package/dist/skill-provider.js +28 -0
- package/dist/skill-provider.js.map +1 -0
- package/dist/todo-tool.d.ts +2 -1
- package/dist/todo-tool.d.ts.map +1 -1
- package/dist/todo-tool.js +2 -1
- package/dist/todo-tool.js.map +1 -1
- package/dist/tool-sandbox.d.ts +19 -0
- package/dist/tool-sandbox.d.ts.map +1 -0
- package/dist/tool-sandbox.js +100 -0
- package/dist/tool-sandbox.js.map +1 -0
- package/dist/tool-search.d.ts +6 -3
- package/dist/tool-search.d.ts.map +1 -1
- package/dist/tool-search.js +2 -1
- package/dist/tool-search.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts +8 -3
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +8 -3
- package/dist/validate.js.map +1 -1
- package/dist/web-search-tool.d.ts +10 -5
- package/dist/web-search-tool.d.ts.map +1 -1
- package/dist/web-search-tool.js +8 -5
- package/dist/web-search-tool.js.map +1 -1
- package/dist/web-tools.d.ts +8 -3
- package/dist/web-tools.d.ts.map +1 -1
- package/dist/web-tools.js +7 -2
- package/dist/web-tools.js.map +1 -1
- package/package.json +15 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-hook.d.ts","sourceRoot":"","sources":["../src/history-hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"history-hook.d.ts","sourceRoot":"","sources":["../src/history-hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CA+DxE"}
|
package/dist/history-hook.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
/** Create a {@link ToolHook} that records write_file/edit_file changes into a {@link FileHistory}. */
|
|
2
3
|
export function createFileHistoryHook(fileHistory) {
|
|
3
4
|
const pending = new Map();
|
|
4
5
|
return {
|
|
@@ -14,7 +15,7 @@ export function createFileHistoryHook(fileHistory) {
|
|
|
14
15
|
return null;
|
|
15
16
|
let originalContent = "";
|
|
16
17
|
try {
|
|
17
|
-
originalContent =
|
|
18
|
+
originalContent = await readFile(filePath, "utf-8");
|
|
18
19
|
}
|
|
19
20
|
catch {
|
|
20
21
|
originalContent = "";
|
|
@@ -40,7 +41,7 @@ export function createFileHistoryHook(fileHistory) {
|
|
|
40
41
|
let originalContent = "";
|
|
41
42
|
let newContent = "";
|
|
42
43
|
try {
|
|
43
|
-
newContent =
|
|
44
|
+
newContent = await readFile(filePath, "utf-8");
|
|
44
45
|
}
|
|
45
46
|
catch { /* file may have been deleted */ }
|
|
46
47
|
const p = pending.get(params.toolId);
|
package/dist/history-hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-hook.js","sourceRoot":"","sources":["../src/history-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"history-hook.js","sourceRoot":"","sources":["../src/history-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CAAC,WAAwB;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyD,CAAC;IAEjF,OAAO;QACL,EAAE,EAAE,cAAc;QAClB,KAAK,CAAC,GAAG,CAAC,MAAM;YACd,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAC;YACnF,MAAM,KAAK,GAAG,MAAM,CAAC,KAA4C,CAAC;YAClE,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAuB,CAAC;YACvF,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAE3B,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,eAAe,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe,GAAG,EAAE,CAAC;YACvB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM;YACf,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;gBACtE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAA6C,CAAC;YAC3E,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,CAAuB,CAAC;YAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC,CAAC;YAE5C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC;gBACN,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE9B,MAAM,WAAW,CAAC,aAAa,CAAC;gBAC9B,QAAQ;gBACR,SAAS,EAAE,EAAE;gBACb,eAAe;gBACf,UAAU;gBACV,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;aACzB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnB,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/image-tools.d.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import type { MessageContentPart } from "@vinhnt-sdk/schema";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { isWithinWorkspace, type RootGetter } from "./file-tools.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read an image file into model message parts (`text` + base64 `image`),
|
|
5
|
+
* validating the file extension, magic bytes and workspace containment.
|
|
6
|
+
*
|
|
7
|
+
* When `workspaceRoot` is provided the path is checked against the workspace
|
|
8
|
+
* boundary (realpath-aware, symlink-safe) before reading.
|
|
9
|
+
*/
|
|
10
|
+
export declare function readImageToContentParts(filePath: string, workspaceRoot?: RootGetter, externalDirAccess?: boolean): Promise<MessageContentPart[]>;
|
|
11
|
+
/** Create the `read_image` tool that returns image content for the model to analyze. */
|
|
12
|
+
export declare function createReadImageTool(workspaceRoot: RootGetter, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
|
|
4
13
|
filePath: string;
|
|
5
14
|
}, {
|
|
6
15
|
filePath: string;
|
|
7
|
-
mimeType?: string;
|
|
16
|
+
mimeType?: string | undefined;
|
|
8
17
|
size: number;
|
|
9
18
|
message: string;
|
|
10
19
|
}>;
|
|
20
|
+
export { isWithinWorkspace };
|
|
11
21
|
//# sourceMappingURL=image-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-tools.d.ts","sourceRoot":"","sources":["../src/image-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-tools.d.ts","sourceRoot":"","sources":["../src/image-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK7D,OAAO,EAAoB,iBAAiB,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAoCpG;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAEhJ;AA2BD,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO;cAC1D,MAAM;;cACxB,MAAM;eAAa,MAAM,GAAG,SAAS;UAAQ,MAAM;aAAW,MAAM;GAgCjF;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/image-tools.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { extname } from "node:path";
|
|
2
|
+
import { extname, resolve } from "node:path";
|
|
3
|
+
import { ValidationError } from "@vinhnt-sdk/schema";
|
|
3
4
|
import { z } from "zod";
|
|
4
|
-
import { defineTool } from "
|
|
5
|
+
import { defineTool } from "@vinhnt-sdk/tools";
|
|
6
|
+
import { ensurePathAccess, isWithinWorkspace, resolveRoot } from "./file-tools.js";
|
|
5
7
|
const ReadImageSchema = z.object({
|
|
6
8
|
filePath: z.string().min(1),
|
|
7
9
|
});
|
|
@@ -12,44 +14,92 @@ const MIME_TYPES = {
|
|
|
12
14
|
".gif": "image/gif",
|
|
13
15
|
".webp": "image/webp",
|
|
14
16
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
const DEFAULT_MAX_IMAGE_SIZE = 8 * 1024 * 1024;
|
|
18
|
+
/** Sniff the first bytes of a buffer to confirm it matches the claimed extension. */
|
|
19
|
+
function sniffMagic(buffer, mimeType) {
|
|
20
|
+
switch (mimeType) {
|
|
21
|
+
case "image/png":
|
|
22
|
+
return buffer.length >= 8 && buffer.readUInt32BE(0) === 0x89504e47 && buffer.readUInt32BE(4) === 0x0d0a1a0a;
|
|
23
|
+
case "image/jpeg":
|
|
24
|
+
return buffer.length >= 3 && buffer[0] === 0xff && buffer[1] === 0xd8 && buffer[2] === 0xff;
|
|
25
|
+
case "image/gif":
|
|
26
|
+
return buffer.length >= 6 && buffer.subarray(0, 6).toString("ascii") === "GIF87a" || buffer.length >= 6 && buffer.subarray(0, 6).toString("ascii") === "GIF89a";
|
|
27
|
+
case "image/webp": {
|
|
28
|
+
if (buffer.length < 12)
|
|
29
|
+
return false;
|
|
30
|
+
const riff = buffer.subarray(0, 4).toString("ascii");
|
|
31
|
+
const webp = buffer.subarray(8, 12).toString("ascii");
|
|
32
|
+
return riff === "RIFF" && webp === "WEBP";
|
|
33
|
+
}
|
|
34
|
+
default:
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Read an image file into model message parts (`text` + base64 `image`),
|
|
40
|
+
* validating the file extension, magic bytes and workspace containment.
|
|
41
|
+
*
|
|
42
|
+
* When `workspaceRoot` is provided the path is checked against the workspace
|
|
43
|
+
* boundary (realpath-aware, symlink-safe) before reading.
|
|
44
|
+
*/
|
|
45
|
+
export function readImageToContentParts(filePath, workspaceRoot, externalDirAccess) {
|
|
46
|
+
return readImageToContentPartsInner(filePath, workspaceRoot, externalDirAccess);
|
|
17
47
|
}
|
|
18
|
-
async function readImageToContentPartsInner(filePath) {
|
|
48
|
+
async function readImageToContentPartsInner(filePath, workspaceRoot, externalDirAccess, ctx, maxSize) {
|
|
19
49
|
const ext = extname(filePath).toLowerCase();
|
|
20
50
|
const mimeType = MIME_TYPES[ext];
|
|
21
51
|
if (!mimeType) {
|
|
22
|
-
throw new
|
|
52
|
+
throw new ValidationError(`Unsupported image format: ${ext}. Supported: png, jpg, jpeg, gif, webp`);
|
|
53
|
+
}
|
|
54
|
+
const target = workspaceRoot ? await ensurePathAccess(resolve(resolveRoot(workspaceRoot), filePath), resolveRoot(workspaceRoot), filePath, ctx ?? { ask: async () => "reject" }, externalDirAccess) : filePath;
|
|
55
|
+
const buffer = await readFile(target);
|
|
56
|
+
const cap = maxSize ?? DEFAULT_MAX_IMAGE_SIZE;
|
|
57
|
+
if (buffer.length > cap) {
|
|
58
|
+
throw new ValidationError(`Image too large (${buffer.length} bytes). Max: ${cap} bytes`);
|
|
59
|
+
}
|
|
60
|
+
if (!sniffMagic(buffer, mimeType)) {
|
|
61
|
+
throw new ValidationError(`File "${filePath}" does not match its extension (${ext}) — magic bytes mismatch`);
|
|
23
62
|
}
|
|
24
|
-
const buffer = await readFile(filePath);
|
|
25
63
|
const base64 = buffer.toString("base64");
|
|
26
64
|
return [
|
|
27
65
|
{ type: "text", text: `[Image: ${filePath}]` },
|
|
28
66
|
{ type: "image", image: base64, mimeType },
|
|
29
67
|
];
|
|
30
68
|
}
|
|
31
|
-
|
|
69
|
+
/** Create the `read_image` tool that returns image content for the model to analyze. */
|
|
70
|
+
export function createReadImageTool(workspaceRoot, externalDirAccess) {
|
|
32
71
|
return defineTool({
|
|
33
72
|
name: "read_image",
|
|
34
73
|
description: "Read an image file and return its content for the model to analyze",
|
|
35
74
|
risk: "read",
|
|
36
75
|
input: ReadImageSchema,
|
|
76
|
+
normalize: (input) => {
|
|
77
|
+
const v = input;
|
|
78
|
+
if (!v || typeof v !== "object")
|
|
79
|
+
return {};
|
|
80
|
+
if (!v.filePath && v.path && typeof v.path === "string") {
|
|
81
|
+
return { filePath: v.path };
|
|
82
|
+
}
|
|
83
|
+
return v;
|
|
84
|
+
},
|
|
37
85
|
jsonSchema: {
|
|
38
86
|
type: "object",
|
|
39
87
|
properties: {
|
|
40
|
-
filePath: { type: "string", description: "Path to
|
|
88
|
+
filePath: { type: "string", description: "Path relative to workspace root" },
|
|
89
|
+
path: { type: "string", description: "Alias for filePath" },
|
|
41
90
|
},
|
|
42
|
-
required: ["filePath"],
|
|
43
91
|
},
|
|
44
|
-
async execute(v) {
|
|
45
|
-
const
|
|
92
|
+
async execute(v, ctx) {
|
|
93
|
+
const filePath = v.filePath;
|
|
94
|
+
const parts = await readImageToContentPartsInner(filePath, workspaceRoot, externalDirAccess, ctx);
|
|
46
95
|
return {
|
|
47
|
-
filePath
|
|
96
|
+
filePath,
|
|
48
97
|
mimeType: parts[1] && "mimeType" in parts[1] ? parts[1].mimeType : undefined,
|
|
49
98
|
size: parts[1] && "image" in parts[1] ? parts[1].image.length : 0,
|
|
50
|
-
message: `Image loaded: ${
|
|
99
|
+
message: `Image loaded: ${filePath}`,
|
|
51
100
|
};
|
|
52
101
|
},
|
|
53
102
|
}).toDefinition();
|
|
54
103
|
}
|
|
104
|
+
export { isWithinWorkspace };
|
|
55
105
|
//# sourceMappingURL=image-tools.js.map
|
package/dist/image-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-tools.js","sourceRoot":"","sources":["../src/image-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"image-tools.js","sourceRoot":"","sources":["../src/image-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,57 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export type {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export { createGitLogTool } from "./git-tools.js";
|
|
12
|
-
export { createGitCommitTool } from "./git-tools.js";
|
|
13
|
-
export { createGlobFilesTool } from "./search-tools.js";
|
|
14
|
-
export { createGrepFilesTool } from "./search-tools.js";
|
|
15
|
-
export { createWebFetchTool } from "./web-tools.js";
|
|
1
|
+
/**
|
|
2
|
+
* @module tools
|
|
3
|
+
* Built-in tools for VNT Agent — file, shell, git, web, search, and more.
|
|
4
|
+
*/
|
|
5
|
+
export type { Tool, ToolConfig } from "./define-tool.js";
|
|
6
|
+
export { defineTool, toolToDefinition, zodSchemaToNestedJsonSchema } from "./define-tool.js";
|
|
7
|
+
export { commandPattern, prefix } from "./arity.js";
|
|
8
|
+
export type { ToolDefinitionLike } from "@vinhnt-sdk/schema";
|
|
9
|
+
export type { ToolDefinition, ToolRisk } from "./definitions.js";
|
|
10
|
+
export type { ToolFilter, ToolPermissionRule, ToolMaterialization } from "./registry.js";
|
|
16
11
|
export { ToolRegistry } from "./registry.js";
|
|
17
|
-
export type {
|
|
12
|
+
export type { ToolContext, PermissionReply } from "./context.js";
|
|
13
|
+
export type { ToolHook, ToolExecutionResult } from "./types.js";
|
|
14
|
+
export type { JsonSchema7Object, JsonSchemaProperty } from "./json-schema.js";
|
|
15
|
+
export { validateInput } from "./validate.js";
|
|
16
|
+
export { ToolInputError } from "./validate.js";
|
|
17
|
+
export { generateDiff } from "./diff.js";
|
|
18
|
+
export type { UnifiedDiff } from "./diff.js";
|
|
18
19
|
export { createCodingDomain } from "./domain.js";
|
|
19
20
|
export type { DomainManifest } from "./domain.js";
|
|
20
|
-
export { defineTool, toolToDefinition, zodSchemaToNestedJsonSchema } from "./define-tool.js";
|
|
21
|
-
export type { Tool, ToolConfig } from "./define-tool.js";
|
|
22
21
|
export { LazyToolRegistry } from "./lazy-registry.js";
|
|
23
22
|
export type { LazyToolEntry } from "./lazy-registry.js";
|
|
23
|
+
export { ToolProviderRegistry } from "./provider.js";
|
|
24
|
+
export type { ToolProvider } from "./provider.js";
|
|
25
|
+
export { ToolFileProvider, ToolFileLoader } from "./providers/index.js";
|
|
24
26
|
export type { ApprovalHandler } from "./policy.js";
|
|
25
|
-
export {
|
|
26
|
-
export type {
|
|
27
|
+
export { ToolSaga } from "./saga.js";
|
|
28
|
+
export type { SagaEntry, CompensationAction } from "./saga.js";
|
|
29
|
+
export { createReadFileTool, createWriteFileTool, createEditFileTool, createApplyPatchTool, createListDirectoryTool, ensurePathAccess, resolveRoot, DEFAULT_EXCLUDED_DIRS, } from "./file-tools.js";
|
|
30
|
+
export type { RootGetter } from "./file-tools.js";
|
|
31
|
+
export { createReadImageTool, readImageToContentParts } from "./image-tools.js";
|
|
27
32
|
export { FileReadTracker } from "./read-tracker.js";
|
|
28
|
-
export { generateDiff } from "./diff.js";
|
|
29
|
-
export type { UnifiedDiff } from "./diff.js";
|
|
30
33
|
export { InMemoryFileHistory } from "./file-history.js";
|
|
31
34
|
export { createFileHistoryHook } from "./history-hook.js";
|
|
32
|
-
export {
|
|
35
|
+
export type { FileHistory, FileVersion, UndoEntry } from "./file-history.js";
|
|
36
|
+
export { createShellTool } from "./shell-tool.js";
|
|
37
|
+
export type { ShellToolConfig } from "./shell-tool.js";
|
|
38
|
+
export { ToolSandbox, signalToToolContext, createSandbox } from "./tool-sandbox.js";
|
|
39
|
+
export { createGlobFilesTool, createGrepFilesTool, DEFAULT_IGNORED_DIRS } from "./search-tools.js";
|
|
40
|
+
export { createToolSearchTool } from "./tool-search.js";
|
|
41
|
+
export type { ToolSearchInput, ToolSearchResult } from "./tool-search.js";
|
|
42
|
+
export { createWebFetchTool } from "./web-tools.js";
|
|
43
|
+
export type { WebFetchToolConfig } from "./web-tools.js";
|
|
44
|
+
export { createWebSearchTool, TavilySearchProvider, SerperSearchProvider } from "./web-search-tool.js";
|
|
45
|
+
export type { WebSearchToolConfig, WebSearchProvider, WebSearchResponse, SearchResult } from "./web-search-tool.js";
|
|
46
|
+
export { createGitStatusTool, createGitDiffTool, createGitLogTool, createGitCommitTool } from "./git-tools.js";
|
|
33
47
|
export { createQuestionTool } from "./question-tool.js";
|
|
34
48
|
export type { QuestionInput, QuestionHandler } from "./question-tool.js";
|
|
35
49
|
export { createTodoWriteTool } from "./todo-tool.js";
|
|
36
|
-
export {
|
|
37
|
-
export type {
|
|
38
|
-
export {
|
|
39
|
-
export
|
|
40
|
-
export { ToolProviderRegistry } from "./provider.js";
|
|
41
|
-
export type { ToolProvider } from "./provider.js";
|
|
42
|
-
export { BuiltinToolProvider, ToolFileProvider, ToolFileLoader, AgentToolProvider, SkillToolProvider } from "./providers/index.js";
|
|
43
|
-
export type { BuiltinToolConfig } from "./providers/index.js";
|
|
44
|
-
export { createToolProviderRegistry, createToolProvider } from "./provider-helpers.js";
|
|
45
|
-
export type { ToolRisk, ToolDefinition } from "./definitions.js";
|
|
46
|
-
export type { ToolDefinitionLike } from "@vinhnt-sdk/schema";
|
|
47
|
-
export type { JsonSchema7Object, JsonSchemaProperty } from "./json-schema.js";
|
|
48
|
-
export type { ToolFilter } from "./registry.js";
|
|
49
|
-
export type { ToolContext, PermissionReply } from "./context.js";
|
|
50
|
-
export type { SandboxScope, ProcessSandbox, SandboxResult } from "./sandbox.js";
|
|
51
|
-
export type { FileHistory, FileVersion, UndoEntry } from "./file-history.js";
|
|
52
|
-
export type { ToolDescriptionReport, ToolDescriptionIssue, DescriptionIssueCode } from "./description-lint.js";
|
|
50
|
+
export { AgentToolProvider } from "./agent-provider.js";
|
|
51
|
+
export type { KernelLike } from "./agent-provider.js";
|
|
52
|
+
export { SkillToolProvider } from "./skill-provider.js";
|
|
53
|
+
export { readImageToContentParts as readImageFromImageTools } from "./image-tools.js";
|
|
53
54
|
export { lintToolDescription, lintToolDefinitions } from "./description-lint.js";
|
|
54
|
-
export { validateInput, ToolInputError } from "./validate.js";
|
|
55
|
-
export { createSandbox } from "./sandbox.js";
|
|
56
|
-
export { commandPattern } from "./arity.js";
|
|
57
55
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,36 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export { createGitStatusTool } from "./git-tools.js";
|
|
8
|
-
export { createGitDiffTool } from "./git-tools.js";
|
|
9
|
-
export { createGitLogTool } from "./git-tools.js";
|
|
10
|
-
export { createGitCommitTool } from "./git-tools.js";
|
|
11
|
-
export { createGlobFilesTool } from "./search-tools.js";
|
|
12
|
-
export { createGrepFilesTool } from "./search-tools.js";
|
|
13
|
-
export { createWebFetchTool } from "./web-tools.js";
|
|
1
|
+
/**
|
|
2
|
+
* @module tools
|
|
3
|
+
* Built-in tools for VNT Agent — file, shell, git, web, search, and more.
|
|
4
|
+
*/
|
|
5
|
+
export { defineTool, toolToDefinition, zodSchemaToNestedJsonSchema } from "./define-tool.js";
|
|
6
|
+
export { commandPattern, prefix } from "./arity.js";
|
|
14
7
|
export { ToolRegistry } from "./registry.js";
|
|
8
|
+
// === Validation ===
|
|
9
|
+
export { validateInput } from "./validate.js";
|
|
10
|
+
export { ToolInputError } from "./validate.js";
|
|
11
|
+
// === Diff ===
|
|
12
|
+
export { generateDiff } from "./diff.js";
|
|
13
|
+
// === Domain ===
|
|
15
14
|
export { createCodingDomain } from "./domain.js";
|
|
16
|
-
|
|
15
|
+
// === Lazy registry ===
|
|
17
16
|
export { LazyToolRegistry } from "./lazy-registry.js";
|
|
18
|
-
|
|
17
|
+
// === Provider system ===
|
|
18
|
+
export { ToolProviderRegistry } from "./provider.js";
|
|
19
|
+
export { ToolFileProvider, ToolFileLoader } from "./providers/index.js";
|
|
20
|
+
// === Saga ===
|
|
21
|
+
export { ToolSaga } from "./saga.js";
|
|
22
|
+
// === File tools ===
|
|
23
|
+
export { createReadFileTool, createWriteFileTool, createEditFileTool, createApplyPatchTool, createListDirectoryTool, ensurePathAccess, resolveRoot, DEFAULT_EXCLUDED_DIRS, } from "./file-tools.js";
|
|
24
|
+
// === Image tools ===
|
|
25
|
+
export { createReadImageTool, readImageToContentParts } from "./image-tools.js";
|
|
26
|
+
// === File history ===
|
|
19
27
|
export { FileReadTracker } from "./read-tracker.js";
|
|
20
|
-
export { generateDiff } from "./diff.js";
|
|
21
28
|
export { InMemoryFileHistory } from "./file-history.js";
|
|
22
29
|
export { createFileHistoryHook } from "./history-hook.js";
|
|
23
|
-
|
|
30
|
+
// === Shell tool ===
|
|
31
|
+
export { createShellTool } from "./shell-tool.js";
|
|
32
|
+
export { ToolSandbox, signalToToolContext, createSandbox } from "./tool-sandbox.js";
|
|
33
|
+
// === Search tools ===
|
|
34
|
+
export { createGlobFilesTool, createGrepFilesTool, DEFAULT_IGNORED_DIRS } from "./search-tools.js";
|
|
35
|
+
export { createToolSearchTool } from "./tool-search.js";
|
|
36
|
+
// === Web tools ===
|
|
37
|
+
export { createWebFetchTool } from "./web-tools.js";
|
|
38
|
+
export { createWebSearchTool, TavilySearchProvider, SerperSearchProvider } from "./web-search-tool.js";
|
|
39
|
+
// === Git tools ===
|
|
40
|
+
export { createGitStatusTool, createGitDiffTool, createGitLogTool, createGitCommitTool } from "./git-tools.js";
|
|
41
|
+
// === Agent tools ===
|
|
24
42
|
export { createQuestionTool } from "./question-tool.js";
|
|
25
43
|
export { createTodoWriteTool } from "./todo-tool.js";
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
28
|
-
//
|
|
29
|
-
export {
|
|
30
|
-
|
|
31
|
-
export { createToolProviderRegistry, createToolProvider } from "./provider-helpers.js";
|
|
44
|
+
export { AgentToolProvider } from "./agent-provider.js";
|
|
45
|
+
export { SkillToolProvider } from "./skill-provider.js";
|
|
46
|
+
// === Image tools ===
|
|
47
|
+
export { readImageToContentParts as readImageFromImageTools } from "./image-tools.js";
|
|
48
|
+
// === Description lint ===
|
|
32
49
|
export { lintToolDescription, lintToolDefinitions } from "./description-lint.js";
|
|
33
|
-
export { validateInput, ToolInputError } from "./validate.js";
|
|
34
|
-
export { createSandbox } from "./sandbox.js";
|
|
35
|
-
export { commandPattern } from "./arity.js";
|
|
36
50
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAQpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAW7C,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,eAAe;AAEf,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,iBAAiB;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,wBAAwB;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,0BAA0B;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMxE,eAAe;AAEf,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,qBAAqB;AAErB,OAAO,EACL,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAC3D,oBAAoB,EAAE,uBAAuB,EAC7C,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,GACrD,MAAM,iBAAiB,CAAC;AAGzB,sBAAsB;AAEtB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,uBAAuB;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,qBAAqB;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpF,uBAAuB;AAEvB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,oBAAoB;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,oBAAoB;AAEpB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/G,sBAAsB;AAEtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,sBAAsB;AAEtB,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,2BAA2B;AAE3B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/json-schema.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Nested JSON Schema shape used to describe tool inputs. */
|
|
1
2
|
export interface NestedJsonSchema {
|
|
2
3
|
readonly type: "string" | "number" | "boolean" | "array" | "object";
|
|
3
4
|
readonly description?: string;
|
|
@@ -7,6 +8,7 @@ export interface NestedJsonSchema {
|
|
|
7
8
|
readonly items?: NestedJsonSchema;
|
|
8
9
|
readonly required?: readonly string[];
|
|
9
10
|
}
|
|
11
|
+
/** A single property within a {@link JsonSchema7Object}. */
|
|
10
12
|
export interface JsonSchemaProperty {
|
|
11
13
|
readonly type: "string" | "number" | "boolean" | "array" | "object";
|
|
12
14
|
readonly description?: string;
|
|
@@ -14,6 +16,7 @@ export interface JsonSchemaProperty {
|
|
|
14
16
|
readonly default?: unknown;
|
|
15
17
|
readonly items?: JsonSchemaProperty;
|
|
16
18
|
}
|
|
19
|
+
/** Minimal JSON Schema 7 object for tool input validation. */
|
|
17
20
|
export interface JsonSchema7Object {
|
|
18
21
|
readonly type: "object";
|
|
19
22
|
readonly properties?: Record<string, JsonSchemaProperty>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC"}
|
|
1
|
+
{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-scoped process termination.
|
|
3
|
+
*
|
|
4
|
+
* `child.kill()` only terminates the direct child; grandchild processes keep
|
|
5
|
+
* running (orphaned). This module kills the whole process tree:
|
|
6
|
+
* - POSIX: child is spawned `detached` (own process group) → `kill(-pid)`
|
|
7
|
+
* - Windows: `taskkill /pid <pid> /T /F`
|
|
8
|
+
*
|
|
9
|
+
* Termination is idempotent: repeated kills for the same pid are no-ops.
|
|
10
|
+
*
|
|
11
|
+
* @module tool/kill-tree
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import { type ChildProcess } from "node:child_process";
|
|
15
|
+
/** Clear the idempotency registry (used by tests). */
|
|
16
|
+
export declare function resetKillTreeState(): void;
|
|
17
|
+
/** True when the process (or its process group) is still alive. */
|
|
18
|
+
export declare function isPidAlive(pid: number): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Kill a child process and its whole subtree. Idempotent per pid.
|
|
21
|
+
*
|
|
22
|
+
* @param child - The spawned child process.
|
|
23
|
+
* @param signal - POSIX signal for the direct kill (default "SIGTERM").
|
|
24
|
+
* Windows always uses `taskkill /T /F`.
|
|
25
|
+
* @returns `true` when the kill was issued (or already issued), `false` when
|
|
26
|
+
* there is no pid yet (child not spawned).
|
|
27
|
+
*/
|
|
28
|
+
export declare function killProcessTree(child: ChildProcess, signal?: NodeJS.Signals): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Cross-platform spawn option that makes `killProcessTree` reach the whole
|
|
31
|
+
* tree. On Windows no extra flag is needed (taskkill walks the tree).
|
|
32
|
+
*/
|
|
33
|
+
export declare function treeKillSpawnOptions(): {
|
|
34
|
+
detached: boolean;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=kill-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kill-tree.d.ts","sourceRoot":"","sources":["../src/kill-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,sDAAsD;AACtD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,OAAO,CA6BhG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAE5D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-scoped process termination.
|
|
3
|
+
*
|
|
4
|
+
* `child.kill()` only terminates the direct child; grandchild processes keep
|
|
5
|
+
* running (orphaned). This module kills the whole process tree:
|
|
6
|
+
* - POSIX: child is spawned `detached` (own process group) → `kill(-pid)`
|
|
7
|
+
* - Windows: `taskkill /pid <pid> /T /F`
|
|
8
|
+
*
|
|
9
|
+
* Termination is idempotent: repeated kills for the same pid are no-ops.
|
|
10
|
+
*
|
|
11
|
+
* @module tool/kill-tree
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import { spawn } from "node:child_process";
|
|
15
|
+
const terminatedPids = new Set();
|
|
16
|
+
/** Clear the idempotency registry (used by tests). */
|
|
17
|
+
export function resetKillTreeState() {
|
|
18
|
+
terminatedPids.clear();
|
|
19
|
+
}
|
|
20
|
+
/** True when the process (or its process group) is still alive. */
|
|
21
|
+
export function isPidAlive(pid) {
|
|
22
|
+
if (!pid || pid <= 0)
|
|
23
|
+
return false;
|
|
24
|
+
try {
|
|
25
|
+
process.kill(pid, 0);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
return err.code !== "ESRCH";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Kill a child process and its whole subtree. Idempotent per pid.
|
|
34
|
+
*
|
|
35
|
+
* @param child - The spawned child process.
|
|
36
|
+
* @param signal - POSIX signal for the direct kill (default "SIGTERM").
|
|
37
|
+
* Windows always uses `taskkill /T /F`.
|
|
38
|
+
* @returns `true` when the kill was issued (or already issued), `false` when
|
|
39
|
+
* there is no pid yet (child not spawned).
|
|
40
|
+
*/
|
|
41
|
+
export function killProcessTree(child, signal = "SIGTERM") {
|
|
42
|
+
const pid = child.pid;
|
|
43
|
+
if (!pid || pid <= 0)
|
|
44
|
+
return false;
|
|
45
|
+
if (terminatedPids.has(pid))
|
|
46
|
+
return true;
|
|
47
|
+
terminatedPids.add(pid);
|
|
48
|
+
if (process.platform === "win32") {
|
|
49
|
+
spawn("taskkill", ["/pid", String(pid), "/T", "/F"], {
|
|
50
|
+
windowsHide: true,
|
|
51
|
+
stdio: "ignore",
|
|
52
|
+
}).unref();
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
// POSIX: the child was spawned detached → kill the whole process group.
|
|
56
|
+
try {
|
|
57
|
+
process.kill(-pid, signal);
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
if (err.code === "ESRCH") {
|
|
61
|
+
// Already gone — group kill is best-effort.
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
process.kill(pid, signal);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Already gone.
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Cross-platform spawn option that makes `killProcessTree` reach the whole
|
|
75
|
+
* tree. On Windows no extra flag is needed (taskkill walks the tree).
|
|
76
|
+
*/
|
|
77
|
+
export function treeKillSpawnOptions() {
|
|
78
|
+
return { detached: process.platform !== "win32" };
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=kill-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kill-tree.js","sourceRoot":"","sources":["../src/kill-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC,sDAAsD;AACtD,MAAM,UAAU,kBAAkB;IAChC,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAE,SAAyB,SAAS;IACrF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAExB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;YACnD,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpD,4CAA4C;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;AACpD,CAAC"}
|
package/dist/lazy-registry.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import type { ToolDefinition } from "./definitions.js";
|
|
1
|
+
import type { ToolDefinition, ToolRisk } from "./definitions.js";
|
|
2
2
|
import { ToolRegistry } from "./registry.js";
|
|
3
|
+
/** A tool registered for lazy, on-demand construction. */
|
|
3
4
|
export interface LazyToolEntry {
|
|
4
5
|
id: string;
|
|
5
|
-
risk?:
|
|
6
|
+
risk?: ToolRisk;
|
|
6
7
|
factory: () => Promise<ToolDefinition>;
|
|
7
8
|
instance?: ToolDefinition;
|
|
8
9
|
}
|
|
10
|
+
/** A {@link ToolRegistry} that constructs tools lazily on first resolve. */
|
|
9
11
|
export declare class LazyToolRegistry extends ToolRegistry {
|
|
10
12
|
private entries;
|
|
11
13
|
private loading;
|
|
@@ -13,7 +15,7 @@ export declare class LazyToolRegistry extends ToolRegistry {
|
|
|
13
15
|
resolve(id: string): Promise<ToolDefinition | undefined>;
|
|
14
16
|
register(tool: ToolDefinition): void;
|
|
15
17
|
unregister(id: string): boolean;
|
|
16
|
-
list(): ToolDefinition[];
|
|
18
|
+
list(): readonly ToolDefinition[];
|
|
17
19
|
listLazy(): LazyToolEntry[];
|
|
18
20
|
count(): number;
|
|
19
21
|
getOrThrow(id: string): ToolDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-registry.d.ts","sourceRoot":"","sources":["../src/lazy-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lazy-registry.d.ts","sourceRoot":"","sources":["../src/lazy-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,4EAA4E;AAC5E,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,OAAO,CAA8C;IAE7D,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIlC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAkBrD,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B,IAAI,IAAI,SAAS,cAAc,EAAE;IAM1C,QAAQ,IAAI,aAAa,EAAE;IAIlB,KAAK,IAAI,MAAM;IAIf,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;IAM/C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIvB,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAQ9C"}
|