@vinhnt-sdk/core 0.1.0 → 1.0.0

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 (334) hide show
  1. package/README.md +13 -20
  2. package/dist/agent/create-agent-tool.d.ts +1 -1
  3. package/dist/agent/create-agent-tool.d.ts.map +1 -1
  4. package/dist/agent/create-agent-tool.js +1 -1
  5. package/dist/agent/create-agent-tool.js.map +1 -1
  6. package/dist/agent/delegate-batch-tool.d.ts +1 -1
  7. package/dist/agent/delegate-batch-tool.d.ts.map +1 -1
  8. package/dist/agent/delegate-batch-tool.js +1 -1
  9. package/dist/agent/delegate-batch-tool.js.map +1 -1
  10. package/dist/agent/delegate-tool.d.ts +1 -1
  11. package/dist/agent/delegate-tool.js +1 -1
  12. package/dist/agent/delegate-tool.js.map +1 -1
  13. package/dist/agent/list-agents-tool.d.ts +1 -1
  14. package/dist/agent/list-agents-tool.d.ts.map +1 -1
  15. package/dist/agent/list-agents-tool.js +1 -1
  16. package/dist/agent/list-agents-tool.js.map +1 -1
  17. package/dist/agent/spawn-agent-tool.d.ts +1 -1
  18. package/dist/agent/spawn-agent-tool.d.ts.map +1 -1
  19. package/dist/agent/spawn-agent-tool.js +1 -1
  20. package/dist/agent/spawn-agent-tool.js.map +1 -1
  21. package/dist/event-bus/global-bus.d.ts +3 -1
  22. package/dist/event-bus/global-bus.d.ts.map +1 -1
  23. package/dist/event-bus/global-bus.js +7 -1
  24. package/dist/event-bus/global-bus.js.map +1 -1
  25. package/dist/event-bus/in-memory-bus.d.ts.map +1 -1
  26. package/dist/event-bus/in-memory-bus.js +10 -2
  27. package/dist/event-bus/in-memory-bus.js.map +1 -1
  28. package/dist/fakes/fake-model.d.ts +8 -0
  29. package/dist/fakes/fake-model.d.ts.map +1 -1
  30. package/dist/fakes/fake-model.js +8 -0
  31. package/dist/fakes/fake-model.js.map +1 -1
  32. package/dist/fakes/fake-tool-context.d.ts +1 -1
  33. package/dist/fakes/fake-tool-context.d.ts.map +1 -1
  34. package/dist/fakes/fake-tool.d.ts +1 -3
  35. package/dist/fakes/fake-tool.d.ts.map +1 -1
  36. package/dist/fakes/fake-tool.js.map +1 -1
  37. package/dist/index.d.ts +36 -32
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +19 -14
  40. package/dist/index.js.map +1 -1
  41. package/dist/kernel/approval-handler.d.ts +1 -1
  42. package/dist/kernel/approval-handler.d.ts.map +1 -1
  43. package/dist/kernel/kernel-types.d.ts +115 -17
  44. package/dist/kernel/kernel-types.d.ts.map +1 -1
  45. package/dist/kernel/kernel-types.js +64 -1
  46. package/dist/kernel/kernel-types.js.map +1 -1
  47. package/dist/kernel/kernel.d.ts +20 -3
  48. package/dist/kernel/kernel.d.ts.map +1 -1
  49. package/dist/kernel/kernel.js +108 -67
  50. package/dist/kernel/kernel.js.map +1 -1
  51. package/dist/kernel/lifecycle-manager.d.ts +28 -0
  52. package/dist/kernel/lifecycle-manager.d.ts.map +1 -0
  53. package/dist/kernel/lifecycle-manager.js +51 -0
  54. package/dist/kernel/lifecycle-manager.js.map +1 -0
  55. package/dist/kernel/model-caller.d.ts +1 -1
  56. package/dist/kernel/model-caller.d.ts.map +1 -1
  57. package/dist/kernel/permission-gate.d.ts +1 -2
  58. package/dist/kernel/permission-gate.d.ts.map +1 -1
  59. package/dist/kernel/permission-gate.js +1 -1
  60. package/dist/kernel/permission-gate.js.map +1 -1
  61. package/dist/kernel/run-loop.d.ts.map +1 -1
  62. package/dist/kernel/run-loop.js +15 -3
  63. package/dist/kernel/run-loop.js.map +1 -1
  64. package/dist/kernel/self-correction.d.ts +2 -2
  65. package/dist/kernel/self-correction.d.ts.map +1 -1
  66. package/dist/kernel/step-executor.d.ts +1 -2
  67. package/dist/kernel/step-executor.d.ts.map +1 -1
  68. package/dist/kernel/step-executor.js +5 -6
  69. package/dist/kernel/step-executor.js.map +1 -1
  70. package/dist/kernel/tool-context-builder.d.ts +1 -1
  71. package/dist/kernel/tool-context-builder.d.ts.map +1 -1
  72. package/dist/kernel/tool-error-router.d.ts +1 -1
  73. package/dist/kernel/tool-error-router.d.ts.map +1 -1
  74. package/dist/logger.js +1 -1
  75. package/dist/logger.js.map +1 -1
  76. package/dist/model.d.ts +7 -80
  77. package/dist/model.d.ts.map +1 -1
  78. package/dist/model.js.map +1 -1
  79. package/dist/plugin/manager.d.ts +2 -2
  80. package/dist/plugin/manager.d.ts.map +1 -1
  81. package/dist/plugin/plugin-tool-provider.d.ts +1 -3
  82. package/dist/plugin/plugin-tool-provider.d.ts.map +1 -1
  83. package/dist/plugin/plugin-tool-provider.js.map +1 -1
  84. package/dist/plugin.d.ts +2 -2
  85. package/dist/plugin.d.ts.map +1 -1
  86. package/dist/session/compaction.d.ts +5 -8
  87. package/dist/session/compaction.d.ts.map +1 -1
  88. package/dist/session/store.d.ts +5 -44
  89. package/dist/session/store.d.ts.map +1 -1
  90. package/dist/skill/create-skill-tool.d.ts +1 -1
  91. package/dist/skill/create-skill-tool.d.ts.map +1 -1
  92. package/dist/skill/create-skill-tool.js +1 -1
  93. package/dist/skill/create-skill-tool.js.map +1 -1
  94. package/dist/skill/skill-tool.d.ts +2 -2
  95. package/dist/skill/skill-tool.d.ts.map +1 -1
  96. package/dist/skill/skill-tool.js +1 -1
  97. package/dist/skill/skill-tool.js.map +1 -1
  98. package/dist/system-context/prompts/index.d.ts +57 -1
  99. package/dist/system-context/prompts/index.d.ts.map +1 -1
  100. package/dist/system-context/prompts/index.js +69 -13
  101. package/dist/system-context/prompts/index.js.map +1 -1
  102. package/dist/tool/bridge.d.ts +1 -1
  103. package/dist/tool/bridge.d.ts.map +1 -1
  104. package/dist/tool/index.d.ts +37 -42
  105. package/dist/tool/index.d.ts.map +1 -1
  106. package/dist/tool/index.js +25 -30
  107. package/dist/tool/index.js.map +1 -1
  108. package/dist/tool/provider-helpers.d.ts +2 -3
  109. package/dist/tool/provider-helpers.d.ts.map +1 -1
  110. package/dist/tool/provider-helpers.js +2 -3
  111. package/dist/tool/provider-helpers.js.map +1 -1
  112. package/dist/tool/runtime.d.ts +4 -4
  113. package/dist/tool/runtime.d.ts.map +1 -1
  114. package/dist/tool/runtime.js +2 -2
  115. package/dist/tool/runtime.js.map +1 -1
  116. package/dist/workflow/agent-graph.d.ts +34 -0
  117. package/dist/workflow/agent-graph.d.ts.map +1 -0
  118. package/dist/workflow/agent-graph.js +145 -0
  119. package/dist/workflow/agent-graph.js.map +1 -0
  120. package/dist/workflow/index.d.ts +4 -0
  121. package/dist/workflow/index.d.ts.map +1 -0
  122. package/dist/workflow/index.js +3 -0
  123. package/dist/workflow/index.js.map +1 -0
  124. package/dist/workflow/types.d.ts +94 -0
  125. package/dist/workflow/types.d.ts.map +1 -0
  126. package/dist/{knowledge → workflow}/types.js.map +1 -1
  127. package/dist/workflow/workflow-helpers.d.ts +35 -0
  128. package/dist/workflow/workflow-helpers.d.ts.map +1 -0
  129. package/dist/workflow/workflow-helpers.js +66 -0
  130. package/dist/workflow/workflow-helpers.js.map +1 -0
  131. package/package.json +5 -2
  132. package/dist/agent/dynamic-registry.d.ts +0 -30
  133. package/dist/agent/dynamic-registry.d.ts.map +0 -1
  134. package/dist/agent/dynamic-registry.js +0 -87
  135. package/dist/agent/dynamic-registry.js.map +0 -1
  136. package/dist/crypto/password.d.ts +0 -11
  137. package/dist/crypto/password.d.ts.map +0 -1
  138. package/dist/crypto/password.js +0 -44
  139. package/dist/crypto/password.js.map +0 -1
  140. package/dist/internal/index.d.ts +0 -5
  141. package/dist/internal/index.d.ts.map +0 -1
  142. package/dist/internal/index.js +0 -8
  143. package/dist/internal/index.js.map +0 -1
  144. package/dist/kernel/context-manager.d.ts +0 -29
  145. package/dist/kernel/context-manager.d.ts.map +0 -1
  146. package/dist/kernel/context-manager.js +0 -64
  147. package/dist/kernel/context-manager.js.map +0 -1
  148. package/dist/kernel/max-steps-prompt.d.ts +0 -3
  149. package/dist/kernel/max-steps-prompt.d.ts.map +0 -1
  150. package/dist/kernel/max-steps-prompt.js +0 -13
  151. package/dist/kernel/max-steps-prompt.js.map +0 -1
  152. package/dist/kernel/run-orchestrator.d.ts +0 -66
  153. package/dist/kernel/run-orchestrator.d.ts.map +0 -1
  154. package/dist/kernel/run-orchestrator.js +0 -182
  155. package/dist/kernel/run-orchestrator.js.map +0 -1
  156. package/dist/kernel/step-runner.d.ts +0 -57
  157. package/dist/kernel/step-runner.d.ts.map +0 -1
  158. package/dist/kernel/step-runner.js +0 -124
  159. package/dist/kernel/step-runner.js.map +0 -1
  160. package/dist/knowledge/approval.d.ts +0 -19
  161. package/dist/knowledge/approval.d.ts.map +0 -1
  162. package/dist/knowledge/approval.js +0 -60
  163. package/dist/knowledge/approval.js.map +0 -1
  164. package/dist/knowledge/compressor.d.ts +0 -46
  165. package/dist/knowledge/compressor.d.ts.map +0 -1
  166. package/dist/knowledge/compressor.js +0 -86
  167. package/dist/knowledge/compressor.js.map +0 -1
  168. package/dist/knowledge/index.d.ts +0 -16
  169. package/dist/knowledge/index.d.ts.map +0 -1
  170. package/dist/knowledge/index.js +0 -10
  171. package/dist/knowledge/index.js.map +0 -1
  172. package/dist/knowledge/learning-engine.d.ts +0 -47
  173. package/dist/knowledge/learning-engine.d.ts.map +0 -1
  174. package/dist/knowledge/learning-engine.js +0 -83
  175. package/dist/knowledge/learning-engine.js.map +0 -1
  176. package/dist/knowledge/llm-compactor.d.ts +0 -25
  177. package/dist/knowledge/llm-compactor.d.ts.map +0 -1
  178. package/dist/knowledge/llm-compactor.js +0 -79
  179. package/dist/knowledge/llm-compactor.js.map +0 -1
  180. package/dist/knowledge/memory-bounded.d.ts +0 -21
  181. package/dist/knowledge/memory-bounded.d.ts.map +0 -1
  182. package/dist/knowledge/memory-bounded.js +0 -63
  183. package/dist/knowledge/memory-bounded.js.map +0 -1
  184. package/dist/knowledge/memory.d.ts +0 -21
  185. package/dist/knowledge/memory.d.ts.map +0 -1
  186. package/dist/knowledge/memory.js +0 -85
  187. package/dist/knowledge/memory.js.map +0 -1
  188. package/dist/knowledge/prompt-builder.d.ts +0 -11
  189. package/dist/knowledge/prompt-builder.d.ts.map +0 -1
  190. package/dist/knowledge/prompt-builder.js +0 -23
  191. package/dist/knowledge/prompt-builder.js.map +0 -1
  192. package/dist/knowledge/review.d.ts +0 -26
  193. package/dist/knowledge/review.d.ts.map +0 -1
  194. package/dist/knowledge/review.js +0 -69
  195. package/dist/knowledge/review.js.map +0 -1
  196. package/dist/knowledge/tool.d.ts +0 -4
  197. package/dist/knowledge/tool.d.ts.map +0 -1
  198. package/dist/knowledge/tool.js +0 -27
  199. package/dist/knowledge/tool.js.map +0 -1
  200. package/dist/knowledge/types.d.ts +0 -27
  201. package/dist/knowledge/types.d.ts.map +0 -1
  202. package/dist/tool/arity.d.ts +0 -22
  203. package/dist/tool/arity.d.ts.map +0 -1
  204. package/dist/tool/arity.js +0 -96
  205. package/dist/tool/arity.js.map +0 -1
  206. package/dist/tool/context.d.ts +0 -43
  207. package/dist/tool/context.d.ts.map +0 -1
  208. package/dist/tool/context.js +0 -2
  209. package/dist/tool/context.js.map +0 -1
  210. package/dist/tool/define-tool.d.ts +0 -45
  211. package/dist/tool/define-tool.d.ts.map +0 -1
  212. package/dist/tool/define-tool.js +0 -120
  213. package/dist/tool/define-tool.js.map +0 -1
  214. package/dist/tool/definitions.d.ts +0 -22
  215. package/dist/tool/definitions.d.ts.map +0 -1
  216. package/dist/tool/definitions.js +0 -2
  217. package/dist/tool/definitions.js.map +0 -1
  218. package/dist/tool/description-lint.d.ts +0 -25
  219. package/dist/tool/description-lint.d.ts.map +0 -1
  220. package/dist/tool/description-lint.js +0 -90
  221. package/dist/tool/description-lint.js.map +0 -1
  222. package/dist/tool/diff.d.ts +0 -7
  223. package/dist/tool/diff.d.ts.map +0 -1
  224. package/dist/tool/diff.js +0 -26
  225. package/dist/tool/diff.js.map +0 -1
  226. package/dist/tool/domain.d.ts +0 -39
  227. package/dist/tool/domain.d.ts.map +0 -1
  228. package/dist/tool/domain.js +0 -20
  229. package/dist/tool/domain.js.map +0 -1
  230. package/dist/tool/file-history.d.ts +0 -43
  231. package/dist/tool/file-history.d.ts.map +0 -1
  232. package/dist/tool/file-history.js +0 -55
  233. package/dist/tool/file-history.js.map +0 -1
  234. package/dist/tool/file-tools.d.ts +0 -51
  235. package/dist/tool/file-tools.d.ts.map +0 -1
  236. package/dist/tool/file-tools.js +0 -534
  237. package/dist/tool/file-tools.js.map +0 -1
  238. package/dist/tool/git-tools.d.ts +0 -8
  239. package/dist/tool/git-tools.d.ts.map +0 -1
  240. package/dist/tool/git-tools.js +0 -114
  241. package/dist/tool/git-tools.js.map +0 -1
  242. package/dist/tool/history-hook.d.ts +0 -4
  243. package/dist/tool/history-hook.d.ts.map +0 -1
  244. package/dist/tool/history-hook.js +0 -62
  245. package/dist/tool/history-hook.js.map +0 -1
  246. package/dist/tool/image-tools.d.ts +0 -11
  247. package/dist/tool/image-tools.d.ts.map +0 -1
  248. package/dist/tool/image-tools.js +0 -55
  249. package/dist/tool/image-tools.js.map +0 -1
  250. package/dist/tool/in-memory-tool-registry.d.ts +0 -13
  251. package/dist/tool/in-memory-tool-registry.d.ts.map +0 -1
  252. package/dist/tool/in-memory-tool-registry.js +0 -39
  253. package/dist/tool/in-memory-tool-registry.js.map +0 -1
  254. package/dist/tool/json-schema.d.ts +0 -22
  255. package/dist/tool/json-schema.d.ts.map +0 -1
  256. package/dist/tool/json-schema.js +0 -2
  257. package/dist/tool/json-schema.js.map +0 -1
  258. package/dist/tool/lazy-registry.d.ts +0 -23
  259. package/dist/tool/lazy-registry.d.ts.map +0 -1
  260. package/dist/tool/lazy-registry.js +0 -64
  261. package/dist/tool/lazy-registry.js.map +0 -1
  262. package/dist/tool/policy.d.ts +0 -5
  263. package/dist/tool/policy.d.ts.map +0 -1
  264. package/dist/tool/policy.js +0 -2
  265. package/dist/tool/policy.js.map +0 -1
  266. package/dist/tool/provider.d.ts +0 -80
  267. package/dist/tool/provider.d.ts.map +0 -1
  268. package/dist/tool/provider.js +0 -96
  269. package/dist/tool/provider.js.map +0 -1
  270. package/dist/tool/providers/agent-provider.d.ts +0 -26
  271. package/dist/tool/providers/agent-provider.d.ts.map +0 -1
  272. package/dist/tool/providers/agent-provider.js +0 -42
  273. package/dist/tool/providers/agent-provider.js.map +0 -1
  274. package/dist/tool/providers/builtin-provider.d.ts +0 -28
  275. package/dist/tool/providers/builtin-provider.d.ts.map +0 -1
  276. package/dist/tool/providers/builtin-provider.js +0 -67
  277. package/dist/tool/providers/builtin-provider.js.map +0 -1
  278. package/dist/tool/providers/file-loader.d.ts +0 -47
  279. package/dist/tool/providers/file-loader.d.ts.map +0 -1
  280. package/dist/tool/providers/file-loader.js +0 -120
  281. package/dist/tool/providers/file-loader.js.map +0 -1
  282. package/dist/tool/providers/index.d.ts +0 -8
  283. package/dist/tool/providers/index.d.ts.map +0 -1
  284. package/dist/tool/providers/index.js +0 -8
  285. package/dist/tool/providers/index.js.map +0 -1
  286. package/dist/tool/providers/skill-provider.d.ts +0 -23
  287. package/dist/tool/providers/skill-provider.d.ts.map +0 -1
  288. package/dist/tool/providers/skill-provider.js +0 -28
  289. package/dist/tool/providers/skill-provider.js.map +0 -1
  290. package/dist/tool/question-tool.d.ts +0 -15
  291. package/dist/tool/question-tool.d.ts.map +0 -1
  292. package/dist/tool/question-tool.js +0 -51
  293. package/dist/tool/question-tool.js.map +0 -1
  294. package/dist/tool/read-tracker.d.ts +0 -8
  295. package/dist/tool/read-tracker.d.ts.map +0 -1
  296. package/dist/tool/read-tracker.js +0 -33
  297. package/dist/tool/read-tracker.js.map +0 -1
  298. package/dist/tool/registry.d.ts +0 -58
  299. package/dist/tool/registry.d.ts.map +0 -1
  300. package/dist/tool/registry.js +0 -128
  301. package/dist/tool/registry.js.map +0 -1
  302. package/dist/tool/sandbox.d.ts +0 -12
  303. package/dist/tool/sandbox.d.ts.map +0 -1
  304. package/dist/tool/sandbox.js +0 -72
  305. package/dist/tool/sandbox.js.map +0 -1
  306. package/dist/tool/search-tools.d.ts +0 -6
  307. package/dist/tool/search-tools.d.ts.map +0 -1
  308. package/dist/tool/search-tools.js +0 -118
  309. package/dist/tool/search-tools.js.map +0 -1
  310. package/dist/tool/shell-tool.d.ts +0 -19
  311. package/dist/tool/shell-tool.d.ts.map +0 -1
  312. package/dist/tool/shell-tool.js +0 -139
  313. package/dist/tool/shell-tool.js.map +0 -1
  314. package/dist/tool/todo-tool.d.ts +0 -2
  315. package/dist/tool/todo-tool.d.ts.map +0 -1
  316. package/dist/tool/todo-tool.js +0 -121
  317. package/dist/tool/todo-tool.js.map +0 -1
  318. package/dist/tool/tool-registry-types.d.ts +0 -14
  319. package/dist/tool/tool-registry-types.d.ts.map +0 -1
  320. package/dist/tool/tool-registry-types.js +0 -2
  321. package/dist/tool/tool-registry-types.js.map +0 -1
  322. package/dist/tool/validate.d.ts +0 -9
  323. package/dist/tool/validate.d.ts.map +0 -1
  324. package/dist/tool/validate.js +0 -26
  325. package/dist/tool/validate.js.map +0 -1
  326. package/dist/tool/web-search-tool.d.ts +0 -24
  327. package/dist/tool/web-search-tool.d.ts.map +0 -1
  328. package/dist/tool/web-search-tool.js +0 -66
  329. package/dist/tool/web-search-tool.js.map +0 -1
  330. package/dist/tool/web-tools.d.ts +0 -10
  331. package/dist/tool/web-tools.d.ts.map +0 -1
  332. package/dist/tool/web-tools.js +0 -61
  333. package/dist/tool/web-tools.js.map +0 -1
  334. /package/dist/{knowledge → workflow}/types.js +0 -0
