hanseol 3.2.7

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 (696) 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 +15 -0
  16. package/dist/agents/planner/index.d.ts.map +1 -0
  17. package/dist/agents/planner/index.js +270 -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 +97 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/constants.d.ts +8 -0
  24. package/dist/constants.d.ts.map +1 -0
  25. package/dist/constants.js +10 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/core/auth/auth-manager.d.ts +23 -0
  28. package/dist/core/auth/auth-manager.d.ts.map +1 -0
  29. package/dist/core/auth/auth-manager.js +159 -0
  30. package/dist/core/auth/auth-manager.js.map +1 -0
  31. package/dist/core/auth/index.d.ts +4 -0
  32. package/dist/core/auth/index.d.ts.map +1 -0
  33. package/dist/core/auth/index.js +4 -0
  34. package/dist/core/auth/index.js.map +1 -0
  35. package/dist/core/auth/jwt-decoder.d.ts +7 -0
  36. package/dist/core/auth/jwt-decoder.d.ts.map +1 -0
  37. package/dist/core/auth/jwt-decoder.js +101 -0
  38. package/dist/core/auth/jwt-decoder.js.map +1 -0
  39. package/dist/core/auth/sso-client.d.ts +20 -0
  40. package/dist/core/auth/sso-client.d.ts.map +1 -0
  41. package/dist/core/auth/sso-client.js +164 -0
  42. package/dist/core/auth/sso-client.js.map +1 -0
  43. package/dist/core/auth/types.d.ts +45 -0
  44. package/dist/core/auth/types.d.ts.map +1 -0
  45. package/dist/core/auth/types.js +2 -0
  46. package/dist/core/auth/types.js.map +1 -0
  47. package/dist/core/compact/compact-manager.d.ts +22 -0
  48. package/dist/core/compact/compact-manager.d.ts.map +1 -0
  49. package/dist/core/compact/compact-manager.js +74 -0
  50. package/dist/core/compact/compact-manager.js.map +1 -0
  51. package/dist/core/compact/compact-prompts.d.ts +11 -0
  52. package/dist/core/compact/compact-prompts.d.ts.map +1 -0
  53. package/dist/core/compact/compact-prompts.js +80 -0
  54. package/dist/core/compact/compact-prompts.js.map +1 -0
  55. package/dist/core/compact/context-tracker.d.ts +28 -0
  56. package/dist/core/compact/context-tracker.d.ts.map +1 -0
  57. package/dist/core/compact/context-tracker.js +71 -0
  58. package/dist/core/compact/context-tracker.js.map +1 -0
  59. package/dist/core/compact/index.d.ts +4 -0
  60. package/dist/core/compact/index.d.ts.map +1 -0
  61. package/dist/core/compact/index.js +4 -0
  62. package/dist/core/compact/index.js.map +1 -0
  63. package/dist/core/config/config-manager.d.ts +43 -0
  64. package/dist/core/config/config-manager.d.ts.map +1 -0
  65. package/dist/core/config/config-manager.js +247 -0
  66. package/dist/core/config/config-manager.js.map +1 -0
  67. package/dist/core/config/index.d.ts +2 -0
  68. package/dist/core/config/index.d.ts.map +1 -0
  69. package/dist/core/config/index.js +2 -0
  70. package/dist/core/config/index.js.map +1 -0
  71. package/dist/core/docs-manager.d.ts +46 -0
  72. package/dist/core/docs-manager.d.ts.map +1 -0
  73. package/dist/core/docs-manager.js +475 -0
  74. package/dist/core/docs-manager.js.map +1 -0
  75. package/dist/core/llm/index.d.ts +2 -0
  76. package/dist/core/llm/index.d.ts.map +1 -0
  77. package/dist/core/llm/index.js +2 -0
  78. package/dist/core/llm/index.js.map +1 -0
  79. package/dist/core/llm/llm-client.d.ts +97 -0
  80. package/dist/core/llm/llm-client.d.ts.map +1 -0
  81. package/dist/core/llm/llm-client.js +1002 -0
  82. package/dist/core/llm/llm-client.js.map +1 -0
  83. package/dist/core/model-sync.d.ts +20 -0
  84. package/dist/core/model-sync.d.ts.map +1 -0
  85. package/dist/core/model-sync.js +182 -0
  86. package/dist/core/model-sync.js.map +1 -0
  87. package/dist/core/notification-manager.d.ts +23 -0
  88. package/dist/core/notification-manager.d.ts.map +1 -0
  89. package/dist/core/notification-manager.js +76 -0
  90. package/dist/core/notification-manager.js.map +1 -0
  91. package/dist/core/s3-auto-updater.d.ts +51 -0
  92. package/dist/core/s3-auto-updater.d.ts.map +1 -0
  93. package/dist/core/s3-auto-updater.js +292 -0
  94. package/dist/core/s3-auto-updater.js.map +1 -0
  95. package/dist/core/session/index.d.ts +2 -0
  96. package/dist/core/session/index.d.ts.map +1 -0
  97. package/dist/core/session/index.js +2 -0
  98. package/dist/core/session/index.js.map +1 -0
  99. package/dist/core/session/session-manager.d.ts +71 -0
  100. package/dist/core/session/session-manager.d.ts.map +1 -0
  101. package/dist/core/session/session-manager.js +235 -0
  102. package/dist/core/session/session-manager.js.map +1 -0
  103. package/dist/core/slash-command-handler.d.ts +32 -0
  104. package/dist/core/slash-command-handler.d.ts.map +1 -0
  105. package/dist/core/slash-command-handler.js +402 -0
  106. package/dist/core/slash-command-handler.js.map +1 -0
  107. package/dist/core/usage-tracker.d.ts +70 -0
  108. package/dist/core/usage-tracker.d.ts.map +1 -0
  109. package/dist/core/usage-tracker.js +251 -0
  110. package/dist/core/usage-tracker.js.map +1 -0
  111. package/dist/errors/base.d.ts +22 -0
  112. package/dist/errors/base.d.ts.map +1 -0
  113. package/dist/errors/base.js +43 -0
  114. package/dist/errors/base.js.map +1 -0
  115. package/dist/errors/file.d.ts +31 -0
  116. package/dist/errors/file.d.ts.map +1 -0
  117. package/dist/errors/file.js +110 -0
  118. package/dist/errors/file.js.map +1 -0
  119. package/dist/errors/index.d.ts +10 -0
  120. package/dist/errors/index.d.ts.map +1 -0
  121. package/dist/errors/index.js +41 -0
  122. package/dist/errors/index.js.map +1 -0
  123. package/dist/errors/llm.d.ts +26 -0
  124. package/dist/errors/llm.d.ts.map +1 -0
  125. package/dist/errors/llm.js +86 -0
  126. package/dist/errors/llm.js.map +1 -0
  127. package/dist/errors/network.d.ts +19 -0
  128. package/dist/errors/network.d.ts.map +1 -0
  129. package/dist/errors/network.js +82 -0
  130. package/dist/errors/network.js.map +1 -0
  131. package/dist/errors/validation.d.ts +19 -0
  132. package/dist/errors/validation.d.ts.map +1 -0
  133. package/dist/errors/validation.js +62 -0
  134. package/dist/errors/validation.js.map +1 -0
  135. package/dist/eval/eval-runner.d.ts +24 -0
  136. package/dist/eval/eval-runner.d.ts.map +1 -0
  137. package/dist/eval/eval-runner.js +291 -0
  138. package/dist/eval/eval-runner.js.map +1 -0
  139. package/dist/eval/index.d.ts +3 -0
  140. package/dist/eval/index.d.ts.map +1 -0
  141. package/dist/eval/index.js +3 -0
  142. package/dist/eval/index.js.map +1 -0
  143. package/dist/eval/types.d.ts +77 -0
  144. package/dist/eval/types.d.ts.map +1 -0
  145. package/dist/eval/types.js +2 -0
  146. package/dist/eval/types.js.map +1 -0
  147. package/dist/index.d.ts +4 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +6 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/orchestration/index.d.ts +4 -0
  152. package/dist/orchestration/index.d.ts.map +1 -0
  153. package/dist/orchestration/index.js +3 -0
  154. package/dist/orchestration/index.js.map +1 -0
  155. package/dist/orchestration/plan-executor.d.ts +28 -0
  156. package/dist/orchestration/plan-executor.d.ts.map +1 -0
  157. package/dist/orchestration/plan-executor.js +368 -0
  158. package/dist/orchestration/plan-executor.js.map +1 -0
  159. package/dist/orchestration/types.d.ts +65 -0
  160. package/dist/orchestration/types.d.ts.map +1 -0
  161. package/dist/orchestration/types.js +2 -0
  162. package/dist/orchestration/types.js.map +1 -0
  163. package/dist/orchestration/utils.d.ts +13 -0
  164. package/dist/orchestration/utils.d.ts.map +1 -0
  165. package/dist/orchestration/utils.js +81 -0
  166. package/dist/orchestration/utils.js.map +1 -0
  167. package/dist/prompts/agents/docs-search-decision.d.ts +6 -0
  168. package/dist/prompts/agents/docs-search-decision.d.ts.map +1 -0
  169. package/dist/prompts/agents/docs-search-decision.js +46 -0
  170. package/dist/prompts/agents/docs-search-decision.js.map +1 -0
  171. package/dist/prompts/agents/docs-search.d.ts +4 -0
  172. package/dist/prompts/agents/docs-search.d.ts.map +1 -0
  173. package/dist/prompts/agents/docs-search.js +70 -0
  174. package/dist/prompts/agents/docs-search.js.map +1 -0
  175. package/dist/prompts/agents/planning.d.ts +4 -0
  176. package/dist/prompts/agents/planning.d.ts.map +1 -0
  177. package/dist/prompts/agents/planning.js +119 -0
  178. package/dist/prompts/agents/planning.js.map +1 -0
  179. package/dist/prompts/index.d.ts +10 -0
  180. package/dist/prompts/index.d.ts.map +1 -0
  181. package/dist/prompts/index.js +10 -0
  182. package/dist/prompts/index.js.map +1 -0
  183. package/dist/prompts/shared/codebase-rules.d.ts +4 -0
  184. package/dist/prompts/shared/codebase-rules.d.ts.map +1 -0
  185. package/dist/prompts/shared/codebase-rules.js +16 -0
  186. package/dist/prompts/shared/codebase-rules.js.map +1 -0
  187. package/dist/prompts/shared/git-rules.d.ts +2 -0
  188. package/dist/prompts/shared/git-rules.d.ts.map +1 -0
  189. package/dist/prompts/shared/git-rules.js +87 -0
  190. package/dist/prompts/shared/git-rules.js.map +1 -0
  191. package/dist/prompts/shared/language-rules.d.ts +4 -0
  192. package/dist/prompts/shared/language-rules.d.ts.map +1 -0
  193. package/dist/prompts/shared/language-rules.js +22 -0
  194. package/dist/prompts/shared/language-rules.js.map +1 -0
  195. package/dist/prompts/shared/tool-usage.d.ts +12 -0
  196. package/dist/prompts/shared/tool-usage.d.ts.map +1 -0
  197. package/dist/prompts/shared/tool-usage.js +49 -0
  198. package/dist/prompts/shared/tool-usage.js.map +1 -0
  199. package/dist/prompts/system/compact.d.ts +3 -0
  200. package/dist/prompts/system/compact.d.ts.map +1 -0
  201. package/dist/prompts/system/compact.js +73 -0
  202. package/dist/prompts/system/compact.js.map +1 -0
  203. package/dist/prompts/system/plan-execute.d.ts +3 -0
  204. package/dist/prompts/system/plan-execute.d.ts.map +1 -0
  205. package/dist/prompts/system/plan-execute.js +83 -0
  206. package/dist/prompts/system/plan-execute.js.map +1 -0
  207. package/dist/tools/browser/browser-client.d.ts +107 -0
  208. package/dist/tools/browser/browser-client.d.ts.map +1 -0
  209. package/dist/tools/browser/browser-client.js +958 -0
  210. package/dist/tools/browser/browser-client.js.map +1 -0
  211. package/dist/tools/browser/browser-tools.d.ts +17 -0
  212. package/dist/tools/browser/browser-tools.d.ts.map +1 -0
  213. package/dist/tools/browser/browser-tools.js +888 -0
  214. package/dist/tools/browser/browser-tools.js.map +1 -0
  215. package/dist/tools/browser/index.d.ts +7 -0
  216. package/dist/tools/browser/index.d.ts.map +1 -0
  217. package/dist/tools/browser/index.js +17 -0
  218. package/dist/tools/browser/index.js.map +1 -0
  219. package/dist/tools/index.d.ts +4 -0
  220. package/dist/tools/index.d.ts.map +1 -0
  221. package/dist/tools/index.js +4 -0
  222. package/dist/tools/index.js.map +1 -0
  223. package/dist/tools/llm/agents/docs-search-tools.d.ts +17 -0
  224. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +1 -0
  225. package/dist/tools/llm/agents/docs-search-tools.js +265 -0
  226. package/dist/tools/llm/agents/docs-search-tools.js.map +1 -0
  227. package/dist/tools/llm/agents/index.d.ts +4 -0
  228. package/dist/tools/llm/agents/index.d.ts.map +1 -0
  229. package/dist/tools/llm/agents/index.js +3 -0
  230. package/dist/tools/llm/agents/index.js.map +1 -0
  231. package/dist/tools/llm/index.d.ts +3 -0
  232. package/dist/tools/llm/index.d.ts.map +1 -0
  233. package/dist/tools/llm/index.js +3 -0
  234. package/dist/tools/llm/index.js.map +1 -0
  235. package/dist/tools/llm/simple/ask-user-tool.d.ts +5 -0
  236. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +1 -0
  237. package/dist/tools/llm/simple/ask-user-tool.js +7 -0
  238. package/dist/tools/llm/simple/ask-user-tool.js.map +1 -0
  239. package/dist/tools/llm/simple/background-bash-tool.d.ts +30 -0
  240. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +1 -0
  241. package/dist/tools/llm/simple/background-bash-tool.js +320 -0
  242. package/dist/tools/llm/simple/background-bash-tool.js.map +1 -0
  243. package/dist/tools/llm/simple/background-powershell-tool.d.ts +30 -0
  244. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +1 -0
  245. package/dist/tools/llm/simple/background-powershell-tool.js +302 -0
  246. package/dist/tools/llm/simple/background-powershell-tool.js.map +1 -0
  247. package/dist/tools/llm/simple/bash-tool.d.ts +4 -0
  248. package/dist/tools/llm/simple/bash-tool.d.ts.map +1 -0
  249. package/dist/tools/llm/simple/bash-tool.js +167 -0
  250. package/dist/tools/llm/simple/bash-tool.js.map +1 -0
  251. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts +6 -0
  252. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +1 -0
  253. package/dist/tools/llm/simple/docs-search-agent-tool.js +104 -0
  254. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +1 -0
  255. package/dist/tools/llm/simple/file-tools.d.ts +12 -0
  256. package/dist/tools/llm/simple/file-tools.d.ts.map +1 -0
  257. package/dist/tools/llm/simple/file-tools.js +597 -0
  258. package/dist/tools/llm/simple/file-tools.js.map +1 -0
  259. package/dist/tools/llm/simple/final-response-tool.d.ts +12 -0
  260. package/dist/tools/llm/simple/final-response-tool.d.ts.map +1 -0
  261. package/dist/tools/llm/simple/final-response-tool.js +107 -0
  262. package/dist/tools/llm/simple/final-response-tool.js.map +1 -0
  263. package/dist/tools/llm/simple/index.d.ts +11 -0
  264. package/dist/tools/llm/simple/index.d.ts.map +1 -0
  265. package/dist/tools/llm/simple/index.js +20 -0
  266. package/dist/tools/llm/simple/index.js.map +1 -0
  267. package/dist/tools/llm/simple/planning-tools.d.ts +5 -0
  268. package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -0
  269. package/dist/tools/llm/simple/planning-tools.js +117 -0
  270. package/dist/tools/llm/simple/planning-tools.js.map +1 -0
  271. package/dist/tools/llm/simple/powershell-tool.d.ts +4 -0
  272. package/dist/tools/llm/simple/powershell-tool.d.ts.map +1 -0
  273. package/dist/tools/llm/simple/powershell-tool.js +150 -0
  274. package/dist/tools/llm/simple/powershell-tool.js.map +1 -0
  275. package/dist/tools/llm/simple/simple-tool-executor.d.ts +38 -0
  276. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +1 -0
  277. package/dist/tools/llm/simple/simple-tool-executor.js +132 -0
  278. package/dist/tools/llm/simple/simple-tool-executor.js.map +1 -0
  279. package/dist/tools/llm/simple/todo-tools.d.ts +15 -0
  280. package/dist/tools/llm/simple/todo-tools.d.ts.map +1 -0
  281. package/dist/tools/llm/simple/todo-tools.js +145 -0
  282. package/dist/tools/llm/simple/todo-tools.js.map +1 -0
  283. package/dist/tools/llm/simple/user-interaction-tools.d.ts +21 -0
  284. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +1 -0
  285. package/dist/tools/llm/simple/user-interaction-tools.js +167 -0
  286. package/dist/tools/llm/simple/user-interaction-tools.js.map +1 -0
  287. package/dist/tools/office/common/constants.d.ts +194 -0
  288. package/dist/tools/office/common/constants.d.ts.map +1 -0
  289. package/dist/tools/office/common/constants.js +169 -0
  290. package/dist/tools/office/common/constants.js.map +1 -0
  291. package/dist/tools/office/common/index.d.ts +4 -0
  292. package/dist/tools/office/common/index.d.ts.map +1 -0
  293. package/dist/tools/office/common/index.js +3 -0
  294. package/dist/tools/office/common/index.js.map +1 -0
  295. package/dist/tools/office/common/types.d.ts +82 -0
  296. package/dist/tools/office/common/types.d.ts.map +1 -0
  297. package/dist/tools/office/common/types.js +2 -0
  298. package/dist/tools/office/common/types.js.map +1 -0
  299. package/dist/tools/office/common/utils.d.ts +14 -0
  300. package/dist/tools/office/common/utils.d.ts.map +1 -0
  301. package/dist/tools/office/common/utils.js +58 -0
  302. package/dist/tools/office/common/utils.js.map +1 -0
  303. package/dist/tools/office/excel-client.d.ts +123 -0
  304. package/dist/tools/office/excel-client.d.ts.map +1 -0
  305. package/dist/tools/office/excel-client.js +1037 -0
  306. package/dist/tools/office/excel-client.js.map +1 -0
  307. package/dist/tools/office/excel-tools/cells.d.ts +10 -0
  308. package/dist/tools/office/excel-tools/cells.d.ts.map +1 -0
  309. package/dist/tools/office/excel-tools/cells.js +279 -0
  310. package/dist/tools/office/excel-tools/cells.js.map +1 -0
  311. package/dist/tools/office/excel-tools/charts.d.ts +6 -0
  312. package/dist/tools/office/excel-tools/charts.d.ts.map +1 -0
  313. package/dist/tools/office/excel-tools/charts.js +124 -0
  314. package/dist/tools/office/excel-tools/charts.js.map +1 -0
  315. package/dist/tools/office/excel-tools/comments.d.ts +6 -0
  316. package/dist/tools/office/excel-tools/comments.d.ts.map +1 -0
  317. package/dist/tools/office/excel-tools/comments.js +114 -0
  318. package/dist/tools/office/excel-tools/comments.js.map +1 -0
  319. package/dist/tools/office/excel-tools/data-ops.d.ts +10 -0
  320. package/dist/tools/office/excel-tools/data-ops.d.ts.map +1 -0
  321. package/dist/tools/office/excel-tools/data-ops.js +266 -0
  322. package/dist/tools/office/excel-tools/data-ops.js.map +1 -0
  323. package/dist/tools/office/excel-tools/export.d.ts +5 -0
  324. package/dist/tools/office/excel-tools/export.d.ts.map +1 -0
  325. package/dist/tools/office/excel-tools/export.js +75 -0
  326. package/dist/tools/office/excel-tools/export.js.map +1 -0
  327. package/dist/tools/office/excel-tools/formatting.d.ts +10 -0
  328. package/dist/tools/office/excel-tools/formatting.d.ts.map +1 -0
  329. package/dist/tools/office/excel-tools/formatting.js +276 -0
  330. package/dist/tools/office/excel-tools/formatting.js.map +1 -0
  331. package/dist/tools/office/excel-tools/index.d.ts +16 -0
  332. package/dist/tools/office/excel-tools/index.d.ts.map +1 -0
  333. package/dist/tools/office/excel-tools/index.js +42 -0
  334. package/dist/tools/office/excel-tools/index.js.map +1 -0
  335. package/dist/tools/office/excel-tools/launch.d.ts +10 -0
  336. package/dist/tools/office/excel-tools/launch.d.ts.map +1 -0
  337. package/dist/tools/office/excel-tools/launch.js +248 -0
  338. package/dist/tools/office/excel-tools/launch.js.map +1 -0
  339. package/dist/tools/office/excel-tools/media.d.ts +5 -0
  340. package/dist/tools/office/excel-tools/media.d.ts.map +1 -0
  341. package/dist/tools/office/excel-tools/media.js +84 -0
  342. package/dist/tools/office/excel-tools/media.js.map +1 -0
  343. package/dist/tools/office/excel-tools/named-ranges.d.ts +6 -0
  344. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +1 -0
  345. package/dist/tools/office/excel-tools/named-ranges.js +113 -0
  346. package/dist/tools/office/excel-tools/named-ranges.js.map +1 -0
  347. package/dist/tools/office/excel-tools/protection.d.ts +5 -0
  348. package/dist/tools/office/excel-tools/protection.d.ts.map +1 -0
  349. package/dist/tools/office/excel-tools/protection.js +75 -0
  350. package/dist/tools/office/excel-tools/protection.js.map +1 -0
  351. package/dist/tools/office/excel-tools/rows-columns.d.ts +11 -0
  352. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +1 -0
  353. package/dist/tools/office/excel-tools/rows-columns.js +293 -0
  354. package/dist/tools/office/excel-tools/rows-columns.js.map +1 -0
  355. package/dist/tools/office/excel-tools/sheets.d.ts +8 -0
  356. package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -0
  357. package/dist/tools/office/excel-tools/sheets.js +177 -0
  358. package/dist/tools/office/excel-tools/sheets.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 +29 -0
  372. package/dist/tools/office/office-client-base.d.ts.map +1 -0
  373. package/dist/tools/office/office-client-base.js +148 -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 +135 -0
  380. package/dist/tools/office/powerpoint-client.d.ts.map +1 -0
  381. package/dist/tools/office/powerpoint-client.js +1136 -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 +246 -0
  386. package/dist/tools/office/powerpoint-tools/effects.js.map +1 -0
  387. package/dist/tools/office/powerpoint-tools/export.d.ts +6 -0
  388. package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -0
  389. package/dist/tools/office/powerpoint-tools/export.js +108 -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 +211 -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 +171 -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 +104 -0
  410. package/dist/tools/office/powerpoint-tools/sections.js.map +1 -0
  411. package/dist/tools/office/powerpoint-tools/shapes.d.ts +22 -0
  412. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +1 -0
  413. package/dist/tools/office/powerpoint-tools/shapes.js +681 -0
  414. package/dist/tools/office/powerpoint-tools/shapes.js.map +1 -0
  415. package/dist/tools/office/powerpoint-tools/slides.d.ts +11 -0
  416. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +1 -0
  417. package/dist/tools/office/powerpoint-tools/slides.js +283 -0
  418. package/dist/tools/office/powerpoint-tools/slides.js.map +1 -0
  419. package/dist/tools/office/powerpoint-tools/tables.d.ts +6 -0
  420. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +1 -0
  421. package/dist/tools/office/powerpoint-tools/tables.js +132 -0
  422. package/dist/tools/office/powerpoint-tools/tables.js.map +1 -0
  423. package/dist/tools/office/powerpoint-tools/text.d.ts +12 -0
  424. package/dist/tools/office/powerpoint-tools/text.d.ts.map +1 -0
  425. package/dist/tools/office/powerpoint-tools/text.js +366 -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 +111 -0
  432. package/dist/tools/office/word-client.d.ts.map +1 -0
  433. package/dist/tools/office/word-client.js +995 -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/formatting.d.ts +6 -0
  452. package/dist/tools/office/word-tools/formatting.d.ts.map +1 -0
  453. package/dist/tools/office/word-tools/formatting.js +129 -0
  454. package/dist/tools/office/word-tools/formatting.js.map +1 -0
  455. package/dist/tools/office/word-tools/headers-footers.d.ts +6 -0
  456. package/dist/tools/office/word-tools/headers-footers.d.ts.map +1 -0
  457. package/dist/tools/office/word-tools/headers-footers.js +117 -0
  458. package/dist/tools/office/word-tools/headers-footers.js.map +1 -0
  459. package/dist/tools/office/word-tools/index.d.ts +16 -0
  460. package/dist/tools/office/word-tools/index.d.ts.map +1 -0
  461. package/dist/tools/office/word-tools/index.js +45 -0
  462. package/dist/tools/office/word-tools/index.js.map +1 -0
  463. package/dist/tools/office/word-tools/launch.d.ts +10 -0
  464. package/dist/tools/office/word-tools/launch.d.ts.map +1 -0
  465. package/dist/tools/office/word-tools/launch.js +255 -0
  466. package/dist/tools/office/word-tools/launch.js.map +1 -0
  467. package/dist/tools/office/word-tools/lists.d.ts +5 -0
  468. package/dist/tools/office/word-tools/lists.d.ts.map +1 -0
  469. package/dist/tools/office/word-tools/lists.js +73 -0
  470. package/dist/tools/office/word-tools/lists.js.map +1 -0
  471. package/dist/tools/office/word-tools/navigation.d.ts +5 -0
  472. package/dist/tools/office/word-tools/navigation.d.ts.map +1 -0
  473. package/dist/tools/office/word-tools/navigation.js +85 -0
  474. package/dist/tools/office/word-tools/navigation.js.map +1 -0
  475. package/dist/tools/office/word-tools/page-setup.d.ts +7 -0
  476. package/dist/tools/office/word-tools/page-setup.d.ts.map +1 -0
  477. package/dist/tools/office/word-tools/page-setup.js +152 -0
  478. package/dist/tools/office/word-tools/page-setup.js.map +1 -0
  479. package/dist/tools/office/word-tools/tables.d.ts +8 -0
  480. package/dist/tools/office/word-tools/tables.d.ts.map +1 -0
  481. package/dist/tools/office/word-tools/tables.js +197 -0
  482. package/dist/tools/office/word-tools/tables.js.map +1 -0
  483. package/dist/tools/office/word-tools/text.d.ts +9 -0
  484. package/dist/tools/office/word-tools/text.d.ts.map +1 -0
  485. package/dist/tools/office/word-tools/text.js +235 -0
  486. package/dist/tools/office/word-tools/text.js.map +1 -0
  487. package/dist/tools/office/word-tools/undo-redo.d.ts +5 -0
  488. package/dist/tools/office/word-tools/undo-redo.d.ts.map +1 -0
  489. package/dist/tools/office/word-tools/undo-redo.js +73 -0
  490. package/dist/tools/office/word-tools/undo-redo.js.map +1 -0
  491. package/dist/tools/office/word-tools/watermarks.d.ts +5 -0
  492. package/dist/tools/office/word-tools/watermarks.d.ts.map +1 -0
  493. package/dist/tools/office/word-tools/watermarks.js +81 -0
  494. package/dist/tools/office/word-tools/watermarks.js.map +1 -0
  495. package/dist/tools/office/word-tools.d.ts +3 -0
  496. package/dist/tools/office/word-tools.d.ts.map +1 -0
  497. package/dist/tools/office/word-tools.js +3 -0
  498. package/dist/tools/office/word-tools.js.map +1 -0
  499. package/dist/tools/registry.d.ts +46 -0
  500. package/dist/tools/registry.d.ts.map +1 -0
  501. package/dist/tools/registry.js +258 -0
  502. package/dist/tools/registry.js.map +1 -0
  503. package/dist/tools/types.d.ts +88 -0
  504. package/dist/tools/types.d.ts.map +1 -0
  505. package/dist/tools/types.js +19 -0
  506. package/dist/tools/types.js.map +1 -0
  507. package/dist/types/index.d.ts +122 -0
  508. package/dist/types/index.d.ts.map +1 -0
  509. package/dist/types/index.js +2 -0
  510. package/dist/types/index.js.map +1 -0
  511. package/dist/ui/PlanExecuteView.d.ts +11 -0
  512. package/dist/ui/PlanExecuteView.d.ts.map +1 -0
  513. package/dist/ui/PlanExecuteView.js +27 -0
  514. package/dist/ui/PlanExecuteView.js.map +1 -0
  515. package/dist/ui/TodoPanel.d.ts +13 -0
  516. package/dist/ui/TodoPanel.d.ts.map +1 -0
  517. package/dist/ui/TodoPanel.js +135 -0
  518. package/dist/ui/TodoPanel.js.map +1 -0
  519. package/dist/ui/UpdateNotification.d.ts +13 -0
  520. package/dist/ui/UpdateNotification.d.ts.map +1 -0
  521. package/dist/ui/UpdateNotification.js +42 -0
  522. package/dist/ui/UpdateNotification.js.map +1 -0
  523. package/dist/ui/components/ActivityIndicator.d.ts +25 -0
  524. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -0
  525. package/dist/ui/components/ActivityIndicator.js +115 -0
  526. package/dist/ui/components/ActivityIndicator.js.map +1 -0
  527. package/dist/ui/components/CommandBrowser.d.ts +10 -0
  528. package/dist/ui/components/CommandBrowser.d.ts.map +1 -0
  529. package/dist/ui/components/CommandBrowser.js +53 -0
  530. package/dist/ui/components/CommandBrowser.js.map +1 -0
  531. package/dist/ui/components/CustomTextInput.d.ts +13 -0
  532. package/dist/ui/components/CustomTextInput.d.ts.map +1 -0
  533. package/dist/ui/components/CustomTextInput.js +245 -0
  534. package/dist/ui/components/CustomTextInput.js.map +1 -0
  535. package/dist/ui/components/DocsSearchProgress.d.ts +13 -0
  536. package/dist/ui/components/DocsSearchProgress.d.ts.map +1 -0
  537. package/dist/ui/components/DocsSearchProgress.js +37 -0
  538. package/dist/ui/components/DocsSearchProgress.js.map +1 -0
  539. package/dist/ui/components/FileBrowser.d.ts +11 -0
  540. package/dist/ui/components/FileBrowser.d.ts.map +1 -0
  541. package/dist/ui/components/FileBrowser.js +45 -0
  542. package/dist/ui/components/FileBrowser.js.map +1 -0
  543. package/dist/ui/components/LLMSetupWizard.d.ts +8 -0
  544. package/dist/ui/components/LLMSetupWizard.d.ts.map +1 -0
  545. package/dist/ui/components/LLMSetupWizard.js +183 -0
  546. package/dist/ui/components/LLMSetupWizard.js.map +1 -0
  547. package/dist/ui/components/Logo.d.ts +19 -0
  548. package/dist/ui/components/Logo.d.ts.map +1 -0
  549. package/dist/ui/components/Logo.js +99 -0
  550. package/dist/ui/components/Logo.js.map +1 -0
  551. package/dist/ui/components/MarkdownRenderer.d.ts +9 -0
  552. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -0
  553. package/dist/ui/components/MarkdownRenderer.js +198 -0
  554. package/dist/ui/components/MarkdownRenderer.js.map +1 -0
  555. package/dist/ui/components/ModelSelector.d.ts +8 -0
  556. package/dist/ui/components/ModelSelector.d.ts.map +1 -0
  557. package/dist/ui/components/ModelSelector.js +111 -0
  558. package/dist/ui/components/ModelSelector.js.map +1 -0
  559. package/dist/ui/components/PlanExecuteApp.d.ts +23 -0
  560. package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -0
  561. package/dist/ui/components/PlanExecuteApp.js +1432 -0
  562. package/dist/ui/components/PlanExecuteApp.js.map +1 -0
  563. package/dist/ui/components/ProgressBar.d.ts +10 -0
  564. package/dist/ui/components/ProgressBar.d.ts.map +1 -0
  565. package/dist/ui/components/ProgressBar.js +26 -0
  566. package/dist/ui/components/ProgressBar.js.map +1 -0
  567. package/dist/ui/components/StatusBar.d.ts +23 -0
  568. package/dist/ui/components/StatusBar.d.ts.map +1 -0
  569. package/dist/ui/components/StatusBar.js +162 -0
  570. package/dist/ui/components/StatusBar.js.map +1 -0
  571. package/dist/ui/components/ThinkingIndicator.d.ts +14 -0
  572. package/dist/ui/components/ThinkingIndicator.d.ts.map +1 -0
  573. package/dist/ui/components/ThinkingIndicator.js +63 -0
  574. package/dist/ui/components/ThinkingIndicator.js.map +1 -0
  575. package/dist/ui/components/TodoListView.d.ts +11 -0
  576. package/dist/ui/components/TodoListView.d.ts.map +1 -0
  577. package/dist/ui/components/TodoListView.js +69 -0
  578. package/dist/ui/components/TodoListView.js.map +1 -0
  579. package/dist/ui/components/ToolSelector.d.ts +7 -0
  580. package/dist/ui/components/ToolSelector.d.ts.map +1 -0
  581. package/dist/ui/components/ToolSelector.js +112 -0
  582. package/dist/ui/components/ToolSelector.js.map +1 -0
  583. package/dist/ui/components/dialogs/ApprovalDialog.d.ts +13 -0
  584. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +1 -0
  585. package/dist/ui/components/dialogs/ApprovalDialog.js +173 -0
  586. package/dist/ui/components/dialogs/ApprovalDialog.js.map +1 -0
  587. package/dist/ui/components/dialogs/AskUserDialog.d.ts +9 -0
  588. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +1 -0
  589. package/dist/ui/components/dialogs/AskUserDialog.js +111 -0
  590. package/dist/ui/components/dialogs/AskUserDialog.js.map +1 -0
  591. package/dist/ui/components/dialogs/DocsBrowser.d.ts +8 -0
  592. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +1 -0
  593. package/dist/ui/components/dialogs/DocsBrowser.js +127 -0
  594. package/dist/ui/components/dialogs/DocsBrowser.js.map +1 -0
  595. package/dist/ui/components/dialogs/RatingDialog.d.ts +9 -0
  596. package/dist/ui/components/dialogs/RatingDialog.d.ts.map +1 -0
  597. package/dist/ui/components/dialogs/RatingDialog.js +54 -0
  598. package/dist/ui/components/dialogs/RatingDialog.js.map +1 -0
  599. package/dist/ui/components/dialogs/SettingsDialog.d.ts +10 -0
  600. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +1 -0
  601. package/dist/ui/components/dialogs/SettingsDialog.js +563 -0
  602. package/dist/ui/components/dialogs/SettingsDialog.js.map +1 -0
  603. package/dist/ui/components/dialogs/index.d.ts +4 -0
  604. package/dist/ui/components/dialogs/index.d.ts.map +1 -0
  605. package/dist/ui/components/dialogs/index.js +4 -0
  606. package/dist/ui/components/dialogs/index.js.map +1 -0
  607. package/dist/ui/components/index.d.ts +12 -0
  608. package/dist/ui/components/index.d.ts.map +1 -0
  609. package/dist/ui/components/index.js +9 -0
  610. package/dist/ui/components/index.js.map +1 -0
  611. package/dist/ui/components/panels/SessionPanel.d.ts +8 -0
  612. package/dist/ui/components/panels/SessionPanel.d.ts.map +1 -0
  613. package/dist/ui/components/panels/SessionPanel.js +81 -0
  614. package/dist/ui/components/panels/SessionPanel.js.map +1 -0
  615. package/dist/ui/components/panels/index.d.ts +3 -0
  616. package/dist/ui/components/panels/index.d.ts.map +1 -0
  617. package/dist/ui/components/panels/index.js +3 -0
  618. package/dist/ui/components/panels/index.js.map +1 -0
  619. package/dist/ui/components/views/ChatView.d.ts +12 -0
  620. package/dist/ui/components/views/ChatView.d.ts.map +1 -0
  621. package/dist/ui/components/views/ChatView.js +289 -0
  622. package/dist/ui/components/views/ChatView.js.map +1 -0
  623. package/dist/ui/components/views/index.d.ts +2 -0
  624. package/dist/ui/components/views/index.d.ts.map +1 -0
  625. package/dist/ui/components/views/index.js +2 -0
  626. package/dist/ui/components/views/index.js.map +1 -0
  627. package/dist/ui/contexts/TokenContext.d.ts +29 -0
  628. package/dist/ui/contexts/TokenContext.d.ts.map +1 -0
  629. package/dist/ui/contexts/TokenContext.js +79 -0
  630. package/dist/ui/contexts/TokenContext.js.map +1 -0
  631. package/dist/ui/hooks/atFileProcessor.d.ts +15 -0
  632. package/dist/ui/hooks/atFileProcessor.d.ts.map +1 -0
  633. package/dist/ui/hooks/atFileProcessor.js +88 -0
  634. package/dist/ui/hooks/atFileProcessor.js.map +1 -0
  635. package/dist/ui/hooks/index.d.ts +8 -0
  636. package/dist/ui/hooks/index.d.ts.map +1 -0
  637. package/dist/ui/hooks/index.js +8 -0
  638. package/dist/ui/hooks/index.js.map +1 -0
  639. package/dist/ui/hooks/slashCommandProcessor.d.ts +21 -0
  640. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +1 -0
  641. package/dist/ui/hooks/slashCommandProcessor.js +100 -0
  642. package/dist/ui/hooks/slashCommandProcessor.js.map +1 -0
  643. package/dist/ui/hooks/useCommandBrowserState.d.ts +12 -0
  644. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +1 -0
  645. package/dist/ui/hooks/useCommandBrowserState.js +66 -0
  646. package/dist/ui/hooks/useCommandBrowserState.js.map +1 -0
  647. package/dist/ui/hooks/useFileBrowserState.d.ts +15 -0
  648. package/dist/ui/hooks/useFileBrowserState.d.ts.map +1 -0
  649. package/dist/ui/hooks/useFileBrowserState.js +79 -0
  650. package/dist/ui/hooks/useFileBrowserState.js.map +1 -0
  651. package/dist/ui/hooks/useFileList.d.ts +20 -0
  652. package/dist/ui/hooks/useFileList.d.ts.map +1 -0
  653. package/dist/ui/hooks/useFileList.js +56 -0
  654. package/dist/ui/hooks/useFileList.js.map +1 -0
  655. package/dist/ui/hooks/useInputHistory.d.ts +9 -0
  656. package/dist/ui/hooks/useInputHistory.d.ts.map +1 -0
  657. package/dist/ui/hooks/useInputHistory.js +68 -0
  658. package/dist/ui/hooks/useInputHistory.js.map +1 -0
  659. package/dist/ui/hooks/usePlanExecution.d.ts +8 -0
  660. package/dist/ui/hooks/usePlanExecution.d.ts.map +1 -0
  661. package/dist/ui/hooks/usePlanExecution.js +208 -0
  662. package/dist/ui/hooks/usePlanExecution.js.map +1 -0
  663. package/dist/ui/index.d.ts +7 -0
  664. package/dist/ui/index.d.ts.map +1 -0
  665. package/dist/ui/index.js +7 -0
  666. package/dist/ui/index.js.map +1 -0
  667. package/dist/ui/ink-entry.d.ts +3 -0
  668. package/dist/ui/ink-entry.d.ts.map +1 -0
  669. package/dist/ui/ink-entry.js +21 -0
  670. package/dist/ui/ink-entry.js.map +1 -0
  671. package/dist/utils/file-system.d.ts +9 -0
  672. package/dist/utils/file-system.d.ts.map +1 -0
  673. package/dist/utils/file-system.js +99 -0
  674. package/dist/utils/file-system.js.map +1 -0
  675. package/dist/utils/git-utils.d.ts +2 -0
  676. package/dist/utils/git-utils.d.ts.map +1 -0
  677. package/dist/utils/git-utils.js +16 -0
  678. package/dist/utils/git-utils.js.map +1 -0
  679. package/dist/utils/json-stream-logger.d.ts +52 -0
  680. package/dist/utils/json-stream-logger.d.ts.map +1 -0
  681. package/dist/utils/json-stream-logger.js +442 -0
  682. package/dist/utils/json-stream-logger.js.map +1 -0
  683. package/dist/utils/logger.d.ts +86 -0
  684. package/dist/utils/logger.d.ts.map +1 -0
  685. package/dist/utils/logger.js +588 -0
  686. package/dist/utils/logger.js.map +1 -0
  687. package/dist/utils/platform-utils.d.ts +19 -0
  688. package/dist/utils/platform-utils.d.ts.map +1 -0
  689. package/dist/utils/platform-utils.js +134 -0
  690. package/dist/utils/platform-utils.js.map +1 -0
  691. package/dist/utils/wsl-utils.d.ts +4 -0
  692. package/dist/utils/wsl-utils.d.ts.map +1 -0
  693. package/dist/utils/wsl-utils.js +72 -0
  694. package/dist/utils/wsl-utils.js.map +1 -0
  695. package/package.json +150 -0
  696. package/scripts/patch-yoga.js +48 -0
