@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.
Files changed (131) hide show
  1. package/README.md +179 -0
  2. package/dist/agent-provider.d.ts +30 -0
  3. package/dist/agent-provider.d.ts.map +1 -0
  4. package/dist/agent-provider.js +35 -0
  5. package/dist/agent-provider.js.map +1 -0
  6. package/dist/define-tool.d.ts +6 -1
  7. package/dist/define-tool.d.ts.map +1 -1
  8. package/dist/define-tool.js +8 -5
  9. package/dist/define-tool.js.map +1 -1
  10. package/dist/definitions.d.ts +12 -1
  11. package/dist/definitions.d.ts.map +1 -1
  12. package/dist/definitions.js +2 -1
  13. package/dist/definitions.js.map +1 -1
  14. package/dist/description-lint.d.ts +2 -0
  15. package/dist/description-lint.d.ts.map +1 -1
  16. package/dist/description-lint.js.map +1 -1
  17. package/dist/diff.d.ts +2 -0
  18. package/dist/diff.d.ts.map +1 -1
  19. package/dist/diff.js +1 -0
  20. package/dist/diff.js.map +1 -1
  21. package/dist/file-history.d.ts +4 -0
  22. package/dist/file-history.d.ts.map +1 -1
  23. package/dist/file-history.js +3 -1
  24. package/dist/file-history.js.map +1 -1
  25. package/dist/file-tools.d.ts +45 -12
  26. package/dist/file-tools.d.ts.map +1 -1
  27. package/dist/file-tools.js +112 -37
  28. package/dist/file-tools.js.map +1 -1
  29. package/dist/git-tools.d.ts +5 -1
  30. package/dist/git-tools.d.ts.map +1 -1
  31. package/dist/git-tools.js +7 -2
  32. package/dist/git-tools.js.map +1 -1
  33. package/dist/history-hook.d.ts +2 -1
  34. package/dist/history-hook.d.ts.map +1 -1
  35. package/dist/history-hook.js +4 -3
  36. package/dist/history-hook.js.map +1 -1
  37. package/dist/image-tools.d.ts +13 -3
  38. package/dist/image-tools.d.ts.map +1 -1
  39. package/dist/image-tools.js +64 -14
  40. package/dist/image-tools.js.map +1 -1
  41. package/dist/index.d.ts +41 -43
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +40 -26
  44. package/dist/index.js.map +1 -1
  45. package/dist/json-schema.d.ts +3 -0
  46. package/dist/json-schema.d.ts.map +1 -1
  47. package/dist/kill-tree.d.ts +36 -0
  48. package/dist/kill-tree.d.ts.map +1 -0
  49. package/dist/kill-tree.js +80 -0
  50. package/dist/kill-tree.js.map +1 -0
  51. package/dist/lazy-registry.d.ts +5 -3
  52. package/dist/lazy-registry.d.ts.map +1 -1
  53. package/dist/lazy-registry.js +3 -1
  54. package/dist/lazy-registry.js.map +1 -1
  55. package/dist/policy.d.ts +1 -0
  56. package/dist/policy.d.ts.map +1 -1
  57. package/dist/provider.d.ts.map +1 -1
  58. package/dist/provider.js +2 -1
  59. package/dist/provider.js.map +1 -1
  60. package/dist/providers/builtin-provider.d.ts.map +1 -1
  61. package/dist/providers/builtin-provider.js +1 -4
  62. package/dist/providers/builtin-provider.js.map +1 -1
  63. package/dist/providers/file-loader.d.ts +20 -2
  64. package/dist/providers/file-loader.d.ts.map +1 -1
  65. package/dist/providers/file-loader.js +46 -6
  66. package/dist/providers/file-loader.js.map +1 -1
  67. package/dist/providers/index.d.ts +0 -4
  68. package/dist/providers/index.d.ts.map +1 -1
  69. package/dist/providers/index.js +0 -3
  70. package/dist/providers/index.js.map +1 -1
  71. package/dist/question-tool.d.ts +9 -3
  72. package/dist/question-tool.d.ts.map +1 -1
  73. package/dist/question-tool.js +5 -1
  74. package/dist/question-tool.js.map +1 -1
  75. package/dist/read-tracker.d.ts +10 -1
  76. package/dist/read-tracker.d.ts.map +1 -1
  77. package/dist/read-tracker.js +38 -8
  78. package/dist/read-tracker.js.map +1 -1
  79. package/dist/registry.d.ts +3 -0
  80. package/dist/registry.d.ts.map +1 -1
  81. package/dist/registry.js +8 -2
  82. package/dist/registry.js.map +1 -1
  83. package/dist/saga.d.ts +32 -0
  84. package/dist/saga.d.ts.map +1 -0
  85. package/dist/saga.js +65 -0
  86. package/dist/saga.js.map +1 -0
  87. package/dist/sandbox.d.ts +2 -0
  88. package/dist/sandbox.d.ts.map +1 -1
  89. package/dist/sandbox.js +10 -43
  90. package/dist/sandbox.js.map +1 -1
  91. package/dist/search-tools.d.ts +3 -1
  92. package/dist/search-tools.d.ts.map +1 -1
  93. package/dist/search-tools.js +7 -3
  94. package/dist/search-tools.js.map +1 -1
  95. package/dist/shell-parser.js +1 -0
  96. package/dist/shell-parser.js.map +1 -1
  97. package/dist/shell-tool.d.ts +11 -4
  98. package/dist/shell-tool.d.ts.map +1 -1
  99. package/dist/shell-tool.js +16 -9
  100. package/dist/shell-tool.js.map +1 -1
  101. package/dist/skill-provider.d.ts +21 -0
  102. package/dist/skill-provider.d.ts.map +1 -0
  103. package/dist/skill-provider.js +28 -0
  104. package/dist/skill-provider.js.map +1 -0
  105. package/dist/todo-tool.d.ts +2 -1
  106. package/dist/todo-tool.d.ts.map +1 -1
  107. package/dist/todo-tool.js +2 -1
  108. package/dist/todo-tool.js.map +1 -1
  109. package/dist/tool-sandbox.d.ts +19 -0
  110. package/dist/tool-sandbox.d.ts.map +1 -0
  111. package/dist/tool-sandbox.js +100 -0
  112. package/dist/tool-sandbox.js.map +1 -0
  113. package/dist/tool-search.d.ts +6 -3
  114. package/dist/tool-search.d.ts.map +1 -1
  115. package/dist/tool-search.js +2 -1
  116. package/dist/tool-search.js.map +1 -1
  117. package/dist/types.d.ts +2 -0
  118. package/dist/types.d.ts.map +1 -1
  119. package/dist/validate.d.ts +8 -3
  120. package/dist/validate.d.ts.map +1 -1
  121. package/dist/validate.js +8 -3
  122. package/dist/validate.js.map +1 -1
  123. package/dist/web-search-tool.d.ts +10 -5
  124. package/dist/web-search-tool.d.ts.map +1 -1
  125. package/dist/web-search-tool.js +8 -5
  126. package/dist/web-search-tool.js.map +1 -1
  127. package/dist/web-tools.d.ts +8 -3
  128. package/dist/web-tools.d.ts.map +1 -1
  129. package/dist/web-tools.js +7 -2
  130. package/dist/web-tools.js.map +1 -1
  131. package/package.json +15 -13
