ys-code-agent 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +252 -0
  3. package/SETUP.md +228 -0
  4. package/USAGE.md +437 -0
  5. package/dist/agent/index.d.ts +29 -0
  6. package/dist/agent/index.d.ts.map +1 -0
  7. package/dist/agent/index.js +501 -0
  8. package/dist/agent/index.js.map +1 -0
  9. package/dist/cli/agent.d.ts +10 -0
  10. package/dist/cli/agent.d.ts.map +1 -0
  11. package/dist/cli/agent.js +38 -0
  12. package/dist/cli/agent.js.map +1 -0
  13. package/dist/cli/index.cjs +19187 -0
  14. package/dist/cli/index.cjs.map +7 -0
  15. package/dist/cli/index.d.ts +2 -0
  16. package/dist/cli/index.d.ts.map +1 -0
  17. package/dist/cli/index.js +326 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/cli/interactive.d.ts +14 -0
  20. package/dist/cli/interactive.d.ts.map +1 -0
  21. package/dist/cli/interactive.js +125 -0
  22. package/dist/cli/interactive.js.map +1 -0
  23. package/dist/commands/CommandRegistry.d.ts +15 -0
  24. package/dist/commands/CommandRegistry.d.ts.map +1 -0
  25. package/dist/commands/CommandRegistry.js +1311 -0
  26. package/dist/commands/CommandRegistry.js.map +1 -0
  27. package/dist/commands/handlers/agents.d.ts +5 -0
  28. package/dist/commands/handlers/agents.d.ts.map +1 -0
  29. package/dist/commands/handlers/agents.js +124 -0
  30. package/dist/commands/handlers/agents.js.map +1 -0
  31. package/dist/commands/handlers/file.d.ts +8 -0
  32. package/dist/commands/handlers/file.d.ts.map +1 -0
  33. package/dist/commands/handlers/file.js +364 -0
  34. package/dist/commands/handlers/file.js.map +1 -0
  35. package/dist/commands/handlers/git.d.ts +2 -0
  36. package/dist/commands/handlers/git.d.ts.map +1 -0
  37. package/dist/commands/handlers/git.js +343 -0
  38. package/dist/commands/handlers/git.js.map +1 -0
  39. package/dist/commands/handlers/memory.d.ts +6 -0
  40. package/dist/commands/handlers/memory.d.ts.map +1 -0
  41. package/dist/commands/handlers/memory.js +149 -0
  42. package/dist/commands/handlers/memory.js.map +1 -0
  43. package/dist/commands/index.d.ts +3 -0
  44. package/dist/commands/index.d.ts.map +1 -0
  45. package/dist/commands/index.js +2 -0
  46. package/dist/commands/index.js.map +1 -0
  47. package/dist/config/index.d.ts +25 -0
  48. package/dist/config/index.d.ts.map +1 -0
  49. package/dist/config/index.js +399 -0
  50. package/dist/config/index.js.map +1 -0
  51. package/dist/context/index.d.ts +31 -0
  52. package/dist/context/index.d.ts.map +1 -0
  53. package/dist/context/index.js +208 -0
  54. package/dist/context/index.js.map +1 -0
  55. package/dist/filesystem/index.d.ts +52 -0
  56. package/dist/filesystem/index.d.ts.map +1 -0
  57. package/dist/filesystem/index.js +481 -0
  58. package/dist/filesystem/index.js.map +1 -0
  59. package/dist/git/index.d.ts +41 -0
  60. package/dist/git/index.d.ts.map +1 -0
  61. package/dist/git/index.js +381 -0
  62. package/dist/git/index.js.map +1 -0
  63. package/dist/logger/index.d.ts +32 -0
  64. package/dist/logger/index.d.ts.map +1 -0
  65. package/dist/logger/index.js +199 -0
  66. package/dist/logger/index.js.map +1 -0
  67. package/dist/memory/index.d.ts +45 -0
  68. package/dist/memory/index.d.ts.map +1 -0
  69. package/dist/memory/index.js +147 -0
  70. package/dist/memory/index.js.map +1 -0
  71. package/dist/project/index.d.ts +14 -0
  72. package/dist/project/index.d.ts.map +1 -0
  73. package/dist/project/index.js +371 -0
  74. package/dist/project/index.js.map +1 -0
  75. package/dist/providers/anthropic.d.ts +22 -0
  76. package/dist/providers/anthropic.d.ts.map +1 -0
  77. package/dist/providers/anthropic.js +202 -0
  78. package/dist/providers/anthropic.js.map +1 -0
  79. package/dist/providers/base.d.ts +29 -0
  80. package/dist/providers/base.d.ts.map +1 -0
  81. package/dist/providers/base.js +119 -0
  82. package/dist/providers/base.js.map +1 -0
  83. package/dist/providers/custom.d.ts +8 -0
  84. package/dist/providers/custom.d.ts.map +1 -0
  85. package/dist/providers/custom.js +13 -0
  86. package/dist/providers/custom.js.map +1 -0
  87. package/dist/providers/deepseek.d.ts +8 -0
  88. package/dist/providers/deepseek.d.ts.map +1 -0
  89. package/dist/providers/deepseek.js +13 -0
  90. package/dist/providers/deepseek.js.map +1 -0
  91. package/dist/providers/gemini.d.ts +18 -0
  92. package/dist/providers/gemini.d.ts.map +1 -0
  93. package/dist/providers/gemini.js +183 -0
  94. package/dist/providers/gemini.js.map +1 -0
  95. package/dist/providers/groq.d.ts +8 -0
  96. package/dist/providers/groq.d.ts.map +1 -0
  97. package/dist/providers/groq.js +13 -0
  98. package/dist/providers/groq.js.map +1 -0
  99. package/dist/providers/index.d.ts +16 -0
  100. package/dist/providers/index.d.ts.map +1 -0
  101. package/dist/providers/index.js +50 -0
  102. package/dist/providers/index.js.map +1 -0
  103. package/dist/providers/lmstudio.d.ts +9 -0
  104. package/dist/providers/lmstudio.d.ts.map +1 -0
  105. package/dist/providers/lmstudio.js +18 -0
  106. package/dist/providers/lmstudio.js.map +1 -0
  107. package/dist/providers/ollama.d.ts +8 -0
  108. package/dist/providers/ollama.d.ts.map +1 -0
  109. package/dist/providers/ollama.js +13 -0
  110. package/dist/providers/ollama.js.map +1 -0
  111. package/dist/providers/openai.d.ts +16 -0
  112. package/dist/providers/openai.d.ts.map +1 -0
  113. package/dist/providers/openai.js +116 -0
  114. package/dist/providers/openai.js.map +1 -0
  115. package/dist/providers/openrouter.d.ts +9 -0
  116. package/dist/providers/openrouter.d.ts.map +1 -0
  117. package/dist/providers/openrouter.js +21 -0
  118. package/dist/providers/openrouter.js.map +1 -0
  119. package/dist/security/index.d.ts +28 -0
  120. package/dist/security/index.d.ts.map +1 -0
  121. package/dist/security/index.js +139 -0
  122. package/dist/security/index.js.map +1 -0
  123. package/dist/session/index.d.ts +36 -0
  124. package/dist/session/index.d.ts.map +1 -0
  125. package/dist/session/index.js +203 -0
  126. package/dist/session/index.js.map +1 -0
  127. package/dist/src/agent/index.d.ts +29 -0
  128. package/dist/src/agent/index.d.ts.map +1 -0
  129. package/dist/src/agent/index.js +504 -0
  130. package/dist/src/agent/index.js.map +1 -0
  131. package/dist/src/cli/agent.d.ts +10 -0
  132. package/dist/src/cli/agent.d.ts.map +1 -0
  133. package/dist/src/cli/agent.js +38 -0
  134. package/dist/src/cli/agent.js.map +1 -0
  135. package/dist/src/cli/index.d.ts +3 -0
  136. package/dist/src/cli/index.d.ts.map +1 -0
  137. package/dist/src/cli/index.js +327 -0
  138. package/dist/src/cli/index.js.map +1 -0
  139. package/dist/src/cli/interactive.d.ts +12 -0
  140. package/dist/src/cli/interactive.d.ts.map +1 -0
  141. package/dist/src/cli/interactive.js +202 -0
  142. package/dist/src/cli/interactive.js.map +1 -0
  143. package/dist/src/config/index.d.ts +25 -0
  144. package/dist/src/config/index.d.ts.map +1 -0
  145. package/dist/src/config/index.js +398 -0
  146. package/dist/src/config/index.js.map +1 -0
  147. package/dist/src/context/index.d.ts +31 -0
  148. package/dist/src/context/index.d.ts.map +1 -0
  149. package/dist/src/context/index.js +208 -0
  150. package/dist/src/context/index.js.map +1 -0
  151. package/dist/src/filesystem/index.d.ts +52 -0
  152. package/dist/src/filesystem/index.d.ts.map +1 -0
  153. package/dist/src/filesystem/index.js +481 -0
  154. package/dist/src/filesystem/index.js.map +1 -0
  155. package/dist/src/git/index.d.ts +41 -0
  156. package/dist/src/git/index.d.ts.map +1 -0
  157. package/dist/src/git/index.js +381 -0
  158. package/dist/src/git/index.js.map +1 -0
  159. package/dist/src/logger/index.d.ts +32 -0
  160. package/dist/src/logger/index.d.ts.map +1 -0
  161. package/dist/src/logger/index.js +199 -0
  162. package/dist/src/logger/index.js.map +1 -0
  163. package/dist/src/memory/index.d.ts +45 -0
  164. package/dist/src/memory/index.d.ts.map +1 -0
  165. package/dist/src/memory/index.js +147 -0
  166. package/dist/src/memory/index.js.map +1 -0
  167. package/dist/src/project/index.d.ts +14 -0
  168. package/dist/src/project/index.d.ts.map +1 -0
  169. package/dist/src/project/index.js +371 -0
  170. package/dist/src/project/index.js.map +1 -0
  171. package/dist/src/providers/anthropic.d.ts +22 -0
  172. package/dist/src/providers/anthropic.d.ts.map +1 -0
  173. package/dist/src/providers/anthropic.js +202 -0
  174. package/dist/src/providers/anthropic.js.map +1 -0
  175. package/dist/src/providers/base.d.ts +29 -0
  176. package/dist/src/providers/base.d.ts.map +1 -0
  177. package/dist/src/providers/base.js +112 -0
  178. package/dist/src/providers/base.js.map +1 -0
  179. package/dist/src/providers/custom.d.ts +8 -0
  180. package/dist/src/providers/custom.d.ts.map +1 -0
  181. package/dist/src/providers/custom.js +13 -0
  182. package/dist/src/providers/custom.js.map +1 -0
  183. package/dist/src/providers/deepseek.d.ts +8 -0
  184. package/dist/src/providers/deepseek.d.ts.map +1 -0
  185. package/dist/src/providers/deepseek.js +13 -0
  186. package/dist/src/providers/deepseek.js.map +1 -0
  187. package/dist/src/providers/gemini.d.ts +18 -0
  188. package/dist/src/providers/gemini.d.ts.map +1 -0
  189. package/dist/src/providers/gemini.js +183 -0
  190. package/dist/src/providers/gemini.js.map +1 -0
  191. package/dist/src/providers/groq.d.ts +8 -0
  192. package/dist/src/providers/groq.d.ts.map +1 -0
  193. package/dist/src/providers/groq.js +13 -0
  194. package/dist/src/providers/groq.js.map +1 -0
  195. package/dist/src/providers/index.d.ts +16 -0
  196. package/dist/src/providers/index.d.ts.map +1 -0
  197. package/dist/src/providers/index.js +50 -0
  198. package/dist/src/providers/index.js.map +1 -0
  199. package/dist/src/providers/lmstudio.d.ts +9 -0
  200. package/dist/src/providers/lmstudio.d.ts.map +1 -0
  201. package/dist/src/providers/lmstudio.js +18 -0
  202. package/dist/src/providers/lmstudio.js.map +1 -0
  203. package/dist/src/providers/ollama.d.ts +8 -0
  204. package/dist/src/providers/ollama.d.ts.map +1 -0
  205. package/dist/src/providers/ollama.js +13 -0
  206. package/dist/src/providers/ollama.js.map +1 -0
  207. package/dist/src/providers/openai.d.ts +16 -0
  208. package/dist/src/providers/openai.d.ts.map +1 -0
  209. package/dist/src/providers/openai.js +116 -0
  210. package/dist/src/providers/openai.js.map +1 -0
  211. package/dist/src/providers/openrouter.d.ts +9 -0
  212. package/dist/src/providers/openrouter.d.ts.map +1 -0
  213. package/dist/src/providers/openrouter.js +21 -0
  214. package/dist/src/providers/openrouter.js.map +1 -0
  215. package/dist/src/security/index.d.ts +28 -0
  216. package/dist/src/security/index.d.ts.map +1 -0
  217. package/dist/src/security/index.js +139 -0
  218. package/dist/src/security/index.js.map +1 -0
  219. package/dist/src/session/index.d.ts +36 -0
  220. package/dist/src/session/index.d.ts.map +1 -0
  221. package/dist/src/session/index.js +203 -0
  222. package/dist/src/session/index.js.map +1 -0
  223. package/dist/src/terminal/index.d.ts +27 -0
  224. package/dist/src/terminal/index.d.ts.map +1 -0
  225. package/dist/src/terminal/index.js +211 -0
  226. package/dist/src/terminal/index.js.map +1 -0
  227. package/dist/src/tools/DeleteFileTool.d.ts +7 -0
  228. package/dist/src/tools/DeleteFileTool.d.ts.map +1 -0
  229. package/dist/src/tools/DeleteFileTool.js +50 -0
  230. package/dist/src/tools/DeleteFileTool.js.map +1 -0
  231. package/dist/src/tools/DirectoryTreeTool.d.ts +7 -0
  232. package/dist/src/tools/DirectoryTreeTool.d.ts.map +1 -0
  233. package/dist/src/tools/DirectoryTreeTool.js +50 -0
  234. package/dist/src/tools/DirectoryTreeTool.js.map +1 -0
  235. package/dist/src/tools/EditFileTool.d.ts +7 -0
  236. package/dist/src/tools/EditFileTool.d.ts.map +1 -0
  237. package/dist/src/tools/EditFileTool.js +69 -0
  238. package/dist/src/tools/EditFileTool.js.map +1 -0
  239. package/dist/src/tools/GitTool.d.ts +9 -0
  240. package/dist/src/tools/GitTool.d.ts.map +1 -0
  241. package/dist/src/tools/GitTool.js +115 -0
  242. package/dist/src/tools/GitTool.js.map +1 -0
  243. package/dist/src/tools/GlobTool.d.ts +7 -0
  244. package/dist/src/tools/GlobTool.d.ts.map +1 -0
  245. package/dist/src/tools/GlobTool.js +51 -0
  246. package/dist/src/tools/GlobTool.js.map +1 -0
  247. package/dist/src/tools/MemoryTool.d.ts +9 -0
  248. package/dist/src/tools/MemoryTool.d.ts.map +1 -0
  249. package/dist/src/tools/MemoryTool.js +109 -0
  250. package/dist/src/tools/MemoryTool.js.map +1 -0
  251. package/dist/src/tools/ReadFileTool.d.ts +7 -0
  252. package/dist/src/tools/ReadFileTool.d.ts.map +1 -0
  253. package/dist/src/tools/ReadFileTool.js +75 -0
  254. package/dist/src/tools/ReadFileTool.js.map +1 -0
  255. package/dist/src/tools/SearchTool.d.ts +7 -0
  256. package/dist/src/tools/SearchTool.d.ts.map +1 -0
  257. package/dist/src/tools/SearchTool.js +67 -0
  258. package/dist/src/tools/SearchTool.js.map +1 -0
  259. package/dist/src/tools/TerminalTool.d.ts +9 -0
  260. package/dist/src/tools/TerminalTool.d.ts.map +1 -0
  261. package/dist/src/tools/TerminalTool.js +93 -0
  262. package/dist/src/tools/TerminalTool.js.map +1 -0
  263. package/dist/src/tools/WebFetchTool.d.ts +7 -0
  264. package/dist/src/tools/WebFetchTool.d.ts.map +1 -0
  265. package/dist/src/tools/WebFetchTool.js +120 -0
  266. package/dist/src/tools/WebFetchTool.js.map +1 -0
  267. package/dist/src/tools/WriteFileTool.d.ts +7 -0
  268. package/dist/src/tools/WriteFileTool.d.ts.map +1 -0
  269. package/dist/src/tools/WriteFileTool.js +46 -0
  270. package/dist/src/tools/WriteFileTool.js.map +1 -0
  271. package/dist/src/tools/base.d.ts +36 -0
  272. package/dist/src/tools/base.d.ts.map +1 -0
  273. package/dist/src/tools/base.js +159 -0
  274. package/dist/src/tools/base.js.map +1 -0
  275. package/dist/src/tools/index.d.ts +14 -0
  276. package/dist/src/tools/index.d.ts.map +1 -0
  277. package/dist/src/tools/index.js +44 -0
  278. package/dist/src/tools/index.js.map +1 -0
  279. package/dist/src/types.d.ts +315 -0
  280. package/dist/src/types.d.ts.map +1 -0
  281. package/dist/src/types.js +2 -0
  282. package/dist/src/types.js.map +1 -0
  283. package/dist/src/ui/index.d.ts +50 -0
  284. package/dist/src/ui/index.d.ts.map +1 -0
  285. package/dist/src/ui/index.js +274 -0
  286. package/dist/src/ui/index.js.map +1 -0
  287. package/dist/src/utils/index.d.ts +26 -0
  288. package/dist/src/utils/index.d.ts.map +1 -0
  289. package/dist/src/utils/index.js +248 -0
  290. package/dist/src/utils/index.js.map +1 -0
  291. package/dist/terminal/index.d.ts +27 -0
  292. package/dist/terminal/index.d.ts.map +1 -0
  293. package/dist/terminal/index.js +211 -0
  294. package/dist/terminal/index.js.map +1 -0
  295. package/dist/tools/DeleteFileTool.d.ts +7 -0
  296. package/dist/tools/DeleteFileTool.d.ts.map +1 -0
  297. package/dist/tools/DeleteFileTool.js +50 -0
  298. package/dist/tools/DeleteFileTool.js.map +1 -0
  299. package/dist/tools/DirectoryTreeTool.d.ts +7 -0
  300. package/dist/tools/DirectoryTreeTool.d.ts.map +1 -0
  301. package/dist/tools/DirectoryTreeTool.js +50 -0
  302. package/dist/tools/DirectoryTreeTool.js.map +1 -0
  303. package/dist/tools/EditFileTool.d.ts +7 -0
  304. package/dist/tools/EditFileTool.d.ts.map +1 -0
  305. package/dist/tools/EditFileTool.js +69 -0
  306. package/dist/tools/EditFileTool.js.map +1 -0
  307. package/dist/tools/GitTool.d.ts +9 -0
  308. package/dist/tools/GitTool.d.ts.map +1 -0
  309. package/dist/tools/GitTool.js +115 -0
  310. package/dist/tools/GitTool.js.map +1 -0
  311. package/dist/tools/GlobTool.d.ts +7 -0
  312. package/dist/tools/GlobTool.d.ts.map +1 -0
  313. package/dist/tools/GlobTool.js +51 -0
  314. package/dist/tools/GlobTool.js.map +1 -0
  315. package/dist/tools/MemoryTool.d.ts +9 -0
  316. package/dist/tools/MemoryTool.d.ts.map +1 -0
  317. package/dist/tools/MemoryTool.js +109 -0
  318. package/dist/tools/MemoryTool.js.map +1 -0
  319. package/dist/tools/ReadFileTool.d.ts +7 -0
  320. package/dist/tools/ReadFileTool.d.ts.map +1 -0
  321. package/dist/tools/ReadFileTool.js +75 -0
  322. package/dist/tools/ReadFileTool.js.map +1 -0
  323. package/dist/tools/SearchTool.d.ts +7 -0
  324. package/dist/tools/SearchTool.d.ts.map +1 -0
  325. package/dist/tools/SearchTool.js +67 -0
  326. package/dist/tools/SearchTool.js.map +1 -0
  327. package/dist/tools/TerminalTool.d.ts +9 -0
  328. package/dist/tools/TerminalTool.d.ts.map +1 -0
  329. package/dist/tools/TerminalTool.js +93 -0
  330. package/dist/tools/TerminalTool.js.map +1 -0
  331. package/dist/tools/WebFetchTool.d.ts +7 -0
  332. package/dist/tools/WebFetchTool.d.ts.map +1 -0
  333. package/dist/tools/WebFetchTool.js +120 -0
  334. package/dist/tools/WebFetchTool.js.map +1 -0
  335. package/dist/tools/WriteFileTool.d.ts +7 -0
  336. package/dist/tools/WriteFileTool.d.ts.map +1 -0
  337. package/dist/tools/WriteFileTool.js +46 -0
  338. package/dist/tools/WriteFileTool.js.map +1 -0
  339. package/dist/tools/base.d.ts +36 -0
  340. package/dist/tools/base.d.ts.map +1 -0
  341. package/dist/tools/base.js +159 -0
  342. package/dist/tools/base.js.map +1 -0
  343. package/dist/tools/index.d.ts +14 -0
  344. package/dist/tools/index.d.ts.map +1 -0
  345. package/dist/tools/index.js +44 -0
  346. package/dist/tools/index.js.map +1 -0
  347. package/dist/types.d.ts +315 -0
  348. package/dist/types.d.ts.map +1 -0
  349. package/dist/types.js +2 -0
  350. package/dist/types.js.map +1 -0
  351. package/dist/ui/CommandPopup.d.ts +33 -0
  352. package/dist/ui/CommandPopup.d.ts.map +1 -0
  353. package/dist/ui/CommandPopup.js +179 -0
  354. package/dist/ui/CommandPopup.js.map +1 -0
  355. package/dist/ui/WelcomeScreen.d.ts +3 -0
  356. package/dist/ui/WelcomeScreen.d.ts.map +1 -0
  357. package/dist/ui/WelcomeScreen.js +168 -0
  358. package/dist/ui/WelcomeScreen.js.map +1 -0
  359. package/dist/ui/index.d.ts +75 -0
  360. package/dist/ui/index.d.ts.map +1 -0
  361. package/dist/ui/index.js +728 -0
  362. package/dist/ui/index.js.map +1 -0
  363. package/dist/ui/phoneOptimizer.d.ts +15 -0
  364. package/dist/ui/phoneOptimizer.d.ts.map +1 -0
  365. package/dist/ui/phoneOptimizer.js +58 -0
  366. package/dist/ui/phoneOptimizer.js.map +1 -0
  367. package/dist/utils/index.d.ts +26 -0
  368. package/dist/utils/index.d.ts.map +1 -0
  369. package/dist/utils/index.js +248 -0
  370. package/dist/utils/index.js.map +1 -0
  371. package/package.json +80 -0
  372. package/scripts/build.mjs +53 -0
  373. package/scripts/setup-termux.sh +84 -0
