hanseol-dev 4.0.12

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 (720) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +267 -0
  3. package/dist/agents/base/base-agent.d.ts +38 -0
  4. package/dist/agents/base/base-agent.d.ts.map +1 -0
  5. package/dist/agents/base/base-agent.js +69 -0
  6. package/dist/agents/base/base-agent.js.map +1 -0
  7. package/dist/agents/docs-search/index.d.ts +33 -0
  8. package/dist/agents/docs-search/index.d.ts.map +1 -0
  9. package/dist/agents/docs-search/index.js +244 -0
  10. package/dist/agents/docs-search/index.js.map +1 -0
  11. package/dist/agents/index.d.ts +4 -0
  12. package/dist/agents/index.d.ts.map +1 -0
  13. package/dist/agents/index.js +4 -0
  14. package/dist/agents/index.js.map +1 -0
  15. package/dist/agents/planner/index.d.ts +19 -0
  16. package/dist/agents/planner/index.d.ts.map +1 -0
  17. package/dist/agents/planner/index.js +339 -0
  18. package/dist/agents/planner/index.js.map +1 -0
  19. package/dist/cli.d.ts +3 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +205 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/constants.d.ts +10 -0
  24. package/dist/constants.d.ts.map +1 -0
  25. package/dist/constants.js +12 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/core/auth/oauth-login.d.ts +19 -0
  28. package/dist/core/auth/oauth-login.d.ts.map +1 -0
  29. package/dist/core/auth/oauth-login.js +197 -0
  30. package/dist/core/auth/oauth-login.js.map +1 -0
  31. package/dist/core/compact/compact-manager.d.ts +22 -0
  32. package/dist/core/compact/compact-manager.d.ts.map +1 -0
  33. package/dist/core/compact/compact-manager.js +75 -0
  34. package/dist/core/compact/compact-manager.js.map +1 -0
  35. package/dist/core/compact/compact-prompts.d.ts +11 -0
  36. package/dist/core/compact/compact-prompts.d.ts.map +1 -0
  37. package/dist/core/compact/compact-prompts.js +90 -0
  38. package/dist/core/compact/compact-prompts.js.map +1 -0
  39. package/dist/core/compact/context-tracker.d.ts +28 -0
  40. package/dist/core/compact/context-tracker.d.ts.map +1 -0
  41. package/dist/core/compact/context-tracker.js +71 -0
  42. package/dist/core/compact/context-tracker.js.map +1 -0
  43. package/dist/core/compact/index.d.ts +4 -0
  44. package/dist/core/compact/index.d.ts.map +1 -0
  45. package/dist/core/compact/index.js +4 -0
  46. package/dist/core/compact/index.js.map +1 -0
  47. package/dist/core/config/config-manager.d.ts +43 -0
  48. package/dist/core/config/config-manager.d.ts.map +1 -0
  49. package/dist/core/config/config-manager.js +254 -0
  50. package/dist/core/config/config-manager.js.map +1 -0
  51. package/dist/core/config/index.d.ts +2 -0
  52. package/dist/core/config/index.d.ts.map +1 -0
  53. package/dist/core/config/index.js +2 -0
  54. package/dist/core/config/index.js.map +1 -0
  55. package/dist/core/docs-manager.d.ts +46 -0
  56. package/dist/core/docs-manager.d.ts.map +1 -0
  57. package/dist/core/docs-manager.js +475 -0
  58. package/dist/core/docs-manager.js.map +1 -0
  59. package/dist/core/llm/index.d.ts +2 -0
  60. package/dist/core/llm/index.d.ts.map +1 -0
  61. package/dist/core/llm/index.js +2 -0
  62. package/dist/core/llm/index.js.map +1 -0
  63. package/dist/core/llm/llm-client.d.ts +98 -0
  64. package/dist/core/llm/llm-client.d.ts.map +1 -0
  65. package/dist/core/llm/llm-client.js +1024 -0
  66. package/dist/core/llm/llm-client.js.map +1 -0
  67. package/dist/core/s3-auto-updater.d.ts +44 -0
  68. package/dist/core/s3-auto-updater.d.ts.map +1 -0
  69. package/dist/core/s3-auto-updater.js +158 -0
  70. package/dist/core/s3-auto-updater.js.map +1 -0
  71. package/dist/core/session/index.d.ts +2 -0
  72. package/dist/core/session/index.d.ts.map +1 -0
  73. package/dist/core/session/index.js +2 -0
  74. package/dist/core/session/index.js.map +1 -0
  75. package/dist/core/session/session-manager.d.ts +71 -0
  76. package/dist/core/session/session-manager.d.ts.map +1 -0
  77. package/dist/core/session/session-manager.js +250 -0
  78. package/dist/core/session/session-manager.js.map +1 -0
  79. package/dist/core/slash-command-handler.d.ts +32 -0
  80. package/dist/core/slash-command-handler.d.ts.map +1 -0
  81. package/dist/core/slash-command-handler.js +455 -0
  82. package/dist/core/slash-command-handler.js.map +1 -0
  83. package/dist/core/usage-tracker.d.ts +74 -0
  84. package/dist/core/usage-tracker.d.ts.map +1 -0
  85. package/dist/core/usage-tracker.js +279 -0
  86. package/dist/core/usage-tracker.js.map +1 -0
  87. package/dist/errors/base.d.ts +22 -0
  88. package/dist/errors/base.d.ts.map +1 -0
  89. package/dist/errors/base.js +43 -0
  90. package/dist/errors/base.js.map +1 -0
  91. package/dist/errors/file.d.ts +31 -0
  92. package/dist/errors/file.d.ts.map +1 -0
  93. package/dist/errors/file.js +110 -0
  94. package/dist/errors/file.js.map +1 -0
  95. package/dist/errors/index.d.ts +12 -0
  96. package/dist/errors/index.d.ts.map +1 -0
  97. package/dist/errors/index.js +42 -0
  98. package/dist/errors/index.js.map +1 -0
  99. package/dist/errors/llm.d.ts +26 -0
  100. package/dist/errors/llm.d.ts.map +1 -0
  101. package/dist/errors/llm.js +86 -0
  102. package/dist/errors/llm.js.map +1 -0
  103. package/dist/errors/network.d.ts +19 -0
  104. package/dist/errors/network.d.ts.map +1 -0
  105. package/dist/errors/network.js +82 -0
  106. package/dist/errors/network.js.map +1 -0
  107. package/dist/errors/quota.d.ts +25 -0
  108. package/dist/errors/quota.d.ts.map +1 -0
  109. package/dist/errors/quota.js +10 -0
  110. package/dist/errors/quota.js.map +1 -0
  111. package/dist/errors/validation.d.ts +19 -0
  112. package/dist/errors/validation.d.ts.map +1 -0
  113. package/dist/errors/validation.js +62 -0
  114. package/dist/errors/validation.js.map +1 -0
  115. package/dist/eval/eval-runner.d.ts +24 -0
  116. package/dist/eval/eval-runner.d.ts.map +1 -0
  117. package/dist/eval/eval-runner.js +291 -0
  118. package/dist/eval/eval-runner.js.map +1 -0
  119. package/dist/eval/index.d.ts +3 -0
  120. package/dist/eval/index.d.ts.map +1 -0
  121. package/dist/eval/index.js +3 -0
  122. package/dist/eval/index.js.map +1 -0
  123. package/dist/eval/types.d.ts +77 -0
  124. package/dist/eval/types.d.ts.map +1 -0
  125. package/dist/eval/types.js +2 -0
  126. package/dist/eval/types.js.map +1 -0
  127. package/dist/index.d.ts +4 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +6 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/orchestration/index.d.ts +4 -0
  132. package/dist/orchestration/index.d.ts.map +1 -0
  133. package/dist/orchestration/index.js +3 -0
  134. package/dist/orchestration/index.js.map +1 -0
  135. package/dist/orchestration/plan-executor.d.ts +28 -0
  136. package/dist/orchestration/plan-executor.d.ts.map +1 -0
  137. package/dist/orchestration/plan-executor.js +376 -0
  138. package/dist/orchestration/plan-executor.js.map +1 -0
  139. package/dist/orchestration/types.d.ts +65 -0
  140. package/dist/orchestration/types.d.ts.map +1 -0
  141. package/dist/orchestration/types.js +2 -0
  142. package/dist/orchestration/types.js.map +1 -0
  143. package/dist/orchestration/utils.d.ts +13 -0
  144. package/dist/orchestration/utils.d.ts.map +1 -0
  145. package/dist/orchestration/utils.js +81 -0
  146. package/dist/orchestration/utils.js.map +1 -0
  147. package/dist/prompts/agents/docs-search-decision.d.ts +6 -0
  148. package/dist/prompts/agents/docs-search-decision.d.ts.map +1 -0
  149. package/dist/prompts/agents/docs-search-decision.js +46 -0
  150. package/dist/prompts/agents/docs-search-decision.js.map +1 -0
  151. package/dist/prompts/agents/docs-search.d.ts +4 -0
  152. package/dist/prompts/agents/docs-search.d.ts.map +1 -0
  153. package/dist/prompts/agents/docs-search.js +70 -0
  154. package/dist/prompts/agents/docs-search.js.map +1 -0
  155. package/dist/prompts/agents/planning.d.ts +4 -0
  156. package/dist/prompts/agents/planning.d.ts.map +1 -0
  157. package/dist/prompts/agents/planning.js +179 -0
  158. package/dist/prompts/agents/planning.js.map +1 -0
  159. package/dist/prompts/index.d.ts +10 -0
  160. package/dist/prompts/index.d.ts.map +1 -0
  161. package/dist/prompts/index.js +10 -0
  162. package/dist/prompts/index.js.map +1 -0
  163. package/dist/prompts/shared/codebase-rules.d.ts +4 -0
  164. package/dist/prompts/shared/codebase-rules.d.ts.map +1 -0
  165. package/dist/prompts/shared/codebase-rules.js +16 -0
  166. package/dist/prompts/shared/codebase-rules.js.map +1 -0
  167. package/dist/prompts/shared/git-rules.d.ts +2 -0
  168. package/dist/prompts/shared/git-rules.d.ts.map +1 -0
  169. package/dist/prompts/shared/git-rules.js +87 -0
  170. package/dist/prompts/shared/git-rules.js.map +1 -0
  171. package/dist/prompts/shared/language-rules.d.ts +4 -0
  172. package/dist/prompts/shared/language-rules.d.ts.map +1 -0
  173. package/dist/prompts/shared/language-rules.js +22 -0
  174. package/dist/prompts/shared/language-rules.js.map +1 -0
  175. package/dist/prompts/shared/tool-usage.d.ts +12 -0
  176. package/dist/prompts/shared/tool-usage.d.ts.map +1 -0
  177. package/dist/prompts/shared/tool-usage.js +51 -0
  178. package/dist/prompts/shared/tool-usage.js.map +1 -0
  179. package/dist/prompts/system/compact.d.ts +3 -0
  180. package/dist/prompts/system/compact.d.ts.map +1 -0
  181. package/dist/prompts/system/compact.js +73 -0
  182. package/dist/prompts/system/compact.js.map +1 -0
  183. package/dist/prompts/system/plan-execute.d.ts +3 -0
  184. package/dist/prompts/system/plan-execute.d.ts.map +1 -0
  185. package/dist/prompts/system/plan-execute.js +119 -0
  186. package/dist/prompts/system/plan-execute.js.map +1 -0
  187. package/dist/tools/browser/browser-client.d.ts +119 -0
  188. package/dist/tools/browser/browser-client.d.ts.map +1 -0
  189. package/dist/tools/browser/browser-client.js +1083 -0
  190. package/dist/tools/browser/browser-client.js.map +1 -0
  191. package/dist/tools/browser/browser-tools.d.ts +23 -0
  192. package/dist/tools/browser/browser-tools.d.ts.map +1 -0
  193. package/dist/tools/browser/browser-tools.js +1347 -0
  194. package/dist/tools/browser/browser-tools.js.map +1 -0
  195. package/dist/tools/browser/index.d.ts +7 -0
  196. package/dist/tools/browser/index.d.ts.map +1 -0
  197. package/dist/tools/browser/index.js +17 -0
  198. package/dist/tools/browser/index.js.map +1 -0
  199. package/dist/tools/index.d.ts +4 -0
  200. package/dist/tools/index.d.ts.map +1 -0
  201. package/dist/tools/index.js +4 -0
  202. package/dist/tools/index.js.map +1 -0
  203. package/dist/tools/llm/agents/docs-search-tools.d.ts +17 -0
  204. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +1 -0
  205. package/dist/tools/llm/agents/docs-search-tools.js +265 -0
  206. package/dist/tools/llm/agents/docs-search-tools.js.map +1 -0
  207. package/dist/tools/llm/agents/index.d.ts +4 -0
  208. package/dist/tools/llm/agents/index.d.ts.map +1 -0
  209. package/dist/tools/llm/agents/index.js +3 -0
  210. package/dist/tools/llm/agents/index.js.map +1 -0
  211. package/dist/tools/llm/index.d.ts +3 -0
  212. package/dist/tools/llm/index.d.ts.map +1 -0
  213. package/dist/tools/llm/index.js +3 -0
  214. package/dist/tools/llm/index.js.map +1 -0
  215. package/dist/tools/llm/simple/ask-user-tool.d.ts +5 -0
  216. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +1 -0
  217. package/dist/tools/llm/simple/ask-user-tool.js +7 -0
  218. package/dist/tools/llm/simple/ask-user-tool.js.map +1 -0
  219. package/dist/tools/llm/simple/background-bash-tool.d.ts +30 -0
  220. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +1 -0
  221. package/dist/tools/llm/simple/background-bash-tool.js +320 -0
  222. package/dist/tools/llm/simple/background-bash-tool.js.map +1 -0
  223. package/dist/tools/llm/simple/background-powershell-tool.d.ts +30 -0
  224. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +1 -0
  225. package/dist/tools/llm/simple/background-powershell-tool.js +302 -0
  226. package/dist/tools/llm/simple/background-powershell-tool.js.map +1 -0
  227. package/dist/tools/llm/simple/bash-tool.d.ts +4 -0
  228. package/dist/tools/llm/simple/bash-tool.d.ts.map +1 -0
  229. package/dist/tools/llm/simple/bash-tool.js +167 -0
  230. package/dist/tools/llm/simple/bash-tool.js.map +1 -0
  231. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts +6 -0
  232. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +1 -0
  233. package/dist/tools/llm/simple/docs-search-agent-tool.js +104 -0
  234. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +1 -0
  235. package/dist/tools/llm/simple/file-tools.d.ts +13 -0
  236. package/dist/tools/llm/simple/file-tools.d.ts.map +1 -0
  237. package/dist/tools/llm/simple/file-tools.js +751 -0
  238. package/dist/tools/llm/simple/file-tools.js.map +1 -0
  239. package/dist/tools/llm/simple/final-response-tool.d.ts +12 -0
  240. package/dist/tools/llm/simple/final-response-tool.d.ts.map +1 -0
  241. package/dist/tools/llm/simple/final-response-tool.js +107 -0
  242. package/dist/tools/llm/simple/final-response-tool.js.map +1 -0
  243. package/dist/tools/llm/simple/index.d.ts +11 -0
  244. package/dist/tools/llm/simple/index.d.ts.map +1 -0
  245. package/dist/tools/llm/simple/index.js +20 -0
  246. package/dist/tools/llm/simple/index.js.map +1 -0
  247. package/dist/tools/llm/simple/planning-tools.d.ts +6 -0
  248. package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -0
  249. package/dist/tools/llm/simple/planning-tools.js +171 -0
  250. package/dist/tools/llm/simple/planning-tools.js.map +1 -0
  251. package/dist/tools/llm/simple/powershell-tool.d.ts +4 -0
  252. package/dist/tools/llm/simple/powershell-tool.d.ts.map +1 -0
  253. package/dist/tools/llm/simple/powershell-tool.js +150 -0
  254. package/dist/tools/llm/simple/powershell-tool.js.map +1 -0
  255. package/dist/tools/llm/simple/simple-tool-executor.d.ts +38 -0
  256. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +1 -0
  257. package/dist/tools/llm/simple/simple-tool-executor.js +134 -0
  258. package/dist/tools/llm/simple/simple-tool-executor.js.map +1 -0
  259. package/dist/tools/llm/simple/todo-tools.d.ts +15 -0
  260. package/dist/tools/llm/simple/todo-tools.d.ts.map +1 -0
  261. package/dist/tools/llm/simple/todo-tools.js +145 -0
  262. package/dist/tools/llm/simple/todo-tools.js.map +1 -0
  263. package/dist/tools/llm/simple/user-interaction-tools.d.ts +22 -0
  264. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +1 -0
  265. package/dist/tools/llm/simple/user-interaction-tools.js +168 -0
  266. package/dist/tools/llm/simple/user-interaction-tools.js.map +1 -0
  267. package/dist/tools/office/common/constants.d.ts +194 -0
  268. package/dist/tools/office/common/constants.d.ts.map +1 -0
  269. package/dist/tools/office/common/constants.js +169 -0
  270. package/dist/tools/office/common/constants.js.map +1 -0
  271. package/dist/tools/office/common/index.d.ts +4 -0
  272. package/dist/tools/office/common/index.d.ts.map +1 -0
  273. package/dist/tools/office/common/index.js +3 -0
  274. package/dist/tools/office/common/index.js.map +1 -0
  275. package/dist/tools/office/common/types.d.ts +82 -0
  276. package/dist/tools/office/common/types.d.ts.map +1 -0
  277. package/dist/tools/office/common/types.js +2 -0
  278. package/dist/tools/office/common/types.js.map +1 -0
  279. package/dist/tools/office/common/utils.d.ts +14 -0
  280. package/dist/tools/office/common/utils.d.ts.map +1 -0
  281. package/dist/tools/office/common/utils.js +58 -0
  282. package/dist/tools/office/common/utils.js.map +1 -0
  283. package/dist/tools/office/excel-client.d.ts +212 -0
  284. package/dist/tools/office/excel-client.d.ts.map +1 -0
  285. package/dist/tools/office/excel-client.js +2242 -0
  286. package/dist/tools/office/excel-client.js.map +1 -0
  287. package/dist/tools/office/excel-tools/advanced.d.ts +13 -0
  288. package/dist/tools/office/excel-tools/advanced.d.ts.map +1 -0
  289. package/dist/tools/office/excel-tools/advanced.js +364 -0
  290. package/dist/tools/office/excel-tools/advanced.js.map +1 -0
  291. package/dist/tools/office/excel-tools/cells.d.ts +10 -0
  292. package/dist/tools/office/excel-tools/cells.d.ts.map +1 -0
  293. package/dist/tools/office/excel-tools/cells.js +279 -0
  294. package/dist/tools/office/excel-tools/cells.js.map +1 -0
  295. package/dist/tools/office/excel-tools/charts.d.ts +12 -0
  296. package/dist/tools/office/excel-tools/charts.d.ts.map +1 -0
  297. package/dist/tools/office/excel-tools/charts.js +373 -0
  298. package/dist/tools/office/excel-tools/charts.js.map +1 -0
  299. package/dist/tools/office/excel-tools/comments.d.ts +7 -0
  300. package/dist/tools/office/excel-tools/comments.d.ts.map +1 -0
  301. package/dist/tools/office/excel-tools/comments.js +150 -0
  302. package/dist/tools/office/excel-tools/comments.js.map +1 -0
  303. package/dist/tools/office/excel-tools/data-ops.d.ts +14 -0
  304. package/dist/tools/office/excel-tools/data-ops.d.ts.map +1 -0
  305. package/dist/tools/office/excel-tools/data-ops.js +420 -0
  306. package/dist/tools/office/excel-tools/data-ops.js.map +1 -0
  307. package/dist/tools/office/excel-tools/export.d.ts +8 -0
  308. package/dist/tools/office/excel-tools/export.d.ts.map +1 -0
  309. package/dist/tools/office/excel-tools/export.js +191 -0
  310. package/dist/tools/office/excel-tools/export.js.map +1 -0
  311. package/dist/tools/office/excel-tools/formatting.d.ts +12 -0
  312. package/dist/tools/office/excel-tools/formatting.d.ts.map +1 -0
  313. package/dist/tools/office/excel-tools/formatting.js +350 -0
  314. package/dist/tools/office/excel-tools/formatting.js.map +1 -0
  315. package/dist/tools/office/excel-tools/formulas.d.ts +11 -0
  316. package/dist/tools/office/excel-tools/formulas.d.ts.map +1 -0
  317. package/dist/tools/office/excel-tools/formulas.js +313 -0
  318. package/dist/tools/office/excel-tools/formulas.js.map +1 -0
  319. package/dist/tools/office/excel-tools/index.d.ts +21 -0
  320. package/dist/tools/office/excel-tools/index.d.ts.map +1 -0
  321. package/dist/tools/office/excel-tools/index.js +57 -0
  322. package/dist/tools/office/excel-tools/index.js.map +1 -0
  323. package/dist/tools/office/excel-tools/launch.d.ts +10 -0
  324. package/dist/tools/office/excel-tools/launch.d.ts.map +1 -0
  325. package/dist/tools/office/excel-tools/launch.js +248 -0
  326. package/dist/tools/office/excel-tools/launch.js.map +1 -0
  327. package/dist/tools/office/excel-tools/media.d.ts +10 -0
  328. package/dist/tools/office/excel-tools/media.d.ts.map +1 -0
  329. package/dist/tools/office/excel-tools/media.js +260 -0
  330. package/dist/tools/office/excel-tools/media.js.map +1 -0
  331. package/dist/tools/office/excel-tools/named-ranges.d.ts +6 -0
  332. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +1 -0
  333. package/dist/tools/office/excel-tools/named-ranges.js +113 -0
  334. package/dist/tools/office/excel-tools/named-ranges.js.map +1 -0
  335. package/dist/tools/office/excel-tools/page-setup.d.ts +6 -0
  336. package/dist/tools/office/excel-tools/page-setup.d.ts.map +1 -0
  337. package/dist/tools/office/excel-tools/page-setup.js +144 -0
  338. package/dist/tools/office/excel-tools/page-setup.js.map +1 -0
  339. package/dist/tools/office/excel-tools/pivot-table.d.ts +7 -0
  340. package/dist/tools/office/excel-tools/pivot-table.d.ts.map +1 -0
  341. package/dist/tools/office/excel-tools/pivot-table.js +151 -0
  342. package/dist/tools/office/excel-tools/pivot-table.js.map +1 -0
  343. package/dist/tools/office/excel-tools/protection.d.ts +5 -0
  344. package/dist/tools/office/excel-tools/protection.d.ts.map +1 -0
  345. package/dist/tools/office/excel-tools/protection.js +75 -0
  346. package/dist/tools/office/excel-tools/protection.js.map +1 -0
  347. package/dist/tools/office/excel-tools/rows-columns.d.ts +15 -0
  348. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +1 -0
  349. package/dist/tools/office/excel-tools/rows-columns.js +440 -0
  350. package/dist/tools/office/excel-tools/rows-columns.js.map +1 -0
  351. package/dist/tools/office/excel-tools/sheets.d.ts +16 -0
  352. package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -0
  353. package/dist/tools/office/excel-tools/sheets.js +465 -0
  354. package/dist/tools/office/excel-tools/sheets.js.map +1 -0
  355. package/dist/tools/office/excel-tools/tables.d.ts +7 -0
  356. package/dist/tools/office/excel-tools/tables.d.ts.map +1 -0
  357. package/dist/tools/office/excel-tools/tables.js +151 -0
  358. package/dist/tools/office/excel-tools/tables.js.map +1 -0
  359. package/dist/tools/office/excel-tools/validation.d.ts +7 -0
  360. package/dist/tools/office/excel-tools/validation.d.ts.map +1 -0
  361. package/dist/tools/office/excel-tools/validation.js +175 -0
  362. package/dist/tools/office/excel-tools/validation.js.map +1 -0
  363. package/dist/tools/office/excel-tools.d.ts +3 -0
  364. package/dist/tools/office/excel-tools.d.ts.map +1 -0
  365. package/dist/tools/office/excel-tools.js +3 -0
  366. package/dist/tools/office/excel-tools.js.map +1 -0
  367. package/dist/tools/office/index.d.ts +6 -0
  368. package/dist/tools/office/index.d.ts.map +1 -0
  369. package/dist/tools/office/index.js +9 -0
  370. package/dist/tools/office/index.js.map +1 -0
  371. package/dist/tools/office/office-client-base.d.ts +31 -0
  372. package/dist/tools/office/office-client-base.d.ts.map +1 -0
  373. package/dist/tools/office/office-client-base.js +154 -0
  374. package/dist/tools/office/office-client-base.js.map +1 -0
  375. package/dist/tools/office/office-client.d.ts +196 -0
  376. package/dist/tools/office/office-client.d.ts.map +1 -0
  377. package/dist/tools/office/office-client.js +200 -0
  378. package/dist/tools/office/office-client.js.map +1 -0
  379. package/dist/tools/office/powerpoint-client.d.ts +155 -0
  380. package/dist/tools/office/powerpoint-client.d.ts.map +1 -0
  381. package/dist/tools/office/powerpoint-client.js +1359 -0
  382. package/dist/tools/office/powerpoint-client.js.map +1 -0
  383. package/dist/tools/office/powerpoint-tools/effects.d.ts +9 -0
  384. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +1 -0
  385. package/dist/tools/office/powerpoint-tools/effects.js +259 -0
  386. package/dist/tools/office/powerpoint-tools/effects.js.map +1 -0
  387. package/dist/tools/office/powerpoint-tools/export.d.ts +7 -0
  388. package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -0
  389. package/dist/tools/office/powerpoint-tools/export.js +151 -0
  390. package/dist/tools/office/powerpoint-tools/export.js.map +1 -0
  391. package/dist/tools/office/powerpoint-tools/index.d.ts +13 -0
  392. package/dist/tools/office/powerpoint-tools/index.d.ts.map +1 -0
  393. package/dist/tools/office/powerpoint-tools/index.js +33 -0
  394. package/dist/tools/office/powerpoint-tools/index.js.map +1 -0
  395. package/dist/tools/office/powerpoint-tools/launch.d.ts +9 -0
  396. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +1 -0
  397. package/dist/tools/office/powerpoint-tools/launch.js +214 -0
  398. package/dist/tools/office/powerpoint-tools/launch.js.map +1 -0
  399. package/dist/tools/office/powerpoint-tools/media.d.ts +8 -0
  400. package/dist/tools/office/powerpoint-tools/media.d.ts.map +1 -0
  401. package/dist/tools/office/powerpoint-tools/media.js +221 -0
  402. package/dist/tools/office/powerpoint-tools/media.js.map +1 -0
  403. package/dist/tools/office/powerpoint-tools/notes.d.ts +8 -0
  404. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +1 -0
  405. package/dist/tools/office/powerpoint-tools/notes.js +181 -0
  406. package/dist/tools/office/powerpoint-tools/notes.js.map +1 -0
  407. package/dist/tools/office/powerpoint-tools/sections.d.ts +6 -0
  408. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +1 -0
  409. package/dist/tools/office/powerpoint-tools/sections.js +111 -0
  410. package/dist/tools/office/powerpoint-tools/sections.js.map +1 -0
  411. package/dist/tools/office/powerpoint-tools/shapes.d.ts +24 -0
  412. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +1 -0
  413. package/dist/tools/office/powerpoint-tools/shapes.js +817 -0
  414. package/dist/tools/office/powerpoint-tools/shapes.js.map +1 -0
  415. package/dist/tools/office/powerpoint-tools/slides.d.ts +15 -0
  416. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +1 -0
  417. package/dist/tools/office/powerpoint-tools/slides.js +447 -0
  418. package/dist/tools/office/powerpoint-tools/slides.js.map +1 -0
  419. package/dist/tools/office/powerpoint-tools/tables.d.ts +12 -0
  420. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +1 -0
  421. package/dist/tools/office/powerpoint-tools/tables.js +362 -0
  422. package/dist/tools/office/powerpoint-tools/tables.js.map +1 -0
  423. package/dist/tools/office/powerpoint-tools/text.d.ts +13 -0
  424. package/dist/tools/office/powerpoint-tools/text.d.ts.map +1 -0
  425. package/dist/tools/office/powerpoint-tools/text.js +428 -0
  426. package/dist/tools/office/powerpoint-tools/text.js.map +1 -0
  427. package/dist/tools/office/powerpoint-tools.d.ts +3 -0
  428. package/dist/tools/office/powerpoint-tools.d.ts.map +1 -0
  429. package/dist/tools/office/powerpoint-tools.js +3 -0
  430. package/dist/tools/office/powerpoint-tools.js.map +1 -0
  431. package/dist/tools/office/word-client.d.ts +147 -0
  432. package/dist/tools/office/word-client.d.ts.map +1 -0
  433. package/dist/tools/office/word-client.js +1341 -0
  434. package/dist/tools/office/word-client.js.map +1 -0
  435. package/dist/tools/office/word-tools/bookmarks.d.ts +7 -0
  436. package/dist/tools/office/word-tools/bookmarks.d.ts.map +1 -0
  437. package/dist/tools/office/word-tools/bookmarks.js +146 -0
  438. package/dist/tools/office/word-tools/bookmarks.js.map +1 -0
  439. package/dist/tools/office/word-tools/comments.d.ts +7 -0
  440. package/dist/tools/office/word-tools/comments.d.ts.map +1 -0
  441. package/dist/tools/office/word-tools/comments.js +146 -0
  442. package/dist/tools/office/word-tools/comments.js.map +1 -0
  443. package/dist/tools/office/word-tools/content.d.ts +7 -0
  444. package/dist/tools/office/word-tools/content.d.ts.map +1 -0
  445. package/dist/tools/office/word-tools/content.js +168 -0
  446. package/dist/tools/office/word-tools/content.js.map +1 -0
  447. package/dist/tools/office/word-tools/export.d.ts +5 -0
  448. package/dist/tools/office/word-tools/export.d.ts.map +1 -0
  449. package/dist/tools/office/word-tools/export.js +73 -0
  450. package/dist/tools/office/word-tools/export.js.map +1 -0
  451. package/dist/tools/office/word-tools/find.d.ts +5 -0
  452. package/dist/tools/office/word-tools/find.d.ts.map +1 -0
  453. package/dist/tools/office/word-tools/find.js +106 -0
  454. package/dist/tools/office/word-tools/find.js.map +1 -0
  455. package/dist/tools/office/word-tools/footnotes.d.ts +9 -0
  456. package/dist/tools/office/word-tools/footnotes.d.ts.map +1 -0
  457. package/dist/tools/office/word-tools/footnotes.js +227 -0
  458. package/dist/tools/office/word-tools/footnotes.js.map +1 -0
  459. package/dist/tools/office/word-tools/formatting.d.ts +6 -0
  460. package/dist/tools/office/word-tools/formatting.d.ts.map +1 -0
  461. package/dist/tools/office/word-tools/formatting.js +129 -0
  462. package/dist/tools/office/word-tools/formatting.js.map +1 -0
  463. package/dist/tools/office/word-tools/headers-footers.d.ts +6 -0
  464. package/dist/tools/office/word-tools/headers-footers.d.ts.map +1 -0
  465. package/dist/tools/office/word-tools/headers-footers.js +117 -0
  466. package/dist/tools/office/word-tools/headers-footers.js.map +1 -0
  467. package/dist/tools/office/word-tools/index.d.ts +22 -0
  468. package/dist/tools/office/word-tools/index.d.ts.map +1 -0
  469. package/dist/tools/office/word-tools/index.js +63 -0
  470. package/dist/tools/office/word-tools/index.js.map +1 -0
  471. package/dist/tools/office/word-tools/launch.d.ts +10 -0
  472. package/dist/tools/office/word-tools/launch.d.ts.map +1 -0
  473. package/dist/tools/office/word-tools/launch.js +255 -0
  474. package/dist/tools/office/word-tools/launch.js.map +1 -0
  475. package/dist/tools/office/word-tools/lists.d.ts +5 -0
  476. package/dist/tools/office/word-tools/lists.d.ts.map +1 -0
  477. package/dist/tools/office/word-tools/lists.js +73 -0
  478. package/dist/tools/office/word-tools/lists.js.map +1 -0
  479. package/dist/tools/office/word-tools/navigation.d.ts +5 -0
  480. package/dist/tools/office/word-tools/navigation.d.ts.map +1 -0
  481. package/dist/tools/office/word-tools/navigation.js +85 -0
  482. package/dist/tools/office/word-tools/navigation.js.map +1 -0
  483. package/dist/tools/office/word-tools/page-setup.d.ts +7 -0
  484. package/dist/tools/office/word-tools/page-setup.d.ts.map +1 -0
  485. package/dist/tools/office/word-tools/page-setup.js +152 -0
  486. package/dist/tools/office/word-tools/page-setup.js.map +1 -0
  487. package/dist/tools/office/word-tools/selection.d.ts +8 -0
  488. package/dist/tools/office/word-tools/selection.d.ts.map +1 -0
  489. package/dist/tools/office/word-tools/selection.js +193 -0
  490. package/dist/tools/office/word-tools/selection.js.map +1 -0
  491. package/dist/tools/office/word-tools/tables-advanced.d.ts +8 -0
  492. package/dist/tools/office/word-tools/tables-advanced.d.ts.map +1 -0
  493. package/dist/tools/office/word-tools/tables-advanced.js +190 -0
  494. package/dist/tools/office/word-tools/tables-advanced.js.map +1 -0
  495. package/dist/tools/office/word-tools/tables.d.ts +8 -0
  496. package/dist/tools/office/word-tools/tables.d.ts.map +1 -0
  497. package/dist/tools/office/word-tools/tables.js +197 -0
  498. package/dist/tools/office/word-tools/tables.js.map +1 -0
  499. package/dist/tools/office/word-tools/text.d.ts +9 -0
  500. package/dist/tools/office/word-tools/text.d.ts.map +1 -0
  501. package/dist/tools/office/word-tools/text.js +235 -0
  502. package/dist/tools/office/word-tools/text.js.map +1 -0
  503. package/dist/tools/office/word-tools/toc.d.ts +6 -0
  504. package/dist/tools/office/word-tools/toc.d.ts.map +1 -0
  505. package/dist/tools/office/word-tools/toc.js +114 -0
  506. package/dist/tools/office/word-tools/toc.js.map +1 -0
  507. package/dist/tools/office/word-tools/track-changes.d.ts +8 -0
  508. package/dist/tools/office/word-tools/track-changes.d.ts.map +1 -0
  509. package/dist/tools/office/word-tools/track-changes.js +195 -0
  510. package/dist/tools/office/word-tools/track-changes.js.map +1 -0
  511. package/dist/tools/office/word-tools/undo-redo.d.ts +5 -0
  512. package/dist/tools/office/word-tools/undo-redo.d.ts.map +1 -0
  513. package/dist/tools/office/word-tools/undo-redo.js +73 -0
  514. package/dist/tools/office/word-tools/undo-redo.js.map +1 -0
  515. package/dist/tools/office/word-tools/watermarks.d.ts +5 -0
  516. package/dist/tools/office/word-tools/watermarks.d.ts.map +1 -0
  517. package/dist/tools/office/word-tools/watermarks.js +81 -0
  518. package/dist/tools/office/word-tools/watermarks.js.map +1 -0
  519. package/dist/tools/office/word-tools.d.ts +3 -0
  520. package/dist/tools/office/word-tools.d.ts.map +1 -0
  521. package/dist/tools/office/word-tools.js +3 -0
  522. package/dist/tools/office/word-tools.js.map +1 -0
  523. package/dist/tools/registry.d.ts +53 -0
  524. package/dist/tools/registry.d.ts.map +1 -0
  525. package/dist/tools/registry.js +282 -0
  526. package/dist/tools/registry.js.map +1 -0
  527. package/dist/tools/types.d.ts +88 -0
  528. package/dist/tools/types.d.ts.map +1 -0
  529. package/dist/tools/types.js +19 -0
  530. package/dist/tools/types.js.map +1 -0
  531. package/dist/types/index.d.ts +123 -0
  532. package/dist/types/index.d.ts.map +1 -0
  533. package/dist/types/index.js +2 -0
  534. package/dist/types/index.js.map +1 -0
  535. package/dist/ui/PlanExecuteView.d.ts +11 -0
  536. package/dist/ui/PlanExecuteView.d.ts.map +1 -0
  537. package/dist/ui/PlanExecuteView.js +27 -0
  538. package/dist/ui/PlanExecuteView.js.map +1 -0
  539. package/dist/ui/TodoPanel.d.ts +13 -0
  540. package/dist/ui/TodoPanel.d.ts.map +1 -0
  541. package/dist/ui/TodoPanel.js +135 -0
  542. package/dist/ui/TodoPanel.js.map +1 -0
  543. package/dist/ui/UpdateNotification.d.ts +13 -0
  544. package/dist/ui/UpdateNotification.d.ts.map +1 -0
  545. package/dist/ui/UpdateNotification.js +42 -0
  546. package/dist/ui/UpdateNotification.js.map +1 -0
  547. package/dist/ui/components/ActivityIndicator.d.ts +25 -0
  548. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -0
  549. package/dist/ui/components/ActivityIndicator.js +115 -0
  550. package/dist/ui/components/ActivityIndicator.js.map +1 -0
  551. package/dist/ui/components/CommandBrowser.d.ts +10 -0
  552. package/dist/ui/components/CommandBrowser.d.ts.map +1 -0
  553. package/dist/ui/components/CommandBrowser.js +53 -0
  554. package/dist/ui/components/CommandBrowser.js.map +1 -0
  555. package/dist/ui/components/CustomTextInput.d.ts +13 -0
  556. package/dist/ui/components/CustomTextInput.d.ts.map +1 -0
  557. package/dist/ui/components/CustomTextInput.js +245 -0
  558. package/dist/ui/components/CustomTextInput.js.map +1 -0
  559. package/dist/ui/components/DocsSearchProgress.d.ts +13 -0
  560. package/dist/ui/components/DocsSearchProgress.d.ts.map +1 -0
  561. package/dist/ui/components/DocsSearchProgress.js +37 -0
  562. package/dist/ui/components/DocsSearchProgress.js.map +1 -0
  563. package/dist/ui/components/FileBrowser.d.ts +11 -0
  564. package/dist/ui/components/FileBrowser.d.ts.map +1 -0
  565. package/dist/ui/components/FileBrowser.js +45 -0
  566. package/dist/ui/components/FileBrowser.js.map +1 -0
  567. package/dist/ui/components/LLMSetupWizard.d.ts +8 -0
  568. package/dist/ui/components/LLMSetupWizard.d.ts.map +1 -0
  569. package/dist/ui/components/LLMSetupWizard.js +183 -0
  570. package/dist/ui/components/LLMSetupWizard.js.map +1 -0
  571. package/dist/ui/components/Logo.d.ts +21 -0
  572. package/dist/ui/components/Logo.d.ts.map +1 -0
  573. package/dist/ui/components/Logo.js +110 -0
  574. package/dist/ui/components/Logo.js.map +1 -0
  575. package/dist/ui/components/MarkdownRenderer.d.ts +9 -0
  576. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -0
  577. package/dist/ui/components/MarkdownRenderer.js +198 -0
  578. package/dist/ui/components/MarkdownRenderer.js.map +1 -0
  579. package/dist/ui/components/ModelSelector.d.ts +8 -0
  580. package/dist/ui/components/ModelSelector.d.ts.map +1 -0
  581. package/dist/ui/components/ModelSelector.js +111 -0
  582. package/dist/ui/components/ModelSelector.js.map +1 -0
  583. package/dist/ui/components/PlanExecuteApp.d.ts +23 -0
  584. package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -0
  585. package/dist/ui/components/PlanExecuteApp.js +1433 -0
  586. package/dist/ui/components/PlanExecuteApp.js.map +1 -0
  587. package/dist/ui/components/ProgressBar.d.ts +10 -0
  588. package/dist/ui/components/ProgressBar.d.ts.map +1 -0
  589. package/dist/ui/components/ProgressBar.js +26 -0
  590. package/dist/ui/components/ProgressBar.js.map +1 -0
  591. package/dist/ui/components/StatusBar.d.ts +23 -0
  592. package/dist/ui/components/StatusBar.d.ts.map +1 -0
  593. package/dist/ui/components/StatusBar.js +162 -0
  594. package/dist/ui/components/StatusBar.js.map +1 -0
  595. package/dist/ui/components/ThinkingIndicator.d.ts +14 -0
  596. package/dist/ui/components/ThinkingIndicator.d.ts.map +1 -0
  597. package/dist/ui/components/ThinkingIndicator.js +63 -0
  598. package/dist/ui/components/ThinkingIndicator.js.map +1 -0
  599. package/dist/ui/components/TodoListView.d.ts +11 -0
  600. package/dist/ui/components/TodoListView.d.ts.map +1 -0
  601. package/dist/ui/components/TodoListView.js +69 -0
  602. package/dist/ui/components/TodoListView.js.map +1 -0
  603. package/dist/ui/components/ToolSelector.d.ts +7 -0
  604. package/dist/ui/components/ToolSelector.d.ts.map +1 -0
  605. package/dist/ui/components/ToolSelector.js +112 -0
  606. package/dist/ui/components/ToolSelector.js.map +1 -0
  607. package/dist/ui/components/dialogs/ApprovalDialog.d.ts +13 -0
  608. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +1 -0
  609. package/dist/ui/components/dialogs/ApprovalDialog.js +173 -0
  610. package/dist/ui/components/dialogs/ApprovalDialog.js.map +1 -0
  611. package/dist/ui/components/dialogs/AskUserDialog.d.ts +9 -0
  612. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +1 -0
  613. package/dist/ui/components/dialogs/AskUserDialog.js +111 -0
  614. package/dist/ui/components/dialogs/AskUserDialog.js.map +1 -0
  615. package/dist/ui/components/dialogs/DocsBrowser.d.ts +8 -0
  616. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +1 -0
  617. package/dist/ui/components/dialogs/DocsBrowser.js +127 -0
  618. package/dist/ui/components/dialogs/DocsBrowser.js.map +1 -0
  619. package/dist/ui/components/dialogs/SettingsDialog.d.ts +10 -0
  620. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +1 -0
  621. package/dist/ui/components/dialogs/SettingsDialog.js +563 -0
  622. package/dist/ui/components/dialogs/SettingsDialog.js.map +1 -0
  623. package/dist/ui/components/dialogs/index.d.ts +4 -0
  624. package/dist/ui/components/dialogs/index.d.ts.map +1 -0
  625. package/dist/ui/components/dialogs/index.js +4 -0
  626. package/dist/ui/components/dialogs/index.js.map +1 -0
  627. package/dist/ui/components/index.d.ts +12 -0
  628. package/dist/ui/components/index.d.ts.map +1 -0
  629. package/dist/ui/components/index.js +9 -0
  630. package/dist/ui/components/index.js.map +1 -0
  631. package/dist/ui/components/panels/LogPanel.d.ts +7 -0
  632. package/dist/ui/components/panels/LogPanel.d.ts.map +1 -0
  633. package/dist/ui/components/panels/LogPanel.js +280 -0
  634. package/dist/ui/components/panels/LogPanel.js.map +1 -0
  635. package/dist/ui/components/panels/SessionPanel.d.ts +8 -0
  636. package/dist/ui/components/panels/SessionPanel.d.ts.map +1 -0
  637. package/dist/ui/components/panels/SessionPanel.js +81 -0
  638. package/dist/ui/components/panels/SessionPanel.js.map +1 -0
  639. package/dist/ui/components/panels/index.d.ts +4 -0
  640. package/dist/ui/components/panels/index.d.ts.map +1 -0
  641. package/dist/ui/components/panels/index.js +4 -0
  642. package/dist/ui/components/panels/index.js.map +1 -0
  643. package/dist/ui/components/views/ChatView.d.ts +12 -0
  644. package/dist/ui/components/views/ChatView.d.ts.map +1 -0
  645. package/dist/ui/components/views/ChatView.js +289 -0
  646. package/dist/ui/components/views/ChatView.js.map +1 -0
  647. package/dist/ui/components/views/index.d.ts +2 -0
  648. package/dist/ui/components/views/index.d.ts.map +1 -0
  649. package/dist/ui/components/views/index.js +2 -0
  650. package/dist/ui/components/views/index.js.map +1 -0
  651. package/dist/ui/contexts/TokenContext.d.ts +29 -0
  652. package/dist/ui/contexts/TokenContext.d.ts.map +1 -0
  653. package/dist/ui/contexts/TokenContext.js +79 -0
  654. package/dist/ui/contexts/TokenContext.js.map +1 -0
  655. package/dist/ui/hooks/atFileProcessor.d.ts +15 -0
  656. package/dist/ui/hooks/atFileProcessor.d.ts.map +1 -0
  657. package/dist/ui/hooks/atFileProcessor.js +88 -0
  658. package/dist/ui/hooks/atFileProcessor.js.map +1 -0
  659. package/dist/ui/hooks/index.d.ts +8 -0
  660. package/dist/ui/hooks/index.d.ts.map +1 -0
  661. package/dist/ui/hooks/index.js +8 -0
  662. package/dist/ui/hooks/index.js.map +1 -0
  663. package/dist/ui/hooks/slashCommandProcessor.d.ts +21 -0
  664. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +1 -0
  665. package/dist/ui/hooks/slashCommandProcessor.js +100 -0
  666. package/dist/ui/hooks/slashCommandProcessor.js.map +1 -0
  667. package/dist/ui/hooks/useCommandBrowserState.d.ts +12 -0
  668. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +1 -0
  669. package/dist/ui/hooks/useCommandBrowserState.js +66 -0
  670. package/dist/ui/hooks/useCommandBrowserState.js.map +1 -0
  671. package/dist/ui/hooks/useFileBrowserState.d.ts +15 -0
  672. package/dist/ui/hooks/useFileBrowserState.d.ts.map +1 -0
  673. package/dist/ui/hooks/useFileBrowserState.js +80 -0
  674. package/dist/ui/hooks/useFileBrowserState.js.map +1 -0
  675. package/dist/ui/hooks/useFileList.d.ts +20 -0
  676. package/dist/ui/hooks/useFileList.d.ts.map +1 -0
  677. package/dist/ui/hooks/useFileList.js +57 -0
  678. package/dist/ui/hooks/useFileList.js.map +1 -0
  679. package/dist/ui/hooks/useInputHistory.d.ts +9 -0
  680. package/dist/ui/hooks/useInputHistory.d.ts.map +1 -0
  681. package/dist/ui/hooks/useInputHistory.js +68 -0
  682. package/dist/ui/hooks/useInputHistory.js.map +1 -0
  683. package/dist/ui/hooks/usePlanExecution.d.ts +8 -0
  684. package/dist/ui/hooks/usePlanExecution.d.ts.map +1 -0
  685. package/dist/ui/hooks/usePlanExecution.js +208 -0
  686. package/dist/ui/hooks/usePlanExecution.js.map +1 -0
  687. package/dist/ui/index.d.ts +7 -0
  688. package/dist/ui/index.d.ts.map +1 -0
  689. package/dist/ui/index.js +7 -0
  690. package/dist/ui/index.js.map +1 -0
  691. package/dist/ui/ink-entry.d.ts +3 -0
  692. package/dist/ui/ink-entry.d.ts.map +1 -0
  693. package/dist/ui/ink-entry.js +22 -0
  694. package/dist/ui/ink-entry.js.map +1 -0
  695. package/dist/utils/file-system.d.ts +9 -0
  696. package/dist/utils/file-system.d.ts.map +1 -0
  697. package/dist/utils/file-system.js +99 -0
  698. package/dist/utils/file-system.js.map +1 -0
  699. package/dist/utils/git-utils.d.ts +2 -0
  700. package/dist/utils/git-utils.d.ts.map +1 -0
  701. package/dist/utils/git-utils.js +16 -0
  702. package/dist/utils/git-utils.js.map +1 -0
  703. package/dist/utils/json-stream-logger.d.ts +74 -0
  704. package/dist/utils/json-stream-logger.d.ts.map +1 -0
  705. package/dist/utils/json-stream-logger.js +808 -0
  706. package/dist/utils/json-stream-logger.js.map +1 -0
  707. package/dist/utils/logger.d.ts +152 -0
  708. package/dist/utils/logger.d.ts.map +1 -0
  709. package/dist/utils/logger.js +1672 -0
  710. package/dist/utils/logger.js.map +1 -0
  711. package/dist/utils/platform-utils.d.ts +19 -0
  712. package/dist/utils/platform-utils.d.ts.map +1 -0
  713. package/dist/utils/platform-utils.js +134 -0
  714. package/dist/utils/platform-utils.js.map +1 -0
  715. package/dist/utils/wsl-utils.d.ts +4 -0
  716. package/dist/utils/wsl-utils.d.ts.map +1 -0
  717. package/dist/utils/wsl-utils.js +72 -0
  718. package/dist/utils/wsl-utils.js.map +1 -0
  719. package/package.json +148 -0
  720. package/scripts/patch-yoga.js +48 -0
