sema-core 1.0.14 → 2.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 (680) hide show
  1. package/README.md +15 -10
  2. package/dist/{constants → conf}/config.d.ts +0 -1
  3. package/dist/conf/config.d.ts.map +1 -0
  4. package/dist/{constants → conf}/config.js +1 -3
  5. package/dist/conf/config.js.map +1 -0
  6. package/dist/core/Conversation.d.ts +3 -14
  7. package/dist/core/Conversation.d.ts.map +1 -1
  8. package/dist/core/Conversation.js +53 -89
  9. package/dist/core/Conversation.js.map +1 -1
  10. package/dist/core/RunTools.d.ts +5 -5
  11. package/dist/core/RunTools.d.ts.map +1 -1
  12. package/dist/core/RunTools.js +22 -31
  13. package/dist/core/RunTools.js.map +1 -1
  14. package/dist/core/SemaCore.d.ts +21 -22
  15. package/dist/core/SemaCore.d.ts.map +1 -1
  16. package/dist/core/SemaCore.js +16 -24
  17. package/dist/core/SemaCore.js.map +1 -1
  18. package/dist/core/SemaEngine.d.ts +2 -2
  19. package/dist/core/SemaEngine.d.ts.map +1 -1
  20. package/dist/core/SemaEngine.js +30 -33
  21. package/dist/core/SemaEngine.js.map +1 -1
  22. package/dist/events/EventSystem.d.ts.map +1 -1
  23. package/dist/events/EventSystem.js +3 -2
  24. package/dist/events/EventSystem.js.map +1 -1
  25. package/dist/events/types.d.ts +75 -41
  26. package/dist/events/types.d.ts.map +1 -1
  27. package/dist/manager/ConfManager.d.ts +10 -3
  28. package/dist/manager/ConfManager.d.ts.map +1 -1
  29. package/dist/manager/ConfManager.js +30 -13
  30. package/dist/manager/ConfManager.js.map +1 -1
  31. package/dist/manager/CronManager.d.ts +3 -6
  32. package/dist/manager/CronManager.d.ts.map +1 -1
  33. package/dist/manager/CronManager.js +62 -74
  34. package/dist/manager/CronManager.js.map +1 -1
  35. package/dist/manager/ModelManager.d.ts +0 -3
  36. package/dist/manager/ModelManager.d.ts.map +1 -1
  37. package/dist/manager/ModelManager.js +2 -4
  38. package/dist/manager/ModelManager.js.map +1 -1
  39. package/dist/manager/PermissionManager.d.ts +4 -6
  40. package/dist/manager/PermissionManager.d.ts.map +1 -1
  41. package/dist/manager/PermissionManager.js +70 -65
  42. package/dist/manager/PermissionManager.js.map +1 -1
  43. package/dist/manager/StateManager.d.ts +40 -7
  44. package/dist/manager/StateManager.d.ts.map +1 -1
  45. package/dist/manager/StateManager.js +79 -22
  46. package/dist/manager/StateManager.js.map +1 -1
  47. package/dist/manager/TaskManager.d.ts +2 -9
  48. package/dist/manager/TaskManager.d.ts.map +1 -1
  49. package/dist/manager/TaskManager.js +64 -66
  50. package/dist/manager/TaskManager.js.map +1 -1
  51. package/dist/prompt/agents.d.ts +3 -0
  52. package/dist/prompt/agents.d.ts.map +1 -0
  53. package/dist/prompt/agents.js +52 -0
  54. package/dist/prompt/agents.js.map +1 -0
  55. package/dist/prompt/commands.d.ts +3 -0
  56. package/dist/prompt/commands.d.ts.map +1 -0
  57. package/dist/prompt/commands.js +19 -0
  58. package/dist/prompt/commands.js.map +1 -0
  59. package/dist/prompt/compact.d.ts +2 -0
  60. package/dist/prompt/compact.d.ts.map +1 -0
  61. package/dist/prompt/compact.js +22 -0
  62. package/dist/prompt/compact.js.map +1 -0
  63. package/dist/prompt/define.d.ts +5 -0
  64. package/dist/prompt/define.d.ts.map +1 -0
  65. package/dist/prompt/define.js +8 -0
  66. package/dist/prompt/define.js.map +1 -0
  67. package/dist/prompt/design/design.d.ts +47 -0
  68. package/dist/prompt/design/design.d.ts.map +1 -0
  69. package/dist/prompt/design/design.js +224 -0
  70. package/dist/prompt/design/design.js.map +1 -0
  71. package/dist/prompt/design/designPhilosophy.d.ts +2 -0
  72. package/dist/prompt/design/designPhilosophy.d.ts.map +1 -0
  73. package/dist/prompt/design/designPhilosophy.js +79 -0
  74. package/dist/prompt/design/designPhilosophy.js.map +1 -0
  75. package/dist/prompt/design/designSystemSpec.d.ts +2 -0
  76. package/dist/prompt/design/designSystemSpec.d.ts.map +1 -0
  77. package/dist/prompt/design/designSystemSpec.js +44 -0
  78. package/dist/prompt/design/designSystemSpec.js.map +1 -0
  79. package/dist/prompt/design/imgPlaceholder.d.ts +2 -0
  80. package/dist/prompt/design/imgPlaceholder.d.ts.map +1 -0
  81. package/dist/prompt/design/imgPlaceholder.js +56 -0
  82. package/dist/prompt/design/imgPlaceholder.js.map +1 -0
  83. package/dist/prompt/memory.d.ts +2 -0
  84. package/dist/prompt/memory.d.ts.map +1 -0
  85. package/dist/prompt/memory.js +23 -0
  86. package/dist/prompt/memory.js.map +1 -0
  87. package/dist/prompt/plan.d.ts +2 -0
  88. package/dist/prompt/plan.d.ts.map +1 -0
  89. package/dist/prompt/plan.js +30 -0
  90. package/dist/prompt/plan.js.map +1 -0
  91. package/dist/prompt/quickchat.d.ts +2 -0
  92. package/dist/prompt/quickchat.d.ts.map +1 -0
  93. package/dist/prompt/quickchat.js +16 -0
  94. package/dist/prompt/quickchat.js.map +1 -0
  95. package/dist/prompt/system.d.ts +3 -0
  96. package/dist/prompt/system.d.ts.map +1 -0
  97. package/dist/prompt/system.js +76 -0
  98. package/dist/prompt/system.js.map +1 -0
  99. package/dist/prompt/tool.d.ts +22 -0
  100. package/dist/prompt/tool.d.ts.map +1 -0
  101. package/dist/prompt/tool.js +25 -0
  102. package/dist/prompt/tool.js.map +1 -0
  103. package/dist/prompt/toolAliases.d.ts +16 -0
  104. package/dist/prompt/toolAliases.d.ts.map +1 -0
  105. package/dist/prompt/toolAliases.js +46 -0
  106. package/dist/prompt/toolAliases.js.map +1 -0
  107. package/dist/prompt/tools/createCron.d.ts +2 -0
  108. package/dist/prompt/tools/createCron.d.ts.map +1 -0
  109. package/dist/prompt/tools/createCron.js +29 -0
  110. package/dist/prompt/tools/createCron.js.map +1 -0
  111. package/dist/prompt/tools/createTodo.d.ts +2 -0
  112. package/dist/prompt/tools/createTodo.d.ts.map +1 -0
  113. package/dist/prompt/tools/createTodo.js +23 -0
  114. package/dist/prompt/tools/createTodo.js.map +1 -0
  115. package/dist/prompt/tools/fetchUrl.d.ts +3 -0
  116. package/dist/prompt/tools/fetchUrl.d.ts.map +1 -0
  117. package/dist/prompt/tools/fetchUrl.js +27 -0
  118. package/dist/prompt/tools/fetchUrl.js.map +1 -0
  119. package/dist/prompt/tools/planToAgent.d.ts +2 -0
  120. package/dist/prompt/tools/planToAgent.d.ts.map +1 -0
  121. package/dist/prompt/tools/planToAgent.js +24 -0
  122. package/dist/prompt/tools/planToAgent.js.map +1 -0
  123. package/dist/prompt/tools/runShell.d.ts +2 -0
  124. package/dist/prompt/tools/runShell.d.ts.map +1 -0
  125. package/dist/prompt/tools/runShell.js +31 -0
  126. package/dist/prompt/tools/runShell.js.map +1 -0
  127. package/dist/prompt/tools/searchContent.d.ts +2 -0
  128. package/dist/prompt/tools/searchContent.d.ts.map +1 -0
  129. package/dist/prompt/tools/searchContent.js +18 -0
  130. package/dist/prompt/tools/searchContent.js.map +1 -0
  131. package/dist/prompt/tools/skill.d.ts +2 -0
  132. package/dist/prompt/tools/skill.d.ts.map +1 -0
  133. package/dist/prompt/tools/skill.js +14 -0
  134. package/dist/prompt/tools/skill.js.map +1 -0
  135. package/dist/prompt/tools/subAgent.d.ts +2 -0
  136. package/dist/prompt/tools/subAgent.d.ts.map +1 -0
  137. package/dist/prompt/tools/subAgent.js +45 -0
  138. package/dist/prompt/tools/subAgent.js.map +1 -0
  139. package/dist/prompt/tools/viewFile.d.ts +4 -0
  140. package/dist/prompt/tools/viewFile.d.ts.map +1 -0
  141. package/dist/prompt/tools/viewFile.js +26 -0
  142. package/dist/prompt/tools/viewFile.js.map +1 -0
  143. package/dist/services/agents/agentsManager.d.ts +12 -15
  144. package/dist/services/agents/agentsManager.d.ts.map +1 -1
  145. package/dist/services/agents/agentsManager.js +67 -65
  146. package/dist/services/agents/agentsManager.js.map +1 -1
  147. package/dist/services/agents/genDesignSystemReminder.d.ts +3 -0
  148. package/dist/services/agents/genDesignSystemReminder.d.ts.map +1 -0
  149. package/dist/services/agents/genDesignSystemReminder.js +149 -0
  150. package/dist/services/agents/genDesignSystemReminder.js.map +1 -0
  151. package/dist/services/agents/genSystemPrompt.d.ts +11 -11
  152. package/dist/services/agents/genSystemPrompt.d.ts.map +1 -1
  153. package/dist/services/agents/genSystemPrompt.js +58 -121
  154. package/dist/services/agents/genSystemPrompt.js.map +1 -1
  155. package/dist/services/agents/{systemReminder.d.ts → genSystemReminder.d.ts} +2 -7
  156. package/dist/services/agents/genSystemReminder.d.ts.map +1 -0
  157. package/dist/services/agents/genSystemReminder.js +86 -0
  158. package/dist/services/agents/genSystemReminder.js.map +1 -0
  159. package/dist/services/api/adapt/anthropic.d.ts +3 -5
  160. package/dist/services/api/adapt/anthropic.d.ts.map +1 -1
  161. package/dist/services/api/adapt/anthropic.js +32 -18
  162. package/dist/services/api/adapt/anthropic.js.map +1 -1
  163. package/dist/services/api/adapt/openai.d.ts +3 -3
  164. package/dist/services/api/adapt/openai.d.ts.map +1 -1
  165. package/dist/services/api/adapt/openai.js +20 -23
  166. package/dist/services/api/adapt/openai.js.map +1 -1
  167. package/dist/services/api/adapt/util.d.ts +0 -1
  168. package/dist/services/api/adapt/util.d.ts.map +1 -1
  169. package/dist/services/api/adapt/util.js +3 -5
  170. package/dist/services/api/adapt/util.js.map +1 -1
  171. package/dist/services/api/apiUtil.d.ts +3 -0
  172. package/dist/services/api/apiUtil.d.ts.map +1 -1
  173. package/dist/services/api/apiUtil.js +30 -26
  174. package/dist/services/api/apiUtil.js.map +1 -1
  175. package/dist/services/api/cache.d.ts +5 -5
  176. package/dist/services/api/cache.d.ts.map +1 -1
  177. package/dist/services/api/cache.js +16 -20
  178. package/dist/services/api/cache.js.map +1 -1
  179. package/dist/services/api/queryLLM.d.ts +4 -5
  180. package/dist/services/api/queryLLM.d.ts.map +1 -1
  181. package/dist/services/api/queryLLM.js +2 -6
  182. package/dist/services/api/queryLLM.js.map +1 -1
  183. package/dist/services/commands/commandsManager.d.ts +11 -14
  184. package/dist/services/commands/commandsManager.d.ts.map +1 -1
  185. package/dist/services/commands/commandsManager.js +54 -64
  186. package/dist/services/commands/commandsManager.js.map +1 -1
  187. package/dist/services/commands/runCommand.d.ts.map +1 -1
  188. package/dist/services/commands/runCommand.js +3 -27
  189. package/dist/services/commands/runCommand.js.map +1 -1
  190. package/dist/services/design/designManager.d.ts +29 -0
  191. package/dist/services/design/designManager.d.ts.map +1 -0
  192. package/dist/services/design/designManager.js +365 -0
  193. package/dist/services/design/designManager.js.map +1 -0
  194. package/dist/services/mcp/MCPClient.d.ts.map +1 -1
  195. package/dist/services/mcp/MCPClient.js +9 -1
  196. package/dist/services/mcp/MCPClient.js.map +1 -1
  197. package/dist/services/mcp/MCPManager.d.ts +9 -29
  198. package/dist/services/mcp/MCPManager.d.ts.map +1 -1
  199. package/dist/services/mcp/MCPManager.js +53 -147
  200. package/dist/services/mcp/MCPManager.js.map +1 -1
  201. package/dist/services/mcp/MCPToolAdapter.js +4 -4
  202. package/dist/services/mcp/MCPToolAdapter.js.map +1 -1
  203. package/dist/services/memory/memManager.d.ts +6 -9
  204. package/dist/services/memory/memManager.d.ts.map +1 -1
  205. package/dist/services/memory/memManager.js +22 -42
  206. package/dist/services/memory/memManager.js.map +1 -1
  207. package/dist/services/plugins/pluginsManager.d.ts +9 -17
  208. package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
  209. package/dist/services/plugins/pluginsManager.js +33 -104
  210. package/dist/services/plugins/pluginsManager.js.map +1 -1
  211. package/dist/services/rules/rulesManager.d.ts +7 -9
  212. package/dist/services/rules/rulesManager.d.ts.map +1 -1
  213. package/dist/services/rules/rulesManager.js +19 -39
  214. package/dist/services/rules/rulesManager.js.map +1 -1
  215. package/dist/services/skills/skillsManager.d.ts +10 -13
  216. package/dist/services/skills/skillsManager.d.ts.map +1 -1
  217. package/dist/services/skills/skillsManager.js +41 -54
  218. package/dist/services/skills/skillsManager.js.map +1 -1
  219. package/dist/tools/CreateCron.d.ts +68 -0
  220. package/dist/tools/CreateCron.d.ts.map +1 -0
  221. package/dist/tools/CreateCron.js +76 -0
  222. package/dist/tools/CreateCron.js.map +1 -0
  223. package/dist/tools/CreateTodo.d.ts +48 -0
  224. package/dist/tools/CreateTodo.d.ts.map +1 -0
  225. package/dist/tools/CreateTodo.js +50 -0
  226. package/dist/tools/CreateTodo.js.map +1 -0
  227. package/dist/tools/{CronDelete/CronDelete.d.ts → DelCron.d.ts} +11 -11
  228. package/dist/tools/DelCron.d.ts.map +1 -0
  229. package/dist/tools/{CronDelete/CronDelete.js → DelCron.js} +12 -12
  230. package/dist/tools/DelCron.js.map +1 -0
  231. package/dist/tools/{NotebookEdit/NotebookEdit.d.ts → EditNotebook.d.ts} +37 -37
  232. package/dist/tools/EditNotebook.d.ts.map +1 -0
  233. package/dist/tools/EditNotebook.js +220 -0
  234. package/dist/tools/EditNotebook.js.map +1 -0
  235. package/dist/tools/{WebFetch/WebFetch.d.ts → FetchUrl.d.ts} +8 -8
  236. package/dist/tools/FetchUrl.d.ts.map +1 -0
  237. package/dist/tools/{WebFetch/WebFetch.js → FetchUrl.js} +30 -34
  238. package/dist/tools/FetchUrl.js.map +1 -0
  239. package/dist/tools/GetTodo.d.ts +34 -0
  240. package/dist/tools/GetTodo.d.ts.map +1 -0
  241. package/dist/tools/{TaskGet/TaskGet.js → GetTodo.js} +21 -20
  242. package/dist/tools/GetTodo.js.map +1 -0
  243. package/dist/tools/{CronList/CronList.d.ts → ListCrons.d.ts} +12 -13
  244. package/dist/tools/ListCrons.d.ts.map +1 -0
  245. package/dist/tools/{CronList/CronList.js → ListCrons.js} +20 -20
  246. package/dist/tools/ListCrons.js.map +1 -0
  247. package/dist/tools/ListTodos.d.ts +27 -0
  248. package/dist/tools/ListTodos.d.ts.map +1 -0
  249. package/dist/tools/{TaskList/TaskList.js → ListTodos.js} +20 -19
  250. package/dist/tools/ListTodos.js.map +1 -0
  251. package/dist/tools/{Edit/Edit.d.ts → PatchFile.d.ts} +39 -43
  252. package/dist/tools/PatchFile.d.ts.map +1 -0
  253. package/dist/tools/PatchFile.js +214 -0
  254. package/dist/tools/PatchFile.js.map +1 -0
  255. package/dist/tools/PeekBgJob.d.ts +58 -0
  256. package/dist/tools/PeekBgJob.d.ts.map +1 -0
  257. package/dist/tools/PeekBgJob.js +92 -0
  258. package/dist/tools/PeekBgJob.js.map +1 -0
  259. package/dist/tools/PickOption.d.ts +463 -0
  260. package/dist/tools/PickOption.d.ts.map +1 -0
  261. package/dist/tools/PickOption.js +226 -0
  262. package/dist/tools/PickOption.js.map +1 -0
  263. package/dist/tools/PlanToAgent.d.ts +42 -0
  264. package/dist/tools/PlanToAgent.d.ts.map +1 -0
  265. package/dist/tools/{ExitPlanMode/ExitPlanMode.js → PlanToAgent.js} +47 -43
  266. package/dist/tools/PlanToAgent.js.map +1 -0
  267. package/dist/tools/{Bash/Bash.d.ts → RunShell.d.ts} +23 -21
  268. package/dist/tools/RunShell.d.ts.map +1 -0
  269. package/dist/tools/{Bash/Bash.js → RunShell.js} +55 -58
  270. package/dist/tools/RunShell.js.map +1 -0
  271. package/dist/tools/SearchContent.d.ts +86 -0
  272. package/dist/tools/SearchContent.d.ts.map +1 -0
  273. package/dist/tools/SearchContent.js +237 -0
  274. package/dist/tools/SearchContent.js.map +1 -0
  275. package/dist/tools/{Glob/Glob.d.ts → SearchFiles.d.ts} +8 -8
  276. package/dist/tools/SearchFiles.d.ts.map +1 -0
  277. package/dist/tools/{Glob/Glob.js → SearchFiles.js} +24 -31
  278. package/dist/tools/SearchFiles.js.map +1 -0
  279. package/dist/tools/{Skill/Skill.d.ts → Skill.d.ts} +11 -11
  280. package/dist/tools/Skill.d.ts.map +1 -0
  281. package/dist/tools/{Skill/Skill.js → Skill.js} +21 -19
  282. package/dist/tools/Skill.js.map +1 -0
  283. package/dist/tools/{TaskStop/TaskStop.d.ts → StopBgJob.d.ts} +17 -17
  284. package/dist/tools/StopBgJob.d.ts.map +1 -0
  285. package/dist/tools/StopBgJob.js +69 -0
  286. package/dist/tools/StopBgJob.js.map +1 -0
  287. package/dist/tools/SubAgent.d.ts +67 -0
  288. package/dist/tools/SubAgent.d.ts.map +1 -0
  289. package/dist/tools/{Agent/Agent.js → SubAgent.js} +60 -58
  290. package/dist/tools/SubAgent.js.map +1 -0
  291. package/dist/tools/UpdateTodo.d.ts +76 -0
  292. package/dist/tools/UpdateTodo.d.ts.map +1 -0
  293. package/dist/tools/UpdateTodo.js +111 -0
  294. package/dist/tools/UpdateTodo.js.map +1 -0
  295. package/dist/tools/{Read/Read.d.ts → ViewFile.d.ts} +26 -64
  296. package/dist/tools/ViewFile.d.ts.map +1 -0
  297. package/dist/tools/ViewFile.js +365 -0
  298. package/dist/tools/ViewFile.js.map +1 -0
  299. package/dist/tools/{Write/Write.d.ts → WriteFile.d.ts} +12 -12
  300. package/dist/tools/WriteFile.d.ts.map +1 -0
  301. package/dist/tools/WriteFile.js +150 -0
  302. package/dist/tools/WriteFile.js.map +1 -0
  303. package/dist/tools/base/Tool.d.ts +2 -2
  304. package/dist/tools/base/Tool.d.ts.map +1 -1
  305. package/dist/tools/base/tools.d.ts +1 -0
  306. package/dist/tools/base/tools.d.ts.map +1 -1
  307. package/dist/tools/base/tools.js +56 -50
  308. package/dist/tools/base/tools.js.map +1 -1
  309. package/dist/types/agent.d.ts +0 -1
  310. package/dist/types/agent.d.ts.map +1 -1
  311. package/dist/types/command.d.ts +0 -2
  312. package/dist/types/command.d.ts.map +1 -1
  313. package/dist/types/cron.d.ts +6 -6
  314. package/dist/types/cron.d.ts.map +1 -1
  315. package/dist/types/design.d.ts +24 -0
  316. package/dist/types/design.d.ts.map +1 -0
  317. package/dist/types/design.js +6 -0
  318. package/dist/types/design.js.map +1 -0
  319. package/dist/types/errors.d.ts +0 -2
  320. package/dist/types/errors.d.ts.map +1 -1
  321. package/dist/types/errors.js +0 -2
  322. package/dist/types/errors.js.map +1 -1
  323. package/dist/types/index.d.ts +16 -12
  324. package/dist/types/index.d.ts.map +1 -1
  325. package/dist/types/index.js +28 -5
  326. package/dist/types/index.js.map +1 -1
  327. package/dist/types/mcp.d.ts +1 -3
  328. package/dist/types/mcp.d.ts.map +1 -1
  329. package/dist/types/message.d.ts +5 -4
  330. package/dist/types/message.d.ts.map +1 -1
  331. package/dist/types/model.d.ts +1 -1
  332. package/dist/types/model.d.ts.map +1 -1
  333. package/dist/types/plugin.d.ts +8 -11
  334. package/dist/types/plugin.d.ts.map +1 -1
  335. package/dist/types/skill.d.ts +0 -3
  336. package/dist/types/skill.d.ts.map +1 -1
  337. package/dist/types/skill.js +0 -2
  338. package/dist/types/skill.js.map +1 -1
  339. package/dist/types/task.d.ts +10 -10
  340. package/dist/types/task.d.ts.map +1 -1
  341. package/dist/types/todoTask.d.ts +4 -5
  342. package/dist/types/todoTask.d.ts.map +1 -1
  343. package/dist/util/adapter.d.ts +8 -3
  344. package/dist/util/adapter.d.ts.map +1 -1
  345. package/dist/util/adapter.js +22 -49
  346. package/dist/util/adapter.js.map +1 -1
  347. package/dist/util/agentStats.d.ts +1 -1
  348. package/dist/util/agentStats.d.ts.map +1 -1
  349. package/dist/util/agentStats.js +16 -24
  350. package/dist/util/agentStats.js.map +1 -1
  351. package/dist/util/cacheLLM.d.ts +5 -5
  352. package/dist/util/cacheLLM.d.ts.map +1 -1
  353. package/dist/util/cacheLLM.js.map +1 -1
  354. package/dist/util/color.d.ts +44 -0
  355. package/dist/util/color.d.ts.map +1 -0
  356. package/dist/util/color.js +247 -0
  357. package/dist/util/color.js.map +1 -0
  358. package/dist/util/commands.d.ts +4 -5
  359. package/dist/util/commands.d.ts.map +1 -1
  360. package/dist/util/commands.js +22 -112
  361. package/dist/util/commands.js.map +1 -1
  362. package/dist/util/compact.d.ts +6 -3
  363. package/dist/util/compact.d.ts.map +1 -1
  364. package/dist/util/compact.js +20 -149
  365. package/dist/util/compact.js.map +1 -1
  366. package/dist/util/cron.d.ts +1 -9
  367. package/dist/util/cron.d.ts.map +1 -1
  368. package/dist/util/cron.js +2 -29
  369. package/dist/util/cron.js.map +1 -1
  370. package/dist/util/cwd.d.ts +2 -35
  371. package/dist/util/cwd.d.ts.map +1 -1
  372. package/dist/util/cwd.js +7 -57
  373. package/dist/util/cwd.js.map +1 -1
  374. package/dist/util/diff.d.ts +6 -4
  375. package/dist/util/diff.d.ts.map +1 -1
  376. package/dist/util/diff.js +63 -104
  377. package/dist/util/diff.js.map +1 -1
  378. package/dist/{tools/Edit/utils.d.ts → util/edit.d.ts} +2 -5
  379. package/dist/util/edit.d.ts.map +1 -0
  380. package/dist/util/edit.js +44 -0
  381. package/dist/util/edit.js.map +1 -0
  382. package/dist/util/env.d.ts +1 -4
  383. package/dist/util/env.d.ts.map +1 -1
  384. package/dist/util/env.js +22 -15
  385. package/dist/util/env.js.map +1 -1
  386. package/dist/util/fetchUrl.d.ts +18 -0
  387. package/dist/util/fetchUrl.d.ts.map +1 -0
  388. package/dist/util/fetchUrl.js +101 -0
  389. package/dist/util/fetchUrl.js.map +1 -0
  390. package/dist/util/file.d.ts +32 -45
  391. package/dist/util/file.d.ts.map +1 -1
  392. package/dist/util/file.js +153 -236
  393. package/dist/util/file.js.map +1 -1
  394. package/dist/util/fileReference.d.ts +1 -9
  395. package/dist/util/fileReference.d.ts.map +1 -1
  396. package/dist/util/fileReference.js +45 -58
  397. package/dist/util/fileReference.js.map +1 -1
  398. package/dist/util/format.d.ts +1 -9
  399. package/dist/util/format.d.ts.map +1 -1
  400. package/dist/util/format.js +5 -46
  401. package/dist/util/format.js.map +1 -1
  402. package/dist/util/formatter.d.ts +5 -8
  403. package/dist/util/formatter.d.ts.map +1 -1
  404. package/dist/util/formatter.js +5 -15
  405. package/dist/util/formatter.js.map +1 -1
  406. package/dist/util/git.d.ts +2 -3
  407. package/dist/util/git.d.ts.map +1 -1
  408. package/dist/util/git.js +34 -39
  409. package/dist/util/git.js.map +1 -1
  410. package/dist/util/history.d.ts +0 -7
  411. package/dist/util/history.d.ts.map +1 -1
  412. package/dist/util/history.js +3 -50
  413. package/dist/util/history.js.map +1 -1
  414. package/dist/util/log.d.ts +0 -1
  415. package/dist/util/log.d.ts.map +1 -1
  416. package/dist/util/log.js +2 -7
  417. package/dist/util/log.js.map +1 -1
  418. package/dist/util/logLLM.d.ts +0 -4
  419. package/dist/util/logLLM.d.ts.map +1 -1
  420. package/dist/util/logLLM.js +6 -16
  421. package/dist/util/logLLM.js.map +1 -1
  422. package/dist/util/message.d.ts +12 -11
  423. package/dist/util/message.d.ts.map +1 -1
  424. package/dist/util/message.js +68 -89
  425. package/dist/util/message.js.map +1 -1
  426. package/dist/util/model.d.ts +0 -3
  427. package/dist/util/model.d.ts.map +1 -1
  428. package/dist/util/model.js +1 -5
  429. package/dist/util/model.js.map +1 -1
  430. package/dist/util/notebook.d.ts +1 -8
  431. package/dist/util/notebook.d.ts.map +1 -1
  432. package/dist/util/notebook.js +36 -63
  433. package/dist/util/notebook.js.map +1 -1
  434. package/dist/util/pdf.d.ts +14 -72
  435. package/dist/util/pdf.d.ts.map +1 -1
  436. package/dist/util/pdf.js +51 -460
  437. package/dist/util/pdf.js.map +1 -1
  438. package/dist/util/process.d.ts +1 -1
  439. package/dist/util/process.d.ts.map +1 -1
  440. package/dist/util/process.js +7 -11
  441. package/dist/util/process.js.map +1 -1
  442. package/dist/util/quickchat.d.ts +6 -0
  443. package/dist/util/quickchat.d.ts.map +1 -0
  444. package/dist/util/{btw.js → quickchat.js} +14 -32
  445. package/dist/util/quickchat.js.map +1 -0
  446. package/dist/util/ripgrep.d.ts +4 -2
  447. package/dist/util/ripgrep.d.ts.map +1 -1
  448. package/dist/util/ripgrep.js +40 -116
  449. package/dist/util/ripgrep.js.map +1 -1
  450. package/dist/util/savePath.d.ts +2 -18
  451. package/dist/util/savePath.d.ts.map +1 -1
  452. package/dist/util/savePath.js +7 -47
  453. package/dist/util/savePath.js.map +1 -1
  454. package/dist/util/secureFile.d.ts +13 -135
  455. package/dist/util/secureFile.d.ts.map +1 -1
  456. package/dist/util/secureFile.js +74 -478
  457. package/dist/util/secureFile.js.map +1 -1
  458. package/dist/util/session.d.ts +0 -21
  459. package/dist/util/session.d.ts.map +1 -1
  460. package/dist/util/session.js +0 -49
  461. package/dist/util/session.js.map +1 -1
  462. package/dist/util/shell.d.ts +23 -3
  463. package/dist/util/shell.d.ts.map +1 -1
  464. package/dist/util/shell.js +199 -290
  465. package/dist/util/shell.js.map +1 -1
  466. package/dist/util/time.d.ts +6 -5
  467. package/dist/util/time.d.ts.map +1 -1
  468. package/dist/util/time.js +10 -6
  469. package/dist/util/time.js.map +1 -1
  470. package/dist/util/tokens.d.ts +0 -1
  471. package/dist/util/tokens.d.ts.map +1 -1
  472. package/dist/util/tokens.js +12 -23
  473. package/dist/util/tokens.js.map +1 -1
  474. package/dist/util/topic.d.ts +1 -4
  475. package/dist/util/topic.d.ts.map +1 -1
  476. package/dist/util/topic.js +12 -11
  477. package/dist/util/topic.js.map +1 -1
  478. package/dist/util/writeFile.d.ts +12 -0
  479. package/dist/util/writeFile.d.ts.map +1 -0
  480. package/dist/util/writeFile.js +69 -0
  481. package/dist/util/writeFile.js.map +1 -0
  482. package/package.json +1 -1
  483. package/dist/constants/config.d.ts.map +0 -1
  484. package/dist/constants/config.js.map +0 -1
  485. package/dist/constants/message.d.ts +0 -10
  486. package/dist/constants/message.d.ts.map +0 -1
  487. package/dist/constants/message.js +0 -25
  488. package/dist/constants/message.js.map +0 -1
  489. package/dist/constants/product.d.ts +0 -4
  490. package/dist/constants/product.d.ts.map +0 -1
  491. package/dist/constants/product.js +0 -7
  492. package/dist/constants/product.js.map +0 -1
  493. package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts +0 -3
  494. package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts.map +0 -1
  495. package/dist/services/agents/defaultBuiltInAgentsConfs.js +0 -125
  496. package/dist/services/agents/defaultBuiltInAgentsConfs.js.map +0 -1
  497. package/dist/services/agents/prompt.d.ts +0 -10
  498. package/dist/services/agents/prompt.d.ts.map +0 -1
  499. package/dist/services/agents/prompt.js +0 -144
  500. package/dist/services/agents/prompt.js.map +0 -1
  501. package/dist/services/agents/systemReminder.d.ts.map +0 -1
  502. package/dist/services/agents/systemReminder.js +0 -68
  503. package/dist/services/agents/systemReminder.js.map +0 -1
  504. package/dist/tools/Agent/Agent.d.ts +0 -67
  505. package/dist/tools/Agent/Agent.d.ts.map +0 -1
  506. package/dist/tools/Agent/Agent.js.map +0 -1
  507. package/dist/tools/Agent/prompt.d.ts +0 -6
  508. package/dist/tools/Agent/prompt.d.ts.map +0 -1
  509. package/dist/tools/Agent/prompt.js +0 -73
  510. package/dist/tools/Agent/prompt.js.map +0 -1
  511. package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts +0 -179
  512. package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts.map +0 -1
  513. package/dist/tools/AskUserQuestion/AskUserQuestion.js +0 -165
  514. package/dist/tools/AskUserQuestion/AskUserQuestion.js.map +0 -1
  515. package/dist/tools/AskUserQuestion/prompt.d.ts +0 -3
  516. package/dist/tools/AskUserQuestion/prompt.d.ts.map +0 -1
  517. package/dist/tools/AskUserQuestion/prompt.js +0 -17
  518. package/dist/tools/AskUserQuestion/prompt.js.map +0 -1
  519. package/dist/tools/Bash/Bash.d.ts.map +0 -1
  520. package/dist/tools/Bash/Bash.js.map +0 -1
  521. package/dist/tools/Bash/prompt.d.ts +0 -5
  522. package/dist/tools/Bash/prompt.d.ts.map +0 -1
  523. package/dist/tools/Bash/prompt.js +0 -130
  524. package/dist/tools/Bash/prompt.js.map +0 -1
  525. package/dist/tools/Bash/utils.d.ts +0 -9
  526. package/dist/tools/Bash/utils.d.ts.map +0 -1
  527. package/dist/tools/Bash/utils.js +0 -41
  528. package/dist/tools/Bash/utils.js.map +0 -1
  529. package/dist/tools/CronCreate/CronCreate.d.ts +0 -68
  530. package/dist/tools/CronCreate/CronCreate.d.ts.map +0 -1
  531. package/dist/tools/CronCreate/CronCreate.js +0 -75
  532. package/dist/tools/CronCreate/CronCreate.js.map +0 -1
  533. package/dist/tools/CronCreate/prompt.d.ts +0 -3
  534. package/dist/tools/CronCreate/prompt.d.ts.map +0 -1
  535. package/dist/tools/CronCreate/prompt.js +0 -41
  536. package/dist/tools/CronCreate/prompt.js.map +0 -1
  537. package/dist/tools/CronDelete/CronDelete.d.ts.map +0 -1
  538. package/dist/tools/CronDelete/CronDelete.js.map +0 -1
  539. package/dist/tools/CronDelete/prompt.d.ts +0 -3
  540. package/dist/tools/CronDelete/prompt.d.ts.map +0 -1
  541. package/dist/tools/CronDelete/prompt.js +0 -6
  542. package/dist/tools/CronDelete/prompt.js.map +0 -1
  543. package/dist/tools/CronList/CronList.d.ts.map +0 -1
  544. package/dist/tools/CronList/CronList.js.map +0 -1
  545. package/dist/tools/CronList/prompt.d.ts +0 -3
  546. package/dist/tools/CronList/prompt.d.ts.map +0 -1
  547. package/dist/tools/CronList/prompt.js +0 -6
  548. package/dist/tools/CronList/prompt.js.map +0 -1
  549. package/dist/tools/Edit/Edit.d.ts.map +0 -1
  550. package/dist/tools/Edit/Edit.js +0 -225
  551. package/dist/tools/Edit/Edit.js.map +0 -1
  552. package/dist/tools/Edit/prompt.d.ts +0 -3
  553. package/dist/tools/Edit/prompt.d.ts.map +0 -1
  554. package/dist/tools/Edit/prompt.js +0 -15
  555. package/dist/tools/Edit/prompt.js.map +0 -1
  556. package/dist/tools/Edit/utils.d.ts.map +0 -1
  557. package/dist/tools/Edit/utils.js +0 -60
  558. package/dist/tools/Edit/utils.js.map +0 -1
  559. package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts +0 -42
  560. package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts.map +0 -1
  561. package/dist/tools/ExitPlanMode/ExitPlanMode.js.map +0 -1
  562. package/dist/tools/ExitPlanMode/prompt.d.ts +0 -3
  563. package/dist/tools/ExitPlanMode/prompt.d.ts.map +0 -1
  564. package/dist/tools/ExitPlanMode/prompt.js +0 -28
  565. package/dist/tools/ExitPlanMode/prompt.js.map +0 -1
  566. package/dist/tools/Glob/Glob.d.ts.map +0 -1
  567. package/dist/tools/Glob/Glob.js.map +0 -1
  568. package/dist/tools/Glob/prompt.d.ts +0 -3
  569. package/dist/tools/Glob/prompt.d.ts.map +0 -1
  570. package/dist/tools/Glob/prompt.js +0 -11
  571. package/dist/tools/Glob/prompt.js.map +0 -1
  572. package/dist/tools/Grep/Grep.d.ts +0 -106
  573. package/dist/tools/Grep/Grep.d.ts.map +0 -1
  574. package/dist/tools/Grep/Grep.js +0 -301
  575. package/dist/tools/Grep/Grep.js.map +0 -1
  576. package/dist/tools/Grep/prompt.d.ts +0 -3
  577. package/dist/tools/Grep/prompt.d.ts.map +0 -1
  578. package/dist/tools/Grep/prompt.js +0 -17
  579. package/dist/tools/Grep/prompt.js.map +0 -1
  580. package/dist/tools/NotebookEdit/NotebookEdit.d.ts.map +0 -1
  581. package/dist/tools/NotebookEdit/NotebookEdit.js +0 -312
  582. package/dist/tools/NotebookEdit/NotebookEdit.js.map +0 -1
  583. package/dist/tools/NotebookEdit/prompt.d.ts +0 -3
  584. package/dist/tools/NotebookEdit/prompt.d.ts.map +0 -1
  585. package/dist/tools/NotebookEdit/prompt.js +0 -6
  586. package/dist/tools/NotebookEdit/prompt.js.map +0 -1
  587. package/dist/tools/Read/Read.d.ts.map +0 -1
  588. package/dist/tools/Read/Read.js +0 -472
  589. package/dist/tools/Read/Read.js.map +0 -1
  590. package/dist/tools/Read/prompt.d.ts +0 -4
  591. package/dist/tools/Read/prompt.d.ts.map +0 -1
  592. package/dist/tools/Read/prompt.js +0 -23
  593. package/dist/tools/Read/prompt.js.map +0 -1
  594. package/dist/tools/Skill/Skill.d.ts.map +0 -1
  595. package/dist/tools/Skill/Skill.js.map +0 -1
  596. package/dist/tools/Skill/prompt.d.ts +0 -3
  597. package/dist/tools/Skill/prompt.d.ts.map +0 -1
  598. package/dist/tools/Skill/prompt.js +0 -27
  599. package/dist/tools/Skill/prompt.js.map +0 -1
  600. package/dist/tools/TaskCreate/TaskCreate.d.ts +0 -54
  601. package/dist/tools/TaskCreate/TaskCreate.d.ts.map +0 -1
  602. package/dist/tools/TaskCreate/TaskCreate.js +0 -51
  603. package/dist/tools/TaskCreate/TaskCreate.js.map +0 -1
  604. package/dist/tools/TaskCreate/prompt.d.ts +0 -3
  605. package/dist/tools/TaskCreate/prompt.d.ts.map +0 -1
  606. package/dist/tools/TaskCreate/prompt.js +0 -45
  607. package/dist/tools/TaskCreate/prompt.js.map +0 -1
  608. package/dist/tools/TaskGet/TaskGet.d.ts +0 -34
  609. package/dist/tools/TaskGet/TaskGet.d.ts.map +0 -1
  610. package/dist/tools/TaskGet/TaskGet.js.map +0 -1
  611. package/dist/tools/TaskGet/prompt.d.ts +0 -3
  612. package/dist/tools/TaskGet/prompt.d.ts.map +0 -1
  613. package/dist/tools/TaskGet/prompt.js +0 -26
  614. package/dist/tools/TaskGet/prompt.js.map +0 -1
  615. package/dist/tools/TaskList/TaskList.d.ts +0 -27
  616. package/dist/tools/TaskList/TaskList.d.ts.map +0 -1
  617. package/dist/tools/TaskList/TaskList.js.map +0 -1
  618. package/dist/tools/TaskList/prompt.d.ts +0 -3
  619. package/dist/tools/TaskList/prompt.d.ts.map +0 -1
  620. package/dist/tools/TaskList/prompt.js +0 -25
  621. package/dist/tools/TaskList/prompt.js.map +0 -1
  622. package/dist/tools/TaskOutput/TaskOutput.d.ts +0 -58
  623. package/dist/tools/TaskOutput/TaskOutput.d.ts.map +0 -1
  624. package/dist/tools/TaskOutput/TaskOutput.js +0 -95
  625. package/dist/tools/TaskOutput/TaskOutput.js.map +0 -1
  626. package/dist/tools/TaskStop/TaskStop.d.ts.map +0 -1
  627. package/dist/tools/TaskStop/TaskStop.js +0 -69
  628. package/dist/tools/TaskStop/TaskStop.js.map +0 -1
  629. package/dist/tools/TaskUpdate/TaskUpdate.d.ts +0 -88
  630. package/dist/tools/TaskUpdate/TaskUpdate.d.ts.map +0 -1
  631. package/dist/tools/TaskUpdate/TaskUpdate.js +0 -115
  632. package/dist/tools/TaskUpdate/TaskUpdate.js.map +0 -1
  633. package/dist/tools/TaskUpdate/prompt.d.ts +0 -3
  634. package/dist/tools/TaskUpdate/prompt.d.ts.map +0 -1
  635. package/dist/tools/TaskUpdate/prompt.js +0 -80
  636. package/dist/tools/TaskUpdate/prompt.js.map +0 -1
  637. package/dist/tools/TodoWrite/TodoWrite.d.ts +0 -92
  638. package/dist/tools/TodoWrite/TodoWrite.d.ts.map +0 -1
  639. package/dist/tools/TodoWrite/TodoWrite.js +0 -101
  640. package/dist/tools/TodoWrite/TodoWrite.js.map +0 -1
  641. package/dist/tools/TodoWrite/prompt.d.ts +0 -3
  642. package/dist/tools/TodoWrite/prompt.d.ts.map +0 -1
  643. package/dist/tools/TodoWrite/prompt.js +0 -187
  644. package/dist/tools/TodoWrite/prompt.js.map +0 -1
  645. package/dist/tools/WebFetch/WebFetch.d.ts.map +0 -1
  646. package/dist/tools/WebFetch/WebFetch.js.map +0 -1
  647. package/dist/tools/WebFetch/prompt.d.ts +0 -4
  648. package/dist/tools/WebFetch/prompt.d.ts.map +0 -1
  649. package/dist/tools/WebFetch/prompt.js +0 -38
  650. package/dist/tools/WebFetch/prompt.js.map +0 -1
  651. package/dist/tools/WebFetch/utils.d.ts +0 -20
  652. package/dist/tools/WebFetch/utils.d.ts.map +0 -1
  653. package/dist/tools/WebFetch/utils.js +0 -223
  654. package/dist/tools/WebFetch/utils.js.map +0 -1
  655. package/dist/tools/Write/Write.d.ts.map +0 -1
  656. package/dist/tools/Write/Write.js +0 -197
  657. package/dist/tools/Write/Write.js.map +0 -1
  658. package/dist/tools/Write/prompt.d.ts +0 -3
  659. package/dist/tools/Write/prompt.d.ts.map +0 -1
  660. package/dist/tools/Write/prompt.js +0 -13
  661. package/dist/tools/Write/prompt.js.map +0 -1
  662. package/dist/util/assembleTools.d.ts +0 -6
  663. package/dist/util/assembleTools.d.ts.map +0 -1
  664. package/dist/util/assembleTools.js +0 -17
  665. package/dist/util/assembleTools.js.map +0 -1
  666. package/dist/util/btw.d.ts +0 -6
  667. package/dist/util/btw.d.ts.map +0 -1
  668. package/dist/util/btw.js.map +0 -1
  669. package/dist/util/directory.d.ts +0 -37
  670. package/dist/util/directory.d.ts.map +0 -1
  671. package/dist/util/directory.js +0 -137
  672. package/dist/util/directory.js.map +0 -1
  673. package/dist/util/exec.d.ts +0 -6
  674. package/dist/util/exec.d.ts.map +0 -1
  675. package/dist/util/exec.js +0 -43
  676. package/dist/util/exec.js.map +0 -1
  677. package/dist/util/filePermission.d.ts +0 -14
  678. package/dist/util/filePermission.d.ts.map +0 -1
  679. package/dist/util/filePermission.js +0 -47
  680. package/dist/util/filePermission.js.map +0 -1