@@ -0,0 +1,364 @@
1
+ import chalk from 'chalk';
2
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync, unlinkSync, renameSync } from 'fs';
3
+ import { join, relative, resolve, basename, dirname, extname } from 'path';
4
+ import { tui } from '../../ui/index.js';
5
+ import { agent } from '../../agent/index.js';
6
+ import { isBinaryFile, formatBytes, getLanguageFromExtension } from '../../utils/index.js';
7
+ import { phoneConfig } from '../../ui/phoneOptimizer.js';
8
+ export async function handleRead(args) {
9
+ if (args.length === 0) {
10
+ tui.printLine(chalk.red('Usage: /read <path> [--all]'));
11
+ return true;
12
+ }
13
+ const path = args[0];
14
+ const showAll = args.includes('--all');
15
+ const fullPath = resolve(process.cwd(), path);
16
+ try {
17
+ if (!existsSync(fullPath)) {
18
+ tui.printLine(chalk.red(`File not found: ${path}`));
19
+ return true;
20
+ }
21
+ const stat = statSync(fullPath);
22
+ if (stat.isDirectory()) {
23
+ tui.printLine(chalk.cyan(`\n${relative(process.cwd(), fullPath) || '.'}/`));
24
+ printTree(fullPath, '', true);
25
+ return true;
26
+ }
27
+ if (isBinaryFile(fullPath)) {
28
+ tui.printLine(chalk.yellow('Binary file detected. Cannot display.'));
29
+ return true;
30
+ }
31
+ const content = readFileSync(fullPath, 'utf-8');
32
+ const lines = content.split('\n');
33
+ const ext = extname(fullPath);
34
+ const lang = getLanguageFromExtension(ext);
35
+ tui.printLine(chalk.cyan(`\n╔═ ${basename(fullPath)} (${lang}) ═${'═'.repeat(Math.min(40, phoneConfig.terminalWidth - 20))}╗`));
36
+ tui.printLine(chalk.gray(` Path: ${relative(process.cwd(), fullPath)} | ${lines.length} lines | ${formatBytes(stat.size)}`));
37
+ tui.printLine('');
38
+ const maxLines = showAll ? lines.length : Math.min(lines.length, 100);
39
+ const startLine = 0;
40
+ for (let i = startLine; i < maxLines; i++) {
41
+ const lineNum = chalk.gray(String(i + 1).padStart(4, ' '));
42
+ tui.printLine(`${lineNum} ${lines[i]}`);
43
+ }
44
+ if (!showAll && lines.length > 100) {
45
+ tui.printLine(chalk.gray(`\n ... and ${lines.length - 100} more lines. Use /read ${path} --all to show all.`));
46
+ }
47
+ }
48
+ catch (error) {
49
+ tui.printLine(chalk.red(`Error reading file: ${error instanceof Error ? error.message : String(error)}`));
50
+ }
51
+ return true;
52
+ }
53
+ export async function handleEdit(args) {
54
+ if (args.length < 2) {
55
+ tui.printLine(chalk.red('Usage: /edit <path> <instruction>'));
56
+ tui.printLine(chalk.gray(' Example: /edit src/index.ts add error handling for fetch calls'));
57
+ return true;
58
+ }
59
+ const path = args[0];
60
+ const instruction = args.slice(1).join(' ');
61
+ const fullPath = resolve(process.cwd(), path);
62
+ if (!existsSync(fullPath)) {
63
+ tui.printLine(chalk.red(`File not found: ${path}`));
64
+ return true;
65
+ }
66
+ tui.printLine(chalk.cyan(`\nEditing: ${path}`));
67
+ tui.printLine(chalk.gray(` Instruction: ${instruction}`));
68
+ const content = readFileSync(fullPath, 'utf-8');
69
+ const backupDir = join(process.cwd(), '.ys', 'backups');
70
+ if (!existsSync(backupDir))
71
+ mkdirSync(backupDir, { recursive: true });
72
+ const backupPath = join(backupDir, `${basename(fullPath)}.${Date.now()}.bak`);
73
+ writeFileSync(backupPath, content, 'utf-8');
74
+ const result = await agent.chat(`Edit the file "${path}" with this instruction: "${instruction}". Current content:\n\n\`\`\`\n${content}\n\`\`\`\n\nReturn ONLY the complete edited file content, nothing else.`);
75
+ if (result.content) {
76
+ const editedContent = extractCodeContent(result.content);
77
+ if (editedContent && editedContent !== content) {
78
+ showDiff(content, editedContent, path);
79
+ tui.printLine(chalk.gray('\nApply changes? [Y/n]'));
80
+ const confirm = await promptConfirm(true);
81
+ if (confirm) {
82
+ writeFileSync(fullPath, editedContent, 'utf-8');
83
+ tui.printLine(chalk.green(`✓ Saved to ${path}`));
84
+ tui.printLine(chalk.gray(` Backup: ${backupPath}`));
85
+ }
86
+ else {
87
+ tui.printLine(chalk.yellow('Edit cancelled'));
88
+ }
89
+ }
90
+ else {
91
+ tui.printLine(chalk.yellow('No changes to apply'));
92
+ }
93
+ }
94
+ return true;
95
+ }
96
+ export async function handleCreate(args) {
97
+ if (args.length === 0) {
98
+ tui.printLine(chalk.red('Usage: /create <path> [content]'));
99
+ tui.printLine(chalk.gray(' Example: /create src/utils.ts'));
100
+ tui.printLine(chalk.gray(' Example: /create component Button'));
101
+ return true;
102
+ }
103
+ const path = args[0];
104
+ const fullPath = resolve(process.cwd(), path);
105
+ if (existsSync(fullPath)) {
106
+ tui.printLine(chalk.yellow(`File exists: ${path}`));
107
+ tui.printLine(chalk.gray('Overwrite? [y/N]'));
108
+ const confirm = await promptConfirm(false);
109
+ if (!confirm) {
110
+ tui.printLine(chalk.yellow('Cancelled'));
111
+ return true;
112
+ }
113
+ }
114
+ const dir = dirname(fullPath);
115
+ if (!existsSync(dir))
116
+ mkdirSync(dir, { recursive: true });
117
+ const initialContent = args.length > 1 ? args.slice(1).join(' ') : '';
118
+ if (initialContent) {
119
+ writeFileSync(fullPath, initialContent, 'utf-8');
120
+ tui.printLine(chalk.green(`✓ Created ${path}`));
121
+ }
122
+ else {
123
+ const ext = extname(fullPath);
124
+ const template = getTemplate(ext);
125
+ writeFileSync(fullPath, template, 'utf-8');
126
+ tui.printLine(chalk.green(`✓ Created ${path} with template`));
127
+ }
128
+ return true;
129
+ }
130
+ export async function handleDelete(args) {
131
+ if (args.length === 0) {
132
+ tui.printLine(chalk.red('Usage: /delete <path> [--hard]'));
133
+ return true;
134
+ }
135
+ const path = args[0];
136
+ const hardDelete = args.includes('--hard');
137
+ const fullPath = resolve(process.cwd(), path);
138
+ if (!existsSync(fullPath)) {
139
+ tui.printLine(chalk.red(`File not found: ${path}`));
140
+ return true;
141
+ }
142
+ tui.printLine(chalk.yellow(`Delete ${path}? This cannot be undone. [y/N]`));
143
+ const confirm = await promptConfirm(false);
144
+ if (!confirm) {
145
+ tui.printLine(chalk.yellow('Cancelled'));
146
+ return true;
147
+ }
148
+ if (hardDelete) {
149
+ unlinkSync(fullPath);
150
+ tui.printLine(chalk.green(`✓ Permanently deleted ${path}`));
151
+ }
152
+ else {
153
+ const trashDir = join(process.cwd(), '.ys', 'trash');
154
+ if (!existsSync(trashDir))
155
+ mkdirSync(trashDir, { recursive: true });
156
+ const trashPath = join(trashDir, `${basename(fullPath)}.${Date.now()}`);
157
+ renameSync(fullPath, trashPath);
158
+ tui.printLine(chalk.green(`✓ Moved to trash: ${path}`));
159
+ tui.printLine(chalk.gray(` Trash: ${trashPath}`));
160
+ }
161
+ return true;
162
+ }
163
+ export async function handleSearch(args) {
164
+ if (args.length === 0) {
165
+ tui.printLine(chalk.red('Usage: /search <query> [--ext <extension>]'));
166
+ return true;
167
+ }
168
+ const query = args[0];
169
+ const extFilter = args.indexOf('--ext') >= 0 ? args[args.indexOf('--ext') + 1] : null;
170
+ tui.printLine(chalk.cyan(`\nSearching for: ${chalk.white(query)}`));
171
+ try {
172
+ const { glob } = require('fast-glob');
173
+ const { readFileSync } = require('fs');
174
+ const patterns = extFilter ? [`**/*.${extFilter}`] : ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.py', '**/*.json', '**/*.md', '**/*.html', '**/*.css'];
175
+ const ignore = ['**/node_modules/**', '**/dist/**', '**/.git/**', '**/build/**'];
176
+ const files = await glob(patterns, { ignore, cwd: process.cwd() });
177
+ let totalMatches = 0;
178
+ const results = [];
179
+ for (const file of files.slice(0, 200)) {
180
+ try {
181
+ const content = readFileSync(resolve(process.cwd(), file), 'utf-8');
182
+ const lines = content.split('\n');
183
+ for (let i = 0; i < lines.length; i++) {
184
+ if (lines[i].toLowerCase().includes(query.toLowerCase())) {
185
+ results.push({ file, line: i + 1, content: lines[i].trim() });
186
+ totalMatches++;
187
+ if (totalMatches >= 30)
188
+ break;
189
+ }
190
+ }
191
+ }
192
+ catch { }
193
+ if (totalMatches >= 30)
194
+ break;
195
+ }
196
+ if (results.length === 0) {
197
+ tui.printLine(chalk.yellow('No matches found'));
198
+ }
199
+ else {
200
+ tui.printLine(chalk.gray(`\nFound ${results.length} matches:`));
201
+ for (const r of results) {
202
+ const line = chalk.yellow(String(r.line));
203
+ const file = chalk.white(r.file);
204
+ const match = highlightMatch(r.content, query);
205
+ tui.printLine(` ${file}:${line}: ${match}`);
206
+ }
207
+ }
208
+ }
209
+ catch (error) {
210
+ tui.printLine(chalk.red(`Search error: ${error instanceof Error ? error.message : String(error)}`));
211
+ }
212
+ return true;
213
+ }
214
+ export async function handleList(args) {
215
+ const dir = args[0] || '.';
216
+ const fullPath = resolve(process.cwd(), dir);
217
+ if (!existsSync(fullPath)) {
218
+ tui.printLine(chalk.red(`Directory not found: ${dir}`));
219
+ return true;
220
+ }
221
+ const stat = statSync(fullPath);
222
+ if (!stat.isDirectory()) {
223
+ tui.printLine(chalk.yellow('Not a directory'));
224
+ return true;
225
+ }
226
+ tui.printLine(chalk.cyan(`\n${relative(process.cwd(), fullPath) || '.'}/`));
227
+ printTree(fullPath, '', true);
228
+ return true;
229
+ }
230
+ export async function handleRefactor(args) {
231
+ if (args.length < 2) {
232
+ tui.printLine(chalk.red('Usage: /refactor <file> <instruction>'));
233
+ return true;
234
+ }
235
+ const path = args[0];
236
+ const instruction = args.slice(1).join(' ');
237
+ const fullPath = resolve(process.cwd(), path);
238
+ if (!existsSync(fullPath)) {
239
+ tui.printLine(chalk.red(`File not found: ${path}`));
240
+ return true;
241
+ }
242
+ tui.printLine(chalk.cyan(`\nRefactoring: ${path}`));
243
+ tui.printLine(chalk.gray(` ${instruction}`));
244
+ const content = readFileSync(fullPath, 'utf-8');
245
+ const backupDir = join(process.cwd(), '.ys', 'backups');
246
+ if (!existsSync(backupDir))
247
+ mkdirSync(backupDir, { recursive: true });
248
+ writeFileSync(join(backupDir, `${basename(fullPath)}.${Date.now()}.bak`), content, 'utf-8');
249
+ const result = await agent.chat(`Refactor the file "${path}" with this instruction: "${instruction}". Current content:\n\n\`\`\`\n${content}\n\`\`\`\n\nReturn ONLY the complete refactored file content, nothing else.`);
250
+ if (result.content) {
251
+ const refactored = extractCodeContent(result.content);
252
+ if (refactored && refactored !== content) {
253
+ showDiff(content, refactored, path);
254
+ tui.printLine(chalk.gray('\nApply refactoring? [Y/n]'));
255
+ const confirm = await promptConfirm(true);
256
+ if (confirm) {
257
+ writeFileSync(fullPath, refactored, 'utf-8');
258
+ tui.printLine(chalk.green(`✓ Refactored ${path}`));
259
+ }
260
+ else {
261
+ tui.printLine(chalk.yellow('Refactoring cancelled'));
262
+ }
263
+ }
264
+ else {
265
+ tui.printLine(chalk.yellow('No changes to apply'));
266
+ }
267
+ }
268
+ return true;
269
+ }
270
+ function printTree(dir, prefix, isRoot) {
271
+ try {
272
+ const entries = readdirSync(dir).filter((e) => !e.startsWith('.'));
273
+ for (let i = 0; i < entries.length; i++) {
274
+ const entry = entries[i];
275
+ const fullPath = join(dir, entry);
276
+ const isLast = i === entries.length - 1;
277
+ const stat = statSync(fullPath);
278
+ const connector = isLast ? '└── ' : '├── ';
279
+ if (stat.isDirectory()) {
280
+ tui.printLine(`${prefix}${connector}${chalk.cyan(entry)}/`);
281
+ const newPrefix = prefix + (isLast ? ' ' : '│ ');
282
+ printTree(fullPath, newPrefix, false);
283
+ }
284
+ else {
285
+ const ext = extname(entry);
286
+ const color = getFileColor(ext);
287
+ tui.printLine(`${prefix}${connector}${color(entry)}`);
288
+ }
289
+ }
290
+ }
291
+ catch { }
292
+ }
293
+ function getFileColor(ext) {
294
+ const map = {
295
+ '.ts': chalk.blue, '.tsx': chalk.blue, '.js': chalk.yellow, '.jsx': chalk.yellow,
296
+ '.json': chalk.gray, '.md': chalk.white, '.py': chalk.green, '.css': chalk.magenta,
297
+ '.html': chalk.red, '.yml': chalk.gray, '.yaml': chalk.gray, '.sh': chalk.green,
298
+ };
299
+ return map[ext] || chalk.white;
300
+ }
301
+ function showDiff(oldContent, newContent, path) {
302
+ const oldLines = oldContent.split('\n');
303
+ const newLines = newContent.split('\n');
304
+ tui.printLine(chalk.cyan(`\nChanges for ${path}:`));
305
+ const maxLen = Math.max(oldLines.length, newLines.length);
306
+ for (let i = 0; i < maxLen; i++) {
307
+ if (oldLines[i] !== newLines[i]) {
308
+ if (i < oldLines.length) {
309
+ tui.printLine(chalk.red(` - ${oldLines[i]}`));
310
+ }
311
+ if (i < newLines.length) {
312
+ tui.printLine(chalk.green(` + ${newLines[i]}`));
313
+ }
314
+ }
315
+ }
316
+ }
317
+ function extractCodeContent(text) {
318
+ const codeBlockRegex = /```(?:\w+)?\n([\s\S]*?)```/;
319
+ const match = text.match(codeBlockRegex);
320
+ if (match)
321
+ return match[1].trim();
322
+ const lines = text.split('\n');
323
+ if (lines.length > 1)
324
+ return text.trim();
325
+ return null;
326
+ }
327
+ function highlightMatch(line, query) {
328
+ const lower = line.toLowerCase();
329
+ const qLower = query.toLowerCase();
330
+ const idx = lower.indexOf(qLower);
331
+ if (idx === -1)
332
+ return line;
333
+ return line.slice(0, idx) + chalk.yellow(line.slice(idx, idx + query.length)) + line.slice(idx + query.length);
334
+ }
335
+ function getTemplate(ext) {
336
+ const templates = {
337
+ '.ts': '// Generated by YS Code Agent\n\nexport function main(): void {\n console.log("Hello, World!");\n}\n\nmain();\n',
338
+ '.tsx': 'import React from "react";\n\ninterface Props {}\n\nexport const Component: React.FC<Props> = () => {\n return <div>Hello, World!</div>;\n};\n',
339
+ '.js': '// Generated by YS Code Agent\n\nfunction main() {\n console.log("Hello, World!");\n}\n\nmain();\n',
340
+ '.py': '# Generated by YS Code Agent\n\ndef main():\n print("Hello, World!")\n\nif __name__ == "__main__":\n main()\n',
341
+ '.html': '<!DOCTYPE html>\n<html lang="en">\n<head>\n <meta charset="UTF-8">\n <meta name="viewport" content="width=device-width, initial-scale=1.0">\n <title>Document</title>\n</head>\n<body>\n <h1>Hello, World!</h1>\n</body>\n</html>\n',
342
+ '.json': '{\n "name": "project",\n "version": "1.0.0",\n "description": ""\n}\n',
343
+ '.md': '# Project\n\n## Description\n\n## Usage\n\n## Notes\n',
344
+ };
345
+ return templates[ext] || `// Generated by YS Code Agent\n`;
346
+ }
347
+ function promptConfirm(defaultYes) {
348
+ return new Promise((resolve) => {
349
+ const { createInterface } = require('readline');
350
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
351
+ const prompt = defaultYes ? '[Y/n] ' : '[y/N] ';
352
+ rl.question(prompt, (answer) => {
353
+ rl.close();
354
+ const a = answer.trim().toLowerCase();
355
+ if (defaultYes) {
356
+ resolve(a !== 'n' && a !== 'no');
357
+ }
358
+ else {
359
+ resolve(a === 'y' || a === 'yes');
360
+ }
361
+ });
362
+ });
363
+ }
364
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/commands/handlers/file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleGit(args: string[]): Promise<boolean>;
2
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/git.ts"],"names":[],"mappings":"AAMA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA4ChE"}