@@ -1,11 +1,33 @@
1
- import { FileReadTracker } from "./read-tracker.js";
2
- import { generateDiff } from "./diff.js";
1
+ import type { ToolContext } from "@vinhnt-sdk/tools";
2
+ import type { FileReadTracker } from "./read-tracker.js";
3
+ import { generateDiff } from "@vinhnt-sdk/tools";
3
4
  type RootGetter = string | (() => string);
4
- export declare function createReadFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean, maxFileSize?: number): import("./definitions.js").ToolDefinition<{
5
+ declare function resolveRoot(r: RootGetter): string;
6
+ export { resolveRoot, type RootGetter };
7
+ declare function isWithinWorkspace(target: string, workspace: string): boolean;
8
+ export { isWithinWorkspace };
9
+ /**
10
+ * Verify `target` stays inside the (realpath'd) workspace and return the real
11
+ * path to use for I/O. Symlink/junction escapes are always rejected — even
12
+ * when `externalDirAccess` is enabled — because the caller asked for a path
13
+ * inside the workspace; escaping it silently would bypass containment.
14
+ */
15
+ declare function ensurePathAccess(target: string, root: string, pathLabel: string, ctx: ToolContext, externalDirAccess?: boolean): Promise<string>;
16
+ export { ensurePathAccess };
17
+ /**
18
+ * Create the `read_file` tool. Reads a file relative to the workspace root,
19
+ * enforcing workspace boundaries and optionally tracking reads for the
20
+ * kernel's file-history features.
21
+ */
22
+ export declare function createReadFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean, maxFileSize?: number): import("@vinhnt-sdk/tools").ToolDefinition<{
5
23
  filePath: string;
6
24
  stripTrailingNewline?: boolean;
7
25
  }, string>;
