@vinhnt-sdk/tools 0.1.2 → 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.
Files changed (127) hide show
  1. package/dist/agent-provider.d.ts +30 -0
  2. package/dist/agent-provider.d.ts.map +1 -0
  3. package/dist/agent-provider.js +35 -0
  4. package/dist/agent-provider.js.map +1 -0
  5. package/dist/define-tool.d.ts +6 -1
  6. package/dist/define-tool.d.ts.map +1 -1
  7. package/dist/define-tool.js +8 -5
  8. package/dist/define-tool.js.map +1 -1
  9. package/dist/definitions.d.ts +12 -1
  10. package/dist/definitions.d.ts.map +1 -1
  11. package/dist/definitions.js +2 -1
  12. package/dist/definitions.js.map +1 -1
  13. package/dist/description-lint.d.ts +2 -0
  14. package/dist/description-lint.d.ts.map +1 -1
  15. package/dist/description-lint.js.map +1 -1
  16. package/dist/diff.d.ts +2 -0
  17. package/dist/diff.d.ts.map +1 -1
  18. package/dist/diff.js +1 -0
  19. package/dist/diff.js.map +1 -1
  20. package/dist/file-history.d.ts +4 -0
  21. package/dist/file-history.d.ts.map +1 -1
  22. package/dist/file-history.js +1 -0
  23. package/dist/file-history.js.map +1 -1
  24. package/dist/file-tools.d.ts +45 -12
  25. package/dist/file-tools.d.ts.map +1 -1
  26. package/dist/file-tools.js +104 -30
  27. package/dist/file-tools.js.map +1 -1
  28. package/dist/git-tools.d.ts +5 -1
  29. package/dist/git-tools.d.ts.map +1 -1
  30. package/dist/git-tools.js +7 -2
  31. package/dist/git-tools.js.map +1 -1
  32. package/dist/history-hook.d.ts +2 -1
  33. package/dist/history-hook.d.ts.map +1 -1
  34. package/dist/history-hook.js +4 -3
  35. package/dist/history-hook.js.map +1 -1
  36. package/dist/image-tools.d.ts +13 -3
  37. package/dist/image-tools.d.ts.map +1 -1
  38. package/dist/image-tools.js +62 -13
  39. package/dist/image-tools.js.map +1 -1
  40. package/dist/index.d.ts +38 -230
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +38 -131
  43. package/dist/index.js.map +1 -1
  44. package/dist/json-schema.d.ts +3 -0
  45. package/dist/json-schema.d.ts.map +1 -1
  46. package/dist/kill-tree.d.ts +36 -0
  47. package/dist/kill-tree.d.ts.map +1 -0
  48. package/dist/kill-tree.js +80 -0
  49. package/dist/kill-tree.js.map +1 -0
  50. package/dist/lazy-registry.d.ts +5 -3
  51. package/dist/lazy-registry.d.ts.map +1 -1
  52. package/dist/lazy-registry.js +1 -0
  53. package/dist/lazy-registry.js.map +1 -1
  54. package/dist/policy.d.ts +1 -0
  55. package/dist/policy.d.ts.map +1 -1
  56. package/dist/providers/builtin-provider.d.ts.map +1 -1
  57. package/dist/providers/builtin-provider.js +1 -4
  58. package/dist/providers/builtin-provider.js.map +1 -1
  59. package/dist/providers/file-loader.d.ts +20 -2
  60. package/dist/providers/file-loader.d.ts.map +1 -1
  61. package/dist/providers/file-loader.js +46 -6
  62. package/dist/providers/file-loader.js.map +1 -1
  63. package/dist/providers/index.d.ts +0 -4
  64. package/dist/providers/index.d.ts.map +1 -1
  65. package/dist/providers/index.js +0 -3
  66. package/dist/providers/index.js.map +1 -1
  67. package/dist/question-tool.d.ts +9 -3
  68. package/dist/question-tool.d.ts.map +1 -1
  69. package/dist/question-tool.js +5 -1
  70. package/dist/question-tool.js.map +1 -1
  71. package/dist/read-tracker.d.ts +10 -1
  72. package/dist/read-tracker.d.ts.map +1 -1
  73. package/dist/read-tracker.js +38 -8
  74. package/dist/read-tracker.js.map +1 -1
  75. package/dist/registry.d.ts +3 -0
  76. package/dist/registry.d.ts.map +1 -1
  77. package/dist/registry.js +8 -2
  78. package/dist/registry.js.map +1 -1
  79. package/dist/saga.d.ts +32 -0
  80. package/dist/saga.d.ts.map +1 -0
  81. package/dist/saga.js +65 -0
  82. package/dist/saga.js.map +1 -0
  83. package/dist/sandbox.d.ts +2 -0
  84. package/dist/sandbox.d.ts.map +1 -1
  85. package/dist/sandbox.js +10 -43
  86. package/dist/sandbox.js.map +1 -1
  87. package/dist/search-tools.d.ts +3 -1
  88. package/dist/search-tools.d.ts.map +1 -1
  89. package/dist/search-tools.js +7 -3
  90. package/dist/search-tools.js.map +1 -1
  91. package/dist/shell-parser.js +1 -0
  92. package/dist/shell-parser.js.map +1 -1
  93. package/dist/shell-tool.d.ts +11 -4
  94. package/dist/shell-tool.d.ts.map +1 -1
  95. package/dist/shell-tool.js +16 -9
  96. package/dist/shell-tool.js.map +1 -1
  97. package/dist/skill-provider.d.ts +21 -0
  98. package/dist/skill-provider.d.ts.map +1 -0
  99. package/dist/skill-provider.js +28 -0
  100. package/dist/skill-provider.js.map +1 -0
  101. package/dist/todo-tool.d.ts +2 -1
  102. package/dist/todo-tool.d.ts.map +1 -1
  103. package/dist/todo-tool.js +2 -1
  104. package/dist/todo-tool.js.map +1 -1
  105. package/dist/tool-sandbox.d.ts +19 -0
  106. package/dist/tool-sandbox.d.ts.map +1 -0
  107. package/dist/tool-sandbox.js +100 -0
  108. package/dist/tool-sandbox.js.map +1 -0
  109. package/dist/tool-search.d.ts +6 -3
  110. package/dist/tool-search.d.ts.map +1 -1
  111. package/dist/tool-search.js +2 -1
  112. package/dist/tool-search.js.map +1 -1
  113. package/dist/types.d.ts +2 -0
  114. package/dist/types.d.ts.map +1 -1
  115. package/dist/validate.d.ts +4 -1
  116. package/dist/validate.d.ts.map +1 -1
  117. package/dist/validate.js +3 -0
  118. package/dist/validate.js.map +1 -1
  119. package/dist/web-search-tool.d.ts +10 -5
  120. package/dist/web-search-tool.d.ts.map +1 -1
  121. package/dist/web-search-tool.js +5 -3
  122. package/dist/web-search-tool.js.map +1 -1
  123. package/dist/web-tools.d.ts +8 -3
  124. package/dist/web-tools.d.ts.map +1 -1
  125. package/dist/web-tools.js +5 -1
  126. package/dist/web-tools.js.map +1 -1
  127. package/package.json +10 -9