@@ -0,0 +1,888 @@
1
+ import { browserClient } from './browser-client.js';
2
+ const BROWSER_CATEGORIES = ['llm-simple'];
3
+ const BROWSER_LAUNCH_DEFINITION = {
4
+ type: 'function',
5
+ function: {
6
+ name: 'browser_launch',
7
+ description: `Launch Chrome/Edge browser for web testing and automation.
8
+ Use this tool to start a browser session before navigating to pages.
9
+ The browser runs on Windows via CDP (Chrome DevTools Protocol).`,
10
+ parameters: {
11
+ type: 'object',
12
+ properties: {
13
+ reason: {
14
+ type: 'string',
15
+ description: 'Explanation of why you are launching the browser',
16
+ },
17
+ headless: {
18
+ type: 'boolean',
19
+ description: 'Run browser in headless mode (default: false). Set to true to hide the browser window.',
20
+ },
21
+ browser: {
22
+ type: 'string',
23
+ enum: ['chrome', 'edge'],
24
+ description: 'Browser to use (default: chrome). Falls back to edge if chrome is not available.',
25
+ },
26
+ },
27
+ required: ['reason'],
28
+ },
29
+ },
30
+ };
31
+ async function executeBrowserLaunch(args) {
32
+ const headless = args['headless'] === true;
33
+ const browser = args['browser'] || 'chrome';
34
+ try {
35
+ if (await browserClient.isBrowserActive()) {
36
+ return {
37
+ success: true,
38
+ result: 'Browser is already running.',
39
+ };
40
+ }
41
+ await browserClient.startServer();
42
+ const response = await browserClient.launch({ headless, browser });
43
+ if (!response.success) {
44
+ return {
45
+ success: false,
46
+ error: response.error || 'Failed to launch browser',
47
+ };
48
+ }
49
+ return {
50
+ success: true,
51
+ result: `${response['browser'] || browser} launched successfully (headless: ${headless})`,
52
+ };
53
+ }
54
+ catch (error) {
55
+ return {
56
+ success: false,
57
+ error: `Failed to launch browser: ${error instanceof Error ? error.message : String(error)}`,
58
+ };
59
+ }
60
+ }
61
+ export const browserLaunchTool = {
62
+ definition: BROWSER_LAUNCH_DEFINITION,
63
+ execute: executeBrowserLaunch,
64
+ categories: BROWSER_CATEGORIES,
65
+ description: 'Launch Chrome/Edge browser',
66
+ };
67
+ const BROWSER_NAVIGATE_DEFINITION = {
68
+ type: 'function',
69
+ function: {
70
+ name: 'browser_navigate',
71
+ description: `Navigate browser to a URL. Use this to open web pages for testing.
72
+ Common URLs:
73
+ - http://localhost:3000 - Local development server
74
+ - http://localhost:8080 - Alternative local server
75
+ - https://example.com - External website`,
76
+ parameters: {
77
+ type: 'object',
78
+ properties: {
79
+ reason: {
80
+ type: 'string',
81
+ description: 'Explanation of why you are navigating to this URL',
82
+ },
83
+ url: {
84
+ type: 'string',
85
+ description: 'The URL to navigate to (e.g., http://localhost:3000)',
86
+ },
87
+ },
88
+ required: ['reason', 'url'],
89
+ },
90
+ },
91
+ };
92
+ async function executeBrowserNavigate(args) {
93
+ const url = args['url'];
94
+ try {
95
+ if (!(await browserClient.isBrowserActive())) {
96
+ await browserClient.startServer();
97
+ await browserClient.launch({ headless: false });
98
+ }
99
+ const response = await browserClient.navigate(url);
100
+ if (!response.success) {
101
+ return {
102
+ success: false,
103
+ error: response.error || 'Failed to navigate',
104
+ };
105
+ }
106
+ return {
107
+ success: true,
108
+ result: `Navigated to ${response.url}\nPage title: ${response.title}`,
109
+ };
110
+ }
111
+ catch (error) {
112
+ return {
113
+ success: false,
114
+ error: `Failed to navigate: ${error instanceof Error ? error.message : String(error)}`,
115
+ };
116
+ }
117
+ }
118
+ export const browserNavigateTool = {
119
+ definition: BROWSER_NAVIGATE_DEFINITION,
120
+ execute: executeBrowserNavigate,
121
+ categories: BROWSER_CATEGORIES,
122
+ description: 'Navigate browser to URL',
123
+ };
124
+ const BROWSER_SCREENSHOT_DEFINITION = {
125
+ type: 'function',
126
+ function: {
127
+ name: 'browser_screenshot',
128
+ description: `Take a screenshot of the current browser page.
129
+ Returns a base64-encoded PNG image that you can analyze to understand the page state.
130
+ Screenshots are also saved to ~/.hanseol/screenshots/browser/
131
+ Use this to verify that pages loaded correctly or to check UI elements.`,
132
+ parameters: {
133
+ type: 'object',
134
+ properties: {
135
+ reason: {
136
+ type: 'string',
137
+ description: 'Explanation of why you are taking a screenshot',
138
+ },
139
+ full_page: {
140
+ type: 'boolean',
141
+ description: 'Capture the full scrollable page (default: false, captures viewport only)',
142
+ },
143
+ },
144
+ required: ['reason'],
145
+ },
146
+ },
147
+ };
148
+ async function executeBrowserScreenshot(args) {
149
+ const fullPage = args['full_page'] === true;
150
+ try {
151
+ if (!(await browserClient.isBrowserActive())) {
152
+ return {
153
+ success: false,
154
+ error: 'Browser is not running. Use browser_launch first.',
155
+ };
156
+ }
157
+ const response = await browserClient.screenshot(fullPage);
158
+ if (!response.success || !response.image) {
159
+ return {
160
+ success: false,
161
+ error: response.error || 'Failed to take screenshot',
162
+ };
163
+ }
164
+ const savedPath = browserClient.saveScreenshot(response.image, 'browser');
165
+ return {
166
+ success: true,
167
+ result: `Screenshot captured of "${response.title}" (${response.url})\nSaved to: ${savedPath}`,
168
+ metadata: {
169
+ image: response.image,
170
+ imageType: 'image/png',
171
+ encoding: 'base64',
172
+ url: response.url,
173
+ title: response.title,
174
+ savedPath,
175
+ },
176
+ };
177
+ }
178
+ catch (error) {
179
+ return {
180
+ success: false,
181
+ error: `Failed to take screenshot: ${error instanceof Error ? error.message : String(error)}`,
182
+ };
183
+ }
184
+ }
185
+ export const browserScreenshotTool = {
186
+ definition: BROWSER_SCREENSHOT_DEFINITION,
187
+ execute: executeBrowserScreenshot,
188
+ categories: BROWSER_CATEGORIES,
189
+ description: 'Take screenshot of browser',
190
+ };
191
+ const BROWSER_CLICK_DEFINITION = {
192
+ type: 'function',
193
+ function: {
194
+ name: 'browser_click',
195
+ description: `Click an element on the page by CSS selector.
196
+ Examples:
197
+ - button[type="submit"] - Submit button
198
+ - #login-btn - Element with id "login-btn"
199
+ - .nav-link - Element with class "nav-link"
200
+ - a[href="/about"] - Link to /about`,
201
+ parameters: {
202
+ type: 'object',
203
+ properties: {
204
+ reason: {
205
+ type: 'string',
206
+ description: 'Explanation of why you are clicking this element',
207
+ },
208
+ selector: {
209
+ type: 'string',
210
+ description: 'CSS selector of the element to click',
211
+ },
212
+ },
213
+ required: ['reason', 'selector'],
214
+ },
215
+ },
216
+ };
217
+ async function executeBrowserClick(args) {
218
+ const selector = args['selector'];
219
+ try {
220
+ if (!(await browserClient.isBrowserActive())) {
221
+ return {
222
+ success: false,
223
+ error: 'Browser is not running. Use browser_launch first.',
224
+ };
225
+ }
226
+ const response = await browserClient.click(selector);
227
+ if (!response.success) {
228
+ return {
229
+ success: false,
230
+ error: response.error || `Failed to click: ${selector}`,
231
+ };
232
+ }
233
+ return {
234
+ success: true,
235
+ result: `Clicked element: ${selector}\nCurrent URL: ${response['current_url'] || 'unknown'}`,
236
+ };
237
+ }
238
+ catch (error) {
239
+ return {
240
+ success: false,
241
+ error: `Failed to click: ${error instanceof Error ? error.message : String(error)}`,
242
+ };
243
+ }
244
+ }
245
+ export const browserClickTool = {
246
+ definition: BROWSER_CLICK_DEFINITION,
247
+ execute: executeBrowserClick,
248
+ categories: BROWSER_CATEGORIES,
249
+ description: 'Click element on page',
250
+ };
251
+ const BROWSER_FILL_DEFINITION = {
252
+ type: 'function',
253
+ function: {
254
+ name: 'browser_fill',
255
+ description: `Fill an input field with text.
256
+ The existing content will be cleared before typing.
257
+ Examples:
258
+ - input[name="email"] - Email input field
259
+ - #password - Password field by id
260
+ - textarea.comment - Comment textarea`,
261
+ parameters: {
262
+ type: 'object',
263
+ properties: {
264
+ reason: {
265
+ type: 'string',
266
+ description: 'Explanation of why you are filling this field',
267
+ },
268
+ selector: {
269
+ type: 'string',
270
+ description: 'CSS selector of the input field',
271
+ },
272
+ value: {
273
+ type: 'string',
274
+ description: 'Text to type into the field',
275
+ },
276
+ },
277
+ required: ['reason', 'selector', 'value'],
278
+ },
279
+ },
280
+ };
281
+ async function executeBrowserFill(args) {
282
+ const selector = args['selector'];
283
+ const value = args['value'];
284
+ try {
285
+ if (!(await browserClient.isBrowserActive())) {
286
+ return {
287
+ success: false,
288
+ error: 'Browser is not running. Use browser_launch first.',
289
+ };
290
+ }
291
+ const response = await browserClient.fill(selector, value);
292
+ if (!response.success) {
293
+ return {
294
+ success: false,
295
+ error: response.error || `Failed to fill: ${selector}`,
296
+ };
297
+ }
298
+ return {
299
+ success: true,
300
+ result: `Filled "${selector}" with text (${value.length} characters)`,
301
+ };
302
+ }
303
+ catch (error) {
304
+ return {
305
+ success: false,
306
+ error: `Failed to fill: ${error instanceof Error ? error.message : String(error)}`,
307
+ };
308
+ }
309
+ }
310
+ export const browserFillTool = {
311
+ definition: BROWSER_FILL_DEFINITION,
312
+ execute: executeBrowserFill,
313
+ categories: BROWSER_CATEGORIES,
314
+ description: 'Fill input field with text',
315
+ };
316
+ const BROWSER_GET_TEXT_DEFINITION = {
317
+ type: 'function',
318
+ function: {
319
+ name: 'browser_get_text',
320
+ description: `Get the text content of an element.
321
+ Use this to read content from the page, like error messages or confirmation text.`,
322
+ parameters: {
323
+ type: 'object',
324
+ properties: {
325
+ reason: {
326
+ type: 'string',
327
+ description: 'Explanation of why you are reading this element',
328
+ },
329
+ selector: {
330
+ type: 'string',
331
+ description: 'CSS selector of the element to read',
332
+ },
333
+ },
334
+ required: ['reason', 'selector'],
335
+ },
336
+ },
337
+ };
338
+ async function executeBrowserGetText(args) {
339
+ const selector = args['selector'];
340
+ try {
341
+ if (!(await browserClient.isBrowserActive())) {
342
+ return {
343
+ success: false,
344
+ error: 'Browser is not running. Use browser_launch first.',
345
+ };
346
+ }
347
+ const response = await browserClient.getText(selector);
348
+ if (!response.success) {
349
+ return {
350
+ success: false,
351
+ error: response.error || `Failed to get text: ${selector}`,
352
+ };
353
+ }
354
+ return {
355
+ success: true,
356
+ result: response['text'] || '(empty)',
357
+ };
358
+ }
359
+ catch (error) {
360
+ return {
361
+ success: false,
362
+ error: `Failed to get text: ${error instanceof Error ? error.message : String(error)}`,
363
+ };
364
+ }
365
+ }
366
+ export const browserGetTextTool = {
367
+ definition: BROWSER_GET_TEXT_DEFINITION,
368
+ execute: executeBrowserGetText,
369
+ categories: BROWSER_CATEGORIES,
370
+ description: 'Get text content of element',
371
+ };
372
+ const BROWSER_CLOSE_DEFINITION = {
373
+ type: 'function',
374
+ function: {
375
+ name: 'browser_close',
376
+ description: `Close the browser and end the automation session.
377
+ Use this when you are done testing.`,
378
+ parameters: {
379
+ type: 'object',
380
+ properties: {
381
+ reason: {
382
+ type: 'string',
383
+ description: 'Explanation of why you are closing the browser',
384
+ },
385
+ },
386
+ required: ['reason'],
387
+ },
388
+ },
389
+ };
390
+ async function executeBrowserClose(_args) {
391
+ try {
392
+ await browserClient.close();
393
+ return {
394
+ success: true,
395
+ result: 'Browser closed successfully',
396
+ };
397
+ }
398
+ catch (error) {
399
+ return {
400
+ success: false,
401
+ error: `Failed to close browser: ${error instanceof Error ? error.message : String(error)}`,
402
+ };
403
+ }
404
+ }
405
+ export const browserCloseTool = {
406
+ definition: BROWSER_CLOSE_DEFINITION,
407
+ execute: executeBrowserClose,
408
+ categories: BROWSER_CATEGORIES,
409
+ description: 'Close browser',
410
+ };
411
+ const BROWSER_GET_CONTENT_DEFINITION = {
412
+ type: 'function',
413
+ function: {
414
+ name: 'browser_get_content',
415
+ description: `Get the HTML content of the current page.
416
+ Returns page URL, title, and HTML source.
417
+
418
+ Use this tool when you need to:
419
+ - Find elements and their selectors
420
+ - Understand the page structure
421
+ - Check form fields
422
+ - Debug page issues`,
423
+ parameters: {
424
+ type: 'object',
425
+ properties: {
426
+ reason: {
427
+ type: 'string',
428
+ description: 'Explanation of why you need the page content',
429
+ },
430
+ },
431
+ required: ['reason'],
432
+ },
433
+ },
434
+ };
435
+ async function executeBrowserGetContent(_args) {
436
+ try {
437
+ if (!(await browserClient.isBrowserActive())) {
438
+ return {
439
+ success: false,
440
+ error: 'Browser is not running. Use browser_launch first.',
441
+ };
442
+ }
443
+ const response = await browserClient.getHtml();
444
+ if (!response.success) {
445
+ return {
446
+ success: false,
447
+ error: response.error || 'Failed to get page content',
448
+ };
449
+ }
450
+ const html = response.html || '';
451
+ const maxLen = 10000;
452
+ const truncatedHtml = html.length > maxLen
453
+ ? html.substring(0, maxLen) + `\n...(truncated, ${html.length} total chars)`
454
+ : html;
455
+ return {
456
+ success: true,
457
+ result: `Page: ${response.title} (${response.url})\n\nHTML:\n${truncatedHtml}`,
458
+ };
459
+ }
460
+ catch (error) {
461
+ return {
462
+ success: false,
463
+ error: `Failed to get page content: ${error instanceof Error ? error.message : String(error)}`,
464
+ };
465
+ }
466
+ }
467
+ export const browserGetContentTool = {
468
+ definition: BROWSER_GET_CONTENT_DEFINITION,
469
+ execute: executeBrowserGetContent,
470
+ categories: BROWSER_CATEGORIES,
471
+ description: 'Get page HTML content',
472
+ };
473
+ const BROWSER_GET_CONSOLE_DEFINITION = {
474
+ type: 'function',
475
+ function: {
476
+ name: 'browser_get_console',
477
+ description: `Get console logs from the browser.
478
+ Returns console.log, console.error, console.warn messages.
479
+
480
+ Use this tool to:
481
+ - Debug JavaScript errors on the page
482
+ - Check API response logs
483
+ - Verify application behavior
484
+ - Find error messages that might explain UI issues`,
485
+ parameters: {
486
+ type: 'object',
487
+ properties: {
488
+ reason: {
489
+ type: 'string',
490
+ description: 'Explanation of why you need the console logs',
491
+ },
492
+ },
493
+ required: ['reason'],
494
+ },
495
+ },
496
+ };
497
+ async function executeBrowserGetConsole(_args) {
498
+ try {
499
+ if (!(await browserClient.isBrowserActive())) {
500
+ return {
501
+ success: false,
502
+ error: 'Browser is not running. Use browser_launch first.',
503
+ };
504
+ }
505
+ const response = await browserClient.getConsole();
506
+ if (!response.success) {
507
+ return {
508
+ success: false,
509
+ error: response.error || 'Failed to get console logs',
510
+ };
511
+ }
512
+ const logs = response.logs || [];
513
+ if (logs.length === 0) {
514
+ return {
515
+ success: true,
516
+ result: 'No console messages captured.',
517
+ };
518
+ }
519
+ const formatted = logs.map(log => {
520
+ const timestamp = new Date(log.timestamp).toLocaleTimeString('en-GB');
521
+ const icon = log.level === 'SEVERE' ? '❌' : log.level === 'WARNING' ? '⚠️' : '📝';
522
+ return `[${timestamp}] ${icon} ${log.level}: ${log.message}`;
523
+ }).join('\n');
524
+ return {
525
+ success: true,
526
+ result: `Console logs (${logs.length} messages):\n\n${formatted}`,
527
+ };
528
+ }
529
+ catch (error) {
530
+ return {
531
+ success: false,
532
+ error: `Failed to get console logs: ${error instanceof Error ? error.message : String(error)}`,
533
+ };
534
+ }
535
+ }
536
+ export const browserGetConsoleTool = {
537
+ definition: BROWSER_GET_CONSOLE_DEFINITION,
538
+ execute: executeBrowserGetConsole,
539
+ categories: BROWSER_CATEGORIES,
540
+ description: 'Get browser console logs',
541
+ };
542
+ const BROWSER_GET_NETWORK_DEFINITION = {
543
+ type: 'function',
544
+ function: {
545
+ name: 'browser_get_network',
546
+ description: `Get network request logs from the browser.
547
+ Returns HTTP requests and responses captured during page interactions.
548
+
549
+ Use this tool to:
550
+ - Debug API calls and responses
551
+ - Check request/response status codes
552
+ - Verify network requests are being made correctly
553
+ - Analyze API endpoints being called
554
+ - Check for failed network requests`,
555
+ parameters: {
556
+ type: 'object',
557
+ properties: {
558
+ reason: {
559
+ type: 'string',
560
+ description: 'Explanation of why you need the network logs',
561
+ },
562
+ },
563
+ required: ['reason'],
564
+ },
565
+ },
566
+ };
567
+ async function executeBrowserGetNetwork(_args) {
568
+ try {
569
+ if (!(await browserClient.isBrowserActive())) {
570
+ return {
571
+ success: false,
572
+ error: 'Browser is not running. Use browser_launch first.',
573
+ };
574
+ }
575
+ const response = await browserClient.getNetwork();
576
+ if (!response.success) {
577
+ return {
578
+ success: false,
579
+ error: response.error || 'Failed to get network logs',
580
+ };
581
+ }
582
+ const logs = response.logs || [];
583
+ if (logs.length === 0) {
584
+ return {
585
+ success: true,
586
+ result: 'No network requests captured.',
587
+ };
588
+ }
589
+ const formatted = logs.map(log => {
590
+ if (log.type === 'request') {
591
+ return `➡️ ${log.method} ${log.url}`;
592
+ }
593
+ else {
594
+ const statusIcon = log.status && log.status >= 400 ? '❌' : '✅';
595
+ return `${statusIcon} ${log.status} ${log.statusText} - ${log.url} (${log.mimeType || 'unknown'})`;
596
+ }
597
+ }).join('\n');
598
+ return {
599
+ success: true,
600
+ result: `Network logs (${logs.length} entries):\n\n${formatted}`,
601
+ };
602
+ }
603
+ catch (error) {
604
+ return {
605
+ success: false,
606
+ error: `Failed to get network logs: ${error instanceof Error ? error.message : String(error)}`,
607
+ };
608
+ }
609
+ }
610
+ export const browserGetNetworkTool = {
611
+ definition: BROWSER_GET_NETWORK_DEFINITION,
612
+ execute: executeBrowserGetNetwork,
613
+ categories: BROWSER_CATEGORIES,
614
+ description: 'Get browser network logs',
615
+ };
616
+ const BROWSER_FOCUS_DEFINITION = {
617
+ type: 'function',
618
+ function: {
619
+ name: 'browser_focus',
620
+ description: `Bring the browser window to the foreground.
621
+ Use this to make the browser window visible and focused when needed.`,
622
+ parameters: {
623
+ type: 'object',
624
+ properties: {
625
+ reason: {
626
+ type: 'string',
627
+ description: 'Explanation of why you need to focus the browser window',
628
+ },
629
+ },
630
+ required: ['reason'],
631
+ },
632
+ },
633
+ };
634
+ async function executeBrowserFocus(_args) {
635
+ try {
636
+ if (!(await browserClient.isBrowserActive())) {
637
+ return {
638
+ success: false,
639
+ error: 'Browser is not running. Use browser_launch first.',
640
+ };
641
+ }
642
+ const response = await browserClient.focus();
643
+ if (!response.success) {
644
+ return {
645
+ success: false,
646
+ error: response.error || 'Failed to focus browser window',
647
+ };
648
+ }
649
+ return {
650
+ success: true,
651
+ result: 'Browser window brought to foreground.',
652
+ };
653
+ }
654
+ catch (error) {
655
+ return {
656
+ success: false,
657
+ error: `Failed to focus browser: ${error instanceof Error ? error.message : String(error)}`,
658
+ };
659
+ }
660
+ }
661
+ export const browserFocusTool = {
662
+ definition: BROWSER_FOCUS_DEFINITION,
663
+ execute: executeBrowserFocus,
664
+ categories: BROWSER_CATEGORIES,
665
+ description: 'Bring browser window to foreground',
666
+ };
667
+ const BROWSER_PRESS_KEY_DEFINITION = {
668
+ type: 'function',
669
+ function: {
670
+ name: 'browser_press_key',
671
+ description: `Press a keyboard key in the browser.
672
+
673
+ Supports special keys:
674
+ - Enter, Tab, Escape, Space
675
+ - ArrowUp, ArrowDown, ArrowLeft, ArrowRight
676
+ - Backspace, Delete, Home, End, PageUp, PageDown
677
+ - F1-F12
678
+ - Control, Alt, Shift, Meta
679
+
680
+ Key combinations (use + to combine):
681
+ - Control+A (select all)
682
+ - Control+C (copy)
683
+ - Control+V (paste)
684
+ - Shift+Tab (reverse tab)
685
+
686
+ Use this for form submission (Enter), navigation, or keyboard shortcuts.`,
687
+ parameters: {
688
+ type: 'object',
689
+ properties: {
690
+ reason: {
691
+ type: 'string',
692
+ description: 'Explanation of why you are pressing this key',
693
+ },
694
+ key: {
695
+ type: 'string',
696
+ description: 'Key to press (e.g., "Enter", "Tab", "Escape", "Control+A")',
697
+ },
698
+ selector: {
699
+ type: 'string',
700
+ description: 'Optional CSS selector of element to focus before pressing key',
701
+ },
702
+ },
703
+ required: ['reason', 'key'],
704
+ },
705
+ },
706
+ };
707
+ async function executeBrowserPressKey(args) {
708
+ const key = args['key'];
709
+ const selector = args['selector'];
710
+ try {
711
+ if (!(await browserClient.isBrowserActive())) {
712
+ return {
713
+ success: false,
714
+ error: 'Browser is not running. Use browser_launch first.',
715
+ };
716
+ }
717
+ const response = await browserClient.pressKey(key, selector);
718
+ if (!response.success) {
719
+ return {
720
+ success: false,
721
+ error: response.error || `Failed to press key: ${key}`,
722
+ };
723
+ }
724
+ return {
725
+ success: true,
726
+ result: `Key "${key}" pressed${selector ? ` on ${selector}` : ''}`,
727
+ };
728
+ }
729
+ catch (error) {
730
+ return {
731
+ success: false,
732
+ error: `Failed to press key: ${error instanceof Error ? error.message : String(error)}`,
733
+ };
734
+ }
735
+ }
736
+ export const browserPressKeyTool = {
737
+ definition: BROWSER_PRESS_KEY_DEFINITION,
738
+ execute: executeBrowserPressKey,
739
+ categories: BROWSER_CATEGORIES,
740
+ description: 'Press keyboard key',
741
+ };
742
+ const BROWSER_TYPE_DEFINITION = {
743
+ type: 'function',
744
+ function: {
745
+ name: 'browser_type',
746
+ description: `Type text character by character (triggers key events).
747
+ Unlike browser_fill which sets value directly, this simulates actual typing.
748
+ Useful for inputs that have keystroke handlers or autocomplete.`,
749
+ parameters: {
750
+ type: 'object',
751
+ properties: {
752
+ reason: {
753
+ type: 'string',
754
+ description: 'Explanation of why you are typing this text',
755
+ },
756
+ text: {
757
+ type: 'string',
758
+ description: 'Text to type',
759
+ },
760
+ selector: {
761
+ type: 'string',
762
+ description: 'Optional CSS selector of element to type into',
763
+ },
764
+ },
765
+ required: ['reason', 'text'],
766
+ },
767
+ },
768
+ };
769
+ async function executeBrowserType(args) {
770
+ const text = args['text'];
771
+ const selector = args['selector'];
772
+ try {
773
+ if (!(await browserClient.isBrowserActive())) {
774
+ return {
775
+ success: false,
776
+ error: 'Browser is not running. Use browser_launch first.',
777
+ };
778
+ }
779
+ const response = await browserClient.type(text, selector);
780
+ if (!response.success) {
781
+ return {
782
+ success: false,
783
+ error: response.error || 'Failed to type text',
784
+ };
785
+ }
786
+ return {
787
+ success: true,
788
+ result: `Typed ${text.length} characters${selector ? ` into ${selector}` : ''}`,
789
+ };
790
+ }
791
+ catch (error) {
792
+ return {
793
+ success: false,
794
+ error: `Failed to type: ${error instanceof Error ? error.message : String(error)}`,
795
+ };
796
+ }
797
+ }
798
+ export const browserTypeTool = {
799
+ definition: BROWSER_TYPE_DEFINITION,
800
+ execute: executeBrowserType,
801
+ categories: BROWSER_CATEGORIES,
802
+ description: 'Type text character by character',
803
+ };
804
+ const BROWSER_EXECUTE_SCRIPT_DEFINITION = {
805
+ type: 'function',
806
+ function: {
807
+ name: 'browser_execute_script',
808
+ description: `Execute JavaScript code in the browser context.
809
+ The script is automatically wrapped in an async function, so you can use 'return' statements and 'await'.
810
+ Use this only when other browser tools don't cover your use case.
811
+ Examples:
812
+ - "return document.title;" - returns page title
813
+ - "return document.querySelectorAll('a').length;" - count all links
814
+ - "return await fetch('/api/data').then(r => r.json());" - async fetch`,
815
+ parameters: {
816
+ type: 'object',
817
+ properties: {
818
+ reason: {
819
+ type: 'string',
820
+ description: 'Explanation of why you need to execute this script',
821
+ },
822
+ script: {
823
+ type: 'string',
824
+ description: 'JavaScript code to execute (can use return and await)',
825
+ },
826
+ },
827
+ required: ['reason', 'script'],
828
+ },
829
+ },
830
+ };
831
+ async function executeBrowserExecuteScript(args) {
832
+ const script = args['script'];
833
+ if (!script) {
834
+ return {
835
+ success: false,
836
+ error: "The 'script' argument is required.",
837
+ };
838
+ }
839
+ try {
840
+ if (!(await browserClient.isBrowserActive())) {
841
+ return {
842
+ success: false,
843
+ error: 'Browser is not running. Use browser_launch first.',
844
+ };
845
+ }
846
+ const response = await browserClient.executeScript(script);
847
+ if (!response.success) {
848
+ return {
849
+ success: false,
850
+ error: response.error || 'Failed to execute script',
851
+ result: response['details'],
852
+ };
853
+ }
854
+ return {
855
+ success: true,
856
+ result: JSON.stringify(response['result'], null, 2),
857
+ };
858
+ }
859
+ catch (error) {
860
+ return {
861
+ success: false,
862
+ error: `Failed to execute script: ${error instanceof Error ? error.message : String(error)}`,
863
+ };
864
+ }
865
+ }
866
+ export const browserExecuteScriptTool = {
867
+ definition: BROWSER_EXECUTE_SCRIPT_DEFINITION,
868
+ execute: executeBrowserExecuteScript,
869
+ categories: BROWSER_CATEGORIES,
870
+ description: 'Execute JavaScript in browser',
871
+ };
872
+ export const BROWSER_TOOLS = [
873
+ browserLaunchTool,
874
+ browserNavigateTool,
875
+ browserScreenshotTool,
876
+ browserClickTool,
877
+ browserFillTool,
878
+ browserGetTextTool,
879
+ browserGetContentTool,
880
+ browserGetConsoleTool,
881
+ browserGetNetworkTool,
882
+ browserFocusTool,
883
+ browserPressKeyTool,
884
+ browserTypeTool,
885
+ browserExecuteScriptTool,
886
+ browserCloseTool,
887
+ ];
888
+ //# sourceMappingURL=browser-tools.js.map