8
- export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
26
+ /**
27
+ * Create the `write_file` tool. Writes content to a file, creating parent
28
+ * directories as needed and returning a diff of the change.
29
+ */
30
+ export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
9
31
  filePath: string;
10
32
  content: string;
11
33
  }, {
@@ -15,22 +37,30 @@ export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?:
15
37
  additions: number;
16
38
  removals: number;
17
39
  }>;
18
- export declare function createEditFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
40
+ /**
41
+ * Create the `edit_file` tool. Applies exact/fuzzy search-and-replace edits
42
+ * (one hunk or a multi-hunk `edits[]` array) to an existing file.
43
+ */
44
+ export declare function createEditFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
19
45
  filePath: string;
20
- oldString?: string;
21
- newString?: string;
46
+ oldString?: string | undefined;
47
+ newString?: string | undefined;
22
48
  edits?: readonly {
23
49
  oldString: string;
24
50
  newString: string;
25
- }[];
51
+ }[] | undefined;
26
52
  }, {
27
53
  edited: string;
28
54
  diff: string;
29
- hunkCount?: number;
55
+ hunkCount?: number | undefined;
30
56
  additions: number;
31
57
  removals: number;
32
58
  }>;
33
- export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
59
+ /**
60
+ * Create the `apply_patch` tool. Applies a SEARCH/REPLACE block patch where
61
+ * each search string must match exactly once in the target file.
62
+ */
63
+ export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
34
64
  filePath: string;
35
65
  patch: string;