@@ -1,8 +1,9 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import { extname } from "node:path";
2
+ import { extname, resolve } from "node:path";
3
3
  import { ValidationError } from "@vinhnt-sdk/schema";
4
4
  import { z } from "zod";
5
- import { defineTool } from "./define-tool.js";
5
+ import { defineTool } from "@vinhnt-sdk/tools";
6
+ import { ensurePathAccess, isWithinWorkspace, resolveRoot } from "./file-tools.js";
6
7
  const ReadImageSchema = z.object({
7
8
  filePath: z.string().min(1),
8
9
  });
@@ -13,44 +14,92 @@ const MIME_TYPES = {
13
14
  ".gif": "image/gif",
14
15
  ".webp": "image/webp",
15
16
  };
16
- export function readImageToContentParts(filePath) {
17
- return readImageToContentPartsInner(filePath);
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);
18
47
  }
19
- async function readImageToContentPartsInner(filePath) {
48
+ async function readImageToContentPartsInner(filePath, workspaceRoot, externalDirAccess, ctx, maxSize) {
20
49
  const ext = extname(filePath).toLowerCase();
21
50
  const mimeType = MIME_TYPES[ext];
22
51
  if (!mimeType) {
23
52
  throw new ValidationError(`Unsupported image format: ${ext}. Supported: png, jpg, jpeg, gif, webp`);
24
53
  }
25
- const buffer = await readFile(filePath);
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`);
62
+ }
26
63
  const base64 = buffer.toString("base64");
27
64
  return [
28
65
  { type: "text", text: `[Image: ${filePath}]` },
29
66
  { type: "image", image: base64, mimeType },
30
67
  ];
31
68
  }
32
- export function createReadImageTool() {
69
+ /** Create the `read_image` tool that returns image content for the model to analyze. */
70
+ export function createReadImageTool(workspaceRoot, externalDirAccess) {
33
71
  return defineTool({
34
72
  name: "read_image",
35
73
  description: "Read an image file and return its content for the model to analyze",
36
74
  risk: "read",
37
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
+ },
38
85
  jsonSchema: {
39
86
  type: "object",
40
87
  properties: {
41
- filePath: { type: "string", description: "Path to the image file" },
88
+ filePath: { type: "string", description: "Path relative to workspace root" },
89
+ path: { type: "string", description: "Alias for filePath" },
42
90
  },
43
- required: ["filePath"],
44
91
  },
45
- async execute(v) {
46
- const parts = await readImageToContentParts(v.filePath);
92
+ async execute(v, ctx) {
93
+ const filePath = v.filePath;
94
+ const parts = await readImageToContentPartsInner(filePath, workspaceRoot, externalDirAccess, ctx);
47
95
  return {
48
- filePath: v.filePath,
96
+ filePath,
49
97
  mimeType: parts[1] && "mimeType" in parts[1] ? parts[1].mimeType : undefined,
50
98
  size: parts[1] && "image" in parts[1] ? parts[1].image.length : 0,
51
- message: `Image loaded: ${v.filePath}`,
99
+ message: `Image loaded: ${filePath}`,
52
100
  };
53
101
  },
54
102
  }).toDefinition();
55
103
  }
104
+ export { isWithinWorkspace };
56
105
  //# sourceMappingURL=image-tools.js.map
@@ -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;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,QAAgB;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CAAC,6BAA6B,GAAG,wCAAwC,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,OAAO;QACL,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,QAAQ,GAAG,EAAE;QAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAEd;QACD,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oEAAoE;QACjF,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;aACpE;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;QACD,KAAK,CAAC,OAAO,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxD,OAAO;gBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACvG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxF,OAAO,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE;aACvC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC,YAAY,EAAE,CAAC;AACpB,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,247 +1,55 @@
1
1
  /**
2
- * Core tool types and utilities for building AI coding agents.
3
- *
4
- * Tools enable agents to interact with the file system, execute shell commands,
5
- * search code, and perform other operations.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { defineTool, ToolRegistry } from "@vinhnt-sdk/tools";
10
- * import { z } from "zod";
11
- *
12
- * const myTool = defineTool({
13
- * name: "my_tool",
14
- * description: "A custom tool",
15
- * risk: "read",
16
- * input: z.object({
17
- * query: z.string(),
18
- * }),
19
- * async execute(input, ctx) {
20
- * return `Result: ${input.query}`;
21
- * },
22
- * });
23
- *
24
- * const registry = new ToolRegistry();
25
- * registry.register(myTool);
26
- * ```
27
- */
28
- /**
29
- * Tool type definition.
2
+ * @module tools
3
+ * Built-in tools for VNT Agent — file, shell, git, web, search, and more.
30
4
  */
31
5
  export type { Tool, ToolConfig } from "./define-tool.js";
32
- /**
33
- * Define a new tool.
34
- */
35
6
  export { defineTool, toolToDefinition, zodSchemaToNestedJsonSchema } from "./define-tool.js";
36
- /**
37
- * Tool registry for managing tools.
38
- */
39
- export { ToolRegistry } from "./registry.js";
40
- /**
41
- * Tool registry types.
42
- */
43
- export type { ToolFilter, ToolPermissionRule, ToolMaterialization } from "./registry.js";
44
- /**
45
- * Tool risk levels and definitions.
46
- */
47
- export type { ToolRisk, ToolDefinition } from "./definitions.js";
48
- /**
49
- * Tool definition like interface from schema.
50
- */
7
+ export { commandPattern, prefix } from "./arity.js";
51
8
  export type { ToolDefinitionLike } from "@vinhnt-sdk/schema";
52
- /**
53
- * Tool context and types.
54
- */
55
- /**
56
- * Tool execution context.
57
- */
9
+ export type { ToolDefinition, ToolRisk } from "./definitions.js";
10
+ export type { ToolFilter, ToolPermissionRule, ToolMaterialization } from "./registry.js";
11
+ export { ToolRegistry } from "./registry.js";
58
12
  export type { ToolContext, PermissionReply } from "./context.js";
59
- /**
60
- * JSON Schema types.
61
- */
62
- export type { JsonSchema7Object, JsonSchemaProperty } from "./json-schema.js";
63
- /**
64
- * Tool hooks and execution results.
65
- */
66
13
  export type { ToolHook, ToolExecutionResult } from "./types.js";
67
- /**
68
- * Built-in tools for file operations, shell commands, and more.
69
- *
70
- * @example
71
- * ```typescript
72
- * import { createReadFileTool, createShellTool } from "@vinhnt-sdk/tools";
73
- *
74
- * const readFile = createReadFileTool(() => "/workspace");
75
- * const shell = createShellTool(() => "/workspace");
76
- * ```
77
- */
78
- /**
79
- * File operation tools.
80
- */
81
- export { createReadFileTool, createWriteFileTool, createEditFileTool, createApplyPatchTool } from "./file-tools.js";
82
- /**
83
- * Directory listing tool.
84
- */
85
- export { createListDirectoryTool } from "./file-tools.js";
86
- /**
87
- * Shell command execution tool.
88
- */
89
- export { createShellTool } from "./shell-tool.js";
90
- /**
91
- * Shell tool configuration.
92
- */
93
- export type { ShellToolConfig } from "./shell-tool.js";
94
- /**
95
- * Git operation tools.
96
- */
97
- export { createGitStatusTool, createGitDiffTool, createGitLogTool, createGitCommitTool } from "./git-tools.js";
98
- /**
99
- * Search tools for file and content search.
100
- */
101
- export { createGlobFilesTool, createGrepFilesTool } from "./search-tools.js";
102
- /**
103
- * Web fetch tool.
104
- */
105
- export { createWebFetchTool } from "./web-tools.js";
106
- /**
107
- * Image reading tool.
108
- */
109
- export { createReadImageTool, readImageToContentParts } from "./image-tools.js";
110
- /**
111
- * Question tool for user interaction.
112
- */
113
- export { createQuestionTool } from "./question-tool.js";
114
- /**
115
- * Question tool types.
116
- */
117
- export type { QuestionInput, QuestionHandler } from "./question-tool.js";
118
- /**
119
- * Web search tool.
120
- */
121
- export { createWebSearchTool } from "./web-search-tool.js";
122
- /**
123
- * Web search tool configuration.
124
- */
125
- export type { WebSearchToolConfig, WebSearchProvider } from "./web-search-tool.js";
126
- /**
127
- * Todo list management tool.
128
- */
129
- export { createTodoWriteTool } from "./todo-tool.js";
130
- /**
131
- * Tool search tool for finding other tools.
132
- */
133
- export { createToolSearchTool } from "./tool-search.js";
134
- /**
135
- * Tool search types.
136
- */
137
- export type { ToolSearchInput, ToolSearchResult } from "./tool-search.js";
138
- /**
139
- * Sandbox system for isolated tool execution.
140
- */
141
- /**
142
- * Sandbox for isolated tool execution.
143
- */
144
- export { ToolSandbox, signalToToolContext, createSandbox } from "./sandbox.js";
145
- /**
146
- * Sandbox configuration and types.
147
- */
148
- export type { SandboxConfig, SandboxScope, ProcessSandbox, SandboxResult } from "./sandbox.js";
149
- /**
150
- * Utility functions for tools.
151
- */
152
- /**
153
- * Generate unified diffs.
154
- */
14
+ export type { JsonSchema7Object, JsonSchemaProperty } from "./json-schema.js";
15
+ export { validateInput } from "./validate.js";
16
+ export { ToolInputError } from "./validate.js";
155
17
  export { generateDiff } from "./diff.js";
156
- /**
157
- * Diff types.
158
- */
159
18
  export type { UnifiedDiff } from "./diff.js";
160
- /**
161
- * Tool description linting utilities.
162
- */
163
- export { lintToolDescription, lintToolDefinitions } from "./description-lint.js";
164
- /**
165
- * Tool description linting types.
166
- */
167
- export type { ToolDescriptionReport, ToolDescriptionIssue, DescriptionIssueCode } from "./description-lint.js";
168
- /**
169
- * Input validation utilities.
170
- */
171
- export { validateInput, ToolInputError } from "./validate.js";
172
- /**
173
- * Command pattern utilities.
174
- */
175
- export { commandPattern } from "./arity.js";
176
- /**
177
- * File history tracking system.
178
- */
179
- /**
180
- * File read tracker.
181
- */
182
- export { FileReadTracker } from "./read-tracker.js";
183
- /**
184
- * In-memory file history store.
185
- */
186
- export { InMemoryFileHistory } from "./file-history.js";
187
- /**
188
- * File history hook for tracking changes.
189
- */
190
- export { createFileHistoryHook } from "./history-hook.js";
191
- /**
192
- * File history types.
193
- */
194
- export type { FileHistory, FileVersion, UndoEntry } from "./file-history.js";
195
- /**
196
- * Domain system for organizing tools.
197
- */
198
- /**
199
- * Create a coding domain.
200
- */
201
19
  export { createCodingDomain } from "./domain.js";
202
- /**
203
- * Domain manifest type.
204
- */
205
20
  export type { DomainManifest } from "./domain.js";
206
- /**
207
- * Lazy loading for tools.
208
- */
209
- /**
210
- * Lazy tool registry for deferred loading.
211
- */
212
21
  export { LazyToolRegistry } from "./lazy-registry.js";
213
- /**
214
- * Lazy tool entry type.
215
- */
216
22
  export type { LazyToolEntry } from "./lazy-registry.js";
217
- /**
218
- * Tool provider system.
219
- */
220
- /**
221
- * Tool provider registry.
222
- */
223
23
  export { ToolProviderRegistry } from "./provider.js";
224
- /**
225
- * Tool provider interface.
226
- */
227
24
  export type { ToolProvider } from "./provider.js";
228
- /**
229
- * Built-in tool providers.
230
- */
231
- export { BuiltinToolProvider, ToolFileProvider, ToolFileLoader, AgentToolProvider, SkillToolProvider } from "./providers/index.js";
232
- /**
233
- * Built-in tool provider configuration.
234
- */
235
- export type { BuiltinToolConfig } from "./providers/index.js";
236
- /**
237
- * Tool provider helper functions.
238
- */
239
- export { createToolProviderRegistry, createToolProvider } from "./provider-helpers.js";
240
- /**
241
- * Policy system for tool permissions.
242
- */
243
- /**
244
- * Approval handler type.
245
- */
25
+ export { ToolFileProvider, ToolFileLoader } from "./providers/index.js";
246
26
  export type { ApprovalHandler } from "./policy.js";
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";
32
+ export { FileReadTracker } from "./read-tracker.js";
33
+ export { InMemoryFileHistory } from "./file-history.js";
34
+ export { createFileHistoryHook } from "./history-hook.js";
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";
47
+ export { createQuestionTool } from "./question-tool.js";
48
+ export type { QuestionInput, QuestionHandler } from "./question-tool.js";
49
+ export { createTodoWriteTool } from "./todo-tool.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";
54
+ export { lintToolDescription, lintToolDefinitions } from "./description-lint.js";
247
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,143 +1,50 @@
1
- // @vinhnt-sdk/tools
2
- // Tool system for building AI coding agents
3
1
  /**
4
- * Define a new tool.
2
+ * @module tools
3
+ * Built-in tools for VNT Agent — file, shell, git, web, search, and more.
5
4
  */
6
5
  export { defineTool, toolToDefinition, zodSchemaToNestedJsonSchema } from "./define-tool.js";
7
- /**
8
- * Tool registry for managing tools.
9
- */
6
+ export { commandPattern, prefix } from "./arity.js";
10
7
  export { ToolRegistry } from "./registry.js";
11
- /**
12
- * Built-in tools for file operations, shell commands, and more.
13
- *
14
- * @example
15
- * ```typescript
16
- * import { createReadFileTool, createShellTool } from "@vinhnt-sdk/tools";
17
- *
18
- * const readFile = createReadFileTool(() => "/workspace");
19
- * const shell = createShellTool(() => "/workspace");
20
- * ```
21
- */
22
- // === Built-in tools ===
23
- /**
24
- * File operation tools.
25
- */
26
- export { createReadFileTool, createWriteFileTool, createEditFileTool, createApplyPatchTool } from "./file-tools.js";
27
- /**
28
- * Directory listing tool.
29
- */
30
- export { createListDirectoryTool } from "./file-tools.js";
31
- /**
32
- * Shell command execution tool.
33
- */
34
- export { createShellTool } from "./shell-tool.js";
35
- /**
36
- * Git operation tools.
37
- */
38
- export { createGitStatusTool, createGitDiffTool, createGitLogTool, createGitCommitTool } from "./git-tools.js";
39
- /**
40
- * Search tools for file and content search.
41
- */
42
- export { createGlobFilesTool, createGrepFilesTool } from "./search-tools.js";
43
- /**
44
- * Web fetch tool.
45
- */
46
- export { createWebFetchTool } from "./web-tools.js";
47
- /**
48
- * Image reading tool.
49
- */
50
- export { createReadImageTool, readImageToContentParts } from "./image-tools.js";
51
- /**
52
- * Question tool for user interaction.
53
- */
54
- export { createQuestionTool } from "./question-tool.js";
55
- /**
56
- * Web search tool.
57
- */
58
- export { createWebSearchTool } from "./web-search-tool.js";
59
- /**
60
- * Todo list management tool.
61
- */
62
- export { createTodoWriteTool } from "./todo-tool.js";
63
- /**
64
- * Tool search tool for finding other tools.
65
- */
66
- export { createToolSearchTool } from "./tool-search.js";
67
- /**
68
- * Sandbox system for isolated tool execution.
69
- */
70
- // === Sandbox ===
71
- /**
72
- * Sandbox for isolated tool execution.
73
- */
74
- export { ToolSandbox, signalToToolContext, createSandbox } from "./sandbox.js";
75
- /**
76
- * Utility functions for tools.
77
- */
78
- // === Utilities ===
79
- /**
80
- * Generate unified diffs.
81
- */
8
+ // === Validation ===
9
+ export { validateInput } from "./validate.js";
10
+ export { ToolInputError } from "./validate.js";
11
+ // === Diff ===
82
12
  export { generateDiff } from "./diff.js";
83
- /**
84
- * Tool description linting utilities.
85
- */
86
- export { lintToolDescription, lintToolDefinitions } from "./description-lint.js";
87
- /**
88
- * Input validation utilities.
89
- */
90
- export { validateInput, ToolInputError } from "./validate.js";
91
- /**
92
- * Command pattern utilities.
93
- */
94
- export { commandPattern } from "./arity.js";
95
- /**
96
- * File history tracking system.
97
- */
98
- // === File history ===
99
- /**
100
- * File read tracker.
101
- */
102
- export { FileReadTracker } from "./read-tracker.js";
103
- /**
104
- * In-memory file history store.
105
- */
106
- export { InMemoryFileHistory } from "./file-history.js";
107
- /**
108
- * File history hook for tracking changes.
109
- */
110
- export { createFileHistoryHook } from "./history-hook.js";
111
- /**
112
- * Domain system for organizing tools.
113
- */
114
13
  // === Domain ===
115
- /**
116
- * Create a coding domain.
117
- */
118
14
  export { createCodingDomain } from "./domain.js";
119
- /**
120
- * Lazy loading for tools.
121
- */
122
15
  // === Lazy registry ===
123
- /**
124
- * Lazy tool registry for deferred loading.
125
- */
126
16
  export { LazyToolRegistry } from "./lazy-registry.js";
127
- /**
128
- * Tool provider system.
129
- */
130
17
  // === Provider system ===
131
- /**
132
- * Tool provider registry.
133
- */
134
18
  export { ToolProviderRegistry } from "./provider.js";
135
- /**
136
- * Built-in tool providers.
137
- */
138
- export { BuiltinToolProvider, ToolFileProvider, ToolFileLoader, AgentToolProvider, SkillToolProvider } from "./providers/index.js";
139
- /**
140
- * Tool provider helper functions.
141
- */
142
- export { createToolProviderRegistry, createToolProvider } from "./provider-helpers.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 ===
27
+ export { FileReadTracker } from "./read-tracker.js";
28
+ export { InMemoryFileHistory } from "./file-history.js";
29
+ export { createFileHistoryHook } from "./history-hook.js";
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 ===
42
+ export { createQuestionTool } from "./question-tool.js";
43
+ export { createTodoWriteTool } from "./todo-tool.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 ===
49
+ export { lintToolDescription, lintToolDefinitions } from "./description-lint.js";
143
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":"AAAA,oBAAoB;AACpB,4CAA4C;AAqC5C;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE7F;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAsC7C;;;;;;;;;;GAUG;AAEH,yBAAyB;AAEzB;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpH;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAOlD;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/G;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAOxD;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAO3D;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOxD;;GAEG;AAEH,kBAAkB;AAElB;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO/E;;GAEG;AAEH,oBAAoB;AAEpB;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAOjF;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AAEH,uBAAuB;AAEvB;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAO1D;;GAEG;AAEH,iBAAiB;AAEjB;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOjD;;GAEG;AAEH,wBAAwB;AAExB;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD;;GAEG;AAEH,0BAA0B;AAE1B;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAOrD;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOnI;;GAEG;AACH,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
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"}
@@ -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>;