package/dist/util/diff.js CHANGED
@@ -6,121 +6,80 @@ exports.getDiffContent = getDiffContent;
6
6
  const diff_1 = require("diff");
7
7
  const path_1 = require("path");
8
8
  const cwd_1 = require("./cwd");
9
- const CONTEXT_LINES = 3;
10
- // For some reason, & confuses the diff library, so we replace it with a token,
11
- // then substitute it back in after the diff is computed.
12
- const AMPERSAND_TOKEN = '<<:AMPERSAND_TOKEN:>>';
13
- const DOLLAR_TOKEN = '<<:DOLLAR_TOKEN:>>';
14
- function getPatch({ filePath, fileContents, oldStr, newStr, }) {
15
- return (0, diff_1.structuredPatch)(filePath, filePath, fileContents.replaceAll('&', AMPERSAND_TOKEN).replaceAll('$', DOLLAR_TOKEN), fileContents
16
- .replaceAll('&', AMPERSAND_TOKEN)
17
- .replaceAll('$', DOLLAR_TOKEN)
18
- .replace(oldStr.replaceAll('&', AMPERSAND_TOKEN).replaceAll('$', DOLLAR_TOKEN), newStr.replaceAll('&', AMPERSAND_TOKEN).replaceAll('$', DOLLAR_TOKEN)), undefined, undefined, { context: CONTEXT_LINES }).hunks.map(_ => ({
19
- ..._,
20
- lines: _.lines.map(_ => _.replaceAll(AMPERSAND_TOKEN, '&').replaceAll(DOLLAR_TOKEN, '$')),
9
+ const PATCH_SURROUNDING_LINES = 3;
10
+ const SPECIAL_CHAR_MARKERS = {
11
+ '&': '<<:AMPERSAND:>>',
12
+ '$': '<<:DOLLAR:>>',
13
+ };
14
+ function escapeSpecialChars(str) {
15
+ return Object.entries(SPECIAL_CHAR_MARKERS).reduce((s, [char, marker]) => s.replaceAll(char, marker), str);
16
+ }
17
+ function unescapeSpecialChars(str) {
18
+ return Object.entries(SPECIAL_CHAR_MARKERS).reduce((s, [char, marker]) => s.replaceAll(marker, char), str);
19
+ }
20
+ function getPatch({ filePath, fileContents, oldStr, newStr }) {
21
+ const escape = escapeSpecialChars;
22
+ const oldContent = escape(fileContents);
23
+ const newContent = oldContent.replace(escape(oldStr), escape(newStr));
24
+ const { hunks } = (0, diff_1.structuredPatch)(filePath, filePath, oldContent, newContent, '', '', {
25
+ context: PATCH_SURROUNDING_LINES,
26
+ });
27
+ return hunks.map(hunk => ({
28
+ ...hunk,
29
+ lines: hunk.lines.map(unescapeSpecialChars),
21
30
  }));
22
31
  }
23
32
  // 获取更新摘要信息
24
- function getUpdateSummary(filePath, structuredPatch) {
25
- const patches = Array.isArray(structuredPatch) ? structuredPatch : [];
26
- const relativePath = (0, path_1.relative)((0, cwd_1.getCwd)(), filePath);
27
- // 计算添加和删除的行数
28
- const numAdditions = patches.reduce((count, hunk) => count + hunk.lines.filter(_ => _.startsWith('+')).length, 0);
29
- const numRemovals = patches.reduce((count, hunk) => count + hunk.lines.filter(_ => _.startsWith('-')).length, 0);
30
- // 构建基础信息
31
- let result = `Updated ${relativePath}`;
32
- if (numAdditions > 0 || numRemovals > 0) {
33
- result += ' with ';
34
- const changes = [];
35
- if (numAdditions > 0) {
36
- changes.push(`${numAdditions} ${numAdditions > 1 ? 'additions' : 'addition'}`);
37
- }
38
- if (numRemovals > 0) {
39
- changes.push(`${numRemovals} ${numRemovals > 1 ? 'removals' : 'removal'}`);
40
- }
41
- result += changes.join(' and ');
33
+ function getUpdateSummary(filePath, patches) {
34
+ const hunks = patches ?? [];
35
+ const relativePath = (0, path_1.relative)((0, cwd_1.readInitialCwd)(), filePath);
36
+ const countLines = (prefix) => hunks.reduce((count, hunk) => count + hunk.lines.filter(l => l.startsWith(prefix)).length, 0);
37
+ const numAdditions = countLines('+');
38
+ const numRemovals = countLines('-');
39
+ if (numAdditions === 0 && numRemovals === 0) {
40
+ return `Updated ${relativePath}`;
42
41
  }
43
- return result;
42
+ const pluralize = (n, word) => `${n} ${n > 1 ? word + 's' : word}`;
43
+ const changes = [
44
+ numAdditions > 0 && pluralize(numAdditions, 'addition'),
45
+ numRemovals > 0 && pluralize(numRemovals, 'removal'),
46
+ ].filter(Boolean);
47
+ return `Updated ${relativePath} with ${changes.join(' and ')}`;
44
48
  }
45
49
  // 获取代码diff片段
46
- function getDiffContent(structuredPatch) {
47
- const patches = Array.isArray(structuredPatch) ? structuredPatch : [];
48
- if (patches.length === 0) {
50
+ function getDiffContent(patches) {
51
+ const hunks = patches ?? [];
52
+ if (hunks.length === 0)
49
53
  return '';
50
- }
51
- let result = '';
52
- patches.forEach((hunk, index) => {
53
- if (index > 0) {
54
- result += '\n...\n';
55
- }
56
- // 格式化每个hunk的行
57
- const formattedLines = formatDiffLines(hunk.lines, hunk.oldStart);
58
- result += formattedLines.join('\n') + '\n';
59
- });
60
- return result;
54
+ return hunks
55
+ .map(hunk => formatDiffLines(hunk.lines, hunk.oldStart).join('\n') + '\n')
56
+ .join('\n...\n');
61
57
  }
62
58
  // 格式化diff行,使用5位行号 + 标识符 + 代码的格式
63
- function formatDiffLines(lines, startingLineNumber) {
64
- const numberedLines = numberDiffLines(lines.map(code => {
65
- if (code.startsWith('+')) {
66
- return {
67
- code: code.slice(1), // 移除开头的+/-符号
68
- type: 'add',
69
- };
70
- }
71
- if (code.startsWith('-')) {
72
- return {
73
- code: code.slice(1), // 移除开头的+/-符号
74
- type: 'remove',
75
- };
76
- }
77
- return { code, type: 'nochange' };
78
- }), startingLineNumber);
79
- return numberedLines.map(({ type, code, i }) => {
80
- const lineNumber = i.toString().padStart(5); // 5位行号
81
- const changeChar = type === 'add' ? '+' : type === 'remove' ? '-' : ' ';
82
- return `${lineNumber}${changeChar}${code}`;
83
- });
84
- }
85
- // 为diff行分配行号
86
- function numberDiffLines(diff, startLine) {
87
- let i = startLine;
59
+ function formatDiffLines(lines, startLine) {
60
+ const markerMap = { '+': '+', '-': '-' };
88
61
  const result = [];
89
- const queue = [...diff];
90
- while (queue.length > 0) {
91
- const { code, type } = queue.shift();
92
- const line = {
93
- code: code,
94
- type,
95
- i,
96
- };
97
- // 根据变更类型更新计数器
98
- switch (type) {
99
- case 'nochange':
100
- i++;
101
- result.push(line);
102
- break;
103
- case 'add':
104
- i++;
105
- result.push(line);
106
- break;
107
- case 'remove': {
108
- result.push(line);
109
- let numRemoved = 0;
110
- while (queue[0]?.type === 'remove') {
111
- const { code, type } = queue.shift();
112
- const line = {
113
- code: code,
114
- type,
115
- i: i + numRemoved + 1,
116
- };
117
- result.push(line);
118
- numRemoved++;
119
- }
120
- i -= numRemoved;
121
- break;
122
- }
62
+ let lineNum = startLine;
63
+ for (let idx = 0; idx < lines.length;) {
64
+ const prefix = lines[idx][0];
65
+ const code = prefix === '+' || prefix === '-' ? lines[idx].slice(1) : lines[idx];
66
+ const marker = markerMap[prefix] ?? ' ';
67
+ if (prefix !== '-') {
68
+ result.push(`${lineNum.toString().padStart(5)}${marker}${code}`);
69
+ lineNum++;
70
+ idx++;
71
+ continue;
72
+ }
73
+ // 连续 remove 行分组处理,显示旧文件行号
74
+ result.push(`${lineNum.toString().padStart(5)}-${code}`);
75
+ idx++;
76
+ let extraRemoves = 0;
77
+ while (idx < lines.length && lines[idx][0] === '-') {
78
+ result.push(`${(lineNum + extraRemoves + 1).toString().padStart(5)}-${lines[idx].slice(1)}`);
79
+ extraRemoves++;
80
+ idx++;
123
81
  }
82
+ lineNum -= extraRemoves;
124
83
  }
125
84
  return result;
126
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/util/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/util/diff.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  import { type Hunk } from 'diff';
2
- /**
3
- * Applies an edit to a file and returns the patch and updated file.
4
- * Does not write the file to disk.
5
- */
2
+ export declare function normalizeLF(str: string): string;
6
3
  export declare function applyEdit(file_path: string, old_string: string, new_string: string, replace_all?: boolean): {
7
4
  patch: Hunk[];
8
5
  updatedFile: string;
9
6
  };
10
- //# sourceMappingURL=utils.d.ts.map
7
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/util/edit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAA;AAGhC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,OAAe,GAC3B;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAuCxC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeLF = normalizeLF;
4
+ exports.applyEdit = applyEdit;
5
+ const fs_1 = require("fs");
6
+ const file_1 = require("./file");
7
+ const diff_1 = require("./diff");
8
+ function normalizeLF(str) {
9
+ return str.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
10
+ }
11
+ function applyEdit(file_path, old_string, new_string, replace_all = false) {
12
+ const fullFilePath = (0, file_1.canonicalizeFilePath)(file_path);
13
+ let originalFile;
14
+ let updatedFile;
15
+ if (old_string === '') {
16
+ originalFile = '';
17
+ updatedFile = normalizeLF(new_string);
18
+ }
19
+ else {
20
+ const enc = (0, file_1.inferFileEncoding)(fullFilePath);
21
+ originalFile = normalizeLF((0, fs_1.readFileSync)(fullFilePath, enc));
22
+ const oldStr = normalizeLF(old_string);
23
+ const newStr = normalizeLF(new_string);
24
+ const doReplace = replace_all
25
+ ? (s, from, to) => s.replaceAll(from, to)
26
+ : (s, from, to) => s.replace(from, to);
27
+ // 删除操作时,尝试连带删除尾部换行以避免留空行
28
+ const searchStr = newStr === '' && !oldStr.endsWith('\n') && originalFile.includes(oldStr + '\n')
29
+ ? oldStr + '\n'
30
+ : oldStr;
31
+ updatedFile = doReplace(originalFile, searchStr, newStr);
32
+ if (updatedFile === originalFile) {
33
+ throw new Error('No changes detected, edit failed.');
34
+ }
35
+ }
36
+ const patch = (0, diff_1.getPatch)({
37
+ filePath: file_path,
38
+ fileContents: originalFile,
39
+ oldStr: originalFile,
40
+ newStr: updatedFile,
41
+ });
42
+ return { patch, updatedFile };
43
+ }
44
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/util/edit.ts"],"names":[],"mappings":";;AAKA,kCAEC;AAED,8BA4CC;AArDD,2BAAiC;AACjC,iCAAgE;AAEhE,iCAAiC;AAEjC,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACxD,CAAC;AAED,SAAgB,SAAS,CACvB,SAAiB,EACjB,UAAkB,EAClB,UAAkB,EAClB,cAAuB,KAAK;IAE5B,MAAM,YAAY,GAAG,IAAA,2BAAoB,EAAC,SAAS,CAAC,CAAA;IAEpD,IAAI,YAAoB,CAAA;IACxB,IAAI,WAAmB,CAAA;IAEvB,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,YAAY,GAAG,EAAE,CAAA;QACjB,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,IAAA,wBAAiB,EAAC,YAAY,CAAC,CAAA;QAC3C,YAAY,GAAG,WAAW,CAAC,IAAA,iBAAY,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAA;QAE3D,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,WAAW;YAC3B,CAAC,CAAC,CAAC,CAAS,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACjE,CAAC,CAAC,CAAC,CAAS,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAEhE,yBAAyB;QACzB,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;YAC/F,CAAC,CAAC,MAAM,GAAG,IAAI;YACf,CAAC,CAAC,MAAM,CAAA;QAEV,WAAW,GAAG,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAExD,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC;QACrB,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAA;IAEF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AAC/B,CAAC"}
@@ -1,5 +1,2 @@
1
- export declare const env: {
2
- platform: string;
3
- };
4
- export declare const getEnv: (() => Promise<string>) & import("lodash").MemoizedFunction;
1
+ export declare function getEnv(): Promise<string>;
5
2
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,GAAG;;CAEf,CAAA;AAED,eAAO,MAAM,MAAM,SAAqB,OAAO,CAAC,MAAM,CAAC,qCAWrD,CAAA"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":"AAQA,wBAAsB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAsB9C"}
package/dist/util/env.js CHANGED
@@ -3,24 +3,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getEnv = exports.env = void 0;
7
- const lodash_es_1 = require("lodash-es");
6
+ exports.getEnv = getEnv;
8
7
  const os_1 = __importDefault(require("os"));
9
8
  const git_1 = require("./git");
10
9
  const cwd_1 = require("./cwd");
10
+ const shell_1 = require("./shell");
11
11
  const platform_1 = require("./platform");
12
- exports.env = {
13
- platform: platform_1.IS_WIN ? 'windows' : platform_1.IS_MAC ? 'macos' : 'linux',
14
- };
15
- exports.getEnv = (0, lodash_es_1.memoize)(async () => {
16
- const cwd = (0, cwd_1.getOriginalCwd)();
12
+ let cached;
13
+ async function getEnv() {
14
+ if (cached)
15
+ return cached;
16
+ const cwd = (0, cwd_1.readInitialCwd)();
17
17
  const isGitRepo = await (0, git_1.getIsGit)();
18
- const osVersion = os_1.default.release();
19
- const today = new Date().toISOString().split('T')[0];
20
- return `Working directory: ${cwd}
21
- Is directory a git repo: ${isGitRepo ? 'Yes' : 'No'}
22
- Platform: ${process.platform}
23
- OS Version: ${os_1.default.type()} ${osVersion}
24
- Today's date: ${today}`;
25
- });
18
+ const lines = [
19
+ `Working dir: ${cwd}`,
20
+ `Is a Git repo: ${isGitRepo ? 'Yes' : 'No'}`,
21
+ `Platform: ${process.platform}`,
22
+ `OS: ${os_1.default.type()} ${os_1.default.release()}`,
23
+ ];
24
+ if (platform_1.IS_WIN) {
25
+ const shell = (0, shell_1.getShellRuntimeInfo)();
26
+ lines.push(`Shell type: ${shell?.type ?? 'unknown'}`);
27
+ if (shell?.bin)
28
+ lines.push(`Shell binary: ${shell.bin}`);
29
+ }
30
+ cached = lines.join('\n');
31
+ return cached;
32
+ }
26
33
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,4CAAmB;AACnB,+BAAgC;AAChC,+BAAsC;AACtC,yCAA2C;AAE9B,QAAA,GAAG,GAAG;IACjB,QAAQ,EAAE,iBAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;CAC1D,CAAA;AAEY,QAAA,MAAM,GAAG,IAAA,mBAAO,EAAC,KAAK,IAAqB,EAAE;IACxD,MAAM,GAAG,GAAG,IAAA,oBAAc,GAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAA,cAAQ,GAAE,CAAA;IAClC,MAAM,SAAS,GAAG,YAAE,CAAC,OAAO,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEpD,OAAO,sBAAsB,GAAG;2BACP,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACvC,OAAO,CAAC,QAAQ;cACd,YAAE,CAAC,IAAI,EAAE,IAAI,SAAS;gBACpB,KAAK,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":";;;;;AAQA,wBAsBC;AA9BD,4CAAmB;AACnB,+BAAgC;AAChC,+BAAsC;AACtC,mCAA6C;AAC7C,yCAAmC;AAEnC,IAAI,MAA0B,CAAA;AAEvB,KAAK,UAAU,MAAM;IAC1B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,GAAG,GAAG,IAAA,oBAAc,GAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAA,cAAQ,GAAE,CAAA;IAElC,MAAM,KAAK,GAAG;QACZ,gBAAgB,GAAG,EAAE;QACrB,kBAAkB,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QAC5C,aAAa,OAAO,CAAC,QAAQ,EAAE;QAC/B,OAAO,YAAE,CAAC,IAAI,EAAE,IAAI,YAAE,CAAC,OAAO,EAAE,EAAE;KACnC,CAAA;IAED,IAAI,iBAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,IAAA,2BAAmB,GAAE,CAAA;QACnC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;QACrD,IAAI,KAAK,EAAE,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,18 @@
1
+ export declare const FETCH_URL_MAX_MARKDOWN_LEN = 50000;
2
+ export type FetchUrlResult = {
3
+ content: string;
4
+ bytes: number;
5
+ code: number;
6
+ codeText: string;
7
+ contentType: string;
8
+ };
9
+ type RedirectRecord = {
10
+ type: 'redirect';
11
+ originalUrl: string;
12
+ redirectUrl: string;
13
+ statusCode: number;
14
+ };
15
+ export declare function fetchUrlAsMarkdown(url: string, abortController: AbortController): Promise<FetchUrlResult | RedirectRecord>;
16
+ export declare function injectPromptIntoMarkdown(prompt: string, markdownContent: string, signal: AbortSignal): Promise<string>;
17
+ export {};
18
+ //# sourceMappingURL=fetchUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchUrl.d.ts","sourceRoot":"","sources":["../../src/util/fetchUrl.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAQD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC,CAsE1C;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FETCH_URL_MAX_MARKDOWN_LEN = void 0;
4
+ exports.fetchUrlAsMarkdown = fetchUrlAsMarkdown;
5
+ exports.injectPromptIntoMarkdown = injectPromptIntoMarkdown;
6
+ const log_1 = require("./log");
7
+ const fetchUrl_1 = require("../prompt/tools/fetchUrl");
8
+ const queryLLM_1 = require("../services/api/queryLLM");
9
+ const MAX_CONTENT_BYTES = 5 * 1024 * 1024; // 5MB
10
+ const TIMEOUT_MS = 30_000;
11
+ exports.FETCH_URL_MAX_MARKDOWN_LEN = 50_000;
12
+ function createTurndown() {
13
+ const mod = require('turndown');
14
+ const Ctor = mod.default ?? mod;
15
+ return new Ctor();
16
+ }
17
+ async function fetchUrlAsMarkdown(url, abortController) {
18
+ try {
19
+ const parsed = new URL(url);
20
+ if (url.length > 1000 || parsed.username || parsed.password || !parsed.hostname.includes('.')) {
21
+ throw new Error('The provided URL is not valid.');
22
+ }
23
+ }
24
+ catch (e) {
25
+ throw e instanceof Error && e.message === 'The provided URL is not valid.' ? e : new Error('The provided URL is not valid.');
26
+ }
27
+ // http -> https
28
+ try {
29
+ const parsed = new URL(url);
30
+ if (parsed.protocol === 'http:') {
31
+ parsed.protocol = 'https:';
32
+ url = parsed.toString();
33
+ }
34
+ }
35
+ catch { }
36
+ const originalOrigin = new URL(url).origin;
37
+ const timer = setTimeout(() => abortController.abort(), TIMEOUT_MS);
38
+ let response;
39
+ try {
40
+ response = await globalThis.fetch(url, {
41
+ signal: abortController.signal,
42
+ redirect: 'follow',
43
+ headers: {
44
+ Accept: 'text/markdown, text/html, */*',
45
+ 'User-Agent': 'sema-code-core/1.0 fetch_url',
46
+ },
47
+ });
48
+ }
49
+ finally {
50
+ clearTimeout(timer);
51
+ }
52
+ // 检测跨域重定向
53
+ if (response.redirected && response.url) {
54
+ const finalOrigin = new URL(response.url).origin;
55
+ if (finalOrigin !== originalOrigin) {
56
+ return {
57
+ type: 'redirect',
58
+ originalUrl: url,
59
+ redirectUrl: response.url,
60
+ statusCode: 301,
61
+ };
62
+ }
63
+ }
64
+ const rawBuffer = Buffer.from(await response.arrayBuffer());
65
+ if (rawBuffer.length > MAX_CONTENT_BYTES) {
66
+ throw new Error(`Response body too large: ${rawBuffer.length} bytes (limit ${MAX_CONTENT_BYTES})`);
67
+ }
68
+ const contentType = response.headers.get('content-type') ?? '';
69
+ let content = rawBuffer.toString('utf-8');
70
+ if (contentType.includes('text/html')) {
71
+ try {
72
+ content = createTurndown().turndown(content);
73
+ }
74
+ catch { }
75
+ }
76
+ return {
77
+ bytes: rawBuffer.length,
78
+ code: response.status,
79
+ codeText: response.statusText,
80
+ content,
81
+ contentType,
82
+ };
83
+ }
84
+ async function injectPromptIntoMarkdown(prompt, markdownContent, signal) {
85
+ const truncated = markdownContent.length > exports.FETCH_URL_MAX_MARKDOWN_LEN
86
+ ? markdownContent.slice(0, exports.FETCH_URL_MAX_MARKDOWN_LEN) + '\n\n[Content trimmed — exceeded length limit.]'
87
+ : markdownContent;
88
+ const userPrompt = (0, fetchUrl_1.buildSecondaryModelPrompt)(truncated, prompt);
89
+ try {
90
+ const { message } = await (0, queryLLM_1.queryQuick)({ userPrompt, signal });
91
+ const firstBlock = message.content[0];
92
+ return firstBlock && 'text' in firstBlock ? firstBlock.text : 'The model returned an empty response.';
93
+ }
94
+ catch (e) {
95
+ if (signal.aborted)
96
+ throw new Error('AbortError');
97
+ (0, log_1.logError)(e);
98
+ return 'Content processing by the model failed.';
99
+ }
100
+ }
101
+ //# sourceMappingURL=fetchUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchUrl.js","sourceRoot":"","sources":["../../src/util/fetchUrl.ts"],"names":[],"mappings":"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"}
@@ -1,77 +1,64 @@
1
- export type File = {
2
- filename: string;
3
- content: string;
4
- };
5
- export type LineEndingType = 'CRLF' | 'LF';
6
- export declare function glob(filePattern: string, cwd: string, { limit, offset }: {
1
+ export type LineEndingKind = 'CRLF' | 'LF';
2
+ export declare function globFiles(filePattern: string, cwd: string, { limit, offset }: {
7
3
  limit: number;
8
4
  offset: number;
9
5
  }, abortSignal: AbortSignal): Promise<{
10
6
  files: string[];
11
7
  truncated: boolean;
12
8
  }>;
13
- export declare function readFileSafe(filepath: string): string | null;
9
+ /**
10
+ * 判断目标路径是否在工作目录内部
11
+ */
14
12
  export declare function isInDirectory(relativePath: string, relativeCwd: string): boolean;
13
+ /**
14
+ * 读取文本文件内容,自动标准化换行符为 LF
15
+ */
15
16
  export declare function readTextContent(filePath: string, offset?: number, maxLines?: number): {
16
17
  content: string;
17
18
  lineCount: number;
18
19
  totalLines: number;
19
20
  };
20
- export declare function writeTextContent(filePath: string, content: string, encoding: BufferEncoding, endings: LineEndingType): void;
21
- export declare function detectRepoLineEndings(filePath: string): Promise<LineEndingType | undefined>;
22
- export declare function detectRepoLineEndingsDirect(cwd: string): Promise<LineEndingType>;
23
- export declare function detectFileEncoding(filePath: string): BufferEncoding;
24
- export declare function detectFileEncodingDirect(filePath: string): BufferEncoding;
25
- export declare function detectLineEndings(filePath: string): LineEndingType;
26
- export declare function detectLineEndingsDirect(filePath: string, encoding?: BufferEncoding): LineEndingType;
27
21
  /**
28
- * 为命令行执行包裹路径引号(仅 Windows 且路径包含空格时)
22
+ * 写入文本文件,按指定换行符格式输出
29
23
  */
30
- export declare function quotePathForShell(filePath: string): string;
31
- export declare function normalizeFilePath(filePath: string): string;
24
+ export declare function writeTextFile(filePath: string, content: string, encoding: BufferEncoding, endings: LineEndingKind): void;
25
+ export declare function inferFileEncoding(filePath: string): BufferEncoding;
26
+ export declare function inferLineEndings(filePath: string): LineEndingKind;
27
+ export declare function canonicalizeFilePath(filePath: string): string;
32
28
  /**
33
- * 标准化 Skill 路径,处理 Windows 环境下的 Unix 风格路径,但不强制转换为绝对路径
34
- * 用于 skill 系统中需要保持路径结构的场景
29
+ * 在同目录下查找同名但不同扩展名的文件
35
30
  */
36
- export declare function normalizeSkillPath(filePath: string): string;
37
- export declare function getAbsolutePath(path: string | undefined): string | undefined;
38
- export declare function getAbsoluteAndRelativePaths(path: string | undefined): {
39
- absolutePath: string | undefined;
40
- relativePath: string | undefined;
41
- };
31
+ export declare function findFileWithDifferentExt(filePath: string): string | undefined;
42
32
  /**
43
- * Find files with the same name but different extensions in the same directory
44
- * @param filePath The path to the file that doesn't exist
45
- * @returns The found file with a different extension, or undefined if none found
33
+ * 为文本内容添加行号(cat -n 风格)
46
34
  */
47
- export declare function findSimilarFile(filePath: string): string | undefined;
48
- /**
49
- * Adds cat -n style line numbers to the content
50
- */
51
- export declare function addLineNumbers({ content, startLine, }: {
35
+ export declare function formatWithLineNumbers({ content, startLine, }: {
52
36
  content: string;
53
37
  startLine: number;
54
38
  }): string;
55
- /**
56
- * Checks if a directory is empty by efficiently reading just the first entry
57
- * @param dirPath The path to the directory to check
58
- * @returns true if the directory is empty, false otherwise
59
- */
60
- export declare function isDirEmpty(dirPath: string): boolean;
61
39
  /**
62
40
  * 在 JSON.stringify(data, null, 2) 生成的文本中,查找包含 match 的对象块行范围。
63
41
  *
64
42
  * 算法:找到 match 所在行,往回找最近的含 '{' 的行作为对象起始,
65
43
  * 记录该行缩进,然后往下找同缩进的 '}' 行作为对象结束。
66
44
  *
67
- * @param json JSON 文本(需 2-space 缩进格式)
68
- * @param match 匹配文本,如 `"id": "abc123"` 或 `"sequential-thinking"`
69
- * @returns [startLine, endLine](1-based),未找到返回 undefined
70
45
  */
71
46
  export declare function findJsonObjectLineRange(json: string, match: string): [number, number] | undefined;
72
47
  /**
73
- * 在 JSON 文件中查找指定 key 对应对象的行范围,返回 "filePath:startLine-endLine"
74
- * 找不到则返回纯 filePath
48
+ * 获取相对于初始工作目录的显示路径,超出范围则返回绝对路径
49
+ */
50
+ export declare function getDisplayPath(filePath: string): string;
51
+ /**
52
+ * 获取文件路径(从工具输入中)
75
53
  */
76
- export declare function calcJsonKeyLineRange(filePath: string, key: string): string;
54
+ export declare function getFilePath(input: {
55
+ [key: string]: unknown;
56
+ }): string | undefined;
57
+ interface ExecResult {
58
+ stdout: string;
59
+ stderr: string;
60
+ code: number;
61
+ }
62
+ export declare function execFileSafely(file: string, args: string[], abortSignal?: AbortSignal, timeout?: number, preserveOutputOnError?: boolean, cwd?: string): Promise<ExecResult>;
63
+ export {};
77
64
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,CAAA;AAE1C,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBlD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAqCT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAI,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAmB5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,GACtB,IAAI,CAON;AAoCD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAuBlE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAajE;AAID,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB7D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsB7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,CAOT;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CA6BjG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAEjF;AAQD,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAGD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,SAAuB,EAC9B,qBAAqB,UAAO,EAC5B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,CAsBrB"}