36
66
  }, {
@@ -45,12 +75,15 @@ export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?
45
75
  * User tự extend: `config.excludedDirs = [...DEFAULT_EXCLUDED_DIRS, "my-dir"]`
46
76
  */
47
77
  export declare const DEFAULT_EXCLUDED_DIRS: string[];
48
- export declare function createListDirectoryTool(workspaceRoot: RootGetter, externalDirAccess?: boolean, excludedDirs?: string[]): import("./definitions.js").ToolDefinition<{
78
+ /**
79
+ * Create the `list_directory` tool. Lists a directory's entries
80
+ * (non-recursive), skipping `excludedDirs` (defaults to node_modules/.git).
81
+ */
82
+ export declare function createListDirectoryTool(workspaceRoot: RootGetter, externalDirAccess?: boolean, excludedDirs?: string[]): import("@vinhnt-sdk/tools").ToolDefinition<{
49
83
  dirPath: string;
50
84
  }, {
51
85
  name: string;
52
86
  type: string;
53
87
  path: string;
54
88
  }[]>;
55
- export {};
56
89
  //# sourceMappingURL=file-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../src/file-tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAmFzC,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAiD1C,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM;cAC1G,MAAM;2BAAyB,OAAO;WAsBrE;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACrF,MAAM;aAAW,MAAM;;aAC1C,MAAM;WAAS,MAAM;UACxB,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC;eAClC,MAAM;cAAY,MAAM;GA4BtC;AAgPD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACpF,MAAM;gBAAc,MAAM;gBAAc,MAAM;YAAU,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE;;YAC/H,MAAM;UAAQ,MAAM;gBAChB,MAAM;eAAa,MAAM;cAAY,MAAM;GAuC1D;AAeD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACtF,MAAM;WAAS,MAAM;;aACxC,MAAM;YAAU,MAAM;UAAQ,MAAM;eAAa,MAAM;cAAY,MAAM;GAsDrF;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAA2B,CAAC;AAE9D,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;aAGxF,MAAM;;UAAY,MAAM;UAAQ,MAAM;UAAQ,MAAM;KAqBlF"}
1
+ {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../src/file-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAmF7D,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAE1C,iBAAS,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAE1C;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;AAoBxC,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIrE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AA+B7B;;;;;GAKG;AACH,iBAAe,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB/I;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAwB5B;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM;cAC1G,MAAM;2BAAyB,OAAO;WAqBrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACrF,MAAM;aAAW,MAAM;;aAC1C,MAAM;WAAS,MAAM;UACxB,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC;eAClC,MAAM;cAAY,MAAM;GA0BtC;AAgPD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACpF,MAAM;gBAAc,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;YAAU,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,SAAS;;YACnK,MAAM;UAAQ,MAAM;gBAChB,MAAM,GAAG,SAAS;eAAa,MAAM;cAAY,MAAM;GAsCtE;AAeD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACtF,MAAM;WAAS,MAAM;;aACxC,MAAM;YAAU,MAAM;UAAQ,MAAM;eAAa,MAAM;cAAY,MAAM;GAqDrF;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAA2B,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;aAGxF,MAAM;;UAAY,MAAM;UAAQ,MAAM;UAAQ,MAAM;KAoBlF"}
@@ -1,9 +1,9 @@
1
- import { readFile, writeFile, readdir, stat, mkdir } from "node:fs/promises";
2
- import { join, relative, resolve, sep, dirname } from "node:path";
3
- import { generateDiff } from "./diff.js";
1
+ import { readFile, writeFile, readdir, stat, mkdir, realpath, rename, rm } from "node:fs/promises";
2
+ import { join, relative, resolve, sep, dirname, basename } from "node:path";
3
+ import { generateDiff, defineTool } from "@vinhnt-sdk/tools";
4
4
  import { z } from "zod";
5
- import { defineTool } from "./define-tool.js";
6
5
  import { sanitizeForLLM } from "@vinhnt-sdk/security";
6
+ import { ValidationError, ToolPermissionDenied } from "@vinhnt-sdk/schema";
7
7
  const filePathField = z.string().min(1);
8
8
  const ReadFileSchema = z.object({
9
9
  filePath: filePathField,
@@ -75,27 +75,87 @@ const LIST_DIRECTORY_SCHEMA = {
75
75
  function resolveRoot(r) {
76
76
  return typeof r === "function" ? r() : r;
77
77
  }
78
+ export { resolveRoot };
78
79
  const DEFAULT_MAX_FILE_SIZE = 1_048_576;
80
+ /**
81
+ * Write `content` to `filePath` atomically: write to a temp file in the same
82
+ * directory, then rename over the target. A crash mid-write never leaves a
83
+ * truncated/partial destination file.
84
+ */
85
+ async function atomicWriteFile(filePath, content) {
86
+ const tmp = join(dirname(filePath), `.${basename(filePath)}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`);
87
+ await writeFile(tmp, content, "utf-8");
88
+ try {
89
+ await rename(tmp, filePath);
90
+ }
91
+ catch (err) {
92
+ await rm(tmp, { force: true }).catch(() => { });
93
+ throw err;
94
+ }
95
+ }
79
96
  function isWithinWorkspace(target, workspace) {
80
97
  const rel = relative(workspace, resolve(target));
81
98
  if (rel === "")
82
99
  return true;
83
100
  return !rel.startsWith("..") && !rel.split(sep).includes("..");
84
101
  }
102
+ export { isWithinWorkspace };
103
+ /**
104
+ * Resolve `target` to its real path using the deepest existing ancestor.
105
+ * If the file does not exist yet (e.g. a write to a new file), the deepest
106
+ * existing ancestor is realpath'd and the remaining segments are re-appended
107
+ * lexically. This prevents symlink/junction escapes: a symlink inside the
108
+ * workspace pointing outside resolves to a path that is no longer contained.
109
+ */
110
+ async function resolveRealPath(target) {
111
+ let current = target;
112
+ const tail = [];
113
+ for (;;) {
114
+ try {
115
+ const real = await realpath(current);
116
+ return tail.length === 0 ? real : join(real, ...tail);
117
+ }
118
+ catch (err) {
119
+ if (err && err.code === "ENOENT") {
120
+ const parent = dirname(current);
121
+ if (parent === current) {
122
+ throw new ToolPermissionDenied(current, "Path has no existing ancestor within the workspace");
123
+ }
124
+ tail.unshift(basename(current));
125
+ current = parent;
126
+ continue;
127
+ }
128
+ throw err;
129
+ }
130
+ }
131
+ }
132
+ /**
133
+ * Verify `target` stays inside the (realpath'd) workspace and return the real
134
+ * path to use for I/O. Symlink/junction escapes are always rejected — even
135
+ * when `externalDirAccess` is enabled — because the caller asked for a path
136
+ * inside the workspace; escaping it silently would bypass containment.
137
+ */
85
138
  async function ensurePathAccess(target, root, pathLabel, ctx, externalDirAccess) {
86
- if (isWithinWorkspace(target, root))
87
- return;
139
+ const realRoot = await resolveRealPath(root);
140
+ const realTarget = await resolveRealPath(target);
141
+ if (isWithinWorkspace(realTarget, realRoot))
142
+ return realTarget;
143
+ if (isWithinWorkspace(target, root)) {
144
+ throw new ToolPermissionDenied(pathLabel, "Path resolves outside workspace via symlink — access rejected");
145
+ }
88
146
  if (externalDirAccess)
89
- return;
147
+ return realTarget;
90
148
  const reply = await ctx.ask({
91
149
  permission: "external_directory_access",
92
150
  resource: target,
93
151
  reason: `Access path outside workspace: ${pathLabel}`,
94
152
  });
95
153
  if (reply === "reject") {
96
- throw new Error(`Path "${pathLabel}" is outside workspace — access rejected`);
154
+ throw new ToolPermissionDenied(pathLabel, "Path outside workspace — access rejected");
97
155
  }
156
+ return realTarget;
98
157
  }
158
+ export { ensurePathAccess };
99
159
  function normalizeInput(input) {
100
160
  const v = input;
101
161
  if (!v || typeof v !== "object")
@@ -118,6 +178,11 @@ function normalizeInput(input) {
118
178
  }
119
179
  return result;
120
180
  }
181
+ /**
182
+ * Create the `read_file` tool. Reads a file relative to the workspace root,
183
+ * enforcing workspace boundaries and optionally tracking reads for the
184
+ * kernel's file-history features.
185
+ */
121
186
  export function createReadFileTool(workspaceRoot, tracker, externalDirAccess, maxFileSize) {
122
187
  return defineTool({
123
188
  name: "read_file",
@@ -128,20 +193,23 @@ export function createReadFileTool(workspaceRoot, tracker, externalDirAccess, ma
128
193
  normalize: normalizeInput,
129
194
  async execute(v, ctx) {
130
195
  const root = resolveRoot(workspaceRoot);
131
- const target = resolve(root, v.filePath);
132
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
196
+ const target = await ensurePathAccess(resolve(root, v.filePath), root, v.filePath, ctx, externalDirAccess);
133
197
  const st = await stat(target);
134
198
  const mfs = maxFileSize ?? DEFAULT_MAX_FILE_SIZE;
135
199
  if (st.size > mfs) {
136
- throw new Error(`File too large (${st.size} bytes). Max: ${mfs} bytes`);
200
+ throw new ValidationError(`File too large (${st.size} bytes). Max: ${mfs} bytes`);
137
201
  }
138
- tracker?.trackRead(target, st.mtimeMs);
202
+ await tracker?.trackRead(target, st);
139
203
  const content = await readFile(target, "utf-8");
140
204
  const result = v.stripTrailingNewline ? content.replace(/\n$/, "") : content;
141
205
  return sanitizeForLLM(result, "read_file");
142
206
  },
143
207
  }).toDefinition();
144
208
  }
209
+ /**
210
+ * Create the `write_file` tool. Writes content to a file, creating parent
211
+ * directories as needed and returning a diff of the change.
212
+ */
145
213
  export function createWriteFileTool(workspaceRoot, tracker, externalDirAccess) {
146
214
  return defineTool({
147
215
  name: "write_file",
@@ -152,21 +220,19 @@ export function createWriteFileTool(workspaceRoot, tracker, externalDirAccess) {
152
220
  normalize: normalizeInput,
153
221
  async execute(v, ctx) {
154
222
  const root = resolveRoot(workspaceRoot);
155
- const target = resolve(root, v.filePath);
156
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
223
+ const target = await ensurePathAccess(resolve(root, v.filePath), root, v.filePath, ctx, externalDirAccess);
157
224
  await tracker?.assertWasRead(target);
158
225
  await mkdir(dirname(target), { recursive: true });
159
226
  const oldContent = await readFile(target, "utf-8").catch(() => "");
160
227
  ctx.setCompensation(async () => {
161
228
  if (oldContent) {
162
- await writeFile(target, oldContent, "utf-8");
229
+ await atomicWriteFile(target, oldContent);
163
230
  }
164
231
  else {
165
- const { rm } = await import("node:fs/promises");
166
232
  await rm(target, { force: true });
167
233
  }
168
234
  });
169
- await writeFile(target, v.content, "utf-8");
235
+ await atomicWriteFile(target, v.content);
170
236
  const diff = generateDiff(v.filePath, oldContent, v.content);
171
237
  return { written: v.filePath, bytes: v.content.length, diff: diff.diff, additions: diff.additions, removals: diff.removals };
172
238
  },
@@ -386,14 +452,14 @@ function applySingleEdit(filePath, content, oldString, newString) {
386
452
  const matchSnippet = content.slice(fuzzyTry.index, fuzzyTry.index + Math.min(200, oldString.length));
387
453
  msg += `Closest match (${Math.round(fuzzyTry.ratio * 100)}% character similarity) at position ${fuzzyTry.index}:\n---\n${matchSnippet}\n---\n`;
388
454
  }
389
- throw new Error(msg);
455
+ throw new ValidationError(msg);
390
456
  }
391
457
  if (result.layer === 1) {
392
458
  const first = content.indexOf(oldString);
393
459
  const last = content.lastIndexOf(oldString);
394
460
  if (first !== last) {
395
461
  const count = content.split(oldString).length - 1;
396
- throw new Error(`oldString found ${count} times in ${filePath} — replace must match exactly once`);
462
+ throw new ValidationError(`oldString found ${count} times in ${filePath} — replace must match exactly once`);
397
463
  }
398
464
  }
399
465
  const newContent = content.slice(0, result.start) + newString + content.slice(result.end);
@@ -409,6 +475,10 @@ function applyMultiEdit(filePath, content, edits) {
409
475
  }
410
476
  return { newContent: current, diffs };
411
477
  }
478
+ /**
479
+ * Create the `edit_file` tool. Applies exact/fuzzy search-and-replace edits
480
+ * (one hunk or a multi-hunk `edits[]` array) to an existing file.
481
+ */
412
482
  export function createEditFileTool(workspaceRoot, tracker, externalDirAccess) {
413
483
  return defineTool({
414
484
  name: "edit_file",
@@ -419,16 +489,15 @@ export function createEditFileTool(workspaceRoot, tracker, externalDirAccess) {
419
489
  normalize: normalizeInput,
420
490
  async execute(v, ctx) {
421
491
  const root = resolveRoot(workspaceRoot);
422
- const target = resolve(root, v.filePath);
423
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
492
+ const target = await ensurePathAccess(resolve(root, v.filePath), root, v.filePath, ctx, externalDirAccess);
424
493
  await tracker?.assertWasRead(target);
425
494
  const content = await readFile(target, "utf-8");
426
495
  if (v.edits && v.edits.length > 0) {
427
496
  const result = applyMultiEdit(v.filePath, content, v.edits);
428
497
  ctx.setCompensation(async () => {
429
- await writeFile(target, content, "utf-8");
498
+ await atomicWriteFile(target, content);
430
499
  });
431
- await writeFile(target, result.newContent, "utf-8");
500
+ await atomicWriteFile(target, result.newContent);
432
501
  const totalAdditions = result.diffs.reduce((s, d) => s + d.additions, 0);
433
502
  const totalRemovals = result.diffs.reduce((s, d) => s + d.removals, 0);
434
503
  const combinedDiff = result.diffs.map((d) => d.diff).join("\n");
@@ -440,9 +509,9 @@ export function createEditFileTool(workspaceRoot, tracker, externalDirAccess) {
440
509
  }
441
510
  const result = applySingleEdit(v.filePath, content, v.oldString, v.newString);
442
511
  ctx.setCompensation(async () => {
443
- await writeFile(target, content, "utf-8");
512
+ await atomicWriteFile(target, content);
444
513
  });
445
- await writeFile(target, result.newContent, "utf-8");
514
+ await atomicWriteFile(target, result.newContent);
446
515
  return { edited: v.filePath, diff: result.diff.diff, additions: result.diff.additions, removals: result.diff.removals };
447
516
  },
448
517
  }).toDefinition();
@@ -455,10 +524,14 @@ function parsePatch(patch) {
455
524
  blocks.push({ oldString: match[1], newString: match[2] });
456
525
  }
457
526
  if (blocks.length === 0) {
458
- throw new Error("No valid search/replace blocks found in patch");
527
+ throw new ValidationError("No valid search/replace blocks found in patch");
459
528
  }
460
529
  return blocks;
461
530
  }
531
+ /**
532
+ * Create the `apply_patch` tool. Applies a SEARCH/REPLACE block patch where
533
+ * each search string must match exactly once in the target file.
534
+ */
462
535
  export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess) {
463
536
  return defineTool({
464
537
  name: "apply_patch",
@@ -469,8 +542,7 @@ export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess)
469
542
  normalize: normalizeInput,
470
543
  async execute(v, ctx) {
471
544
  const root = resolveRoot(workspaceRoot);
472
- const target = resolve(root, v.filePath);
473
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
545
+ const target = await ensurePathAccess(resolve(root, v.filePath), root, v.filePath, ctx, externalDirAccess);
474
546
  await tracker?.assertWasRead(target);
475
547
  const oldContent = await readFile(target, "utf-8");
476
548
  const blocks = parsePatch(v.patch);
@@ -480,7 +552,7 @@ export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess)
480
552
  for (const block of blocks) {
481
553
  if (!content.includes(block.oldString)) {
482
554
  const snippet = content.length > 400 ? content.slice(0, 200) + "\n...\n" + content.slice(-200) : content;
483
- throw new Error(`Search string not found in ${v.filePath} (${content.length} chars). ` +
555
+ throw new ValidationError(`Search string not found in ${v.filePath} (${content.length} chars). ` +
484
556
  `File content:\n---\n${snippet}\n---\n` +
485
557
  `Searched for:\n---\n${block.oldString.slice(0, 200)}${block.oldString.length > 200 ? "..." : ""}\n---`);
486
558
  }
@@ -488,7 +560,7 @@ export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess)
488
560
  const lastIdx = content.lastIndexOf(block.oldString);
489
561
  if (firstIdx !== lastIdx) {
490
562
  const count = content.split(block.oldString).length - 1;
491
- throw new Error(`Search string found ${count} times in ${v.filePath} — each block must match exactly once`);
563
+ throw new ValidationError(`Search string found ${count} times in ${v.filePath} — each block must match exactly once`);
492
564
  }
493
565
  const newContent = content.replace(block.oldString, block.newString);
494
566
  content = newContent;
@@ -496,9 +568,9 @@ export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess)
496
568
  totalRemovals.push(block.oldString.length);
497
569
  }
498
570
  ctx.setCompensation(async () => {
499
- await writeFile(target, oldContent, "utf-8");
571
+ await atomicWriteFile(target, oldContent);
500
572
  });
501
- await writeFile(target, content, "utf-8");
573
+ await atomicWriteFile(target, content);
502
574
  const diff = generateDiff(v.filePath, oldContent, content);
503
575
  return {
504
576
  patched: v.filePath,
@@ -515,22 +587,25 @@ export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess)
515
587
  * User tự extend: `config.excludedDirs = [...DEFAULT_EXCLUDED_DIRS, "my-dir"]`
516
588
  */
517
589
  export const DEFAULT_EXCLUDED_DIRS = ["node_modules", ".git"];
590
+ /**
591
+ * Create the `list_directory` tool. Lists a directory's entries
592
+ * (non-recursive), skipping `excludedDirs` (defaults to node_modules/.git).
593
+ */
518
594
  export function createListDirectoryTool(workspaceRoot, externalDirAccess, excludedDirs) {
519
- const dirsToExlude = excludedDirs ?? DEFAULT_EXCLUDED_DIRS;
595
+ const dirsToExclude = excludedDirs ?? DEFAULT_EXCLUDED_DIRS;
520
596
  return defineTool({
521
597
  name: "list_directory",
522
- description: `List files and directories in a path (non-recursive). Skips ${dirsToExlude.join(", ")}.`,
598
+ description: `List files and directories in a path (non-recursive). Skips ${dirsToExclude.join(", ")}.`,
523
599
  risk: "read",
524
600
  input: ListDirectorySchema,
525
601
  jsonSchema: LIST_DIRECTORY_SCHEMA,
526
602
  normalize: normalizeInput,
527
603
  async execute(v, ctx) {
528
604
  const root = resolveRoot(workspaceRoot);
529
- const target = resolve(root, v.dirPath);
530
- await ensurePathAccess(target, root, v.dirPath, ctx, externalDirAccess);
605
+ const target = await ensurePathAccess(resolve(root, v.dirPath), root, v.dirPath, ctx, externalDirAccess);
531
606
  const entries = await readdir(target, { withFileTypes: true });
532
607
  return entries
533
- .filter((e) => !dirsToExlude.includes(e.name))
608
+ .filter((e) => !dirsToExclude.includes(e.name))
534
609
  .map((e) => ({
535
610
  name: e.name,
536
611
  type: e.isDirectory() ? "directory" : "file",
@@ -1 +1 @@
1
- {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../src/file-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../src/file-tools.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- import type { ToolDefinition } from "./definitions.js";
1
+ import type { ToolDefinition } from "@vinhnt-sdk/tools";
2
2
  type RootGetter = string | (() => string);
3
+ /** Create the `git_status` tool (branch + `git status --short`). */
3
4
  export declare function createGitStatusTool(workspaceRoot: RootGetter): ToolDefinition;
5
+ /** Create the `git_diff` tool (unstaged or `--staged` diff). */
4
6
  export declare function createGitDiffTool(workspaceRoot: RootGetter): ToolDefinition;
7
+ /** Create the `git_log` tool (recent commit history, optionally scoped to a path). */
5
8
  export declare function createGitLogTool(workspaceRoot: RootGetter): ToolDefinition;
9
+ /** Create the `git_commit` tool that commits staged changes with a message. */
6
10
  export declare function createGitCommitTool(workspaceRoot: RootGetter): ToolDefinition;
7
11
  export {};
8
12
  //# sourceMappingURL=git-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-tools.d.ts","sourceRoot":"","sources":["../src/git-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgBvD,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAwB1C,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAa7E;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAoB3E;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAmB1E;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAoB7E"}
1
+ {"version":3,"file":"git-tools.d.ts","sourceRoot":"","sources":["../src/git-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiBxD,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAwB1C,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAa7E;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAoB3E;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAmB1E;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAoB7E"}
package/dist/git-tools.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { z } from "zod";
3
- import { defineTool } from "./define-tool.js";
3
+ import { defineTool } from "@vinhnt-sdk/tools";
4
+ import { sanitizeEnv } from "@vinhnt-sdk/security";
4
5
  const GitStatusSchema = z.object({});
5
6
  const GitDiffSchema = z.object({
6
7
  staged: z.boolean().optional(),
@@ -17,7 +18,7 @@ function resolveRoot(r) {
17
18
  }
18
19
  function gitAsync(args, cwd, signal) {
19
20
  return new Promise((resolve, reject) => {
20
- const child = execFile("git", args, { cwd, encoding: "utf-8", maxBuffer: 5 * 1024 * 1024 }, (err, stdout) => {
21
+ const child = execFile("git", args, { cwd, encoding: "utf-8", maxBuffer: 5 * 1024 * 1024, env: sanitizeEnv() }, (err, stdout) => {
21
22
  if (err && err.code === "ENOENT") {
22
23
  reject(new Error("git not found"));
23
24
  return;
@@ -34,6 +35,7 @@ function gitAsync(args, cwd, signal) {
34
35
  }
35
36
  });
36
37
  }
38
+ /** Create the `git_status` tool (branch + `git status --short`). */
37
39
  export function createGitStatusTool(workspaceRoot) {
38
40
  return defineTool({
39
41
  name: "git_status",
@@ -48,6 +50,7 @@ export function createGitStatusTool(workspaceRoot) {
48
50
  },
49
51
  }).toDefinition();
50
52
  }
53
+ /** Create the `git_diff` tool (unstaged or `--staged` diff). */
51
54
  export function createGitDiffTool(workspaceRoot) {
52
55
  return defineTool({
53
56
  name: "git_diff",
@@ -70,6 +73,7 @@ export function createGitDiffTool(workspaceRoot) {
70
73
  },
71
74
  }).toDefinition();
72
75
  }
76
+ /** Create the `git_log` tool (recent commit history, optionally scoped to a path). */
73
77
  export function createGitLogTool(workspaceRoot) {
74
78
  return defineTool({
75
79
  name: "git_log",
@@ -90,6 +94,7 @@ export function createGitLogTool(workspaceRoot) {
90
94
  },
91
95
  }).toDefinition();
92
96
  }
97
+ /** Create the `git_commit` tool that commits staged changes with a message. */
93
98
  export function createGitCommitTool(workspaceRoot) {
94
99
  return defineTool({
95
100
  name: "git_commit",
@@ -1 +1 @@
1
- {"version":3,"file":"git-tools.js","sourceRoot":"","sources":["../src/git-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-tools.js","sourceRoot":"","sources":["../src/git-tools.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { ToolHook } from "./types.js";
1
+ import type { ToolHook } from "@vinhnt-sdk/tools";
2
2
  import type { FileHistory } from "./file-history.js";
3
+ /** Create a {@link ToolHook} that records write_file/edit_file changes into a {@link FileHistory}. */
3
4
  export declare function createFileHistoryHook(fileHistory: FileHistory): ToolHook;
4
5
  //# sourceMappingURL=history-hook.d.ts.map