@@ -0,0 +1,751 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { logger } from '../../../utils/logger.js';
4
+ const EXCLUDED_DIRS = new Set([
5
+ 'node_modules',
6
+ '.git',
7
+ 'dist',
8
+ '.next',
9
+ 'coverage',
10
+ '.cache',
11
+ 'build',
12
+ '__pycache__',
13
+ ]);
14
+ const MAX_DEPTH = 5;
15
+ const MAX_FILES = 100;
16
+ const DEFAULT_LINE_LIMIT = 2000;
17
+ const MAX_LINE_LIMIT = 10000;
18
+ const READ_FILE_DEFINITION = {
19
+ type: 'function',
20
+ function: {
21
+ name: 'read_file',
22
+ description: `Read the contents of a file. Only text files are supported.
23
+ By default, reads up to ${DEFAULT_LINE_LIMIT} lines. Use offset/limit for large files.`,
24
+ parameters: {
25
+ type: 'object',
26
+ properties: {
27
+ reason: {
28
+ type: 'string',
29
+ description: `A natural, conversational explanation for the user about what you're doing.
30
+ Write as if you're talking to the user directly. Use the same language as the user.
31
+ Examples:
32
+ - "Checking how the current authentication logic is implemented"
33
+ - "Opening the file where the error occurred to find the problem"
34
+ - "Checking package.json to understand the project setup"
35
+ - "Looking at the existing code before making changes"`,
36
+ },
37
+ file_path: {
38
+ type: 'string',
39
+ description: 'Absolute or relative path of the file to read',
40
+ },
41
+ offset: {
42
+ type: 'number',
43
+ description: 'Starting line number (1-based, default: 1)',
44
+ },
45
+ limit: {
46
+ type: 'number',
47
+ description: `Number of lines to read (default: ${DEFAULT_LINE_LIMIT}, max: ${MAX_LINE_LIMIT})`,
48
+ },
49
+ },
50
+ required: ['reason', 'file_path'],
51
+ },
52
+ },
53
+ };
54
+ async function _executeReadFile(args) {
55
+ const filePath = args['file_path'];
56
+ const offset = Math.max(1, args['offset'] || 1);
57
+ const limit = Math.min(MAX_LINE_LIMIT, Math.max(1, args['limit'] || DEFAULT_LINE_LIMIT));
58
+ logger.toolStart('read_file', args);
59
+ try {
60
+ const cleanPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
61
+ const resolvedPath = path.resolve(cleanPath);
62
+ const displayPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
63
+ const content = await fs.readFile(resolvedPath, 'utf-8');
64
+ const allLines = content.split('\n');
65
+ const totalLines = allLines.length;
66
+ const startIdx = offset - 1;
67
+ const endIdx = Math.min(startIdx + limit, totalLines);
68
+ const selectedLines = allLines.slice(startIdx, endIdx);
69
+ const formattedLines = selectedLines.map((line, idx) => {
70
+ const lineNum = startIdx + idx + 1;
71
+ const padding = String(totalLines).length;
72
+ return `${String(lineNum).padStart(padding)}→${line}`;
73
+ });
74
+ let result = formattedLines.join('\n');
75
+ if (totalLines > limit || offset > 1) {
76
+ const header = `[File: ${displayPath} | Lines ${offset}-${endIdx} of ${totalLines}]`;
77
+ const hasMore = endIdx < totalLines;
78
+ const footer = hasMore
79
+ ? `\n[... ${totalLines - endIdx} more lines. Use offset=${endIdx + 1} to continue reading]`
80
+ : '';
81
+ result = `${header}\n${result}${footer}`;
82
+ }
83
+ logger.toolSuccess('read_file', args, { linesRead: selectedLines.length, totalLines }, 0);
84
+ return {
85
+ success: true,
86
+ result,
87
+ };
88
+ }
89
+ catch (error) {
90
+ const err = error;
91
+ const displayPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
92
+ if (err.code === 'ENOENT') {
93
+ logger.toolError('read_file', args, err, 0);
94
+ return {
95
+ success: false,
96
+ error: `File not found: ${displayPath}`,
97
+ };
98
+ }
99
+ else if (err.code === 'EACCES') {
100
+ logger.toolError('read_file', args, err, 0);
101
+ return {
102
+ success: false,
103
+ error: `Permission denied reading file: ${displayPath}`,
104
+ };
105
+ }
106
+ else {
107
+ logger.toolError('read_file', args, err, 0);
108
+ return {
109
+ success: false,
110
+ error: `Failed to read file: ${err.message}`,
111
+ };
112
+ }
113
+ }
114
+ }
115
+ export const readFileTool = {
116
+ definition: READ_FILE_DEFINITION,
117
+ execute: _executeReadFile,
118
+ categories: ['llm-simple'],
119
+ description: 'Read file contents',
120
+ };
121
+ const CREATE_FILE_DEFINITION = {
122
+ type: 'function',
123
+ function: {
124
+ name: 'create_file',
125
+ description: `Create a NEW file with the given content.
126
+ IMPORTANT: Only use this for files that do NOT exist yet.
127
+ For modifying existing files, use edit_file instead.
128
+ If the file already exists, this tool will fail.`,
129
+ parameters: {
130
+ type: 'object',
131
+ properties: {
132
+ reason: {
133
+ type: 'string',
134
+ description: `A natural, conversational explanation for the user about what you're doing.
135
+ Write as if you're talking to the user directly. Use the same language as the user.
136
+ Examples:
137
+ - "Creating a new file for the authentication service"
138
+ - "Creating a new test config file since one doesn't exist"
139
+ - "Creating a new file to separate the API router"
140
+ - "Adding a new component file"`,
141
+ },
142
+ file_path: {
143
+ type: 'string',
144
+ description: 'Absolute or relative path of the new file to create',
145
+ },
146
+ content: {
147
+ type: 'string',
148
+ description: 'Content to write to the new file',
149
+ },
150
+ },
151
+ required: ['reason', 'file_path', 'content'],
152
+ },
153
+ },
154
+ };
155
+ async function _executeCreateFile(args) {
156
+ const filePath = args['file_path'];
157
+ const content = args['content'];
158
+ logger.toolStart('create_file', { file_path: filePath, contentLength: content?.length || 0 });
159
+ try {
160
+ const cleanPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
161
+ const resolvedPath = path.resolve(cleanPath);
162
+ const displayPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
163
+ try {
164
+ await fs.access(resolvedPath);
165
+ logger.toolError('create_file', args, new Error('File already exists'), 0);
166
+ return {
167
+ success: false,
168
+ error: `File already exists: ${displayPath}. Use edit_file to modify existing files.`,
169
+ };
170
+ }
171
+ catch {
172
+ }
173
+ const dir = path.dirname(resolvedPath);
174
+ await fs.mkdir(dir, { recursive: true });
175
+ await fs.writeFile(resolvedPath, content, 'utf-8');
176
+ const lines = content.split('\n').length;
177
+ logger.toolSuccess('create_file', args, { file: displayPath, lines }, 0);
178
+ return {
179
+ success: true,
180
+ result: JSON.stringify({
181
+ action: 'created',
182
+ file: displayPath,
183
+ lines: lines,
184
+ message: `Created ${displayPath} (${lines} lines)`,
185
+ }),
186
+ };
187
+ }
188
+ catch (error) {
189
+ const err = error;
190
+ const displayPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
191
+ logger.toolError('create_file', args, err, 0);
192
+ return {
193
+ success: false,
194
+ error: `파일 생성 실패 (${displayPath}): ${err.message}`,
195
+ };
196
+ }
197
+ }
198
+ export const createFileTool = {
199
+ definition: CREATE_FILE_DEFINITION,
200
+ execute: _executeCreateFile,
201
+ categories: ['llm-simple'],
202
+ description: 'Create a new file',
203
+ };
204
+ const EDIT_FILE_DEFINITION = {
205
+ type: 'function',
206
+ function: {
207
+ name: 'edit_file',
208
+ description: `Edit an EXISTING file by replacing a specific text block.
209
+ IMPORTANT: Only use this for files that already exist. For new files, use create_file.
210
+
211
+ HOW TO USE:
212
+ 1. First use read_file to see the current content
213
+ 2. Copy the EXACT text block you want to change (can be multiple lines)
214
+ 3. Provide old_string (text to find) and new_string (replacement)
215
+
216
+ RULES:
217
+ - old_string must match EXACTLY (including whitespace and indentation)
218
+ - old_string must be UNIQUE in the file (if it appears multiple times, use replace_all: true)
219
+ - Both old_string and new_string can be multi-line
220
+ - To delete text, use empty string "" for new_string
221
+
222
+ EXAMPLES:
223
+ 1. Change a single line:
224
+ old_string: "const x = 1;"
225
+ new_string: "const x = 2;"
226
+
227
+ 2. Change multiple lines at once:
228
+ old_string: "function foo() {\\n return 1;\\n}"
229
+ new_string: "function foo() {\\n return 2;\\n}"
230
+
231
+ 3. Delete a line:
232
+ old_string: "// delete this line\\n"
233
+ new_string: ""
234
+
235
+ 4. Replace all occurrences:
236
+ old_string: "oldName"
237
+ new_string: "newName"
238
+ replace_all: true`,
239
+ parameters: {
240
+ type: 'object',
241
+ properties: {
242
+ reason: {
243
+ type: 'string',
244
+ description: `A natural, conversational explanation for the user about what you're doing.
245
+ Write as if you're talking to the user directly. Use the same language as the user.
246
+ Examples:
247
+ - "Fixing the buggy section"
248
+ - "Changing the function name as requested"
249
+ - "Adding the import statement"
250
+ - "Fixing the type error"`,
251
+ },
252
+ file_path: {
253
+ type: 'string',
254
+ description: 'Absolute or relative path of the existing file to edit',
255
+ },
256
+ old_string: {
257
+ type: 'string',
258
+ description: 'The exact text to find and replace (can be multi-line)',
259
+ },
260
+ new_string: {
261
+ type: 'string',
262
+ description: 'The new text to replace with (can be multi-line, use "" to delete)',
263
+ },
264
+ replace_all: {
265
+ type: 'boolean',
266
+ description: 'If true, replace ALL occurrences of old_string. Default is false (requires unique match).',
267
+ },
268
+ },
269
+ required: ['reason', 'file_path', 'old_string', 'new_string'],
270
+ },
271
+ },
272
+ };
273
+ async function _executeEditFile(args) {
274
+ const filePath = args['file_path'];
275
+ const oldString = args['old_string'];
276
+ const newString = args['new_string'];
277
+ const replaceAll = args['replace_all'];
278
+ logger.toolStart('edit_file', { file_path: filePath, oldStringLength: oldString?.length || 0, newStringLength: newString?.length || 0, replaceAll });
279
+ const cleanPath = filePath.startsWith('@') ? filePath.slice(1) : filePath;
280
+ const displayPath = cleanPath;
281
+ try {
282
+ const resolvedPath = path.resolve(cleanPath);
283
+ if (!oldString) {
284
+ return {
285
+ success: false,
286
+ error: 'old_string cannot be empty.',
287
+ };
288
+ }
289
+ try {
290
+ await fs.access(resolvedPath);
291
+ }
292
+ catch {
293
+ return {
294
+ success: false,
295
+ error: `File does not exist: ${displayPath}. Use create_file to create new files.`,
296
+ };
297
+ }
298
+ const originalContent = await fs.readFile(resolvedPath, 'utf-8');
299
+ if (!originalContent.includes(oldString)) {
300
+ const lines = originalContent.split('\n');
301
+ const preview = lines.slice(0, 20).map((l, i) => `${i + 1}: ${l}`).join('\n');
302
+ return {
303
+ success: false,
304
+ error: `old_string not found in file.\n\nSearched for:\n"${oldString.slice(0, 200)}${oldString.length > 200 ? '...' : ''}"\n\nFile preview (first 20 lines):\n${preview}\n\n💡 Use read_file to check the exact content and try again.`,
305
+ };
306
+ }
307
+ const occurrences = originalContent.split(oldString).length - 1;
308
+ if (!replaceAll && occurrences > 1) {
309
+ return {
310
+ success: false,
311
+ error: `old_string appears ${occurrences} times in the file. Either:\n1. Make old_string more specific (include more context)\n2. Use replace_all: true to replace all occurrences\n\n💡 Include surrounding lines to make the match unique.`,
312
+ };
313
+ }
314
+ let newContent;
315
+ if (replaceAll) {
316
+ newContent = originalContent.split(oldString).join(newString);
317
+ }
318
+ else {
319
+ newContent = originalContent.replace(oldString, newString);
320
+ }
321
+ await fs.writeFile(resolvedPath, newContent, 'utf-8');
322
+ const oldLinesArr = oldString.split('\n');
323
+ const newLinesArr = newString.split('\n');
324
+ const replacements = replaceAll ? occurrences : 1;
325
+ const diffPreview = [];
326
+ const oldPreview = oldLinesArr.slice(0, 5);
327
+ const newPreview = newLinesArr.slice(0, 5);
328
+ oldPreview.forEach(line => diffPreview.push(`- ${line}`));
329
+ if (oldLinesArr.length > 5)
330
+ diffPreview.push('- ...');
331
+ newPreview.forEach(line => diffPreview.push(`+ ${line}`));
332
+ if (newLinesArr.length > 5)
333
+ diffPreview.push('+ ...');
334
+ logger.toolSuccess('edit_file', args, { file: displayPath, replacements, oldLines: oldLinesArr.length, newLines: newLinesArr.length }, 0);
335
+ return {
336
+ success: true,
337
+ result: JSON.stringify({
338
+ action: 'edited',
339
+ file: displayPath,
340
+ replacements: replacements,
341
+ oldLines: oldLinesArr.length,
342
+ newLines: newLinesArr.length,
343
+ message: replaceAll
344
+ ? `Replaced ${replacements} occurrence(s) in ${displayPath}`
345
+ : `Updated ${displayPath}`,
346
+ diff: diffPreview,
347
+ }),
348
+ };
349
+ }
350
+ catch (error) {
351
+ const err = error;
352
+ logger.toolError('edit_file', args, err, 0);
353
+ return {
354
+ success: false,
355
+ error: `File edit failed (${displayPath}): ${err.message}`,
356
+ };
357
+ }
358
+ }
359
+ export const editFileTool = {
360
+ definition: EDIT_FILE_DEFINITION,
361
+ execute: _executeEditFile,
362
+ categories: ['llm-simple'],
363
+ description: 'Edit an existing file',
364
+ };
365
+ const LIST_FILES_DEFINITION = {
366
+ type: 'function',
367
+ function: {
368
+ name: 'list_files',
369
+ description: 'List files and folders in a directory.',
370
+ parameters: {
371
+ type: 'object',
372
+ properties: {
373
+ reason: {
374
+ type: 'string',
375
+ description: `A natural, conversational explanation for the user about what you're doing.
376
+ Write as if you're talking to the user directly. Use the same language as the user.
377
+ Examples:
378
+ - "Looking at the folder structure to understand the project"
379
+ - "Checking what files are available"
380
+ - "Seeing what's inside the src folder"
381
+ - "Checking the directory to find related files"`,
382
+ },
383
+ directory_path: {
384
+ type: 'string',
385
+ description: 'Directory path to list (default: current directory)',
386
+ },
387
+ recursive: {
388
+ type: 'boolean',
389
+ description: 'Whether to list subdirectories recursively (default: false)',
390
+ },
391
+ },
392
+ required: ['reason'],
393
+ },
394
+ },
395
+ };
396
+ async function getFilesRecursively(dirPath, baseDir = dirPath, depth = 0, fileCount = { count: 0 }) {
397
+ if (depth > MAX_DEPTH) {
398
+ return [];
399
+ }
400
+ if (fileCount.count >= MAX_FILES) {
401
+ return [];
402
+ }
403
+ let entries;
404
+ try {
405
+ entries = await fs.readdir(dirPath, { withFileTypes: true });
406
+ }
407
+ catch {
408
+ return [];
409
+ }
410
+ const files = [];
411
+ for (const entry of entries) {
412
+ if (fileCount.count >= MAX_FILES) {
413
+ break;
414
+ }
415
+ if (entry.name.startsWith('.')) {
416
+ continue;
417
+ }
418
+ const fullPath = path.join(dirPath, entry.name);
419
+ const relativePath = path.relative(baseDir, fullPath);
420
+ if (entry.isDirectory()) {
421
+ if (EXCLUDED_DIRS.has(entry.name)) {
422
+ continue;
423
+ }
424
+ files.push({
425
+ name: entry.name,
426
+ type: 'directory',
427
+ path: relativePath,
428
+ });
429
+ fileCount.count++;
430
+ const subFiles = await getFilesRecursively(fullPath, baseDir, depth + 1, fileCount);
431
+ files.push(...subFiles);
432
+ }
433
+ else {
434
+ files.push({
435
+ name: entry.name,
436
+ type: 'file',
437
+ path: relativePath,
438
+ });
439
+ fileCount.count++;
440
+ }
441
+ }
442
+ return files;
443
+ }
444
+ async function _executeListFilesInternal(args) {
445
+ const directoryPath = args['directory_path'] || '.';
446
+ const recursive = args['recursive'] || false;
447
+ logger.toolStart('list_files', { directory_path: directoryPath, recursive });
448
+ try {
449
+ const resolvedPath = path.resolve(directoryPath);
450
+ if (recursive) {
451
+ const files = await getFilesRecursively(resolvedPath);
452
+ logger.toolSuccess('list_files', args, { fileCount: files.length }, 0);
453
+ return {
454
+ success: true,
455
+ result: JSON.stringify(files, null, 2),
456
+ };
457
+ }
458
+ else {
459
+ const entries = await fs.readdir(resolvedPath, { withFileTypes: true });
460
+ const files = entries.map((entry) => ({
461
+ name: entry.name,
462
+ type: entry.isDirectory() ? 'directory' : 'file',
463
+ path: path.join(directoryPath, entry.name),
464
+ }));
465
+ logger.toolSuccess('list_files', args, { fileCount: files.length }, 0);
466
+ return {
467
+ success: true,
468
+ result: JSON.stringify(files, null, 2),
469
+ };
470
+ }
471
+ }
472
+ catch (error) {
473
+ const err = error;
474
+ logger.toolError('list_files', args, err, 0);
475
+ if (err.code === 'ENOENT') {
476
+ return {
477
+ success: false,
478
+ error: `Directory not found: ${directoryPath}`,
479
+ };
480
+ }
481
+ else {
482
+ return {
483
+ success: false,
484
+ error: `Failed to read directory: ${err.message}`,
485
+ };
486
+ }
487
+ }
488
+ }
489
+ export const listFilesTool = {
490
+ definition: LIST_FILES_DEFINITION,
491
+ execute: _executeListFilesInternal,
492
+ categories: ['llm-simple'],
493
+ description: 'List directory contents',
494
+ };
495
+ const FIND_FILES_DEFINITION = {
496
+ type: 'function',
497
+ function: {
498
+ name: 'find_files',
499
+ description: 'Search for files by filename pattern.',
500
+ parameters: {
501
+ type: 'object',
502
+ properties: {
503
+ reason: {
504
+ type: 'string',
505
+ description: `A natural, conversational explanation for the user about what you're doing (in user's language).
506
+ Write as if you're talking to the user directly.
507
+ Examples:
508
+ - "Looking for where the config files are located"
509
+ - "Searching for test files"
510
+ - "Checking where TypeScript files are"
511
+ - "Finding related component files"`,
512
+ },
513
+ pattern: {
514
+ type: 'string',
515
+ description: 'Filename pattern to search for (e.g., *.ts, package.json)',
516
+ },
517
+ directory_path: {
518
+ type: 'string',
519
+ description: 'Directory path to start search from (default: current directory)',
520
+ },
521
+ },
522
+ required: ['reason', 'pattern'],
523
+ },
524
+ },
525
+ };
526
+ async function findFilesRecursively(dirPath, regex, baseDir, depth = 0, fileCount = { count: 0 }) {
527
+ if (depth > MAX_DEPTH) {
528
+ return [];
529
+ }
530
+ if (fileCount.count >= MAX_FILES) {
531
+ return [];
532
+ }
533
+ let entries;
534
+ try {
535
+ entries = await fs.readdir(dirPath, { withFileTypes: true });
536
+ }
537
+ catch {
538
+ return [];
539
+ }
540
+ const matchedFiles = [];
541
+ for (const entry of entries) {
542
+ if (fileCount.count >= MAX_FILES) {
543
+ break;
544
+ }
545
+ if (entry.name.startsWith('.')) {
546
+ continue;
547
+ }
548
+ const fullPath = path.join(dirPath, entry.name);
549
+ if (entry.isDirectory()) {
550
+ if (EXCLUDED_DIRS.has(entry.name)) {
551
+ continue;
552
+ }
553
+ const subFiles = await findFilesRecursively(fullPath, regex, baseDir, depth + 1, fileCount);
554
+ matchedFiles.push(...subFiles);
555
+ }
556
+ else if (regex.test(entry.name)) {
557
+ const relativePath = path.relative(baseDir, fullPath);
558
+ matchedFiles.push({
559
+ name: entry.name,
560
+ path: relativePath,
561
+ });
562
+ fileCount.count++;
563
+ }
564
+ }
565
+ return matchedFiles;
566
+ }
567
+ async function _executeFindFilesInternal(args) {
568
+ const pattern = args['pattern'];
569
+ const directoryPath = args['directory_path'] || '.';
570
+ logger.toolStart('find_files', { pattern, directory_path: directoryPath });
571
+ try {
572
+ const resolvedPath = path.resolve(directoryPath);
573
+ const regexPattern = pattern
574
+ .replace(/\./g, '\\.')
575
+ .replace(/\*/g, '.*')
576
+ .replace(/\?/g, '.');
577
+ const regex = new RegExp(`^${regexPattern}$`);
578
+ const matchedFiles = await findFilesRecursively(resolvedPath, regex, resolvedPath);
579
+ if (matchedFiles.length === 0) {
580
+ logger.toolSuccess('find_files', args, { matchCount: 0 }, 0);
581
+ return {
582
+ success: true,
583
+ result: `No files found matching pattern "${pattern}".`,
584
+ };
585
+ }
586
+ logger.toolSuccess('find_files', args, { matchCount: matchedFiles.length }, 0);
587
+ return {
588
+ success: true,
589
+ result: JSON.stringify(matchedFiles, null, 2),
590
+ };
591
+ }
592
+ catch (error) {
593
+ const err = error;
594
+ logger.toolError('find_files', args, err, 0);
595
+ return {
596
+ success: false,
597
+ error: `File search failed: ${err.message}`,
598
+ };
599
+ }
600
+ }
601
+ export const findFilesTool = {
602
+ definition: FIND_FILES_DEFINITION,
603
+ execute: _executeFindFilesInternal,
604
+ categories: ['llm-simple'],
605
+ description: 'Search files by pattern',
606
+ };
607
+ const SEARCH_CONTENT_DEFINITION = {
608
+ type: 'function',
609
+ function: {
610
+ name: 'search_content',
611
+ description: 'Search for text pattern inside files.',
612
+ parameters: {
613
+ type: 'object',
614
+ properties: {
615
+ reason: {
616
+ type: 'string',
617
+ description: `A natural, conversational explanation for the user about what you're doing.
618
+ Write as if you're talking to the user directly. Use the same language as the user.
619
+ Examples:
620
+ - "Searching for usages of the function"
621
+ - "Finding where the error message is defined"
622
+ - "Looking for references to the API endpoint"`,
623
+ },
624
+ pattern: {
625
+ type: 'string',
626
+ description: 'Text or regex pattern to search for',
627
+ },
628
+ directory_path: {
629
+ type: 'string',
630
+ description: 'Directory path to search in (default: current directory)',
631
+ },
632
+ file_pattern: {
633
+ type: 'string',
634
+ description: 'File pattern to filter (e.g., *.ts)',
635
+ },
636
+ max_results: {
637
+ type: 'number',
638
+ description: 'Maximum number of results (default: 50)',
639
+ },
640
+ },
641
+ required: ['reason', 'pattern'],
642
+ },
643
+ },
644
+ };
645
+ const TEXT_EXTENSIONS = [
646
+ '.ts', '.tsx', '.js', '.jsx', '.json', '.md', '.txt', '.css', '.scss',
647
+ '.html', '.xml', '.yaml', '.yml', '.toml', '.ini', '.cfg', '.conf',
648
+ '.sh', '.bash', '.ps1', '.py', '.rb', '.go', '.rs', '.java', '.c',
649
+ '.cpp', '.h', '.hpp', '.cs', '.php', '.vue', '.svelte',
650
+ ];
651
+ async function searchContentRecursively(dirPath, searchRegex, baseDir, fileRegex, resultCount, maxResults, depth = 0) {
652
+ if (depth > MAX_DEPTH || resultCount.count >= maxResults) {
653
+ return [];
654
+ }
655
+ let entries;
656
+ try {
657
+ entries = await fs.readdir(dirPath, { withFileTypes: true });
658
+ }
659
+ catch {
660
+ return [];
661
+ }
662
+ const results = [];
663
+ for (const entry of entries) {
664
+ if (resultCount.count >= maxResults)
665
+ break;
666
+ if (entry.name.startsWith('.'))
667
+ continue;
668
+ const fullPath = path.join(dirPath, entry.name);
669
+ if (entry.isDirectory()) {
670
+ if (EXCLUDED_DIRS.has(entry.name))
671
+ continue;
672
+ const subResults = await searchContentRecursively(fullPath, searchRegex, baseDir, fileRegex, resultCount, maxResults, depth + 1);
673
+ results.push(...subResults);
674
+ }
675
+ else {
676
+ if (fileRegex && !fileRegex.test(entry.name))
677
+ continue;
678
+ const ext = path.extname(entry.name).toLowerCase();
679
+ if (!TEXT_EXTENSIONS.includes(ext))
680
+ continue;
681
+ try {
682
+ const content = await fs.readFile(fullPath, 'utf-8');
683
+ const lines = content.split('\n');
684
+ const relativePath = path.relative(baseDir, fullPath);
685
+ for (let i = 0; i < lines.length && resultCount.count < maxResults; i++) {
686
+ const line = lines[i] ?? '';
687
+ if (searchRegex.test(line)) {
688
+ results.push({
689
+ file: relativePath,
690
+ line: i + 1,
691
+ content: line.trim().substring(0, 200),
692
+ });
693
+ resultCount.count++;
694
+ }
695
+ }
696
+ }
697
+ catch {
698
+ }
699
+ }
700
+ }
701
+ return results;
702
+ }
703
+ async function executeSearchContent(args) {
704
+ const pattern = args['pattern'];
705
+ const directoryPath = args['directory_path'] || '.';
706
+ const filePattern = args['file_pattern'];
707
+ const maxResults = args['max_results'] || 50;
708
+ logger.toolStart('search_content', { pattern, directory_path: directoryPath, file_pattern: filePattern, maxResults });
709
+ try {
710
+ const resolvedPath = path.isAbsolute(directoryPath) ? directoryPath : path.resolve(process.cwd(), directoryPath);
711
+ const searchRegex = new RegExp(pattern, 'gi');
712
+ let fileRegex = null;
713
+ if (filePattern) {
714
+ const regexPattern = filePattern
715
+ .replace(/\./g, '\\.')
716
+ .replace(/\*/g, '.*')
717
+ .replace(/\?/g, '.');
718
+ fileRegex = new RegExp(`^${regexPattern}$`, 'i');
719
+ }
720
+ const results = await searchContentRecursively(resolvedPath, searchRegex, resolvedPath, fileRegex, { count: 0 }, maxResults);
721
+ logger.toolSuccess('search_content', args, { matchedCount: results.length }, 0);
722
+ if (results.length === 0) {
723
+ return { success: true, result: `No matches found for pattern "${pattern}".` };
724
+ }
725
+ return { success: true, result: JSON.stringify(results, null, 2) };
726
+ }
727
+ catch (error) {
728
+ const err = error;
729
+ logger.toolError('search_content', args, err, 0);
730
+ return { success: false, error: `Content search failed: ${err.message}` };
731
+ }
732
+ }
733
+ export const searchContentTool = {
734
+ definition: SEARCH_CONTENT_DEFINITION,
735
+ execute: executeSearchContent,
736
+ categories: ['llm-simple'],
737
+ description: 'Search content in files',
738
+ };
739
+ export const FILE_TOOLS = [
740
+ readFileTool,
741
+ createFileTool,
742
+ editFileTool,
743
+ listFilesTool,
744
+ findFilesTool,
745
+ searchContentTool,
746
+ ];
747
+ export const SYSTEM_TOOLS = [];
748
+ export { USER_INTERACTION_TOOLS, tellToUserTool, askToUserTool, setTellToUserCallback, setAskUserCallback, clearAskUserCallback, hasAskUserCallback, } from './user-interaction-tools.js';
749
+ export { FILE_TOOLS as FILE_SIMPLE_TOOLS };
750
+ export { setToolExecutionCallback, setToolResponseCallback, setPlanCreatedCallback, setTodoStartCallback, setTodoCompleteCallback, setTodoFailCallback, setToolApprovalCallback, setCompactCallback, setAssistantResponseCallback, setReasoningCallback, getToolExecutionCallback, requestToolApproval, emitPlanCreated, emitTodoStart, emitTodoComplete, emitTodoFail, emitCompact, emitAssistantResponse, emitReasoning, executeSimpleTool, executeFileTool, } from './simple-tool-executor.js';
751
+ //# sourceMappingURL=file-tools.js.map