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,365 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.glob = glob;
4
+ exports.readFileSafe = readFileSafe;
5
+ exports.isInDirectory = isInDirectory;
6
+ exports.readTextContent = readTextContent;
7
+ exports.writeTextContent = writeTextContent;
8
+ exports.detectRepoLineEndings = detectRepoLineEndings;
9
+ exports.detectRepoLineEndingsDirect = detectRepoLineEndingsDirect;
10
+ exports.detectFileEncoding = detectFileEncoding;
11
+ exports.detectFileEncodingDirect = detectFileEncodingDirect;
12
+ exports.detectLineEndings = detectLineEndings;
13
+ exports.detectLineEndingsDirect = detectLineEndingsDirect;
14
+ exports.quotePathForShell = quotePathForShell;
15
+ exports.normalizeFilePath = normalizeFilePath;
16
+ exports.normalizeSkillPath = normalizeSkillPath;
17
+ exports.getAbsolutePath = getAbsolutePath;
18
+ exports.getAbsoluteAndRelativePaths = getAbsoluteAndRelativePaths;
19
+ exports.findSimilarFile = findSimilarFile;
20
+ exports.addLineNumbers = addLineNumbers;
21
+ exports.isDirEmpty = isDirEmpty;
22
+ const fs_1 = require("fs");
23
+ const log_1 = require("./log");
24
+ const path_1 = require("path");
25
+ const glob_1 = require("glob");
26
+ const process_1 = require("process");
27
+ const ripgrep_1 = require("./ripgrep");
28
+ const lru_cache_1 = require("lru-cache");
29
+ const cwd_1 = require("./cwd");
30
+ async function glob(filePattern, cwd, { limit, offset }, abortSignal) {
31
+ // Windows 环境下,转换 Unix 风格的驱动器路径
32
+ let processedCwd = cwd;
33
+ if (process.platform === 'win32') {
34
+ const unixDrivePattern = /^\/([a-z])\//i;
35
+ const match = unixDrivePattern.exec(cwd);
36
+ if (match) {
37
+ const driveLetter = match[1].toUpperCase();
38
+ const rest = cwd.slice(3); // 去掉 /d/ 部分
39
+ processedCwd = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
40
+ }
41
+ }
42
+ // TODO: Use worker threads
43
+ const paths = await (0, glob_1.glob)([filePattern], {
44
+ cwd: processedCwd,
45
+ nocase: true,
46
+ nodir: true,
47
+ signal: abortSignal,
48
+ stat: true,
49
+ withFileTypes: true,
50
+ });
51
+ const sortedPaths = paths.sort((a, b) => (a.mtimeMs ?? 0) - (b.mtimeMs ?? 0));
52
+ const truncated = sortedPaths.length > offset + limit;
53
+ return {
54
+ files: sortedPaths
55
+ .slice(offset, offset + limit)
56
+ .map(path => path.fullpath()),
57
+ truncated,
58
+ };
59
+ }
60
+ function readFileSafe(filepath) {
61
+ try {
62
+ return (0, fs_1.readFileSync)(filepath, 'utf-8');
63
+ }
64
+ catch (error) {
65
+ (0, log_1.logError)(error);
66
+ return null;
67
+ }
68
+ }
69
+ function isInDirectory(relativePath, relativeCwd) {
70
+ if (relativePath === '.') {
71
+ return true;
72
+ }
73
+ // Reject paths starting with ~ (home directory)
74
+ if (relativePath.startsWith('~')) {
75
+ return false;
76
+ }
77
+ // Reject paths containing null bytes or other sneaky characters
78
+ if (relativePath.includes('\0') || relativeCwd.includes('\0')) {
79
+ return false;
80
+ }
81
+ // Normalize paths to resolve any '..' or '.' segments
82
+ // and add trailing slashes
83
+ let normalizedPath = (0, path_1.normalize)(relativePath);
84
+ let normalizedCwd = (0, path_1.normalize)(relativeCwd);
85
+ normalizedPath = normalizedPath.endsWith(path_1.sep)
86
+ ? normalizedPath
87
+ : normalizedPath + path_1.sep;
88
+ normalizedCwd = normalizedCwd.endsWith(path_1.sep)
89
+ ? normalizedCwd
90
+ : normalizedCwd + path_1.sep;
91
+ // Join with a base directory to make them absolute-like for comparison
92
+ const fullPath = (0, path_1.resolve)((0, process_1.cwd)(), normalizedCwd, normalizedPath);
93
+ const fullCwd = (0, path_1.resolve)((0, process_1.cwd)(), normalizedCwd);
94
+ // Robust subpath check using path.relative (case-insensitive on Windows)
95
+ const rel = (0, path_1.relative)(fullCwd, fullPath);
96
+ if (!rel || rel === '')
97
+ return true;
98
+ if (rel.startsWith('..'))
99
+ return false;
100
+ if ((0, path_1.isAbsolute)(rel))
101
+ return false;
102
+ return true;
103
+ }
104
+ function readTextContent(filePath, offset = 0, maxLines) {
105
+ const enc = detectFileEncoding(filePath);
106
+ const content = (0, fs_1.readFileSync)(filePath, enc);
107
+ const lines = content.split(/\r?\n/);
108
+ // Truncate number of lines if needed
109
+ const toReturn = maxLines !== undefined && lines.length - offset > maxLines
110
+ ? lines.slice(offset, offset + maxLines)
111
+ : lines.slice(offset);
112
+ return {
113
+ content: toReturn.join('\n'), // TODO: This probably won't work for Windows
114
+ lineCount: toReturn.length,
115
+ totalLines: lines.length,
116
+ };
117
+ }
118
+ function writeTextContent(filePath, content, encoding, endings) {
119
+ let toWrite = content;
120
+ if (endings === 'CRLF') {
121
+ toWrite = content.split('\n').join('\r\n');
122
+ }
123
+ (0, fs_1.writeFileSync)(filePath, toWrite, { encoding, flush: true });
124
+ }
125
+ const repoEndingCache = new lru_cache_1.LRUCache({
126
+ fetchMethod: path => detectRepoLineEndingsDirect(path),
127
+ ttl: 5 * 60 * 1000,
128
+ ttlAutopurge: false,
129
+ max: 1000,
130
+ });
131
+ async function detectRepoLineEndings(filePath) {
132
+ return repoEndingCache.fetch((0, path_1.resolve)(filePath));
133
+ }
134
+ async function detectRepoLineEndingsDirect(cwd) {
135
+ const abortController = new AbortController();
136
+ setTimeout(() => {
137
+ abortController.abort();
138
+ }, 1_000);
139
+ const allFiles = await (0, ripgrep_1.listAllContentFiles)(cwd, abortController.signal, 15);
140
+ let crlfCount = 0;
141
+ for (const file of allFiles) {
142
+ const lineEnding = detectLineEndings(file);
143
+ if (lineEnding === 'CRLF') {
144
+ crlfCount++;
145
+ }
146
+ }
147
+ return crlfCount > 3 ? 'CRLF' : 'LF';
148
+ }
149
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
150
+ function fetch(cache, key, value) {
151
+ if (cache.has(key)) {
152
+ return cache.get(key);
153
+ }
154
+ const v = value();
155
+ cache.set(key, v);
156
+ return v;
157
+ }
158
+ const fileEncodingCache = new lru_cache_1.LRUCache({
159
+ fetchMethod: path => detectFileEncodingDirect(path),
160
+ ttl: 5 * 60 * 1000,
161
+ ttlAutopurge: false,
162
+ max: 1000,
163
+ });
164
+ function detectFileEncoding(filePath) {
165
+ const k = (0, path_1.resolve)(filePath);
166
+ return fetch(fileEncodingCache, k, () => detectFileEncodingDirect(k));
167
+ }
168
+ function detectFileEncodingDirect(filePath) {
169
+ const BUFFER_SIZE = 4096;
170
+ const buffer = Buffer.alloc(BUFFER_SIZE);
171
+ let fd = undefined;
172
+ try {
173
+ fd = (0, fs_1.openSync)(filePath, 'r');
174
+ const bytesRead = (0, fs_1.readSync)(fd, buffer, 0, BUFFER_SIZE, 0);
175
+ if (bytesRead >= 2) {
176
+ if (buffer[0] === 0xff && buffer[1] === 0xfe)
177
+ return 'utf16le';
178
+ }
179
+ if (bytesRead >= 3 &&
180
+ buffer[0] === 0xef &&
181
+ buffer[1] === 0xbb &&
182
+ buffer[2] === 0xbf) {
183
+ return 'utf8';
184
+ }
185
+ const isUtf8 = buffer.slice(0, bytesRead).toString('utf8').length > 0;
186
+ return isUtf8 ? 'utf8' : 'ascii';
187
+ }
188
+ catch (error) {
189
+ (0, log_1.logError)(`Error detecting encoding for file ${filePath}: ${error}`);
190
+ return 'utf8';
191
+ }
192
+ finally {
193
+ if (fd)
194
+ (0, fs_1.closeSync)(fd);
195
+ }
196
+ }
197
+ const lineEndingCache = new lru_cache_1.LRUCache({
198
+ fetchMethod: path => detectLineEndingsDirect(path),
199
+ ttl: 5 * 60 * 1000,
200
+ ttlAutopurge: false,
201
+ max: 1000,
202
+ });
203
+ function detectLineEndings(filePath) {
204
+ const k = (0, path_1.resolve)(filePath);
205
+ return fetch(lineEndingCache, k, () => detectLineEndingsDirect(k));
206
+ }
207
+ function detectLineEndingsDirect(filePath, encoding = 'utf8') {
208
+ try {
209
+ const buffer = Buffer.alloc(4096);
210
+ const fd = (0, fs_1.openSync)(filePath, 'r');
211
+ const bytesRead = (0, fs_1.readSync)(fd, buffer, 0, 4096, 0);
212
+ (0, fs_1.closeSync)(fd);
213
+ const content = buffer.toString(encoding, 0, bytesRead);
214
+ let crlfCount = 0;
215
+ let lfCount = 0;
216
+ for (let i = 0; i < content.length; i++) {
217
+ if (content[i] === '\n') {
218
+ if (i > 0 && content[i - 1] === '\r') {
219
+ crlfCount++;
220
+ }
221
+ else {
222
+ lfCount++;
223
+ }
224
+ }
225
+ }
226
+ return crlfCount > lfCount ? 'CRLF' : 'LF';
227
+ }
228
+ catch (error) {
229
+ (0, log_1.logError)(`Error detecting line endings for file ${filePath}: ${error}`);
230
+ return 'LF';
231
+ }
232
+ }
233
+ /**
234
+ * 为命令行执行包裹路径引号(仅 Windows 且路径包含空格时)
235
+ */
236
+ function quotePathForShell(filePath) {
237
+ if (process.platform === 'win32' && filePath.includes(' ')) {
238
+ return `"${filePath}"`;
239
+ }
240
+ return filePath;
241
+ }
242
+ function normalizeFilePath(filePath) {
243
+ let processedPath = filePath;
244
+ // Windows 环境下,转换 Unix 风格的驱动器路径 (/d/, /c/ 等)
245
+ if (process.platform === 'win32') {
246
+ const unixDrivePattern = /^\/([a-z])\//i;
247
+ const match = unixDrivePattern.exec(filePath);
248
+ if (match) {
249
+ const driveLetter = match[1].toUpperCase();
250
+ const rest = filePath.slice(3); // 去掉 /d/ 部分
251
+ processedPath = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
252
+ }
253
+ }
254
+ const absoluteFilePath = (0, path_1.isAbsolute)(processedPath)
255
+ ? processedPath
256
+ : (0, path_1.resolve)((0, cwd_1.getCwd)(), processedPath);
257
+ // One weird trick for half-width space characters in MacOS screenshot filenames
258
+ if (absoluteFilePath.endsWith(' AM.png')) {
259
+ return absoluteFilePath.replace(' AM.png', `${String.fromCharCode(8239)}AM.png`);
260
+ }
261
+ // One weird trick for half-width space characters in MacOS screenshot filenames
262
+ if (absoluteFilePath.endsWith(' PM.png')) {
263
+ return absoluteFilePath.replace(' PM.png', `${String.fromCharCode(8239)}PM.png`);
264
+ }
265
+ return absoluteFilePath;
266
+ }
267
+ /**
268
+ * 标准化 Skill 路径,处理 Windows 环境下的 Unix 风格路径,但不强制转换为绝对路径
269
+ * 用于 skill 系统中需要保持路径结构的场景
270
+ */
271
+ function normalizeSkillPath(filePath) {
272
+ let processedPath = filePath;
273
+ // Windows 环境下,转换 Unix 风格的驱动器路径 (/d/, /c/ 等)
274
+ if (process.platform === 'win32') {
275
+ const unixDrivePattern = /^\/([a-z])\//i;
276
+ const match = unixDrivePattern.exec(filePath);
277
+ if (match) {
278
+ const driveLetter = match[1].toUpperCase();
279
+ const rest = filePath.slice(3); // 去掉 /d/ 部分
280
+ processedPath = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
281
+ }
282
+ }
283
+ return (0, path_1.normalize)(processedPath);
284
+ }
285
+ function getAbsolutePath(path) {
286
+ return path ? ((0, path_1.isAbsolute)(path) ? path : (0, path_1.resolve)((0, cwd_1.getCwd)(), path)) : undefined;
287
+ }
288
+ function getAbsoluteAndRelativePaths(path) {
289
+ const absolutePath = getAbsolutePath(path);
290
+ const relativePath = absolutePath
291
+ ? (0, path_1.relative)((0, cwd_1.getCwd)(), absolutePath)
292
+ : undefined;
293
+ return { absolutePath, relativePath };
294
+ }
295
+ /**
296
+ * Find files with the same name but different extensions in the same directory
297
+ * @param filePath The path to the file that doesn't exist
298
+ * @returns The found file with a different extension, or undefined if none found
299
+ */
300
+ function findSimilarFile(filePath) {
301
+ try {
302
+ const dir = (0, path_1.dirname)(filePath);
303
+ const fileBaseName = (0, path_1.basename)(filePath, (0, path_1.extname)(filePath));
304
+ // Check if directory exists
305
+ if (!(0, fs_1.existsSync)(dir)) {
306
+ return undefined;
307
+ }
308
+ // Get all files in the directory
309
+ const files = (0, fs_1.readdirSync)(dir);
310
+ // Find files with the same base name but different extension
311
+ const similarFiles = files.filter(file => (0, path_1.basename)(file, (0, path_1.extname)(file)) === fileBaseName &&
312
+ (0, path_1.join)(dir, file) !== filePath);
313
+ // Return just the filename of the first match if found
314
+ const firstMatch = similarFiles[0];
315
+ if (firstMatch) {
316
+ return firstMatch;
317
+ }
318
+ return undefined;
319
+ }
320
+ catch (error) {
321
+ // In case of any errors, return undefined
322
+ (0, log_1.logError)(`Error finding similar file for ${filePath}: ${error}`);
323
+ return undefined;
324
+ }
325
+ }
326
+ /**
327
+ * Adds cat -n style line numbers to the content
328
+ */
329
+ function addLineNumbers({ content,
330
+ // 1-indexed
331
+ startLine, }) {
332
+ if (!content) {
333
+ return '';
334
+ }
335
+ return content
336
+ .split(/\r?\n/)
337
+ .map((line, index) => {
338
+ const lineNum = index + startLine;
339
+ const numStr = String(lineNum);
340
+ // Handle large numbers differently
341
+ if (numStr.length >= 6) {
342
+ return `${numStr}\t${line}`;
343
+ }
344
+ // Regular numbers get padding to 6 characters
345
+ const n = numStr.padStart(6, ' ');
346
+ return `${n}\t${line}`;
347
+ })
348
+ .join('\n'); // TODO: This probably won't work for Windows
349
+ }
350
+ /**
351
+ * Checks if a directory is empty by efficiently reading just the first entry
352
+ * @param dirPath The path to the directory to check
353
+ * @returns true if the directory is empty, false otherwise
354
+ */
355
+ function isDirEmpty(dirPath) {
356
+ try {
357
+ const entries = (0, fs_1.readdirSync)(dirPath);
358
+ return entries.length === 0;
359
+ }
360
+ catch (error) {
361
+ (0, log_1.logError)(`Error checking directory: ${error}`);
362
+ return false;
363
+ }
364
+ }
365
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":";;AAkCA,oBAoCC;AAED,oCAOC;AAED,sCAwCC;AAED,0CAoBC;AAED,4CAYC;AASD,sDAIC;AAED,kEAkBC;AAwBD,gDAGC;AAED,4DA8BC;AASD,8CAGC;AAED,0DA6BC;AAKD,8CAKC;AAED,8CAoCC;AAMD,gDAgBC;AAED,0CAEC;AAED,kEASC;AAQD,0CA+BC;AAKD,wCA0BC;AAOD,gCAQC;AA9cD,2BAQW;AACX,+BAAyC;AACzC,+BAUa;AACb,+BAAsC;AACtC,qCAA6B;AAC7B,uCAA+C;AAC/C,yCAAoC;AACpC,+BAA8B;AASvB,KAAK,UAAU,IAAI,CACxB,WAAmB,EACnB,GAAW,EACX,EAAE,KAAK,EAAE,MAAM,EAAqC,EACpD,WAAwB;IAExB,+BAA+B;IAC/B,IAAI,YAAY,GAAG,GAAG,CAAA;IACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,eAAe,CAAA;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAExC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,YAAY;YACtC,YAAY,GAAG,GAAG,WAAW,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;QAChE,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,KAAK,GAAG,MAAM,IAAA,WAAO,EAAC,CAAC,WAAW,CAAC,EAAE;QACzC,GAAG,EAAE,YAAY;QACjB,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,IAAI;KACpB,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7E,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IACrD,OAAO;QACL,KAAK,EAAE,WAAW;aACf,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/B,SAAS;KACV,CAAA;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,OAAO,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,cAAQ,EAAC,KAAK,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,YAAoB,EACpB,WAAmB;IAEnB,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gDAAgD;IAChD,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gEAAgE;IAChE,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,sDAAsD;IACtD,2BAA2B;IAC3B,IAAI,cAAc,GAAG,IAAA,gBAAS,EAAC,YAAY,CAAC,CAAA;IAC5C,IAAI,aAAa,GAAG,IAAA,gBAAS,EAAC,WAAW,CAAC,CAAA;IAE1C,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAG,CAAC;QAC3C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,cAAc,GAAG,UAAG,CAAA;IACxB,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAG,CAAC;QACzC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,GAAG,UAAG,CAAA;IAEvB,uEAAuE;IACvE,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAA,aAAG,GAAE,EAAE,aAAa,EAAE,cAAc,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,IAAA,aAAG,GAAE,EAAE,aAAa,CAAC,CAAA;IAE7C,yEAAyE;IACzE,MAAM,GAAG,GAAG,IAAA,eAAQ,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACvC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IACnC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,IAAA,iBAAU,EAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACjC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,eAAe,CAC7B,QAAgB,EAChB,MAAM,GAAG,CAAC,EACV,QAAiB;IAEjB,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEpC,qCAAqC;IACrC,MAAM,QAAQ,GACZ,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,QAAQ;QACxD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAEzB,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,6CAA6C;QAC3E,SAAS,EAAE,QAAQ,CAAC,MAAM;QAC1B,UAAU,EAAE,KAAK,CAAC,MAAM;KACzB,CAAA;AACH,CAAC;AAED,SAAgB,gBAAgB,CAC9B,QAAgB,EAChB,OAAe,EACf,QAAwB,EACxB,OAAuB;IAEvB,IAAI,OAAO,GAAG,OAAO,CAAA;IACrB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED,IAAA,kBAAa,EAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,oBAAQ,CAAyB;IAC3D,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC;IACtD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAClB,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,IAAI;CACV,CAAC,CAAA;AAEK,KAAK,UAAU,qBAAqB,CACzC,QAAgB;IAEhB,OAAO,eAAe,CAAC,KAAK,CAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAA;AACjD,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,GAAW;IAEX,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC7C,UAAU,CAAC,GAAG,EAAE;QACd,eAAe,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC,EAAE,KAAK,CAAC,CAAA;IACT,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAE3E,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,SAAS,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,CAAC;AAED,mEAAmE;AACnE,SAAS,KAAK,CACZ,KAAqB,EACrB,GAAM,EACN,KAAc;IAEd,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,GAAG,KAAK,EAAE,CAAA;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACjB,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,oBAAQ,CAAyB;IAC7D,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC;IACnD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAClB,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,IAAI;CACV,CAAC,CAAA;AAEF,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,MAAM,CAAC,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,SAAgB,wBAAwB,CAAC,QAAgB;IACvD,MAAM,WAAW,GAAG,IAAI,CAAA;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAExC,IAAI,EAAE,GAAuB,SAAS,CAAA;IACtC,IAAI,CAAC;QACH,EAAE,GAAG,IAAA,aAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC5B,MAAM,SAAS,GAAG,IAAA,aAAQ,EAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;QAEzD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO,SAAS,CAAA;QAChE,CAAC;QAED,IACE,SAAS,IAAI,CAAC;YACd,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAClB,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;QACrE,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,cAAQ,EAAC,qCAAqC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;QACnE,OAAO,MAAM,CAAA;IACf,CAAC;YAAS,CAAC;QACT,IAAI,EAAE;YAAE,IAAA,cAAS,EAAC,EAAE,CAAC,CAAA;IACvB,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,oBAAQ,CAAyB;IAC3D,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAClD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAClB,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,IAAI;CACV,CAAC,CAAA;AAEF,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,MAAM,CAAC,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,SAAgB,uBAAuB,CACrC,QAAgB,EAChB,WAA2B,MAAM;IAEjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,EAAE,GAAG,IAAA,aAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,IAAA,aAAQ,EAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAClD,IAAA,cAAS,EAAC,EAAE,CAAC,CAAA;QAEb,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QACvD,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACrC,SAAS,EAAE,CAAA;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,cAAQ,EAAC,yCAAyC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;QACvE,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,QAAQ,GAAG,CAAA;IACxB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,IAAI,aAAa,GAAG,QAAQ,CAAA;IAE5B,4CAA4C;IAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,eAAe,CAAA;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,YAAY;YAC3C,aAAa,GAAG,GAAG,WAAW,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;QACjE,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,iBAAU,EAAC,aAAa,CAAC;QAChD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,IAAA,cAAO,EAAC,IAAA,YAAM,GAAE,EAAE,aAAa,CAAC,CAAA;IAEpC,gFAAgF;IAChF,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,gBAAgB,CAAC,OAAO,CAC7B,SAAS,EACT,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CACrC,CAAA;IACH,CAAC;IAED,gFAAgF;IAChF,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,gBAAgB,CAAC,OAAO,CAC7B,SAAS,EACT,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CACrC,CAAA;IACH,CAAC;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,IAAI,aAAa,GAAG,QAAQ,CAAA;IAE5B,4CAA4C;IAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,eAAe,CAAA;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,YAAY;YAC3C,aAAa,GAAG,GAAG,WAAW,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;QACjE,CAAC;IACH,CAAC;IAED,OAAO,IAAA,gBAAS,EAAC,aAAa,CAAC,CAAA;AACjC,CAAC;AAED,SAAgB,eAAe,CAAC,IAAwB;IACtD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAA,YAAM,GAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC/E,CAAC;AAED,SAAgB,2BAA2B,CAAC,IAAwB;IAIlE,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,IAAA,eAAQ,EAAC,IAAA,YAAM,GAAE,EAAE,YAAY,CAAC;QAClC,CAAC,CAAC,SAAS,CAAA;IACb,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;AACvC,CAAC;AAED;;;;GAIG;AAEH,SAAgB,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAA;QAC7B,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,QAAQ,EAAE,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAA;QAE1D,4BAA4B;QAC5B,IAAI,CAAC,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;QAE9B,6DAA6D;QAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAC/B,IAAI,CAAC,EAAE,CACL,IAAA,eAAQ,EAAC,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC,KAAK,YAAY;YAC9C,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,QAAQ,CAC/B,CAAA;QAED,uDAAuD;QACvD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAClC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0CAA0C;QAC1C,IAAA,cAAQ,EAAC,kCAAkC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;QAChE,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,EAC7B,OAAO;AACP,YAAY;AACZ,SAAS,GAIV;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,OAAO;SACX,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9B,mCAAmC;QACnC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAA;QAC7B,CAAC;QACD,8CAA8C;QAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjC,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;IACxB,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,6CAA6C;AAC7D,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,OAAO,CAAC,CAAA;QACpC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,cAAQ,EAAC,6BAA6B,KAAK,EAAE,CAAC,CAAA;QAC9C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 文件权限相关工具函数
3
+ */
4
+ /**
5
+ * 检查文件是否在授权范围内(项目根目录下)
6
+ */
7
+ export declare function isFileInAuthorizedScope(filePath: string): boolean;
8
+ /**
9
+ * 获取文件路径(从工具输入中)
10
+ */
11
+ export declare function getFilePath(input: {
12
+ [key: string]: unknown;
13
+ }): string | undefined;
14
+ //# sourceMappingURL=filePermission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filePermission.d.ts","sourceRoot":"","sources":["../../src/util/filePermission.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAEjF"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFileInAuthorizedScope = isFileInAuthorizedScope;
4
+ exports.getFilePath = getFilePath;
5
+ const cwd_1 = require("./cwd");
6
+ const path_1 = require("path");
7
+ /**
8
+ * 文件权限相关工具函数
9
+ */
10
+ /**
11
+ * 检查文件是否在授权范围内(项目根目录下)
12
+ */
13
+ function isFileInAuthorizedScope(filePath) {
14
+ const absolutePath = toAbsolutePath(filePath);
15
+ const normalizedRoot = normalize((0, cwd_1.getOriginalCwd)());
16
+ const normalizedFile = normalize(absolutePath);
17
+ return isSubpath(normalizedRoot, normalizedFile);
18
+ }
19
+ /**
20
+ * 获取文件路径(从工具输入中)
21
+ */
22
+ function getFilePath(input) {
23
+ return input.file_path || input.notebook_path;
24
+ }
25
+ /**
26
+ * 转换为绝对路径
27
+ */
28
+ function toAbsolutePath(path) {
29
+ return normalize((0, path_1.isAbsolute)(path) ? path : (0, path_1.resolve)((0, cwd_1.getCwd)(), path));
30
+ }
31
+ /**
32
+ * 规范化路径
33
+ */
34
+ function normalize(p) {
35
+ const resolved = (0, path_1.resolve)(p);
36
+ return process.platform === 'win32' ? resolved.toLowerCase() : resolved;
37
+ }
38
+ /**
39
+ * 检查目标路径是否为基础路径的子路径
40
+ */
41
+ function isSubpath(base, target) {
42
+ const rel = (0, path_1.relative)(base, target);
43
+ return !!rel && !rel.startsWith('..') && !(0, path_1.isAbsolute)(rel);
44
+ }
45
+ //# sourceMappingURL=filePermission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filePermission.js","sourceRoot":"","sources":["../../src/util/filePermission.ts"],"names":[],"mappings":";;AAUA,0DAKC;AAKD,kCAEC;AAtBD,+BAA+C;AAC/C,+BAAqD;AAErD;;GAEG;AAEH;;GAEG;AACH,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,IAAA,oBAAc,GAAE,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAiC;IAC3D,OAAQ,KAAa,CAAC,SAAS,IAAK,KAAa,CAAC,aAAa,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,SAAS,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAA,YAAM,GAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC7C,MAAM,GAAG,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,GAAG,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,40 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import { FileReferenceInfo } from '../types/index';
3
+ /**
4
+ * 文件引用信息类型定义
5
+ */
6
+ export interface ParsedFileReference {
7
+ fileName: string;
8
+ startLine?: number;
9
+ endLine?: number;
10
+ isDirectory?: boolean;
11
+ }
12
+ /**
13
+ * 解析文件引用字符串
14
+ * 支持格式:
15
+ * - @filename - 读取整个文件
16
+ * - @filename:line - 读取指定行(如 @index.js:13)
17
+ * - @filename:start-end - 读取行号范围(如 @index.js:13-17)
18
+ * - @dirname - 列出目录内容(如果是目录)
19
+ */
20
+ export declare function parseFileReference(reference: string): ParsedFileReference;
21
+ /**
22
+ * 处理用户输入中的文件引用 (@filename 或 @filename:lines)
23
+ * read工具自动读取引用的文件并将内容注入为system-reminder
24
+ * bash工具调用 ls 命令列出目录内容
25
+ * 多文件目录均并行执行
26
+ * 结果顺序也保持原有顺序(按用户输入中引用出现的顺序)
27
+ */
28
+ export declare function processFileReferences(userInput: string, agentContext: any): Promise<{
29
+ systemReminders: Anthropic.ContentBlockParam[];
30
+ supplementaryInfo: FileReferenceInfo[];
31
+ }>;
32
+ /**
33
+ * 检查文本中是否包含文件引用
34
+ */
35
+ export declare function hasFileReferences(text: string): boolean;
36
+ /**
37
+ * 提取文本中的所有文件引用
38
+ */
39
+ export declare function extractFileReferences(text: string): string[];
40
+ //# sourceMappingURL=fileReference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileReference.d.ts","sourceRoot":"","sources":["../../src/util/fileReference.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAIzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAKlD;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CA0DzE;AAiOD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC;IACT,eAAe,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;CACxC,CAAC,CA2CD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}