sema-core 1.0.2

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 (411) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +150 -0
  3. package/dist/constants/config.d.ts +20 -0
  4. package/dist/constants/config.d.ts.map +1 -0
  5. package/dist/constants/config.js +31 -0
  6. package/dist/constants/config.js.map +1 -0
  7. package/dist/constants/message.d.ts +10 -0
  8. package/dist/constants/message.d.ts.map +1 -0
  9. package/dist/constants/message.js +25 -0
  10. package/dist/constants/message.js.map +1 -0
  11. package/dist/constants/product.d.ts +5 -0
  12. package/dist/constants/product.d.ts.map +1 -0
  13. package/dist/constants/product.js +8 -0
  14. package/dist/constants/product.js.map +1 -0
  15. package/dist/core/Conversation.d.ts +16 -0
  16. package/dist/core/Conversation.d.ts.map +1 -0
  17. package/dist/core/Conversation.js +226 -0
  18. package/dist/core/Conversation.js.map +1 -0
  19. package/dist/core/RunTools.d.ts +11 -0
  20. package/dist/core/RunTools.d.ts.map +1 -0
  21. package/dist/core/RunTools.js +244 -0
  22. package/dist/core/RunTools.js.map +1 -0
  23. package/dist/core/SemaCore.d.ts +49 -0
  24. package/dist/core/SemaCore.d.ts.map +1 -0
  25. package/dist/core/SemaCore.js +94 -0
  26. package/dist/core/SemaCore.js.map +1 -0
  27. package/dist/core/SemaEngine.d.ts +54 -0
  28. package/dist/core/SemaEngine.d.ts.map +1 -0
  29. package/dist/core/SemaEngine.js +335 -0
  30. package/dist/core/SemaEngine.js.map +1 -0
  31. package/dist/events/EventSystem.d.ts +42 -0
  32. package/dist/events/EventSystem.d.ts.map +1 -0
  33. package/dist/events/EventSystem.js +134 -0
  34. package/dist/events/EventSystem.js.map +1 -0
  35. package/dist/events/types.d.ts +300 -0
  36. package/dist/events/types.d.ts.map +1 -0
  37. package/dist/events/types.js +4 -0
  38. package/dist/events/types.js.map +1 -0
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +6 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/manager/ConfManager.d.ts +76 -0
  44. package/dist/manager/ConfManager.d.ts.map +1 -0
  45. package/dist/manager/ConfManager.js +329 -0
  46. package/dist/manager/ConfManager.js.map +1 -0
  47. package/dist/manager/ModelManager.d.ts +51 -0
  48. package/dist/manager/ModelManager.d.ts.map +1 -0
  49. package/dist/manager/ModelManager.js +291 -0
  50. package/dist/manager/ModelManager.js.map +1 -0
  51. package/dist/manager/PermissionManager.d.ts +16 -0
  52. package/dist/manager/PermissionManager.d.ts.map +1 -0
  53. package/dist/manager/PermissionManager.js +308 -0
  54. package/dist/manager/PermissionManager.js.map +1 -0
  55. package/dist/manager/StateManager.d.ts +164 -0
  56. package/dist/manager/StateManager.d.ts.map +1 -0
  57. package/dist/manager/StateManager.js +357 -0
  58. package/dist/manager/StateManager.js.map +1 -0
  59. package/dist/services/agents/agentsManager.d.ts +112 -0
  60. package/dist/services/agents/agentsManager.d.ts.map +1 -0
  61. package/dist/services/agents/agentsManager.js +394 -0
  62. package/dist/services/agents/agentsManager.js.map +1 -0
  63. package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts +3 -0
  64. package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts.map +1 -0
  65. package/dist/services/agents/defaultBuiltInAgentsConfs.js +102 -0
  66. package/dist/services/agents/defaultBuiltInAgentsConfs.js.map +1 -0
  67. package/dist/services/agents/genSystemPrompt.d.ts +23 -0
  68. package/dist/services/agents/genSystemPrompt.d.ts.map +1 -0
  69. package/dist/services/agents/genSystemPrompt.js +189 -0
  70. package/dist/services/agents/genSystemPrompt.js.map +1 -0
  71. package/dist/services/agents/prompt.d.ts +12 -0
  72. package/dist/services/agents/prompt.d.ts.map +1 -0
  73. package/dist/services/agents/prompt.js +162 -0
  74. package/dist/services/agents/prompt.js.map +1 -0
  75. package/dist/services/api/adapt/anthropic.d.ts +10 -0
  76. package/dist/services/api/adapt/anthropic.d.ts.map +1 -0
  77. package/dist/services/api/adapt/anthropic.js +233 -0
  78. package/dist/services/api/adapt/anthropic.js.map +1 -0
  79. package/dist/services/api/adapt/openai.d.ts +8 -0
  80. package/dist/services/api/adapt/openai.d.ts.map +1 -0
  81. package/dist/services/api/adapt/openai.js +412 -0
  82. package/dist/services/api/adapt/openai.js.map +1 -0
  83. package/dist/services/api/adapt/util.d.ts +7 -0
  84. package/dist/services/api/adapt/util.d.ts.map +1 -0
  85. package/dist/services/api/adapt/util.js +24 -0
  86. package/dist/services/api/adapt/util.js.map +1 -0
  87. package/dist/services/api/apiUtil.d.ts +10 -0
  88. package/dist/services/api/apiUtil.d.ts.map +1 -0
  89. package/dist/services/api/apiUtil.js +256 -0
  90. package/dist/services/api/apiUtil.js.map +1 -0
  91. package/dist/services/api/cache.d.ts +11 -0
  92. package/dist/services/api/cache.d.ts.map +1 -0
  93. package/dist/services/api/cache.js +128 -0
  94. package/dist/services/api/cache.js.map +1 -0
  95. package/dist/services/api/queryLLM.d.ts +18 -0
  96. package/dist/services/api/queryLLM.d.ts.map +1 -0
  97. package/dist/services/api/queryLLM.js +147 -0
  98. package/dist/services/api/queryLLM.js.map +1 -0
  99. package/dist/services/command/runCommand.d.ts +18 -0
  100. package/dist/services/command/runCommand.d.ts.map +1 -0
  101. package/dist/services/command/runCommand.js +149 -0
  102. package/dist/services/command/runCommand.js.map +1 -0
  103. package/dist/services/mcp/MCPClient.d.ts +35 -0
  104. package/dist/services/mcp/MCPClient.d.ts.map +1 -0
  105. package/dist/services/mcp/MCPClient.js +166 -0
  106. package/dist/services/mcp/MCPClient.js.map +1 -0
  107. package/dist/services/mcp/MCPManager.d.ts +140 -0
  108. package/dist/services/mcp/MCPManager.d.ts.map +1 -0
  109. package/dist/services/mcp/MCPManager.js +650 -0
  110. package/dist/services/mcp/MCPManager.js.map +1 -0
  111. package/dist/services/mcp/MCPToolAdapter.d.ts +22 -0
  112. package/dist/services/mcp/MCPToolAdapter.d.ts.map +1 -0
  113. package/dist/services/mcp/MCPToolAdapter.js +177 -0
  114. package/dist/services/mcp/MCPToolAdapter.js.map +1 -0
  115. package/dist/services/plugins/customCommands.d.ts +29 -0
  116. package/dist/services/plugins/customCommands.d.ts.map +1 -0
  117. package/dist/services/plugins/customCommands.js +227 -0
  118. package/dist/services/plugins/customCommands.js.map +1 -0
  119. package/dist/services/skill/skillLoader.d.ts +17 -0
  120. package/dist/services/skill/skillLoader.d.ts.map +1 -0
  121. package/dist/services/skill/skillLoader.js +122 -0
  122. package/dist/services/skill/skillLoader.js.map +1 -0
  123. package/dist/services/skill/skillParser.d.ts +15 -0
  124. package/dist/services/skill/skillParser.d.ts.map +1 -0
  125. package/dist/services/skill/skillParser.js +66 -0
  126. package/dist/services/skill/skillParser.js.map +1 -0
  127. package/dist/services/skill/skillRegistry.d.ts +34 -0
  128. package/dist/services/skill/skillRegistry.d.ts.map +1 -0
  129. package/dist/services/skill/skillRegistry.js +98 -0
  130. package/dist/services/skill/skillRegistry.js.map +1 -0
  131. package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts +179 -0
  132. package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts.map +1 -0
  133. package/dist/tools/AskUserQuestion/AskUserQuestion.js +165 -0
  134. package/dist/tools/AskUserQuestion/AskUserQuestion.js.map +1 -0
  135. package/dist/tools/AskUserQuestion/prompt.d.ts +3 -0
  136. package/dist/tools/AskUserQuestion/prompt.d.ts.map +1 -0
  137. package/dist/tools/AskUserQuestion/prompt.js +17 -0
  138. package/dist/tools/AskUserQuestion/prompt.js.map +1 -0
  139. package/dist/tools/Bash/Bash.d.ts +75 -0
  140. package/dist/tools/Bash/Bash.d.ts.map +1 -0
  141. package/dist/tools/Bash/Bash.js +200 -0
  142. package/dist/tools/Bash/Bash.js.map +1 -0
  143. package/dist/tools/Bash/prompt.d.ts +8 -0
  144. package/dist/tools/Bash/prompt.d.ts.map +1 -0
  145. package/dist/tools/Bash/prompt.js +167 -0
  146. package/dist/tools/Bash/prompt.js.map +1 -0
  147. package/dist/tools/Bash/utils.d.ts +5 -0
  148. package/dist/tools/Bash/utils.d.ts.map +1 -0
  149. package/dist/tools/Bash/utils.js +21 -0
  150. package/dist/tools/Bash/utils.js.map +1 -0
  151. package/dist/tools/Edit/Edit.d.ts +110 -0
  152. package/dist/tools/Edit/Edit.d.ts.map +1 -0
  153. package/dist/tools/Edit/Edit.js +213 -0
  154. package/dist/tools/Edit/Edit.js.map +1 -0
  155. package/dist/tools/Edit/prompt.d.ts +3 -0
  156. package/dist/tools/Edit/prompt.d.ts.map +1 -0
  157. package/dist/tools/Edit/prompt.js +15 -0
  158. package/dist/tools/Edit/prompt.js.map +1 -0
  159. package/dist/tools/Edit/utils.d.ts +10 -0
  160. package/dist/tools/Edit/utils.d.ts.map +1 -0
  161. package/dist/tools/Edit/utils.js +51 -0
  162. package/dist/tools/Edit/utils.js.map +1 -0
  163. package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts +42 -0
  164. package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts.map +1 -0
  165. package/dist/tools/ExitPlanMode/ExitPlanMode.js +157 -0
  166. package/dist/tools/ExitPlanMode/ExitPlanMode.js.map +1 -0
  167. package/dist/tools/ExitPlanMode/prompt.d.ts +3 -0
  168. package/dist/tools/ExitPlanMode/prompt.d.ts.map +1 -0
  169. package/dist/tools/ExitPlanMode/prompt.js +28 -0
  170. package/dist/tools/ExitPlanMode/prompt.js.map +1 -0
  171. package/dist/tools/Glob/Glob.d.ts +44 -0
  172. package/dist/tools/Glob/Glob.d.ts.map +1 -0
  173. package/dist/tools/Glob/Glob.js +113 -0
  174. package/dist/tools/Glob/Glob.js.map +1 -0
  175. package/dist/tools/Glob/prompt.d.ts +3 -0
  176. package/dist/tools/Glob/prompt.d.ts.map +1 -0
  177. package/dist/tools/Glob/prompt.js +11 -0
  178. package/dist/tools/Glob/prompt.js.map +1 -0
  179. package/dist/tools/Grep/Grep.d.ts +106 -0
  180. package/dist/tools/Grep/Grep.d.ts.map +1 -0
  181. package/dist/tools/Grep/Grep.js +301 -0
  182. package/dist/tools/Grep/Grep.js.map +1 -0
  183. package/dist/tools/Grep/prompt.d.ts +3 -0
  184. package/dist/tools/Grep/prompt.d.ts.map +1 -0
  185. package/dist/tools/Grep/prompt.js +17 -0
  186. package/dist/tools/Grep/prompt.js.map +1 -0
  187. package/dist/tools/NotebookEdit/NotebookEdit.d.ts +98 -0
  188. package/dist/tools/NotebookEdit/NotebookEdit.d.ts.map +1 -0
  189. package/dist/tools/NotebookEdit/NotebookEdit.js +228 -0
  190. package/dist/tools/NotebookEdit/NotebookEdit.js.map +1 -0
  191. package/dist/tools/NotebookEdit/prompt.d.ts +3 -0
  192. package/dist/tools/NotebookEdit/prompt.d.ts.map +1 -0
  193. package/dist/tools/NotebookEdit/prompt.js +6 -0
  194. package/dist/tools/NotebookEdit/prompt.js.map +1 -0
  195. package/dist/tools/Read/Read.d.ts +107 -0
  196. package/dist/tools/Read/Read.d.ts.map +1 -0
  197. package/dist/tools/Read/Read.js +175 -0
  198. package/dist/tools/Read/Read.js.map +1 -0
  199. package/dist/tools/Read/prompt.d.ts +4 -0
  200. package/dist/tools/Read/prompt.d.ts.map +1 -0
  201. package/dist/tools/Read/prompt.js +21 -0
  202. package/dist/tools/Read/prompt.js.map +1 -0
  203. package/dist/tools/Skill/Skill.d.ts +62 -0
  204. package/dist/tools/Skill/Skill.d.ts.map +1 -0
  205. package/dist/tools/Skill/Skill.js +142 -0
  206. package/dist/tools/Skill/Skill.js.map +1 -0
  207. package/dist/tools/Skill/prompt.d.ts +3 -0
  208. package/dist/tools/Skill/prompt.d.ts.map +1 -0
  209. package/dist/tools/Skill/prompt.js +58 -0
  210. package/dist/tools/Skill/prompt.js.map +1 -0
  211. package/dist/tools/Task/Task.d.ts +59 -0
  212. package/dist/tools/Task/Task.d.ts.map +1 -0
  213. package/dist/tools/Task/Task.js +213 -0
  214. package/dist/tools/Task/Task.js.map +1 -0
  215. package/dist/tools/Task/prompt.d.ts +6 -0
  216. package/dist/tools/Task/prompt.d.ts.map +1 -0
  217. package/dist/tools/Task/prompt.js +75 -0
  218. package/dist/tools/Task/prompt.js.map +1 -0
  219. package/dist/tools/TodoWrite/TodoWrite.d.ts +92 -0
  220. package/dist/tools/TodoWrite/TodoWrite.d.ts.map +1 -0
  221. package/dist/tools/TodoWrite/TodoWrite.js +101 -0
  222. package/dist/tools/TodoWrite/TodoWrite.js.map +1 -0
  223. package/dist/tools/TodoWrite/prompt.d.ts +3 -0
  224. package/dist/tools/TodoWrite/prompt.d.ts.map +1 -0
  225. package/dist/tools/TodoWrite/prompt.js +187 -0
  226. package/dist/tools/TodoWrite/prompt.js.map +1 -0
  227. package/dist/tools/Write/Write.d.ts +77 -0
  228. package/dist/tools/Write/Write.d.ts.map +1 -0
  229. package/dist/tools/Write/Write.js +189 -0
  230. package/dist/tools/Write/Write.js.map +1 -0
  231. package/dist/tools/Write/prompt.d.ts +3 -0
  232. package/dist/tools/Write/prompt.d.ts.map +1 -0
  233. package/dist/tools/Write/prompt.js +13 -0
  234. package/dist/tools/Write/prompt.js.map +1 -0
  235. package/dist/tools/base/Tool.d.ts +36 -0
  236. package/dist/tools/base/Tool.d.ts.map +1 -0
  237. package/dist/tools/base/Tool.js +3 -0
  238. package/dist/tools/base/Tool.js.map +1 -0
  239. package/dist/tools/base/tools.d.ts +9 -0
  240. package/dist/tools/base/tools.d.ts.map +1 -0
  241. package/dist/tools/base/tools.js +105 -0
  242. package/dist/tools/base/tools.js.map +1 -0
  243. package/dist/types/agent.d.ts +30 -0
  244. package/dist/types/agent.d.ts.map +1 -0
  245. package/dist/types/agent.js +3 -0
  246. package/dist/types/agent.js.map +1 -0
  247. package/dist/types/command.d.ts +44 -0
  248. package/dist/types/command.d.ts.map +1 -0
  249. package/dist/types/command.js +6 -0
  250. package/dist/types/command.js.map +1 -0
  251. package/dist/types/config.d.ts +14 -0
  252. package/dist/types/config.d.ts.map +1 -0
  253. package/dist/types/config.js +3 -0
  254. package/dist/types/config.js.map +1 -0
  255. package/dist/types/errors.d.ts +18 -0
  256. package/dist/types/errors.d.ts.map +1 -0
  257. package/dist/types/errors.js +33 -0
  258. package/dist/types/errors.js.map +1 -0
  259. package/dist/types/index.d.ts +91 -0
  260. package/dist/types/index.d.ts.map +1 -0
  261. package/dist/types/index.js +18 -0
  262. package/dist/types/index.js.map +1 -0
  263. package/dist/types/mcp.d.ts +127 -0
  264. package/dist/types/mcp.d.ts.map +1 -0
  265. package/dist/types/mcp.js +6 -0
  266. package/dist/types/mcp.js.map +1 -0
  267. package/dist/types/message.d.ts +31 -0
  268. package/dist/types/message.d.ts.map +1 -0
  269. package/dist/types/message.js +3 -0
  270. package/dist/types/message.js.map +1 -0
  271. package/dist/types/model.d.ts +21 -0
  272. package/dist/types/model.d.ts.map +1 -0
  273. package/dist/types/model.js +3 -0
  274. package/dist/types/model.js.map +1 -0
  275. package/dist/types/notebook.d.ts +57 -0
  276. package/dist/types/notebook.d.ts.map +1 -0
  277. package/dist/types/notebook.js +3 -0
  278. package/dist/types/notebook.js.map +1 -0
  279. package/dist/types/skill.d.ts +34 -0
  280. package/dist/types/skill.d.ts.map +1 -0
  281. package/dist/types/skill.js +8 -0
  282. package/dist/types/skill.js.map +1 -0
  283. package/dist/types/uuid.d.ts +2 -0
  284. package/dist/types/uuid.d.ts.map +1 -0
  285. package/dist/types/uuid.js +3 -0
  286. package/dist/types/uuid.js.map +1 -0
  287. package/dist/util/adapter.d.ts +11 -0
  288. package/dist/util/adapter.d.ts.map +1 -0
  289. package/dist/util/adapter.js +75 -0
  290. package/dist/util/adapter.js.map +1 -0
  291. package/dist/util/agentStats.d.ts +11 -0
  292. package/dist/util/agentStats.d.ts.map +1 -0
  293. package/dist/util/agentStats.js +60 -0
  294. package/dist/util/agentStats.js.map +1 -0
  295. package/dist/util/cacheLLM.d.ts +47 -0
  296. package/dist/util/cacheLLM.d.ts.map +1 -0
  297. package/dist/util/cacheLLM.js +154 -0
  298. package/dist/util/cacheLLM.js.map +1 -0
  299. package/dist/util/commands.d.ts +16 -0
  300. package/dist/util/commands.d.ts.map +1 -0
  301. package/dist/util/commands.js +216 -0
  302. package/dist/util/commands.js.map +1 -0
  303. package/dist/util/compact.d.ts +25 -0
  304. package/dist/util/compact.d.ts.map +1 -0
  305. package/dist/util/compact.js +451 -0
  306. package/dist/util/compact.js.map +1 -0
  307. package/dist/util/cwd.d.ts +44 -0
  308. package/dist/util/cwd.d.ts.map +1 -0
  309. package/dist/util/cwd.js +84 -0
  310. package/dist/util/cwd.js.map +1 -0
  311. package/dist/util/diff.d.ts +10 -0
  312. package/dist/util/diff.d.ts.map +1 -0
  313. package/dist/util/diff.js +127 -0
  314. package/dist/util/diff.js.map +1 -0
  315. package/dist/util/directory.d.ts +37 -0
  316. package/dist/util/directory.d.ts.map +1 -0
  317. package/dist/util/directory.js +137 -0
  318. package/dist/util/directory.js.map +1 -0
  319. package/dist/util/env.d.ts +5 -0
  320. package/dist/util/env.d.ts.map +1 -0
  321. package/dist/util/env.js +39 -0
  322. package/dist/util/env.js.map +1 -0
  323. package/dist/util/exec.d.ts +6 -0
  324. package/dist/util/exec.d.ts.map +1 -0
  325. package/dist/util/exec.js +43 -0
  326. package/dist/util/exec.js.map +1 -0
  327. package/dist/util/file.d.ts +61 -0
  328. package/dist/util/file.d.ts.map +1 -0
  329. package/dist/util/file.js +365 -0
  330. package/dist/util/file.js.map +1 -0
  331. package/dist/util/filePermission.d.ts +14 -0
  332. package/dist/util/filePermission.d.ts.map +1 -0
  333. package/dist/util/filePermission.js +45 -0
  334. package/dist/util/filePermission.js.map +1 -0
  335. package/dist/util/fileReference.d.ts +40 -0
  336. package/dist/util/fileReference.d.ts.map +1 -0
  337. package/dist/util/fileReference.js +343 -0
  338. package/dist/util/fileReference.js.map +1 -0
  339. package/dist/util/format.d.ts +9 -0
  340. package/dist/util/format.d.ts.map +1 -0
  341. package/dist/util/format.js +61 -0
  342. package/dist/util/format.js.map +1 -0
  343. package/dist/util/frontmatter.d.ts +35 -0
  344. package/dist/util/frontmatter.d.ts.map +1 -0
  345. package/dist/util/frontmatter.js +119 -0
  346. package/dist/util/frontmatter.js.map +1 -0
  347. package/dist/util/git.d.ts +4 -0
  348. package/dist/util/git.d.ts.map +1 -0
  349. package/dist/util/git.js +55 -0
  350. package/dist/util/git.js.map +1 -0
  351. package/dist/util/history.d.ts +27 -0
  352. package/dist/util/history.d.ts.map +1 -0
  353. package/dist/util/history.js +248 -0
  354. package/dist/util/history.js.map +1 -0
  355. package/dist/util/log.d.ts +23 -0
  356. package/dist/util/log.d.ts.map +1 -0
  357. package/dist/util/log.js +246 -0
  358. package/dist/util/log.js.map +1 -0
  359. package/dist/util/logLLM.d.ts +20 -0
  360. package/dist/util/logLLM.d.ts.map +1 -0
  361. package/dist/util/logLLM.js +414 -0
  362. package/dist/util/logLLM.js.map +1 -0
  363. package/dist/util/message.d.ts +12 -0
  364. package/dist/util/message.d.ts.map +1 -0
  365. package/dist/util/message.js +156 -0
  366. package/dist/util/message.js.map +1 -0
  367. package/dist/util/model.d.ts +22 -0
  368. package/dist/util/model.d.ts.map +1 -0
  369. package/dist/util/model.js +61 -0
  370. package/dist/util/model.js.map +1 -0
  371. package/dist/util/notebook.d.ts +14 -0
  372. package/dist/util/notebook.d.ts.map +1 -0
  373. package/dist/util/notebook.js +104 -0
  374. package/dist/util/notebook.js.map +1 -0
  375. package/dist/util/ripgrep.d.ts +3 -0
  376. package/dist/util/ripgrep.d.ts.map +1 -0
  377. package/dist/util/ripgrep.js +187 -0
  378. package/dist/util/ripgrep.js.map +1 -0
  379. package/dist/util/rules.d.ts +6 -0
  380. package/dist/util/rules.d.ts.map +1 -0
  381. package/dist/util/rules.js +111 -0
  382. package/dist/util/rules.js.map +1 -0
  383. package/dist/util/savePath.d.ts +73 -0
  384. package/dist/util/savePath.d.ts.map +1 -0
  385. package/dist/util/savePath.js +189 -0
  386. package/dist/util/savePath.js.map +1 -0
  387. package/dist/util/secureFile.d.ts +136 -0
  388. package/dist/util/secureFile.d.ts.map +1 -0
  389. package/dist/util/secureFile.js +496 -0
  390. package/dist/util/secureFile.js.map +1 -0
  391. package/dist/util/session.d.ts +37 -0
  392. package/dist/util/session.d.ts.map +1 -0
  393. package/dist/util/session.js +120 -0
  394. package/dist/util/session.js.map +1 -0
  395. package/dist/util/shell.d.ts +40 -0
  396. package/dist/util/shell.d.ts.map +1 -0
  397. package/dist/util/shell.js +876 -0
  398. package/dist/util/shell.js.map +1 -0
  399. package/dist/util/time.d.ts +24 -0
  400. package/dist/util/time.d.ts.map +1 -0
  401. package/dist/util/time.js +53 -0
  402. package/dist/util/time.js.map +1 -0
  403. package/dist/util/tokens.d.ts +9 -0
  404. package/dist/util/tokens.d.ts.map +1 -0
  405. package/dist/util/tokens.js +79 -0
  406. package/dist/util/tokens.js.map +1 -0
  407. package/dist/util/topic.d.ts +9 -0
  408. package/dist/util/topic.d.ts.map +1 -0
  409. package/dist/util/topic.js +52 -0
  410. package/dist/util/topic.js.map +1 -0
  411. package/package.json +83 -0
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GlobTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const path_1 = require("path");
6
+ const cwd_1 = require("../../util/cwd");
7
+ const file_1 = require("../../util/file");
8
+ const file_2 = require("../../util/file");
9
+ const prompt_1 = require("./prompt");
10
+ function getTitle(input) {
11
+ if (input?.pattern !== undefined) {
12
+ const parts = [`pattern: "${input.pattern}"`];
13
+ if (input.glob) {
14
+ parts.push(`glob: "${input.glob}"`);
15
+ }
16
+ if (input.path) {
17
+ try {
18
+ const absolutePath = (0, file_1.getAbsolutePath)(input.path) || input.path;
19
+ const relativePath = (0, path_1.relative)((0, cwd_1.getCwd)(), absolutePath);
20
+ // 只有当相对路径不是空字符串或 '.' 时才添加
21
+ if (relativePath && relativePath !== '.') {
22
+ parts.push(`path: "${relativePath}"`);
23
+ }
24
+ }
25
+ catch (error) {
26
+ parts.push(`path: "${input.path}"`);
27
+ }
28
+ }
29
+ return `${parts.join(', ')}`;
30
+ }
31
+ return prompt_1.TOOL_NAME_FOR_PROMPT;
32
+ }
33
+ const inputSchema = zod_1.z.strictObject({
34
+ pattern: zod_1.z.string().describe('The glob pattern to match files against'),
35
+ path: zod_1.z
36
+ .string()
37
+ .optional()
38
+ .describe('The directory to search in. If not specified, the current working directory will be used. IMPORTANT: Omit this field to use the default directory. DO NOT enter \"undefined\" or \"null\" - simply omit it for the default behavior. Must be a valid directory path if provided.'),
39
+ });
40
+ exports.GlobTool = {
41
+ name: prompt_1.TOOL_NAME_FOR_PROMPT,
42
+ description() {
43
+ return prompt_1.DESCRIPTION;
44
+ },
45
+ inputSchema,
46
+ isReadOnly() {
47
+ return true;
48
+ },
49
+ genToolResultMessage({ pattern = '', path, numFiles, filenames }) {
50
+ const title = getTitle({ pattern, path });
51
+ const fileText = numFiles !== 1 ? 'files' : 'file';
52
+ // 最多显示10行,后面显示 '`\n... (+${剩余文件数} files)`'
53
+ let content = '';
54
+ if (filenames && filenames.length > 0) {
55
+ const maxDisplayCount = 10;
56
+ const displayFiles = filenames.slice(0, maxDisplayCount);
57
+ const remainingCount = filenames.length - maxDisplayCount;
58
+ // 将文件路径转换为相对路径
59
+ const relativeFilePaths = displayFiles.map(filePath => {
60
+ try {
61
+ return (0, path_1.relative)((0, cwd_1.getCwd)(), filePath);
62
+ }
63
+ catch (error) {
64
+ return filePath;
65
+ }
66
+ });
67
+ content = relativeFilePaths.join('\n');
68
+ // 如果有剩余文件,显示省略信息
69
+ if (remainingCount > 0) {
70
+ content += `\n... (+${remainingCount} files)`;
71
+ }
72
+ }
73
+ return {
74
+ title,
75
+ summary: `Found ${numFiles} ${fileText}`,
76
+ content
77
+ };
78
+ },
79
+ getDisplayTitle(input) {
80
+ return getTitle(input);
81
+ },
82
+ async *call({ pattern, path }, agentContext) {
83
+ const abortController = agentContext.abortController;
84
+ const start = Date.now();
85
+ const { files, truncated } = await (0, file_2.glob)(pattern, path ?? (0, cwd_1.getCwd)(), { limit: 100, offset: 0 }, abortController?.signal ?? new AbortController().signal);
86
+ const output = {
87
+ filenames: files,
88
+ durationMs: Date.now() - start,
89
+ numFiles: files.length,
90
+ truncated,
91
+ pattern,
92
+ path,
93
+ };
94
+ yield {
95
+ type: 'result',
96
+ resultForAssistant: this.genResultForAssistant(output),
97
+ data: output,
98
+ };
99
+ },
100
+ genResultForAssistant(output) {
101
+ let result = output.filenames.join('\n');
102
+ if (output.filenames.length === 0) {
103
+ result = 'No files found';
104
+ }
105
+ // Only add truncation message if results were actually truncated
106
+ else if (output.truncated) {
107
+ result +=
108
+ '\n(Results are truncated. Consider using a more specific path or pattern.)';
109
+ }
110
+ return result;
111
+ },
112
+ };
113
+ //# sourceMappingURL=Glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Glob.js","sourceRoot":"","sources":["../../../src/tools/Glob/Glob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const TOOL_NAME_FOR_PROMPT = "Glob";
2
+ export declare const DESCRIPTION: string;
3
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/Glob/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,SAAS,CAAA;AAE1C,eAAO,MAAM,WAAW,EAAE,MAKzB,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
4
+ exports.TOOL_NAME_FOR_PROMPT = 'Glob';
5
+ exports.DESCRIPTION = `- Fast file pattern matching tool that works with any codebase size
6
+ - Supports glob patterns like "**/*.js" or "src/**/*.ts"
7
+ - Returns matching file paths sorted by modification time
8
+ - Use this tool when you need to find files by name patterns
9
+ - When you are doing an open ended search that may require multiple rounds of globbing and grepping, use the Agent tool instead
10
+ `;
11
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/Glob/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,MAAM,CAAA;AAE7B,QAAA,WAAW,GAAY;;;;;CAKnC,CAAA"}
@@ -0,0 +1,106 @@
1
+ import { z } from 'zod';
2
+ type Output = {
3
+ durationMs: number;
4
+ numFiles: number;
5
+ filenames: string[];
6
+ pattern?: string;
7
+ path?: string;
8
+ glob?: string;
9
+ };
10
+ export declare const GrepTool: {
11
+ name: string;
12
+ description(): string;
13
+ inputSchema: z.ZodObject<{
14
+ pattern: z.ZodString;
15
+ path: z.ZodOptional<z.ZodString>;
16
+ glob: z.ZodOptional<z.ZodString>;
17
+ output_mode: z.ZodOptional<z.ZodEnum<["content", "files_with_matches", "count"]>>;
18
+ '-A': z.ZodOptional<z.ZodNumber>;
19
+ '-B': z.ZodOptional<z.ZodNumber>;
20
+ '-C': z.ZodOptional<z.ZodNumber>;
21
+ '-n': z.ZodOptional<z.ZodBoolean>;
22
+ '-i': z.ZodOptional<z.ZodBoolean>;
23
+ type: z.ZodOptional<z.ZodString>;
24
+ head_limit: z.ZodOptional<z.ZodNumber>;
25
+ offset: z.ZodOptional<z.ZodNumber>;
26
+ multiline: z.ZodOptional<z.ZodBoolean>;
27
+ }, "strict", z.ZodTypeAny, {
28
+ pattern: string;
29
+ path?: string | undefined;
30
+ type?: string | undefined;
31
+ offset?: number | undefined;
32
+ glob?: string | undefined;
33
+ output_mode?: "content" | "files_with_matches" | "count" | undefined;
34
+ '-A'?: number | undefined;
35
+ '-B'?: number | undefined;
36
+ '-C'?: number | undefined;
37
+ '-n'?: boolean | undefined;
38
+ '-i'?: boolean | undefined;
39
+ head_limit?: number | undefined;
40
+ multiline?: boolean | undefined;
41
+ }, {
42
+ pattern: string;
43
+ path?: string | undefined;
44
+ type?: string | undefined;
45
+ offset?: number | undefined;
46
+ glob?: string | undefined;
47
+ output_mode?: "content" | "files_with_matches" | "count" | undefined;
48
+ '-A'?: number | undefined;
49
+ '-B'?: number | undefined;
50
+ '-C'?: number | undefined;
51
+ '-n'?: boolean | undefined;
52
+ '-i'?: boolean | undefined;
53
+ head_limit?: number | undefined;
54
+ multiline?: boolean | undefined;
55
+ }>;
56
+ isReadOnly(): true;
57
+ genToolResultMessage({ pattern, path, glob, numFiles, filenames }: Output): {
58
+ title: string;
59
+ summary: string;
60
+ content: string;
61
+ };
62
+ genResultForAssistant({ numFiles, filenames }: Output): string;
63
+ getDisplayTitle(input: {
64
+ pattern: string;
65
+ path?: string | undefined;
66
+ type?: string | undefined;
67
+ offset?: number | undefined;
68
+ glob?: string | undefined;
69
+ output_mode?: "content" | "files_with_matches" | "count" | undefined;
70
+ '-A'?: number | undefined;
71
+ '-B'?: number | undefined;
72
+ '-C'?: number | undefined;
73
+ '-n'?: boolean | undefined;
74
+ '-i'?: boolean | undefined;
75
+ head_limit?: number | undefined;
76
+ multiline?: boolean | undefined;
77
+ } | undefined): string;
78
+ call(input: {
79
+ pattern: string;
80
+ path?: string | undefined;
81
+ type?: string | undefined;
82
+ offset?: number | undefined;
83
+ glob?: string | undefined;
84
+ output_mode?: "content" | "files_with_matches" | "count" | undefined;
85
+ '-A'?: number | undefined;
86
+ '-B'?: number | undefined;
87
+ '-C'?: number | undefined;
88
+ '-n'?: boolean | undefined;
89
+ '-i'?: boolean | undefined;
90
+ head_limit?: number | undefined;
91
+ multiline?: boolean | undefined;
92
+ }, agentContext: any): AsyncGenerator<{
93
+ type: "result";
94
+ resultForAssistant: string;
95
+ data: {
96
+ filenames: string[];
97
+ durationMs: number;
98
+ numFiles: number;
99
+ pattern: string;
100
+ path: string | undefined;
101
+ glob: string | undefined;
102
+ };
103
+ }, void, unknown>;
104
+ };
105
+ export {};
106
+ //# sourceMappingURL=Grep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grep.d.ts","sourceRoot":"","sources":["../../../src/tools/Grep/Grep.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAoHvB,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkEc,GAAG;;;;;;;;;;;;CAgLM,CAAA"}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrepTool = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ const zod_1 = require("zod");
6
+ const path_1 = require("path");
7
+ const cwd_1 = require("../../util/cwd");
8
+ const file_1 = require("../../util/file");
9
+ const ripgrep_1 = require("../../util/ripgrep");
10
+ const prompt_1 = require("./prompt");
11
+ // 辅助函数:生成显示标题
12
+ function getTitle(input) {
13
+ if (input?.pattern !== undefined) {
14
+ const parts = [`pattern: "${input.pattern}"`];
15
+ // 调整顺序:glob 在 path 之前
16
+ if (input.glob) {
17
+ parts.push(`glob: "${input.glob}"`);
18
+ }
19
+ if (input.path) {
20
+ try {
21
+ const absolutePath = (0, file_1.normalizeFilePath)(input.path);
22
+ const relativePath = (0, path_1.relative)((0, cwd_1.getCwd)(), absolutePath);
23
+ // 只有当相对路径不是空字符串或 '.' 时才添加
24
+ if (relativePath && relativePath !== '.') {
25
+ parts.push(`path: "${relativePath}"`);
26
+ }
27
+ }
28
+ catch (error) {
29
+ parts.push(`path: "${input.path}"`);
30
+ }
31
+ }
32
+ return `${parts.join(', ')}`;
33
+ }
34
+ return prompt_1.TOOL_NAME_FOR_PROMPT;
35
+ }
36
+ const inputSchema = zod_1.z.strictObject({
37
+ pattern: zod_1.z
38
+ .string()
39
+ .describe('The regular expression pattern to search for in file contents'),
40
+ path: zod_1.z
41
+ .string()
42
+ .optional()
43
+ .describe('File or directory to search in (rg PATH). Defaults to current working directory.'),
44
+ glob: zod_1.z
45
+ .string()
46
+ .optional()
47
+ .describe('Glob pattern to filter files (e.g. "*.js", "*.{ts,tsx}") - maps to rg --glob'),
48
+ output_mode: zod_1.z
49
+ .enum(['content', 'files_with_matches', 'count'])
50
+ .optional()
51
+ .describe('Output mode: "content" shows matching lines (supports -A/-B/-C context, -n line numbers, head_limit), "files_with_matches" shows file paths (supports head_limit), "count" shows match counts (supports head_limit). Defaults to "files_with_matches".'),
52
+ '-A': zod_1.z
53
+ .number()
54
+ .optional()
55
+ .describe('Number of lines to show after each match (rg -A). Requires output_mode: "content", ignored otherwise.'),
56
+ '-B': zod_1.z
57
+ .number()
58
+ .optional()
59
+ .describe('Number of lines to show before each match (rg -B). Requires output_mode: "content", ignored otherwise.'),
60
+ '-C': zod_1.z
61
+ .number()
62
+ .optional()
63
+ .describe('Number of lines to show before and after each match (rg -C). Requires output_mode: "content", ignored otherwise.'),
64
+ '-n': zod_1.z
65
+ .boolean()
66
+ .optional()
67
+ .describe('Show line numbers in output (rg -n). Requires output_mode: "content", ignored otherwise. Defaults to true.'),
68
+ '-i': zod_1.z
69
+ .boolean()
70
+ .optional()
71
+ .describe('Case insensitive search (rg -i)'),
72
+ type: zod_1.z
73
+ .string()
74
+ .optional()
75
+ .describe('File type to search (rg --type). Common types: js, py, rust, go, java, etc. More efficient than include for standard file types.'),
76
+ head_limit: zod_1.z
77
+ .number()
78
+ .optional()
79
+ .describe('Limit output to first N lines/entries, equivalent to "| head -N". Works across all output modes: content (limits output lines), files_with_matches (limits file paths), count (limits count entries). Defaults to 0 (unlimited).'),
80
+ offset: zod_1.z
81
+ .number()
82
+ .optional()
83
+ .describe('Skip first N lines/entries before applying head_limit, equivalent to "| tail -n +N | head -N". Works across all output modes. Defaults to 0.'),
84
+ multiline: zod_1.z
85
+ .boolean()
86
+ .optional()
87
+ .describe('Enable multiline mode where . matches newlines and patterns can span lines (rg -U --multiline-dotall). Default: false.'),
88
+ });
89
+ const MAX_RESULTS = 100;
90
+ exports.GrepTool = {
91
+ name: prompt_1.TOOL_NAME_FOR_PROMPT,
92
+ description() {
93
+ return prompt_1.DESCRIPTION;
94
+ },
95
+ inputSchema,
96
+ isReadOnly() {
97
+ return true;
98
+ },
99
+ genToolResultMessage({ pattern = '', path, glob, numFiles, filenames }) {
100
+ const title = getTitle({ pattern, path, glob });
101
+ const matchText = numFiles !== 1 ? 'matches' : 'match';
102
+ // 格式化内容:显示最多10个文件,超出部分显示省略信息
103
+ let content = '';
104
+ if (filenames && filenames.length > 0) {
105
+ const maxDisplayCount = 10;
106
+ const displayFiles = filenames.slice(0, maxDisplayCount);
107
+ const remainingCount = filenames.length - maxDisplayCount;
108
+ // 将文件路径转换为相对路径
109
+ // 注意:content 模式下,每行格式为 "文件路径:行号:内容",需要单独处理路径部分
110
+ const relativeFilePaths = displayFiles.map(line => {
111
+ try {
112
+ // 检查是否是 "文件路径:行号:内容" 格式(content 模式)
113
+ // 匹配格式:/path/to/file:123:content 或 /path/to/file:123
114
+ const match = line.match(/^(.+?):(\d+)(:.*)?$/);
115
+ if (match) {
116
+ const [, filePath, lineNum, rest = ''] = match;
117
+ const relativePath = (0, path_1.relative)((0, cwd_1.getCwd)(), filePath);
118
+ return `${relativePath}:${lineNum}${rest}`;
119
+ }
120
+ // 普通文件路径(files_with_matches 模式)
121
+ return (0, path_1.relative)((0, cwd_1.getCwd)(), line);
122
+ }
123
+ catch (error) {
124
+ return line;
125
+ }
126
+ });
127
+ content = relativeFilePaths.join('\n');
128
+ if (remainingCount > 0) {
129
+ content += `\n... (+${remainingCount} files)`;
130
+ }
131
+ }
132
+ return {
133
+ title,
134
+ summary: `Found ${numFiles} ${matchText}`,
135
+ content
136
+ };
137
+ },
138
+ genResultForAssistant({ numFiles, filenames }) {
139
+ if (numFiles === 0) {
140
+ return 'No matches found';
141
+ }
142
+ let result = `Found ${numFiles} match${numFiles === 1 ? '' : 'es'}\n${filenames.slice(0, MAX_RESULTS).join('\n')}`;
143
+ if (numFiles > MAX_RESULTS) {
144
+ result +=
145
+ '\n(Results are truncated. Consider using a more specific path or pattern.)';
146
+ }
147
+ return result;
148
+ },
149
+ getDisplayTitle(input) {
150
+ return getTitle(input);
151
+ },
152
+ async *call(input, agentContext) {
153
+ const abortController = agentContext.abortController;
154
+ const { pattern, path, glob, output_mode = 'files_with_matches', '-A': afterContext, '-B': beforeContext, '-C': context, '-n': showLineNumbers = true, '-i': caseInsensitive, type, head_limit = 0, offset = 0, multiline, } = input;
155
+ const start = Date.now();
156
+ const absolutePath = path ? (0, file_1.normalizeFilePath)(path) : (0, cwd_1.getCwd)();
157
+ // 构建 ripgrep 参数
158
+ const args = [];
159
+ // 输出模式
160
+ switch (output_mode) {
161
+ case 'files_with_matches':
162
+ args.push('-l'); // 只显示匹配的文件名
163
+ break;
164
+ case 'content':
165
+ // 默认显示内容,可能需要行号
166
+ if (showLineNumbers) {
167
+ args.push('-n');
168
+ }
169
+ break;
170
+ case 'count':
171
+ args.push('-c'); // 显示匹配计数
172
+ break;
173
+ }
174
+ // 大小写敏感性
175
+ if (caseInsensitive) {
176
+ args.push('-i');
177
+ }
178
+ // 上下文行
179
+ if (context !== undefined) {
180
+ args.push('-C', context.toString());
181
+ }
182
+ else {
183
+ if (beforeContext !== undefined) {
184
+ args.push('-B', beforeContext.toString());
185
+ }
186
+ if (afterContext !== undefined) {
187
+ args.push('-A', afterContext.toString());
188
+ }
189
+ }
190
+ // 多行模式
191
+ if (multiline) {
192
+ args.push('-U', '--multiline-dotall');
193
+ }
194
+ // 文件类型过滤
195
+ if (type) {
196
+ args.push('--type', type);
197
+ }
198
+ // Glob 模式
199
+ if (glob) {
200
+ args.push('--glob', glob);
201
+ }
202
+ // 添加模式
203
+ args.push(pattern);
204
+ const results = await (0, ripgrep_1.ripGrep)(args, absolutePath, abortController?.signal ?? new AbortController().signal);
205
+ // 处理分页(offset 和 head_limit)
206
+ let processedResults = results;
207
+ if (offset > 0) {
208
+ processedResults = processedResults.slice(offset);
209
+ }
210
+ if (head_limit > 0) {
211
+ processedResults = processedResults.slice(0, head_limit);
212
+ }
213
+ // 对于文件列表模式,按修改时间排序
214
+ if (output_mode === 'files_with_matches') {
215
+ try {
216
+ const stats = await Promise.all(processedResults.map(_ => (0, promises_1.stat)(_)));
217
+ const matches = processedResults
218
+ .map((_, i) => [_, stats[i]])
219
+ .sort((a, b) => {
220
+ const timeComparison = (b[1].mtimeMs ?? 0) - (a[1].mtimeMs ?? 0);
221
+ if (timeComparison === 0) {
222
+ // Sort by filename as a tiebreaker
223
+ return a[0].localeCompare(b[0]);
224
+ }
225
+ return timeComparison;
226
+ })
227
+ .map(_ => _[0]);
228
+ processedResults = matches;
229
+ }
230
+ catch (error) {
231
+ // 如果获取文件状态失败,保持原始顺序
232
+ console.warn('Failed to get file stats for sorting:', error);
233
+ }
234
+ }
235
+ // 在 content 模式下,需要统计实际匹配数,而不是输出行数
236
+ // ripgrep 输出格式(带行号 -n):
237
+ // 单文件: "123:content" (匹配), "124-context" (上下文)
238
+ // 多文件: "file:123:content" (匹配), "file-124-context" (上下文)
239
+ // 分隔符: "--"
240
+ let actualMatchCount = processedResults.length;
241
+ if (output_mode === 'content') {
242
+ if (showLineNumbers) {
243
+ // 带行号模式:匹配行的特征是包含 ":数字:" 或以 "数字:" 开头
244
+ // 上下文行的特征是包含 "-数字-" 或以 "数字-" 开头
245
+ actualMatchCount = processedResults.filter(line => {
246
+ // 排除分隔符
247
+ if (line === '--')
248
+ return false;
249
+ // 检查是否是匹配行
250
+ // 单文件格式: "123:content"
251
+ if (/^\d+:/.test(line))
252
+ return true;
253
+ // 多文件格式: "path:123:content"
254
+ // 需要确保不是上下文行 "path-123-content"
255
+ if (/:(\d+):/.test(line))
256
+ return true;
257
+ return false;
258
+ }).length;
259
+ }
260
+ else {
261
+ // 无行号模式:匹配行用冒号分隔,上下文行用减号分隔
262
+ // 单文件: "content" vs "content" (难以区分)
263
+ // 多文件: "file:content" vs "file-content"
264
+ actualMatchCount = processedResults.filter(line => {
265
+ if (line === '--')
266
+ return false;
267
+ // 在无行号模式下,通过分隔符类型判断
268
+ // 如果包含 "路径:" 但不包含 "路径-",则是匹配行
269
+ const colonMatch = line.match(/^([^:]+):/);
270
+ const dashMatch = line.match(/^([^-]+)-/);
271
+ // 有冒号且冒号在减号之前(或没有减号)
272
+ if (colonMatch) {
273
+ if (!dashMatch)
274
+ return true;
275
+ return line.indexOf(':') < line.indexOf('-');
276
+ }
277
+ return false;
278
+ }).length;
279
+ }
280
+ }
281
+ else if (output_mode === 'count') {
282
+ // count 模式下,每行格式是 "file:count"
283
+ // numFiles 应该是文件数,不是匹配总数
284
+ actualMatchCount = processedResults.length;
285
+ }
286
+ const output = {
287
+ filenames: processedResults,
288
+ durationMs: Date.now() - start,
289
+ numFiles: actualMatchCount,
290
+ pattern,
291
+ path,
292
+ glob,
293
+ };
294
+ yield {
295
+ type: 'result',
296
+ resultForAssistant: this.genResultForAssistant(output),
297
+ data: output,
298
+ };
299
+ },
300
+ };
301
+ //# sourceMappingURL=Grep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grep.js","sourceRoot":"","sources":["../../../src/tools/Grep/Grep.ts"],"names":[],"mappings":";;;AAAA,0CAAkC;AAClC,6BAAuB;AACvB,+BAA+B;AAE/B,wCAAuC;AACvC,0CAEwB;AACxB,gDAA4C;AAC5C,qCAA4D;AAE5D,cAAc;AACd,SAAS,QAAQ,CAAC,KAA0D;IAC1E,IAAI,KAAK,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,aAAa,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;QAE7C,sBAAsB;QACtB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAA,wBAAiB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAClD,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,IAAA,YAAM,GAAE,EAAE,YAAY,CAAC,CAAA;gBACrD,0BAA0B;gBAC1B,IAAI,YAAY,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;oBACzC,KAAK,CAAC,IAAI,CAAC,UAAU,YAAY,GAAG,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,CAAC;IACD,OAAO,6BAAoB,CAAA;AAC7B,CAAC;AAED,MAAM,WAAW,GAAG,OAAC,CAAC,YAAY,CAAC;IACjC,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kFAAkF,CACnF;IACH,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,8EAA8E,CAC/E;IACH,WAAW,EAAE,OAAC;SACX,IAAI,CAAC,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CACP,wPAAwP,CACzP;IACH,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uGAAuG,CACxG;IACH,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,wGAAwG,CACzG;IACH,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kHAAkH,CACnH;IACH,IAAI,EAAE,OAAC;SACJ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,4GAA4G,CAC7G;IACH,IAAI,EAAE,OAAC;SACJ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kIAAkI,CACnI;IACH,UAAU,EAAE,OAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kOAAkO,CACnO;IACH,MAAM,EAAE,OAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,8IAA8I,CAC/I;IACH,SAAS,EAAE,OAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,wHAAwH,CACzH;CACJ,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,GAAG,CAAA;AAWV,QAAA,QAAQ,GAAG;IACtB,IAAI,EAAE,6BAAoB;IAC1B,WAAW;QACT,OAAO,oBAAW,CAAA;IACpB,CAAC;IACD,WAAW;IACX,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,oBAAoB,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;QACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAEvD,6BAA6B;QAC7B,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,EAAE,CAAA;YAC1B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;YACxD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,eAAe,CAAA;YAEzD,eAAe;YACf,+CAA+C;YAC/C,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChD,IAAI,CAAC;oBACH,oCAAoC;oBACpC,qDAAqD;oBACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;oBAC/C,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;wBAC9C,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,IAAA,YAAM,GAAE,EAAE,QAAQ,CAAC,CAAA;wBACjD,OAAO,GAAG,YAAY,IAAI,OAAO,GAAG,IAAI,EAAE,CAAA;oBAC5C,CAAC;oBACD,gCAAgC;oBAChC,OAAO,IAAA,eAAQ,EAAC,IAAA,YAAM,GAAE,EAAE,IAAI,CAAC,CAAA;gBACjC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEtC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,WAAW,cAAc,SAAS,CAAA;YAC/C,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK;YACL,OAAO,EAAE,SAAS,QAAQ,IAAI,SAAS,EAAE;YACzC,OAAO;SACR,CAAA;IACH,CAAC;IACD,qBAAqB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE;QAC3C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,kBAAkB,CAAA;QAC3B,CAAC;QACD,IAAI,MAAM,GAAG,SAAS,QAAQ,SAAS,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QAClH,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC3B,MAAM;gBACJ,4EAA4E,CAAA;QAChF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IACD,eAAe,CAAC,KAAK;QACnB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IACD,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,YAAiB;QAClC,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAA;QACpD,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,WAAW,GAAG,oBAAoB,EAClC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,IAAI,EAAE,eAAe,EACrB,IAAI,EACJ,UAAU,GAAG,CAAC,EACd,MAAM,GAAG,CAAC,EACV,SAAS,GACV,GAAG,KAAK,CAAA;QAET,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,YAAM,GAAE,CAAA;QAE9D,gBAAgB;QAChB,MAAM,IAAI,GAAa,EAAE,CAAA;QAEzB,OAAO;QACP,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,oBAAoB;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,YAAY;gBAC5B,MAAK;YACP,KAAK,SAAS;gBACZ,gBAAgB;gBAChB,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAK;YACP,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,SAAS;gBACzB,MAAK;QACT,CAAC;QAED,SAAS;QACT,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,OAAO;QACP,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC3C,CAAC;YACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO;QACP,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,SAAS;QACT,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,UAAU;QACV,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAElB,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAA;QAE1G,4BAA4B;QAC5B,IAAI,gBAAgB,GAAG,OAAO,CAAA;QAC9B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnD,CAAC;QACD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAC1D,CAAC;QAED,mBAAmB;QACnB,IAAI,WAAW,KAAK,oBAAoB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,eAAI,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACnE,MAAM,OAAO,GAAG,gBAAgB;qBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAE,CAAU,CAAC;qBACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACb,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;oBAChE,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;wBACzB,mCAAmC;wBACnC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACjC,CAAC;oBACD,OAAO,cAAc,CAAA;gBACvB,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAEjB,gBAAgB,GAAG,OAAO,CAAA;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,wBAAwB;QACxB,iDAAiD;QACjD,2DAA2D;QAC3D,cAAc;QACd,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAA;QAE9C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,eAAe,EAAE,CAAC;gBACpB,qCAAqC;gBACrC,gCAAgC;gBAChC,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAChD,QAAQ;oBACR,IAAI,IAAI,KAAK,IAAI;wBAAE,OAAO,KAAK,CAAA;oBAE/B,WAAW;oBACX,uBAAuB;oBACvB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,OAAO,IAAI,CAAA;oBAEnC,4BAA4B;oBAC5B,gCAAgC;oBAChC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,OAAO,IAAI,CAAA;oBAErC,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC,CAAC,MAAM,CAAA;YACX,CAAC;iBAAM,CAAC;gBACN,2BAA2B;gBAC3B,qCAAqC;gBACrC,wCAAwC;gBACxC,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAChD,IAAI,IAAI,KAAK,IAAI;wBAAE,OAAO,KAAK,CAAA;oBAE/B,oBAAoB;oBACpB,8BAA8B;oBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;oBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;oBAEzC,qBAAqB;oBACrB,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC,SAAS;4BAAE,OAAO,IAAI,CAAA;wBAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC9C,CAAC;oBAED,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC,CAAC,MAAM,CAAA;YACX,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YACnC,+BAA+B;YAC/B,yBAAyB;YACzB,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAA;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,gBAAgB;YAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,QAAQ,EAAE,gBAAgB;YAC1B,OAAO;YACP,IAAI;YACJ,IAAI;SACL,CAAA;QAED,MAAM;YACJ,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;YACtD,IAAI,EAAE,MAAM;SACb,CAAA;IACH,CAAC;CACyC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const TOOL_NAME_FOR_PROMPT = "Grep";
2
+ export declare const DESCRIPTION = "A powerful search tool built on ripgrep\n\n Usage:\n - ALWAYS use Grep for search tasks. NEVER invoke `grep` or `rg` as a Bash command. The Grep tool has been optimized for correct permissions and access.\n - Supports full regex syntax (e.g., \"log.*Error\", \"functions+w+\")\n - Filter files with glob parameter (e.g., \"*.js\", \"**/*.tsx\") or type parameter (e.g., \"js\", \"py\", \"rust\")\n - Output modes: \"content\" shows matching lines, \"files_with_matches\" shows only file paths (default), \"count\" shows match counts\n - Use Bash tool for open-ended searches requiring multiple rounds\n - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use `interface{}` to find `interface{}` in Go code)\n - Multiline matching: By default patterns match within single lines only. For cross-line patterns like `struct {[sS]*?field`, use `multiline: true`\n";
3
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/Grep/prompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,SAAS,CAAA;AAE1C,eAAO,MAAM,WAAW,63BAUvB,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
4
+ const prompt_1 = require("../Bash/prompt");
5
+ exports.TOOL_NAME_FOR_PROMPT = 'Grep';
6
+ exports.DESCRIPTION = `A powerful search tool built on ripgrep
7
+
8
+ Usage:
9
+ - ALWAYS use ${exports.TOOL_NAME_FOR_PROMPT} for search tasks. NEVER invoke \`grep\` or \`rg\` as a ${prompt_1.TOOL_NAME_FOR_PROMPT} command. The Grep tool has been optimized for correct permissions and access.
10
+ - Supports full regex syntax (e.g., "log.*Error", "function\s+\w+")
11
+ - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
12
+ - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
13
+ - Use ${prompt_1.TOOL_NAME_FOR_PROMPT} tool for open-ended searches requiring multiple rounds
14
+ - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\{\}\` to find \`interface{}\` in Go code)
15
+ - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \{[\s\S]*?field\`, use \`multiline: true\`
16
+ `;
17
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/Grep/prompt.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAE1D,QAAA,oBAAoB,GAAG,MAAM,CAAA;AAE7B,QAAA,WAAW,GAAG;;;iBAGV,4BAAoB,2DAA2D,6BAAc;;;;UAIpG,6BAAc;;;CAGvB,CAAA"}