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,98 @@
1
+ import { z } from 'zod';
2
+ import { NotebookCellType } from '../../types/notebook';
3
+ export declare const NotebookEditTool: {
4
+ name: string;
5
+ description(): string;
6
+ inputSchema: z.ZodObject<{
7
+ notebook_path: z.ZodString;
8
+ cell_number: z.ZodNumber;
9
+ new_source: z.ZodString;
10
+ cell_type: z.ZodOptional<z.ZodEnum<["code", "markdown"]>>;
11
+ edit_mode: z.ZodOptional<z.ZodEnum<["replace", "insert", "delete"]>>;
12
+ }, "strict", z.ZodTypeAny, {
13
+ notebook_path: string;
14
+ cell_number: number;
15
+ new_source: string;
16
+ cell_type?: "code" | "markdown" | undefined;
17
+ edit_mode?: "replace" | "delete" | "insert" | undefined;
18
+ }, {
19
+ notebook_path: string;
20
+ cell_number: number;
21
+ new_source: string;
22
+ cell_type?: "code" | "markdown" | undefined;
23
+ edit_mode?: "replace" | "delete" | "insert" | undefined;
24
+ }>;
25
+ isReadOnly(): false;
26
+ genResultForAssistant({ cell_number, edit_mode, new_source, error }: {
27
+ notebook_path: string;
28
+ cell_number: number;
29
+ new_source: string;
30
+ cell_type: NotebookCellType;
31
+ language: string;
32
+ edit_mode: string;
33
+ error?: string;
34
+ }): string;
35
+ genToolPermission(input: {
36
+ notebook_path: string;
37
+ cell_number: number;
38
+ new_source: string;
39
+ cell_type?: "code" | "markdown" | undefined;
40
+ edit_mode?: "replace" | "delete" | "insert" | undefined;
41
+ }): {
42
+ title: string;
43
+ content: string;
44
+ };
45
+ genToolResultMessage({ notebook_path, cell_number, new_source, error }: {
46
+ notebook_path: string;
47
+ cell_number: number;
48
+ new_source: string;
49
+ cell_type: NotebookCellType;
50
+ language: string;
51
+ edit_mode: string;
52
+ error?: string;
53
+ }): {
54
+ title: string;
55
+ summary: string;
56
+ content: string;
57
+ };
58
+ getDisplayTitle(input: {
59
+ notebook_path: string;
60
+ cell_number: number;
61
+ new_source: string;
62
+ cell_type?: "code" | "markdown" | undefined;
63
+ edit_mode?: "replace" | "delete" | "insert" | undefined;
64
+ } | undefined): string;
65
+ validateInput(input: {
66
+ notebook_path: string;
67
+ cell_number: number;
68
+ new_source: string;
69
+ cell_type?: "code" | "markdown" | undefined;
70
+ edit_mode?: "replace" | "delete" | "insert" | undefined;
71
+ }): Promise<{
72
+ result: false;
73
+ message: string;
74
+ } | {
75
+ result: true;
76
+ message?: undefined;
77
+ }>;
78
+ call(input: {
79
+ notebook_path: string;
80
+ cell_number: number;
81
+ new_source: string;
82
+ cell_type?: "code" | "markdown" | undefined;
83
+ edit_mode?: "replace" | "delete" | "insert" | undefined;
84
+ }): AsyncGenerator<{
85
+ type: "result";
86
+ data: {
87
+ notebook_path: string;
88
+ cell_number: number;
89
+ new_source: string;
90
+ cell_type: "code" | "markdown";
91
+ language: string;
92
+ edit_mode: string;
93
+ error: string;
94
+ };
95
+ resultForAssistant: string;
96
+ }, void, unknown>;
97
+ };
98
+ //# sourceMappingURL=NotebookEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotebookEdit.d.ts","sourceRoot":"","sources":["../../../src/tools/NotebookEdit/NotebookEdit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAmB,MAAM,sBAAsB,CAAA;AAiDxE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;uBA0NV,MAAM;qBACR,MAAM;oBACP,MAAM;mBACP,gBAAgB;kBACjB,MAAM;mBACL,MAAM;gBACT,MAAM;;;;;;;;;;;;;uBANC,MAAM;qBACR,MAAM;oBACP,MAAM;mBACP,gBAAgB;kBACjB,MAAM;mBACL,MAAM;gBACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEjB,CAAA"}
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotebookEditTool = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const zod_1 = require("zod");
7
+ const file_1 = require("../../util/file");
8
+ const format_1 = require("../../util/format");
9
+ const cwd_1 = require("../../util/cwd");
10
+ const prompt_1 = require("./prompt");
11
+ // 辅助函数:生成显示标题
12
+ function getTitle(input) {
13
+ if (input?.notebook_path) {
14
+ const normalizedPath = (0, file_1.normalizeFilePath)(input.notebook_path);
15
+ const relativePath = (0, path_1.relative)((0, cwd_1.getCwd)(), normalizedPath);
16
+ // 如果有 cell_number,返回 "analysis.ipynb cell:4" 格式
17
+ // 如果没有 cell_number,只返回 "analysis.ipynb"
18
+ if (input.cell_number !== undefined) {
19
+ return `${relativePath} cell:${input.cell_number}`;
20
+ }
21
+ return relativePath;
22
+ }
23
+ return prompt_1.TOOL_NAME_FOR_PROMPT;
24
+ }
25
+ const inputSchema = zod_1.z.strictObject({
26
+ notebook_path: zod_1.z
27
+ .string()
28
+ .describe('The absolute path to the Jupyter notebook file to edit (must be absolute, not relative)'),
29
+ cell_number: zod_1.z.number().describe('The index of the cell to edit (0-based)'),
30
+ new_source: zod_1.z.string().describe('The new source for the cell'),
31
+ cell_type: zod_1.z
32
+ .enum(['code', 'markdown'])
33
+ .optional()
34
+ .describe('The type of the cell (code or markdown). If not specified, it defaults to the current cell type. If using edit_mode=insert, this is required.'),
35
+ edit_mode: zod_1.z
36
+ .enum(['replace', 'insert', 'delete'])
37
+ .optional()
38
+ .describe('The type of edit to make (replace, insert, delete). Defaults to replace.'),
39
+ });
40
+ exports.NotebookEditTool = {
41
+ name: prompt_1.TOOL_NAME_FOR_PROMPT,
42
+ description() {
43
+ return prompt_1.DESCRIPTION;
44
+ },
45
+ inputSchema,
46
+ isReadOnly() {
47
+ return false;
48
+ },
49
+ genResultForAssistant({ cell_number, edit_mode, new_source, error }) {
50
+ if (error) {
51
+ return error;
52
+ }
53
+ switch (edit_mode) {
54
+ case 'replace':
55
+ return `Updated cell ${cell_number} with ${new_source}`;
56
+ case 'insert':
57
+ return `Inserted cell ${cell_number} with ${new_source}`;
58
+ case 'delete':
59
+ return `Deleted cell ${cell_number}`;
60
+ default:
61
+ return `Modified cell ${cell_number}`;
62
+ }
63
+ },
64
+ genToolPermission(input) {
65
+ const title = getTitle(input);
66
+ const content = input.new_source;
67
+ return { title, content };
68
+ },
69
+ genToolResultMessage({ notebook_path, cell_number, new_source, error }) {
70
+ const title = getTitle({ notebook_path });
71
+ if (error) {
72
+ const summary = `Failed to edit cell ${cell_number}`;
73
+ const content = error;
74
+ return { title, summary, content };
75
+ }
76
+ const summary = `Updated cell ${cell_number}`;
77
+ const content = new_source;
78
+ return { title, summary, content };
79
+ },
80
+ getDisplayTitle(input) {
81
+ return getTitle(input);
82
+ },
83
+ async validateInput(input) {
84
+ const { notebook_path, cell_number, cell_type, edit_mode = 'replace', } = input;
85
+ const fullPath = (0, file_1.normalizeFilePath)(notebook_path);
86
+ if (!(0, fs_1.existsSync)(fullPath)) {
87
+ return {
88
+ result: false,
89
+ message: 'Notebook file does not exist.',
90
+ };
91
+ }
92
+ if ((0, path_1.extname)(fullPath) !== '.ipynb') {
93
+ return {
94
+ result: false,
95
+ message: 'File must be a Jupyter notebook (.ipynb file). For editing other file types, use the FileEdit tool.',
96
+ };
97
+ }
98
+ if (cell_number < 0) {
99
+ return {
100
+ result: false,
101
+ message: 'Cell number must be non-negative.',
102
+ };
103
+ }
104
+ if (edit_mode !== 'replace' &&
105
+ edit_mode !== 'insert' &&
106
+ edit_mode !== 'delete') {
107
+ return {
108
+ result: false,
109
+ message: 'Edit mode must be replace, insert, or delete.',
110
+ };
111
+ }
112
+ if (edit_mode === 'insert' && !cell_type) {
113
+ return {
114
+ result: false,
115
+ message: 'Cell type is required when using edit_mode=insert.',
116
+ };
117
+ }
118
+ const enc = (0, file_1.detectFileEncoding)(fullPath);
119
+ const content = (0, fs_1.readFileSync)(fullPath, enc);
120
+ const notebook = (0, format_1.safeParseJSON)(content);
121
+ if (!notebook) {
122
+ return {
123
+ result: false,
124
+ message: 'Notebook is not valid JSON.',
125
+ };
126
+ }
127
+ if (edit_mode === 'insert' && cell_number > notebook.cells.length) {
128
+ return {
129
+ result: false,
130
+ message: `Cell number is out of bounds. For insert mode, the maximum value is ${notebook.cells.length} (to append at the end).`,
131
+ };
132
+ }
133
+ else if ((edit_mode === 'replace' || edit_mode === 'delete') &&
134
+ (cell_number >= notebook.cells.length || !notebook.cells[cell_number])) {
135
+ return {
136
+ result: false,
137
+ message: `Cell number is out of bounds. Notebook has ${notebook.cells.length} cells.`,
138
+ };
139
+ }
140
+ return { result: true };
141
+ },
142
+ async *call(input) {
143
+ const { notebook_path, cell_number, new_source, cell_type, edit_mode, } = input;
144
+ const fullPath = (0, file_1.normalizeFilePath)(notebook_path);
145
+ try {
146
+ const enc = (0, file_1.detectFileEncoding)(fullPath);
147
+ const content = (0, fs_1.readFileSync)(fullPath, enc);
148
+ const notebook = JSON.parse(content);
149
+ const language = notebook.metadata.language_info?.name ?? 'python';
150
+ if (edit_mode === 'delete') {
151
+ // Delete the specified cell
152
+ notebook.cells.splice(cell_number, 1);
153
+ }
154
+ else if (edit_mode === 'insert') {
155
+ // Insert the new cell
156
+ const new_cell = {
157
+ cell_type: cell_type, // validateInput ensures cell_type is not undefined
158
+ source: new_source,
159
+ metadata: {},
160
+ };
161
+ notebook.cells.splice(cell_number, 0, cell_type == 'markdown' ? new_cell : { ...new_cell, outputs: [] });
162
+ }
163
+ else {
164
+ // Find the specified cell
165
+ const targetCell = notebook.cells[cell_number]; // validateInput ensures cell_number is in bounds
166
+ targetCell.source = new_source;
167
+ // Reset execution count and clear outputs since cell was modified
168
+ targetCell.execution_count = undefined;
169
+ targetCell.outputs = [];
170
+ if (cell_type && cell_type !== targetCell.cell_type) {
171
+ targetCell.cell_type = cell_type;
172
+ }
173
+ }
174
+ // Write back to file
175
+ const endings = (0, file_1.detectLineEndings)(fullPath);
176
+ const updatedNotebook = JSON.stringify(notebook, null, 1);
177
+ (0, file_1.writeTextContent)(fullPath, updatedNotebook, enc, endings);
178
+ const data = {
179
+ notebook_path,
180
+ cell_number,
181
+ new_source,
182
+ cell_type: cell_type ?? 'code',
183
+ language,
184
+ edit_mode: edit_mode ?? 'replace',
185
+ error: '',
186
+ };
187
+ yield {
188
+ type: 'result',
189
+ data,
190
+ resultForAssistant: this.genResultForAssistant(data),
191
+ };
192
+ }
193
+ catch (error) {
194
+ if (error instanceof Error) {
195
+ const data = {
196
+ notebook_path,
197
+ cell_number,
198
+ new_source,
199
+ cell_type: cell_type ?? 'code',
200
+ language: 'python',
201
+ edit_mode: 'replace',
202
+ error: error.message,
203
+ };
204
+ yield {
205
+ type: 'result',
206
+ data,
207
+ resultForAssistant: this.genResultForAssistant(data),
208
+ };
209
+ return;
210
+ }
211
+ const data = {
212
+ notebook_path,
213
+ cell_number,
214
+ new_source,
215
+ cell_type: cell_type ?? 'code',
216
+ language: 'python',
217
+ edit_mode: 'replace',
218
+ error: 'Unknown error occurred while editing notebook',
219
+ };
220
+ yield {
221
+ type: 'result',
222
+ data,
223
+ resultForAssistant: this.genResultForAssistant(data),
224
+ };
225
+ }
226
+ },
227
+ };
228
+ //# sourceMappingURL=NotebookEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotebookEdit.js","sourceRoot":"","sources":["../../../src/tools/NotebookEdit/NotebookEdit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const TOOL_NAME_FOR_PROMPT = "NotebookEdit";
2
+ export declare const DESCRIPTION = "Completely replaces the contents of a specific cell in a Jupyter notebook (.ipynb file) with new source. Jupyter notebooks are interactive documents that combine code, text, and visualizations, commonly used for data analysis and scientific computing. The notebook_path parameter must be an absolute path, not a relative path. The cell_number is 0-indexed. Use edit_mode=insert to add a new cell at the index specified by cell_number. Use edit_mode=delete to delete the cell at the index specified by cell_number.";
3
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/NotebookEdit/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAA;AAElD,eAAO,MAAM,WAAW,sgBAC6e,CAAA"}
@@ -0,0 +1,6 @@
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 = 'NotebookEdit';
5
+ exports.DESCRIPTION = `Completely replaces the contents of a specific cell in a Jupyter notebook (.ipynb file) with new source. Jupyter notebooks are interactive documents that combine code, text, and visualizations, commonly used for data analysis and scientific computing. The notebook_path parameter must be an absolute path, not a relative path. The cell_number is 0-indexed. Use edit_mode=insert to add a new cell at the index specified by cell_number. Use edit_mode=delete to delete the cell at the index specified by cell_number.`;
6
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/NotebookEdit/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,cAAc,CAAA;AAErC,QAAA,WAAW,GACtB,mgBAAmgB,CAAA"}
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ import { NotebookCellData } from '../../types/notebook';
3
+ export declare const FileReadTool: {
4
+ name: string;
5
+ description(): string;
6
+ inputSchema: z.ZodObject<{
7
+ file_path: z.ZodString;
8
+ offset: z.ZodOptional<z.ZodNumber>;
9
+ limit: z.ZodOptional<z.ZodNumber>;
10
+ }, "strict", z.ZodTypeAny, {
11
+ file_path: string;
12
+ limit?: number | undefined;
13
+ offset?: number | undefined;
14
+ }, {
15
+ file_path: string;
16
+ limit?: number | undefined;
17
+ offset?: number | undefined;
18
+ }>;
19
+ isReadOnly(): true;
20
+ genToolResultMessage(data: {
21
+ type: "text";
22
+ file: {
23
+ filePath: string;
24
+ content: string;
25
+ numLines: number;
26
+ startLine: number;
27
+ totalLines: number;
28
+ };
29
+ } | {
30
+ type: "notebook";
31
+ notebook: {
32
+ filePath: string;
33
+ cells: NotebookCellData[];
34
+ cellCount: number;
35
+ };
36
+ }): {
37
+ title: string;
38
+ summary: string;
39
+ content: string;
40
+ };
41
+ validateInput({ file_path, offset, limit }: {
42
+ file_path: string;
43
+ limit?: number | undefined;
44
+ offset?: number | undefined;
45
+ }, agentContext: any): Promise<{
46
+ result: false;
47
+ message: string;
48
+ meta?: undefined;
49
+ } | {
50
+ result: false;
51
+ message: string;
52
+ meta: {
53
+ fileSize: number;
54
+ };
55
+ } | {
56
+ result: true;
57
+ message?: undefined;
58
+ meta?: undefined;
59
+ }>;
60
+ call({ file_path, offset, limit }: {
61
+ file_path: string;
62
+ limit?: number | undefined;
63
+ offset?: number | undefined;
64
+ }, agentContext: any): AsyncGenerator<{
65
+ type: "result";
66
+ data: {
67
+ type: "notebook";
68
+ notebook: {
69
+ filePath: string;
70
+ cells: NotebookCellData[];
71
+ cellCount: number;
72
+ };
73
+ };
74
+ resultForAssistant: string;
75
+ } | {
76
+ type: "result";
77
+ data: {
78
+ type: "text";
79
+ file: {
80
+ filePath: string;
81
+ content: string;
82
+ numLines: number;
83
+ startLine: number;
84
+ totalLines: number;
85
+ };
86
+ };
87
+ resultForAssistant: string;
88
+ }, void, unknown>;
89
+ genResultForAssistant(data: {
90
+ type: "text";
91
+ file: {
92
+ filePath: string;
93
+ content: string;
94
+ numLines: number;
95
+ startLine: number;
96
+ totalLines: number;
97
+ };
98
+ } | {
99
+ type: "notebook";
100
+ notebook: {
101
+ filePath: string;
102
+ cells: NotebookCellData[];
103
+ cellCount: number;
104
+ };
105
+ }): string;
106
+ };
107
+ //# sourceMappingURL=Read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Read.d.ts","sourceRoot":"","sources":["../../../src/tools/Read/Read.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAuBvD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;cAkLb,MAAM;cACN;YACJ,QAAQ,EAAE,MAAM,CAAA;YAChB,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;SACnB;;cAGK,UAAU;kBACN;YACR,QAAQ,EAAE,MAAM,CAAA;YAChB,KAAK,EAAE,gBAAgB,EAAE,CAAA;YACzB,SAAS,EAAE,MAAM,CAAA;SAClB;;;;;;;;;;qBAjJ2D,GAAG;;;;;;;;;;;;;;;;;;;qBAsDnD,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;cA4ET,MAAM;cACN;YACJ,QAAQ,EAAE,MAAM,CAAA;YAChB,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;SACnB;;cAGK,UAAU;kBACN;YACR,QAAQ,EAAE,MAAM,CAAA;YAChB,KAAK,EAAE,gBAAgB,EAAE,CAAA;YACzB,SAAS,EAAE,MAAM,CAAA;SAClB;;CAEN,CAAA"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileReadTool = void 0;
4
+ const node_path_1 = require("node:path");
5
+ const zod_1 = require("zod");
6
+ const file_1 = require("../../util/file");
7
+ const cwd_1 = require("../../util/cwd");
8
+ const prompt_1 = require("./prompt");
9
+ const secureFile_1 = require("../../util/secureFile");
10
+ const StateManager_1 = require("../../manager/StateManager");
11
+ const notebook_1 = require("../../util/notebook");
12
+ const MAX_LINES_TO_RENDER = 5;
13
+ const MAX_OUTPUT_SIZE = 0.25 * 1024 * 1024; // 0.25MB in bytes
14
+ const inputSchema = zod_1.z.strictObject({
15
+ file_path: zod_1.z.string({
16
+ required_error: 'Error: The Read tool requires a \'file_path\' parameter to specify which file to read. Please provide the absolute path to the file you want to view. For example: {"file_path": "/path/to/file.txt"}',
17
+ }).describe('The absolute path to the file to read'),
18
+ offset: zod_1.z
19
+ .number()
20
+ .optional()
21
+ .describe('The line number to start reading from. Only provide if the file is too large to read at once'),
22
+ limit: zod_1.z
23
+ .number()
24
+ .optional()
25
+ .describe('The number of lines to read. Only provide if the file is too large to read at once.'),
26
+ });
27
+ exports.FileReadTool = {
28
+ name: prompt_1.TOOL_NAME_FOR_PROMPT,
29
+ description() {
30
+ return prompt_1.DESCRIPTION;
31
+ },
32
+ inputSchema,
33
+ isReadOnly() {
34
+ return true;
35
+ },
36
+ genToolResultMessage(data) {
37
+ // 处理 notebook 文件
38
+ if (data.type === 'notebook') {
39
+ const { filePath, cellCount } = data.notebook;
40
+ const cellText = cellCount === 1 ? 'cell' : 'cells';
41
+ return {
42
+ title: (0, node_path_1.relative)((0, cwd_1.getCwd)(), filePath),
43
+ summary: `Read ${(0, node_path_1.relative)((0, cwd_1.getCwd)(), filePath)} with ${cellCount} ${cellText}`,
44
+ content: ''
45
+ };
46
+ }
47
+ // 处理普通文本文件
48
+ const { filePath, content, numLines, startLine, totalLines } = data.file;
49
+ const contentWithFallback = content || '(No content)';
50
+ const lines = contentWithFallback.split('\n');
51
+ const previewLines = lines.slice(0, MAX_LINES_TO_RENDER);
52
+ let preview = previewLines.join('\n');
53
+ if (numLines > MAX_LINES_TO_RENDER) {
54
+ preview += `\n... (+${numLines - MAX_LINES_TO_RENDER} more lines)`;
55
+ }
56
+ const lineText = numLines === 1 ? 'line' : 'lines';
57
+ const relativePath = (0, node_path_1.relative)((0, cwd_1.getCwd)(), filePath);
58
+ // 部分读取时,标题显示行号范围
59
+ const isPartialRead = startLine > 1 || numLines < totalLines;
60
+ const endLine = startLine + numLines - 1;
61
+ const title = isPartialRead
62
+ ? `${relativePath}:${startLine}-${endLine}`
63
+ : relativePath;
64
+ return {
65
+ title,
66
+ summary: `Read ${relativePath} with ${numLines} ${lineText}`,
67
+ content: preview
68
+ };
69
+ },
70
+ async validateInput({ file_path, offset, limit }, agentContext) {
71
+ const fullFilePath = (0, file_1.normalizeFilePath)(file_path);
72
+ // Use secure file service to check if file exists and get file info
73
+ const fileCheck = secureFile_1.secureFileService.safeGetFileInfo(fullFilePath);
74
+ if (!fileCheck.success) {
75
+ // Use the actual error from secureFileService instead of generic message
76
+ let message = fileCheck.error || 'File access failed.';
77
+ // If it's a path restriction error, provide helpful information
78
+ if (message.includes('outside allowed directories')) {
79
+ // Get current allowed paths for debuggingS
80
+ const allowedPaths = [
81
+ `Current working directory: ${(0, cwd_1.getCwd)()}`,
82
+ `User home directory: ${require('os').homedir()}`,
83
+ `Temporary directories: /tmp, /var/tmp`
84
+ ];
85
+ console.log('🚫 ReadTool: File access denied');
86
+ console.log(`📁 Requested path: ${fullFilePath}`);
87
+ console.log('📋 Currently allowed base paths:');
88
+ allowedPaths.forEach(path => console.log(` - ${path}`));
89
+ message += '\n\nCurrently allowed base paths:\n' + allowedPaths.map(p => ` - ${p}`).join('\n');
90
+ }
91
+ else {
92
+ // For other errors (like actual file not found), try to find similar files
93
+ const similarFilename = (0, file_1.findSimilarFile)(fullFilePath);
94
+ if (similarFilename) {
95
+ message += ` Did you mean ${similarFilename}?`;
96
+ }
97
+ }
98
+ return {
99
+ result: false,
100
+ message,
101
+ };
102
+ }
103
+ const stats = fileCheck.stats;
104
+ const fileSize = stats.size;
105
+ // If file is too large and no offset/limit provided
106
+ if (fileSize > MAX_OUTPUT_SIZE && !offset && !limit) {
107
+ return {
108
+ result: false,
109
+ message: formatFileSizeError(fileSize),
110
+ meta: { fileSize },
111
+ };
112
+ }
113
+ return { result: true };
114
+ },
115
+ async *call({ file_path, offset = 1, limit = undefined }, agentContext) {
116
+ const fullFilePath = (0, file_1.normalizeFilePath)(file_path);
117
+ const stateManager = (0, StateManager_1.getStateManager)();
118
+ const agentState = stateManager.forAgent(agentContext.agentId);
119
+ // Update read timestamp, to invalidate stale writes
120
+ agentState.setReadFileTimestamp(fullFilePath, Date.now());
121
+ // 检测是否为 notebook 文件
122
+ const fileExtension = (0, node_path_1.extname)(fullFilePath);
123
+ if (fileExtension === '.ipynb') {
124
+ // 读取并解析 notebook 文件
125
+ const { cells, cellCount } = (0, notebook_1.readNotebook)(fullFilePath);
126
+ const data = {
127
+ type: 'notebook',
128
+ notebook: {
129
+ filePath: file_path,
130
+ cells,
131
+ cellCount,
132
+ },
133
+ };
134
+ yield {
135
+ type: 'result',
136
+ data,
137
+ resultForAssistant: this.genResultForAssistant(data),
138
+ };
139
+ return;
140
+ }
141
+ // 处理普通文本文件
142
+ // Handle offset properly - if offset is 0, don't subtract 1
143
+ const lineOffset = offset === 0 ? 0 : offset - 1;
144
+ const { content, lineCount, totalLines } = (0, file_1.readTextContent)(fullFilePath, lineOffset, limit);
145
+ // Add size validation after reading
146
+ if (content.length > MAX_OUTPUT_SIZE) {
147
+ throw new Error(formatFileSizeError(content.length));
148
+ }
149
+ const data = {
150
+ type: 'text',
151
+ file: {
152
+ filePath: file_path,
153
+ content: content,
154
+ numLines: lineCount,
155
+ startLine: offset,
156
+ totalLines,
157
+ },
158
+ };
159
+ yield {
160
+ type: 'result',
161
+ data,
162
+ resultForAssistant: this.genResultForAssistant(data),
163
+ };
164
+ },
165
+ genResultForAssistant(data) {
166
+ // 处理 notebook 文件
167
+ if (data.type === 'notebook') {
168
+ return (0, notebook_1.formatNotebookCells)(data.notebook.cells);
169
+ }
170
+ // 处理普通文本文件
171
+ return (0, file_1.addLineNumbers)(data.file);
172
+ },
173
+ };
174
+ const formatFileSizeError = (sizeInBytes) => `File content (${Math.round(sizeInBytes / 1024)}KB) exceeds maximum allowed size (${Math.round(MAX_OUTPUT_SIZE / 1024)}KB). Please use offset and limit parameters to read specific portions of the file, or use the GrepTool to search for specific content.`;
175
+ //# sourceMappingURL=Read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Read.js","sourceRoot":"","sources":["../../../src/tools/Read/Read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const MAX_LINES_TO_READ = 2000;
2
+ export declare const TOOL_NAME_FOR_PROMPT = "Read";
3
+ export declare const DESCRIPTION = "Reads a file from the local filesystem. You can access any file directly by using this tool.\nAssume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.\n\nUsage:\n- The file_path parameter must be an absolute path, not a relative path\n- By default, it reads up to 2000 lines starting from the beginning of the file\n- You can optionally specify a line offset and limit (especially handy for long files), but it's recommended to read the whole file by not providing these parameters\n- Any lines longer than 2000 characters will be truncated\n- Results are returned using cat -n format, with line numbers starting at 1\n- This tool can read PDF files (.pdf). PDFs are processed page by page, extracting both text and visual content for analysis.\n- This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.\n- This tool can only read files, not directories. To read a directory, use an ls command via the Bash tool.\n- You can call multiple tools in a single response. It is always better to speculatively read multiple potentially useful files in parallel.\n- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.";
4
+ //# sourceMappingURL=prompt.d.ts.map