@@ -1,534 +0,0 @@
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";
4
- import { z } from "zod";
5
- import { defineTool } from "./define-tool.js";
6
- const filePathField = z.string().min(1);
7
- const ReadFileSchema = z.object({
8
- filePath: filePathField,
9
- stripTrailingNewline: z.boolean().optional().default(false),
10
- });
11
- const WriteFileSchema = z.object({
12
- filePath: filePathField,
13
- content: z.string(),
14
- });
15
- const EditBlockSchema = z.object({
16
- oldString: z.string().min(1, "oldString is required"),
17
- newString: z.string(),
18
- });
19
- const EditFileSchema = z.object({
20
- filePath: filePathField,
21
- oldString: z.string().min(1).optional(),
22
- newString: z.string().optional(),
23
- edits: z.array(EditBlockSchema).min(1).optional(),
24
- }).refine((data) => (data.oldString !== undefined && data.newString !== undefined) || (data.edits !== undefined), { message: "Either oldString+newString or edits array is required" });
25
- const ApplyPatchSchema = z.object({
26
- filePath: filePathField,
27
- patch: z.string().min(1),
28
- });
29
- const ListDirectorySchema = z.object({
30
- dirPath: z.string().min(1),
31
- });
32
- const READ_FILE_SCHEMA = {
33
- type: "object",
34
- properties: {
35
- filePath: { type: "string", description: "Path relative to workspace root (or use 'path' alias)" },
36
- path: { type: "string", description: "Alias for filePath" },
37
- stripTrailingNewline: { type: "boolean", description: "If true, strip trailing newline", default: false },
38
- },
39
- };
40
- const WRITE_FILE_SCHEMA = {
41
- type: "object",
42
- properties: {
43
- filePath: { type: "string", description: "Path relative to workspace root (or use 'path' alias)" },
44
- path: { type: "string", description: "Alias for filePath" },
45
- content: { type: "string", description: "File content to write" },
46
- },
47
- };
48
- const EDIT_FILE_SCHEMA = {
49
- type: "object",
50
- properties: {
51
- filePath: { type: "string", description: "Path relative to workspace root (or use 'path' alias)" },
52
- path: { type: "string", description: "Alias for filePath" },
53
- oldString: { type: "string", description: "Text to search for (supports fuzzy matching). Required unless edits is provided." },
54
- newString: { type: "string", description: "Replacement text. Required unless edits is provided." },
55
- edits: { type: "array", items: { type: "object", properties: { oldString: { type: "string" }, newString: { type: "string" } }, required: ["oldString", "newString"] }, description: "Array of search-replace blocks for multi-hunk edits" },
56
- },
57
- };
58
- const APPLY_PATCH_SCHEMA = {
59
- type: "object",
60
- properties: {
61
- filePath: { type: "string", description: "Path relative to workspace root (or use 'path' alias)" },
62
- path: { type: "string", description: "Alias for filePath" },
63
- patch: { type: "string", description: "Search/replace patch with one or more SEARCH/REPLACE blocks" },
64
- },
65
- required: ["patch"],
66
- };
67
- const LIST_DIRECTORY_SCHEMA = {
68
- type: "object",
69
- properties: {
70
- dirPath: { type: "string", description: "Directory path relative to workspace root (or use 'path' alias)" },
71
- path: { type: "string", description: "Alias for dirPath" },
72
- },
73
- };
74
- function resolveRoot(r) {
75
- return typeof r === "function" ? r() : r;
76
- }
77
- const DEFAULT_MAX_FILE_SIZE = 1_048_576;
78
- function isWithinWorkspace(target, workspace) {
79
- const rel = relative(workspace, resolve(target));
80
- if (rel === "")
81
- return true;
82
- return !rel.startsWith("..") && !rel.split(sep).includes("..");
83
- }
84
- async function ensurePathAccess(target, root, pathLabel, ctx, externalDirAccess) {
85
- if (isWithinWorkspace(target, root))
86
- return;
87
- if (externalDirAccess)
88
- return;
89
- const reply = await ctx.ask({
90
- permission: "external_directory_access",
91
- resource: target,
92
- reason: `Access path outside workspace: ${pathLabel}`,
93
- });
94
- if (reply === "reject") {
95
- throw new Error(`Path "${pathLabel}" is outside workspace — access rejected`);
96
- }
97
- }
98
- function normalizeInput(input) {
99
- const v = input;
100
- if (!v || typeof v !== "object")
101
- return {};
102
- const result = {};
103
- for (const [key, value] of Object.entries(v)) {
104
- result[key] = value;
105
- }
106
- if (!v.filePath && v.path && typeof v.path === "string") {
107
- result.filePath = v.path;
108
- }
109
- if (!v.dirPath && v.path && typeof v.path === "string") {
110
- result.dirPath = v.path;
111
- }
112
- if (!v.oldString && v.old_content && typeof v.old_content === "string") {
113
- result.oldString = v.old_content;
114
- }
115
- if (!v.newString && v.new_content && typeof v.new_content === "string") {
116
- result.newString = v.new_content;
117
- }
118
- return result;
119
- }
120
- export function createReadFileTool(workspaceRoot, tracker, externalDirAccess, maxFileSize) {
121
- return defineTool({
122
- name: "read_file",
123
- description: "Read the contents of a file from the workspace.",
124
- risk: "read",
125
- input: ReadFileSchema,
126
- jsonSchema: READ_FILE_SCHEMA,
127
- normalize: normalizeInput,
128
- async execute(v, ctx) {
129
- const root = resolveRoot(workspaceRoot);
130
- const target = resolve(root, v.filePath);
131
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
132
- const st = await stat(target);
133
- const mfs = maxFileSize ?? DEFAULT_MAX_FILE_SIZE;
134
- if (st.size > mfs) {
135
- throw new Error(`File too large (${st.size} bytes). Max: ${mfs} bytes`);
136
- }
137
- tracker?.trackRead(target, st.mtimeMs);
138
- const content = await readFile(target, "utf-8");
139
- return v.stripTrailingNewline ? content.replace(/\n$/, "") : content;
140
- },
141
- }).toDefinition();
142
- }
143
- export function createWriteFileTool(workspaceRoot, tracker, externalDirAccess) {
144
- return defineTool({
145
- name: "write_file",
146
- description: "Write content to a file (creates parents dirs if needed). Overwrites existing content.",
147
- risk: "write",
148
- input: WriteFileSchema,
149
- jsonSchema: WRITE_FILE_SCHEMA,
150
- normalize: normalizeInput,
151
- async execute(v, ctx) {
152
- const root = resolveRoot(workspaceRoot);
153
- const target = resolve(root, v.filePath);
154
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
155
- await tracker?.assertWasRead(target);
156
- await mkdir(dirname(target), { recursive: true });
157
- const oldContent = await readFile(target, "utf-8").catch(() => "");
158
- ctx.setCompensation(async () => {
159
- if (oldContent) {
160
- await writeFile(target, oldContent, "utf-8");
161
- }
162
- else {
163
- const { rm } = await import("node:fs/promises");
164
- await rm(target, { force: true });
165
- }
166
- });
167
- await writeFile(target, v.content, "utf-8");
168
- const diff = generateDiff(v.filePath, oldContent, v.content);
169
- return { written: v.filePath, bytes: v.content.length, diff: diff.diff, additions: diff.additions, removals: diff.removals };
170
- },
171
- }).toDefinition();
172
- }
173
- function charSimilarity(a, b) {
174
- const longer = a.length >= b.length ? a : b;
175
- const shorter = a.length < b.length ? a : b;
176
- if (longer.length === 0)
177
- return 1;
178
- let matches = 0;
179
- for (let i = 0; i < shorter.length; i++) {
180
- if (shorter.charAt(i) === longer.charAt(i))
181
- matches++;
182
- }
183
- const diffs = longer.length - matches;
184
- return 1 - diffs / longer.length;
185
- }
186
- function findBestMatch(content, oldString) {
187
- const lines = content.split("\n");
188
- const oldLines = oldString.split("\n");
189
- const windowLen = oldLines.length;
190
- if (windowLen === 0 || lines.length < windowLen)
191
- return undefined;
192
- let bestIdx = -1;
193
- let bestRatio = 0;
194
- for (let i = 0; i <= lines.length - windowLen; i++) {
195
- const window = lines.slice(i, i + windowLen).join("\n");
196
- const ratio = charSimilarity(window, oldString);
197
- if (ratio > bestRatio) {
198
- bestRatio = ratio;
199
- bestIdx = i;
200
- }
201
- }
202
- if (bestRatio > 0.4) {
203
- const index = lines.slice(0, bestIdx).join("\n").length + (bestIdx > 0 ? 1 : 0);
204
- return { index, ratio: bestRatio };
205
- }
206
- return undefined;
207
- }
208
- /** Tokenize into words and non-word separators */
209
- function tokenize(s) {
210
- return s.split(/(\s+)/).filter(Boolean);
211
- }
212
- /** Token-level similarity ratio */
213
- function tokenSimilarity(a, b) {
214
- const aTok = tokenize(a);
215
- const bTok = tokenize(b);
216
- if (aTok.length === 0 && bTok.length === 0)
217
- return 1;
218
- let matches = 0;
219
- const limit = Math.min(aTok.length, bTok.length);
220
- for (let i = 0; i < limit; i++) {
221
- if (aTok[i] === bTok[i])
222
- matches++;
223
- }
224
- const total = Math.max(aTok.length, bTok.length);
225
- return matches / total;
226
- }
227
- function findMatchMultiLayer(content, oldString) {
228
- const layers = [
229
- { name: "exact", fn: (c, o) => {
230
- const idx = c.indexOf(o);
231
- return idx >= 0 ? { start: idx, end: idx + o.length } : undefined;
232
- } },
233
- { name: "trimmed", fn: (c, o) => {
234
- const trimmed = o.split("\n").map((l) => l.trim()).join("\n");
235
- const idx = c.indexOf(trimmed);
236
- return idx >= 0 ? { start: idx, end: idx + trimmed.length } : undefined;
237
- } },
238
- { name: "indent-agnostic", fn: (c, o) => {
239
- const strip = (s) => s.replace(/^[ \t]+/gm, "").replace(/\r\n/g, "\n");
240
- const tLines = strip(o).split("\n");
241
- const cLines = strip(c).split("\n");
242
- if (tLines.length < 1 || tLines.length > cLines.length)
243
- return undefined;
244
- for (let i = 0; i <= cLines.length - tLines.length; i++) {
245
- let match = true;
246
- for (let j = 0; j < tLines.length; j++) {
247
- if (cLines[i + j] !== tLines[j]) {
248
- match = false;
249
- break;
250
- }
251
- }
252
- if (match) {
253
- const origLines = c.split("\n");
254
- const beforeLen = origLines.slice(0, i).join("\n").length;
255
- const start = beforeLen + (i > 0 ? 1 : 0);
256
- const end = origLines.slice(0, i + tLines.length).join("\n").length;
257
- return { start, end };
258
- }
259
- }
260
- return undefined;
261
- } },
262
- { name: "fuzzy", fn: (c, o) => {
263
- const fb = findBestMatch(c, o);
264
- return fb ? { start: fb.index, end: fb.index + o.length } : undefined;
265
- } },
266
- { name: "case-insensitive", fn: (c, o) => {
267
- const lower = o.toLowerCase();
268
- const idx = c.toLowerCase().indexOf(lower);
269
- if (idx < 0)
270
- return undefined;
271
- // Find the actual match boundaries in original content
272
- const end = idx + o.length;
273
- // Validate we're not cutting a multi-byte char
274
- if (end > c.length)
275
- return undefined;
276
- return { start: idx, end };
277
- } },
278
- { name: "normalized-whitespace", fn: (c, o) => {
279
- const norm = (s) => s.replace(/\s+/g, " ").trim();
280
- const cn = norm(c);
281
- const on = norm(o);
282
- if (on.length < 5)
283
- return undefined;
284
- const idx = cn.indexOf(on);
285
- if (idx < 0)
286
- return undefined;
287
- // Map normalized position back to original content
288
- const mapToOrig = (normPos) => {
289
- let i = 0, ni = 0;
290
- while (i < c.length && ni < normPos) {
291
- if (c[i] === " " || c[i] === "\n" || c[i] === "\t") {
292
- i++;
293
- while (i < c.length && (c[i] === " " || c[i] === "\n" || c[i] === "\t"))
294
- i++;
295
- ni++;
296
- }
297
- else {
298
- i++;
299
- ni++;
300
- }
301
- }
302
- return i;
303
- };
304
- const start = mapToOrig(idx);
305
- const end = mapToOrig(idx + on.length);
306
- if (end - start < 3)
307
- return undefined;
308
- return { start, end };
309
- } },
310
- { name: "token-fuzzy", fn: (c, o) => {
311
- const lines = c.split("\n");
312
- const oldLines = o.split("\n");
313
- const windowLen = oldLines.length;
314
- if (windowLen < 1 || lines.length < windowLen)
315
- return undefined;
316
- let bestIdx = -1;
317
- let bestRatio = 0;
318
- for (let i = 0; i <= lines.length - windowLen; i++) {
319
- const window = lines.slice(i, i + windowLen).join("\n");
320
- const ratio = tokenSimilarity(window, o);
321
- if (ratio > bestRatio) {
322
- bestRatio = ratio;
323
- bestIdx = i;
324
- }
325
- }
326
- if (bestRatio > 0.5) {
327
- const start = lines.slice(0, bestIdx).join("\n").length + (bestIdx > 0 ? 1 : 0);
328
- const end = lines.slice(0, bestIdx + windowLen).join("\n").length;
329
- return { start, end };
330
- }
331
- return undefined;
332
- } },
333
- { name: "context-recovery", fn: (c, o) => {
334
- // Try to find key phrases (longest non-whitespace parts) individually,
335
- // then reconstruct the span covering all found parts
336
- const phrases = o.split(/\s+/).filter((p) => p.length > 3 && p.length < 50);
337
- if (phrases.length < 2)
338
- return undefined;
339
- const positions = [];
340
- const cLower = c.toLowerCase();
341
- for (const phrase of phrases) {
342
- const idx = cLower.indexOf(phrase.toLowerCase());
343
- if (idx >= 0)
344
- positions.push(idx);
345
- }
346
- if (positions.length < 2)
347
- return undefined;
348
- const startPos = Math.min(...positions);
349
- const endPos = Math.max(...positions) + o.length;
350
- // Verify the span is reasonable
351
- if (endPos - startPos > o.length * 2.5)
352
- return undefined;
353
- return { start: startPos, end: Math.min(endPos, c.length) };
354
- } },
355
- ];
356
- for (let i = 0; i < layers.length; i++) {
357
- const layer = layers[i];
358
- const result = layer.fn(content, oldString);
359
- if (result) {
360
- // For layers 5+, verify the match is reasonable
361
- if (i >= 4) {
362
- const matched = content.slice(result.start, result.end);
363
- // Use normalized comparison for whitespace-agnostic layers
364
- const norm = (s) => s.replace(/\s+/g, " ").trim();
365
- const mNorm = layer.name === "normalized-whitespace" ? norm(matched) : matched;
366
- const oNorm = layer.name === "normalized-whitespace" ? norm(oldString) : oldString;
367
- const ratio = charSimilarity(mNorm, oNorm);
368
- if (ratio < 0.3)
369
- continue;
370
- return { ...result, ratio, layer: i + 1 };
371
- }
372
- return { ...result, ratio: 1, layer: i + 1 };
373
- }
374
- }
375
- return undefined;
376
- }
377
- function applySingleEdit(filePath, content, oldString, newString) {
378
- const result = findMatchMultiLayer(content, oldString);
379
- if (!result) {
380
- const snippet = content.length > 400 ? content.slice(0, 200) + "\n...\n" + content.slice(-200) : content;
381
- let msg = `oldString not found in ${filePath}. Content (${content.length} chars):\n---\n${snippet}\n---\n`;
382
- const fuzzyTry = findBestMatch(content, oldString);
383
- if (fuzzyTry) {
384
- const matchSnippet = content.slice(fuzzyTry.index, fuzzyTry.index + Math.min(200, oldString.length));
385
- msg += `Closest match (${Math.round(fuzzyTry.ratio * 100)}% character similarity) at position ${fuzzyTry.index}:\n---\n${matchSnippet}\n---\n`;
386
- }
387
- throw new Error(msg);
388
- }
389
- if (result.layer === 1) {
390
- const first = content.indexOf(oldString);
391
- const last = content.lastIndexOf(oldString);
392
- if (first !== last) {
393
- const count = content.split(oldString).length - 1;
394
- throw new Error(`oldString found ${count} times in ${filePath} — replace must match exactly once`);
395
- }
396
- }
397
- const newContent = content.slice(0, result.start) + newString + content.slice(result.end);
398
- return { newContent, diff: generateDiff(filePath, content, newContent) };
399
- }
400
- function applyMultiEdit(filePath, content, edits) {
401
- let current = content;
402
- const diffs = [];
403
- for (const edit of edits) {
404
- const result = applySingleEdit(filePath, current, edit.oldString, edit.newString);
405
- current = result.newContent;
406
- diffs.push(result.diff);
407
- }
408
- return { newContent: current, diffs };
409
- }
410
- export function createEditFileTool(workspaceRoot, tracker, externalDirAccess) {
411
- return defineTool({
412
- name: "edit_file",
413
- description: "Apply search-and-replace edits to an existing file. Supports exact and fuzzy matching (9 layers). Pass edits[] for multiple edits in one call.",
414
- risk: "write",
415
- input: EditFileSchema,
416
- jsonSchema: EDIT_FILE_SCHEMA,
417
- normalize: normalizeInput,
418
- async execute(v, ctx) {
419
- const root = resolveRoot(workspaceRoot);
420
- const target = resolve(root, v.filePath);
421
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
422
- await tracker?.assertWasRead(target);
423
- const content = await readFile(target, "utf-8");
424
- if (v.edits && v.edits.length > 0) {
425
- const result = applyMultiEdit(v.filePath, content, v.edits);
426
- ctx.setCompensation(async () => {
427
- await writeFile(target, content, "utf-8");
428
- });
429
- await writeFile(target, result.newContent, "utf-8");
430
- const totalAdditions = result.diffs.reduce((s, d) => s + d.additions, 0);
431
- const totalRemovals = result.diffs.reduce((s, d) => s + d.removals, 0);
432
- const combinedDiff = result.diffs.map((d) => d.diff).join("\n");
433
- return {
434
- edited: v.filePath, diff: combinedDiff,
435
- hunkCount: result.diffs.length,
436
- additions: totalAdditions, removals: totalRemovals,
437
- };
438
- }
439
- const result = applySingleEdit(v.filePath, content, v.oldString, v.newString);
440
- ctx.setCompensation(async () => {
441
- await writeFile(target, content, "utf-8");
442
- });
443
- await writeFile(target, result.newContent, "utf-8");
444
- return { edited: v.filePath, diff: result.diff.diff, additions: result.diff.additions, removals: result.diff.removals };
445
- },
446
- }).toDefinition();
447
- }
448
- function parsePatch(patch) {
449
- const blocks = [];
450
- const regex = /<<<<<<< SEARCH\n([\s\S]*?)=======\n([\s\S]*?)>>>>>>>\n?/g;
451
- let match;
452
- while ((match = regex.exec(patch)) !== null) {
453
- blocks.push({ oldString: match[1], newString: match[2] });
454
- }
455
- if (blocks.length === 0) {
456
- throw new Error("No valid search/replace blocks found in patch");
457
- }
458
- return blocks;
459
- }
460
- export function createApplyPatchTool(workspaceRoot, tracker, externalDirAccess) {
461
- return defineTool({
462
- name: "apply_patch",
463
- description: "Apply a search/replace patch to an existing file. The patch must contain one or more search/replace blocks in the format: <<<<<<< SEARCH followed by the exact text to find, then =======, then the replacement text, then >>>>>>>. Each search string must match exactly once in the file.",
464
- risk: "write",
465
- input: ApplyPatchSchema,
466
- jsonSchema: APPLY_PATCH_SCHEMA,
467
- normalize: normalizeInput,
468
- async execute(v, ctx) {
469
- const root = resolveRoot(workspaceRoot);
470
- const target = resolve(root, v.filePath);
471
- await ensurePathAccess(target, root, v.filePath, ctx, externalDirAccess);
472
- await tracker?.assertWasRead(target);
473
- const oldContent = await readFile(target, "utf-8");
474
- const blocks = parsePatch(v.patch);
475
- let content = oldContent;
476
- const totalAdditions = [];
477
- const totalRemovals = [];
478
- for (const block of blocks) {
479
- if (!content.includes(block.oldString)) {
480
- const snippet = content.length > 400 ? content.slice(0, 200) + "\n...\n" + content.slice(-200) : content;
481
- throw new Error(`Search string not found in ${v.filePath} (${content.length} chars). ` +
482
- `File content:\n---\n${snippet}\n---\n` +
483
- `Searched for:\n---\n${block.oldString.slice(0, 200)}${block.oldString.length > 200 ? "..." : ""}\n---`);
484
- }
485
- const firstIdx = content.indexOf(block.oldString);
486
- const lastIdx = content.lastIndexOf(block.oldString);
487
- if (firstIdx !== lastIdx) {
488
- const count = content.split(block.oldString).length - 1;
489
- throw new Error(`Search string found ${count} times in ${v.filePath} — each block must match exactly once`);
490
- }
491
- const newContent = content.replace(block.oldString, block.newString);
492
- content = newContent;
493
- totalAdditions.push(block.newString.length);
494
- totalRemovals.push(block.oldString.length);
495
- }
496
- ctx.setCompensation(async () => {
497
- await writeFile(target, oldContent, "utf-8");
498
- });
499
- await writeFile(target, content, "utf-8");
500
- const diff = generateDiff(v.filePath, oldContent, content);
501
- return {
502
- patched: v.filePath,
503
- blocks: blocks.length,
504
- diff: diff.diff,
505
- additions: totalAdditions.reduce((a, b) => a + b, 0),
506
- removals: totalRemovals.reduce((a, b) => a + b, 0),
507
- };
508
- },
509
- }).toDefinition();
510
- }
511
- export function createListDirectoryTool(workspaceRoot, externalDirAccess) {
512
- return defineTool({
513
- name: "list_directory",
514
- description: "List files and directories in a path (non-recursive). Skips node_modules and .git.",
515
- risk: "read",
516
- input: ListDirectorySchema,
517
- jsonSchema: LIST_DIRECTORY_SCHEMA,
518
- normalize: normalizeInput,
519
- async execute(v, ctx) {
520
- const root = resolveRoot(workspaceRoot);
521
- const target = resolve(root, v.dirPath);
522
- await ensurePathAccess(target, root, v.dirPath, ctx, externalDirAccess);
523
- const entries = await readdir(target, { withFileTypes: true });
524
- return entries
525
- .filter((e) => e.name !== "node_modules" && e.name !== ".git")
526
- .map((e) => ({
527
- name: e.name,
528
- type: e.isDirectory() ? "directory" : "file",
529
- path: join(v.dirPath, e.name),
530
- }));
531
- },
532
- }).toDefinition();
533
- }
534
- //# sourceMappingURL=file-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../src/tool/file-tools.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { ToolDefinition } from "./definitions.js";
2
- type RootGetter = string | (() => string);
3
- export declare function createGitStatusTool(workspaceRoot: RootGetter): ToolDefinition;
4
- export declare function createGitDiffTool(workspaceRoot: RootGetter): ToolDefinition;
5
- export declare function createGitLogTool(workspaceRoot: RootGetter): ToolDefinition;
6
- export declare function createGitCommitTool(workspaceRoot: RootGetter): ToolDefinition;
7
- export {};
8
- //# sourceMappingURL=git-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-tools.d.ts","sourceRoot":"","sources":["../../src/tool/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"}