@eko-ai/eko 1.0.8 → 1.0.10

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 (300) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +139 -131
  3. package/dist/core/eko.d.ts +3 -2
  4. package/dist/extension/script/bing.js +0 -0
  5. package/dist/extension/script/build_dom_tree.js +661 -661
  6. package/dist/extension/script/common.js +0 -0
  7. package/dist/extension/script/duckduckgo.js +0 -0
  8. package/dist/extension/script/google.js +0 -0
  9. package/dist/extension/tools/cancel_workflow.d.ts +9 -0
  10. package/dist/extension/tools/get_all_tabs.d.ts +9 -0
  11. package/dist/extension/tools/index.d.ts +3 -1
  12. package/dist/extension/tools/tab_management.d.ts +1 -1
  13. package/dist/extension/utils.d.ts +1 -1
  14. package/dist/extension.cjs.js +749 -278
  15. package/dist/extension.esm.js +749 -278
  16. package/dist/extension_content_script.js +55 -55
  17. package/dist/fellou.cjs.js +18 -18
  18. package/dist/fellou.esm.js +18 -18
  19. package/dist/index.cjs.js +2034 -1609
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.esm.js +2033 -1610
  22. package/dist/jest.config.js +10 -0
  23. package/dist/jest.config.js.map +1 -0
  24. package/dist/models/action.d.ts +8 -4
  25. package/dist/models/workflow.d.ts +8 -3
  26. package/dist/nodejs/tools/index.d.ts +1 -0
  27. package/dist/nodejs.cjs.js +1832 -1623
  28. package/dist/nodejs.esm.js +1832 -1623
  29. package/dist/rollup.config.js +171 -0
  30. package/dist/rollup.config.js.map +1 -0
  31. package/dist/schemas/workflow.schema.d.ts +2 -13
  32. package/dist/script.js +10 -0
  33. package/dist/script.js.map +1 -0
  34. package/dist/services/llm/claude-provider.d.ts +2 -1
  35. package/dist/services/llm/deepseek-provider.d.ts +13 -0
  36. package/dist/services/llm/openai-provider.d.ts +2 -1
  37. package/dist/services/llm/provider-factory.d.ts +4 -0
  38. package/dist/services/llm/siliconflow-provider.d.ts +13 -0
  39. package/dist/services/parser/workflow-parser.d.ts +0 -7
  40. package/dist/services/workflow/generator.d.ts +1 -0
  41. package/dist/src/core/eko.js +99 -0
  42. package/dist/src/core/eko.js.map +1 -0
  43. package/dist/src/core/tool-registry.js +51 -0
  44. package/dist/src/core/tool-registry.js.map +1 -0
  45. package/dist/src/extension/content/index.js +409 -0
  46. package/dist/src/extension/content/index.js.map +1 -0
  47. package/dist/src/extension/core.js +29 -0
  48. package/dist/src/extension/core.js.map +1 -0
  49. package/dist/src/extension/index.js +12 -0
  50. package/dist/src/extension/index.js.map +1 -0
  51. package/dist/src/extension/script/bing.js +25 -0
  52. package/dist/src/extension/script/bing.js.map +1 -0
  53. package/dist/src/extension/script/build_dom_tree.js +585 -0
  54. package/dist/src/extension/script/build_dom_tree.js.map +1 -0
  55. package/dist/src/extension/script/common.js +203 -0
  56. package/dist/src/extension/script/common.js.map +1 -0
  57. package/dist/src/extension/script/duckduckgo.js +25 -0
  58. package/dist/src/extension/script/duckduckgo.js.map +1 -0
  59. package/dist/src/extension/script/google.js +26 -0
  60. package/dist/src/extension/script/google.js.map +1 -0
  61. package/dist/src/extension/tools/browser.js +174 -0
  62. package/dist/src/extension/tools/browser.js.map +1 -0
  63. package/dist/src/extension/tools/browser_use.js +186 -0
  64. package/dist/src/extension/tools/browser_use.js.map +1 -0
  65. package/dist/src/extension/tools/element_click.js +123 -0
  66. package/dist/src/extension/tools/element_click.js.map +1 -0
  67. package/dist/src/extension/tools/export_file.js +93 -0
  68. package/dist/src/extension/tools/export_file.js.map +1 -0
  69. package/dist/src/extension/tools/extract_content.js +38 -0
  70. package/dist/src/extension/tools/extract_content.js.map +1 -0
  71. package/dist/src/extension/tools/find_element_position.js +125 -0
  72. package/dist/src/extension/tools/find_element_position.js.map +1 -0
  73. package/dist/src/extension/tools/html_script.js +219 -0
  74. package/dist/src/extension/tools/html_script.js.map +1 -0
  75. package/dist/src/extension/tools/index.js +12 -0
  76. package/dist/src/extension/tools/index.js.map +1 -0
  77. package/dist/src/extension/tools/open_url.js +68 -0
  78. package/dist/src/extension/tools/open_url.js.map +1 -0
  79. package/dist/src/extension/tools/request_login.js +87 -0
  80. package/dist/src/extension/tools/request_login.js.map +1 -0
  81. package/dist/src/extension/tools/screenshot.js +26 -0
  82. package/dist/src/extension/tools/screenshot.js.map +1 -0
  83. package/dist/src/extension/tools/tab_management.js +160 -0
  84. package/dist/src/extension/tools/tab_management.js.map +1 -0
  85. package/dist/src/extension/tools/web_search.js +281 -0
  86. package/dist/src/extension/tools/web_search.js.map +1 -0
  87. package/dist/src/extension/utils.js +244 -0
  88. package/dist/src/extension/utils.js.map +1 -0
  89. package/dist/src/fellou/computer.js +104 -0
  90. package/dist/src/fellou/computer.js.map +1 -0
  91. package/dist/src/fellou/index.js +7 -0
  92. package/dist/src/fellou/index.js.map +1 -0
  93. package/dist/src/fellou/tools/computer_use.js +111 -0
  94. package/dist/src/fellou/tools/computer_use.js.map +1 -0
  95. package/dist/src/index.js +9 -0
  96. package/dist/src/index.js.map +1 -0
  97. package/dist/src/models/action.js +364 -0
  98. package/dist/src/models/action.js.map +1 -0
  99. package/dist/src/models/workflow.js +120 -0
  100. package/dist/src/models/workflow.js.map +1 -0
  101. package/dist/src/nodejs/core.js +18 -0
  102. package/dist/src/nodejs/core.js.map +1 -0
  103. package/dist/src/nodejs/index.js +6 -0
  104. package/dist/src/nodejs/index.js.map +1 -0
  105. package/dist/src/nodejs/script/build_dom_tree.js +586 -0
  106. package/dist/src/nodejs/script/build_dom_tree.js.map +1 -0
  107. package/dist/src/nodejs/tools/browser_use.js +458 -0
  108. package/dist/src/nodejs/tools/browser_use.js.map +1 -0
  109. package/dist/src/nodejs/tools/command_execute.js +65 -0
  110. package/dist/src/nodejs/tools/command_execute.js.map +1 -0
  111. package/dist/src/nodejs/tools/file_read.js +45 -0
  112. package/dist/src/nodejs/tools/file_read.js.map +1 -0
  113. package/dist/src/nodejs/tools/file_write.js +95 -0
  114. package/dist/src/nodejs/tools/file_write.js.map +1 -0
  115. package/dist/src/nodejs/tools/index.js +5 -0
  116. package/dist/src/nodejs/tools/index.js.map +1 -0
  117. package/dist/src/schemas/workflow.schema.js +64 -0
  118. package/dist/src/schemas/workflow.schema.js.map +1 -0
  119. package/dist/src/services/llm/claude-provider.js +140 -0
  120. package/dist/src/services/llm/claude-provider.js.map +1 -0
  121. package/dist/src/services/llm/deepseek-provider.js +432 -0
  122. package/dist/src/services/llm/deepseek-provider.js.map +1 -0
  123. package/dist/src/services/llm/glm-provider.js +317 -0
  124. package/dist/src/services/llm/glm-provider.js.map +1 -0
  125. package/dist/src/services/llm/openai-provider copy.js +317 -0
  126. package/dist/src/services/llm/openai-provider copy.js.map +1 -0
  127. package/dist/src/services/llm/openai-provider.js +317 -0
  128. package/dist/src/services/llm/openai-provider.js.map +1 -0
  129. package/dist/src/services/parser/workflow-parser.js +208 -0
  130. package/dist/src/services/parser/workflow-parser.js.map +1 -0
  131. package/dist/src/services/workflow/generator.js +105 -0
  132. package/dist/src/services/workflow/generator.js.map +1 -0
  133. package/dist/src/services/workflow/templates.js +42 -0
  134. package/dist/src/services/workflow/templates.js.map +1 -0
  135. package/dist/src/types/action.types.js +2 -0
  136. package/dist/src/types/action.types.js.map +1 -0
  137. package/dist/src/types/eko.types.js +2 -0
  138. package/dist/src/types/eko.types.js.map +1 -0
  139. package/dist/src/types/index.js +6 -0
  140. package/dist/src/types/index.js.map +1 -0
  141. package/dist/src/types/llm.types.js +2 -0
  142. package/dist/src/types/llm.types.js.map +1 -0
  143. package/dist/src/types/parser.types.js +2 -0
  144. package/dist/src/types/parser.types.js.map +1 -0
  145. package/dist/src/types/tools.types.js +2 -0
  146. package/dist/src/types/tools.types.js.map +1 -0
  147. package/dist/src/types/workflow.types.js +3 -0
  148. package/dist/src/types/workflow.types.js.map +1 -0
  149. package/dist/src/web/core.js +18 -0
  150. package/dist/src/web/core.js.map +1 -0
  151. package/dist/src/web/index.js +9 -0
  152. package/dist/src/web/index.js.map +1 -0
  153. package/dist/src/web/script/build_dom_tree.js +584 -0
  154. package/dist/src/web/script/build_dom_tree.js.map +1 -0
  155. package/dist/src/web/tools/browser.js +249 -0
  156. package/dist/src/web/tools/browser.js.map +1 -0
  157. package/dist/src/web/tools/browser_use.js +176 -0
  158. package/dist/src/web/tools/browser_use.js.map +1 -0
  159. package/dist/src/web/tools/element_click.js +121 -0
  160. package/dist/src/web/tools/element_click.js.map +1 -0
  161. package/dist/src/web/tools/export_file.js +74 -0
  162. package/dist/src/web/tools/export_file.js.map +1 -0
  163. package/dist/src/web/tools/extract_content.js +24 -0
  164. package/dist/src/web/tools/extract_content.js.map +1 -0
  165. package/dist/src/web/tools/find_element_position.js +121 -0
  166. package/dist/src/web/tools/find_element_position.js.map +1 -0
  167. package/dist/src/web/tools/html_script.js +219 -0
  168. package/dist/src/web/tools/html_script.js.map +1 -0
  169. package/dist/src/web/tools/index.js +8 -0
  170. package/dist/src/web/tools/index.js.map +1 -0
  171. package/dist/src/web/tools/screenshot.js +24 -0
  172. package/dist/src/web/tools/screenshot.js.map +1 -0
  173. package/dist/test/integration/claude-provider.test.js +170 -0
  174. package/dist/test/integration/claude-provider.test.js.map +1 -0
  175. package/dist/test/integration/deepseek-provider.test.js +171 -0
  176. package/dist/test/integration/deepseek-provider.test.js.map +1 -0
  177. package/dist/test/integration/glm-provider.test.js +173 -0
  178. package/dist/test/integration/glm-provider.test.js.map +1 -0
  179. package/dist/test/integration/openai-provider.test copy.js +170 -0
  180. package/dist/test/integration/openai-provider.test copy.js.map +1 -0
  181. package/dist/test/integration/openai-provider.test.js +170 -0
  182. package/dist/test/integration/openai-provider.test.js.map +1 -0
  183. package/dist/test/integration/qwen-provider.js +170 -0
  184. package/dist/test/integration/qwen-provider.js.map +1 -0
  185. package/dist/test/integration/qwen-provider.test copy.js +170 -0
  186. package/dist/test/integration/qwen-provider.test copy.js.map +1 -0
  187. package/dist/test/integration/qwen-provider.test.js +170 -0
  188. package/dist/test/integration/qwen-provider.test.js.map +1 -0
  189. package/dist/test/integration/workflow.execution.test.js +152 -0
  190. package/dist/test/integration/workflow.execution.test.js.map +1 -0
  191. package/dist/test/integration/workflow.generation-and-execution.test.js +131 -0
  192. package/dist/test/integration/workflow.generation-and-execution.test.js.map +1 -0
  193. package/dist/test/integration/workflow.generator.test.js +207 -0
  194. package/dist/test/integration/workflow.generator.test.js.map +1 -0
  195. package/dist/test/unit/action.test.js +186 -0
  196. package/dist/test/unit/action.test.js.map +1 -0
  197. package/dist/test/unit/tool-registry.test.js +99 -0
  198. package/dist/test/unit/tool-registry.test.js.map +1 -0
  199. package/dist/test/unit/workflow-parser.test.js +189 -0
  200. package/dist/test/unit/workflow-parser.test.js.map +1 -0
  201. package/dist/test/unit/workflow.test.js +102 -0
  202. package/dist/test/unit/workflow.test.js.map +1 -0
  203. package/dist/types/action.types.d.ts +8 -3
  204. package/dist/types/jest.config.d.ts +10 -0
  205. package/dist/types/rollup.config.d.ts +16 -0
  206. package/dist/types/script.d.ts +1 -0
  207. package/dist/types/src/core/eko.d.ts +20 -0
  208. package/dist/types/src/core/tool-registry.d.ts +13 -0
  209. package/dist/types/src/extension/content/index.d.ts +16 -0
  210. package/dist/types/src/extension/core.d.ts +11 -0
  211. package/dist/types/src/extension/index.d.ts +7 -0
  212. package/dist/types/src/extension/script/bing.d.ts +0 -0
  213. package/dist/types/src/extension/script/build_dom_tree.d.ts +38 -0
  214. package/dist/types/src/extension/script/common.d.ts +0 -0
  215. package/dist/types/src/extension/script/duckduckgo.d.ts +0 -0
  216. package/dist/types/src/extension/script/google.d.ts +0 -0
  217. package/dist/types/src/extension/tools/browser.d.ts +22 -0
  218. package/dist/types/src/extension/tools/browser_use.d.ts +19 -0
  219. package/dist/types/src/extension/tools/element_click.d.ts +12 -0
  220. package/dist/types/src/extension/tools/export_file.d.ts +18 -0
  221. package/dist/types/src/extension/tools/extract_content.d.ts +18 -0
  222. package/dist/types/src/extension/tools/find_element_position.d.ts +12 -0
  223. package/dist/types/src/extension/tools/html_script.d.ts +10 -0
  224. package/dist/types/src/extension/tools/index.d.ts +11 -0
  225. package/dist/types/src/extension/tools/open_url.d.ts +18 -0
  226. package/dist/{extension/tools/form_autofill.d.ts → types/src/extension/tools/request_login.d.ts} +3 -4
  227. package/dist/types/src/extension/tools/screenshot.d.ts +18 -0
  228. package/dist/types/src/extension/tools/tab_management.d.ts +19 -0
  229. package/dist/types/src/extension/tools/web_search.d.ts +18 -0
  230. package/dist/types/src/extension/utils.d.ts +31 -0
  231. package/dist/types/src/fellou/computer.d.ts +20 -0
  232. package/dist/types/src/fellou/index.d.ts +6 -0
  233. package/dist/types/src/fellou/tools/computer_use.d.ts +18 -0
  234. package/dist/types/src/index.d.ts +8 -0
  235. package/dist/types/src/models/action.d.ts +22 -0
  236. package/dist/types/src/models/workflow.d.ts +16 -0
  237. package/dist/types/src/nodejs/core.d.ts +2 -0
  238. package/dist/types/src/nodejs/index.d.ts +3 -0
  239. package/dist/types/src/nodejs/script/build_dom_tree.d.ts +1 -0
  240. package/dist/types/src/nodejs/tools/browser_use.d.ts +28 -0
  241. package/dist/types/src/nodejs/tools/command_execute.d.ts +12 -0
  242. package/dist/types/src/nodejs/tools/file_read.d.ts +11 -0
  243. package/dist/types/src/nodejs/tools/file_write.d.ts +15 -0
  244. package/dist/types/src/nodejs/tools/index.d.ts +4 -0
  245. package/dist/types/src/schemas/workflow.schema.d.ts +88 -0
  246. package/dist/types/src/services/llm/claude-provider.d.ts +11 -0
  247. package/dist/types/src/services/llm/deepseek-provider.d.ts +15 -0
  248. package/dist/types/src/services/llm/glm-provider.d.ts +11 -0
  249. package/dist/types/src/services/llm/openai-provider copy.d.ts +11 -0
  250. package/dist/types/src/services/llm/openai-provider.d.ts +11 -0
  251. package/dist/types/src/services/parser/workflow-parser.d.ts +29 -0
  252. package/dist/types/src/services/workflow/generator.d.ts +13 -0
  253. package/dist/types/src/services/workflow/templates.d.ts +8 -0
  254. package/dist/types/src/types/action.types.d.ts +38 -0
  255. package/dist/types/src/types/eko.types.d.ts +21 -0
  256. package/dist/types/src/types/index.d.ts +5 -0
  257. package/dist/types/src/types/llm.types.d.ts +54 -0
  258. package/dist/types/src/types/parser.types.d.ts +9 -0
  259. package/dist/types/src/types/tools.types.d.ts +88 -0
  260. package/dist/types/src/types/workflow.types.d.ts +39 -0
  261. package/dist/types/src/web/core.d.ts +2 -0
  262. package/dist/types/src/web/index.d.ts +5 -0
  263. package/dist/types/src/web/script/build_dom_tree.d.ts +10 -0
  264. package/dist/types/src/web/tools/browser.d.ts +21 -0
  265. package/dist/types/src/web/tools/browser_use.d.ts +19 -0
  266. package/dist/types/src/web/tools/element_click.d.ts +12 -0
  267. package/dist/types/src/web/tools/export_file.d.ts +18 -0
  268. package/dist/types/src/web/tools/extract_content.d.ts +17 -0
  269. package/dist/types/src/web/tools/find_element_position.d.ts +12 -0
  270. package/dist/types/src/web/tools/html_script.d.ts +10 -0
  271. package/dist/types/src/web/tools/index.d.ts +7 -0
  272. package/dist/types/src/web/tools/screenshot.d.ts +18 -0
  273. package/dist/types/test/integration/claude-provider.test.d.ts +1 -0
  274. package/dist/types/test/integration/deepseek-provider.test.d.ts +1 -0
  275. package/dist/types/test/integration/glm-provider.test.d.ts +1 -0
  276. package/dist/types/test/integration/openai-provider.test copy.d.ts +1 -0
  277. package/dist/types/test/integration/openai-provider.test.d.ts +1 -0
  278. package/dist/types/test/integration/qwen-provider.d.ts +1 -0
  279. package/dist/types/test/integration/qwen-provider.test copy.d.ts +1 -0
  280. package/dist/types/test/integration/qwen-provider.test.d.ts +1 -0
  281. package/dist/types/test/integration/workflow.execution.test.d.ts +1 -0
  282. package/dist/types/test/integration/workflow.generation-and-execution.test.d.ts +1 -0
  283. package/dist/types/test/integration/workflow.generator.test.d.ts +1 -0
  284. package/dist/types/test/unit/action.test.d.ts +1 -0
  285. package/dist/types/test/unit/tool-registry.test.d.ts +1 -0
  286. package/dist/types/test/unit/workflow-parser.test.d.ts +1 -0
  287. package/dist/types/test/unit/workflow.test.d.ts +1 -0
  288. package/dist/types/tools.types.d.ts +44 -1
  289. package/dist/types/workflow.types.d.ts +22 -9
  290. package/dist/universal_tools/cancel_workflow.d.ts +9 -0
  291. package/dist/universal_tools/human/text.d.ts +9 -0
  292. package/dist/universal_tools/human.d.ts +30 -0
  293. package/dist/universal_tools/index.d.ts +4 -0
  294. package/dist/universal_tools/summary_workflow.d.ts +9 -0
  295. package/dist/utils/execution-logger.d.ts +69 -0
  296. package/dist/web.cjs.js +117 -117
  297. package/dist/web.esm.js +117 -117
  298. package/package.json +106 -107
  299. package/dist/fellou/tools/index.d.ts +0 -2
  300. package/dist/types/framework.types.d.ts +0 -11
@@ -0,0 +1,9 @@
1
+ export interface ValidationError {
2
+ type: "schema" | "reference" | "type" | "tool";
3
+ message: string;
4
+ path?: string;
5
+ }
6
+ export interface ValidationResult {
7
+ valid: boolean;
8
+ errors: ValidationError[];
9
+ }
@@ -0,0 +1,88 @@
1
+ export interface ComputerUseParam {
2
+ action: string;
3
+ coordinate?: [number, number];
4
+ text?: string;
5
+ }
6
+ export interface ComputerUseResult {
7
+ success: boolean;
8
+ image?: ScreenshotImage;
9
+ [key: string]: any;
10
+ }
11
+ export interface BrowserUseParam {
12
+ action: string;
13
+ index?: number;
14
+ text?: string;
15
+ }
16
+ export interface BrowserUseResult {
17
+ success: boolean;
18
+ image?: ScreenshotImage;
19
+ text?: string;
20
+ [key: string]: any;
21
+ }
22
+ export interface ExportFileParam {
23
+ content: string;
24
+ fileType: 'txt' | 'csv' | 'md' | 'html' | 'js' | 'xml' | 'json' | 'yml' | 'sql';
25
+ filename?: string;
26
+ }
27
+ export interface ExtractContentResult {
28
+ tabId: number;
29
+ result: {
30
+ title?: string;
31
+ url?: string;
32
+ content: string;
33
+ };
34
+ }
35
+ export interface OpenUrlParam {
36
+ url: string;
37
+ newWindow?: boolean;
38
+ }
39
+ export interface OpenUrlResult {
40
+ tabId: number;
41
+ windowId: number;
42
+ title?: string;
43
+ }
44
+ export interface ScreenshotResult {
45
+ image: ScreenshotImage;
46
+ }
47
+ export interface ScreenshotImage {
48
+ type: 'base64';
49
+ media_type: 'image/png' | 'image/jpeg';
50
+ data: string;
51
+ }
52
+ export interface TabManagementParam {
53
+ commond: string;
54
+ }
55
+ export type TabManagementResult = TabInfo | CloseTabInfo | TabInfo[];
56
+ export interface TabInfo {
57
+ tabId?: number;
58
+ windowId?: number;
59
+ title?: string;
60
+ url?: string;
61
+ active?: boolean;
62
+ }
63
+ export interface CloseTabInfo {
64
+ closedTabId: number;
65
+ newTabId?: number;
66
+ newTabTitle?: string;
67
+ }
68
+ export interface WebSearchParam {
69
+ url?: string;
70
+ query: string;
71
+ maxResults?: number;
72
+ }
73
+ export interface WebSearchResult {
74
+ title: string;
75
+ url: string;
76
+ content: string;
77
+ }
78
+ export interface TaskPrompt {
79
+ task_prompt: string;
80
+ }
81
+ export interface ElementRect {
82
+ left: number;
83
+ top: number;
84
+ right?: number;
85
+ bottom?: number;
86
+ width?: number;
87
+ height?: number;
88
+ }
@@ -0,0 +1,39 @@
1
+ import { Action, ExecutionContext, Tool } from "./action.types";
2
+ import { LLMProvider } from "./llm.types";
3
+ export interface WorkflowNode {
4
+ id: string;
5
+ name: string;
6
+ description?: string;
7
+ input: NodeIO;
8
+ output: NodeIO;
9
+ action: Action;
10
+ dependencies: string[];
11
+ }
12
+ export interface NodeIO {
13
+ type: string;
14
+ schema: object;
15
+ value: unknown;
16
+ }
17
+ export interface Workflow {
18
+ id: string;
19
+ name: string;
20
+ description?: string;
21
+ nodes: WorkflowNode[];
22
+ variables: Map<string, any>;
23
+ llmProvider?: LLMProvider;
24
+ execute(callback?: WorkflowCallback): Promise<void>;
25
+ addNode(node: WorkflowNode): void;
26
+ removeNode(nodeId: string): void;
27
+ getNode(nodeId: string): WorkflowNode;
28
+ validateDAG(): boolean;
29
+ }
30
+ export interface WorkflowCallback {
31
+ hooks: {
32
+ beforeWorkflow?: (workflow: Workflow) => Promise<void>;
33
+ beforeSubtask?: (subtask: WorkflowNode, context: ExecutionContext) => Promise<void>;
34
+ beforeToolUse?: (tool: Tool<any, any>, context: ExecutionContext, input: any) => Promise<any>;
35
+ afterToolUse?: (tool: Tool<any, any>, context: ExecutionContext, result: any) => Promise<any>;
36
+ afterSubtask?: (subtask: WorkflowNode, context: ExecutionContext, result: any) => Promise<void>;
37
+ afterWorkflow?: (workflow: Workflow, variables: Map<string, unknown>) => Promise<void>;
38
+ };
39
+ }
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare function loadTools(): Map<string, Tool<any, any>>;
@@ -0,0 +1,5 @@
1
+ export * from './core';
2
+ import * as tools from './tools';
3
+ export { tools };
4
+ import * as browser from './tools/browser';
5
+ export { browser };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get clickable elements on the page
3
+ *
4
+ * @param {*} doHighlightElements Is highlighted
5
+ * @param {*} includeAttributes [attr_names...]
6
+ * @returns { element_str, selector_map }
7
+ */
8
+ export function get_clickable_elements(doHighlightElements: any | undefined, includeAttributes: any): string;
9
+ export function get_highlight_element(highlightIndex: any): any;
10
+ export function remove_highlight(): void;
@@ -0,0 +1,21 @@
1
+ import { ScreenshotResult } from '../../types/tools.types';
2
+ export declare function type(text: string, xpath?: string, highlightIndex?: number): boolean;
3
+ export declare function clear_input(xpath?: string, highlightIndex?: number): boolean;
4
+ export declare function left_click(xpath?: string, highlightIndex?: number): boolean;
5
+ export declare function right_click(xpath?: string, highlightIndex?: number): boolean;
6
+ export declare function double_click(xpath?: string, highlightIndex?: number): boolean;
7
+ export declare function screenshot(compress?: boolean): Promise<ScreenshotResult>;
8
+ export declare function compress_image(dataUrl: string, scale?: number, quality?: number): Promise<string>;
9
+ export declare function scroll_to(xpath?: string, highlightIndex?: number): boolean;
10
+ export declare function get_dropdown_options(xpath?: string, highlightIndex?: number): {
11
+ options: Array<{
12
+ index: number;
13
+ text: string;
14
+ value?: string;
15
+ }>;
16
+ id?: string;
17
+ name?: string;
18
+ } | null;
19
+ export declare function select_dropdown_option(text: string, xpath?: string, highlightIndex?: number): any;
20
+ export declare function extractHtmlContent(): string;
21
+ export declare function size(): [number, number];
@@ -0,0 +1,19 @@
1
+ import { BrowserUseParam, BrowserUseResult } from '../../types/tools.types';
2
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
3
+ /**
4
+ * Browser Use for general
5
+ */
6
+ export declare class BrowserUse implements Tool<BrowserUseParam, BrowserUseResult> {
7
+ name: string;
8
+ description: string;
9
+ input_schema: InputSchema;
10
+ constructor();
11
+ /**
12
+ * browser
13
+ *
14
+ * @param {*} params { action: 'input_text', index: 1, text: 'string' }
15
+ * @returns > { success: true, image?: { type: 'base64', media_type: 'image/jpeg', data: '/9j...' }, text?: string }
16
+ */
17
+ execute(context: ExecutionContext, params: BrowserUseParam): Promise<BrowserUseResult>;
18
+ destroy(context: ExecutionContext): void;
19
+ }
@@ -0,0 +1,12 @@
1
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
2
+ import { TaskPrompt } from '../../types/tools.types';
3
+ /**
4
+ * Element click
5
+ */
6
+ export declare class ElementClick implements Tool<TaskPrompt, any> {
7
+ name: string;
8
+ description: string;
9
+ input_schema: InputSchema;
10
+ constructor();
11
+ execute(context: ExecutionContext, params: TaskPrompt): Promise<any>;
12
+ }
@@ -0,0 +1,18 @@
1
+ import { ExportFileParam } from '../../types/tools.types';
2
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
3
+ /**
4
+ * Export file
5
+ */
6
+ export declare class ExportFile implements Tool<ExportFileParam, unknown> {
7
+ name: string;
8
+ description: string;
9
+ input_schema: InputSchema;
10
+ constructor();
11
+ /**
12
+ * export
13
+ *
14
+ * @param {*} params { fileType: 'csv', content: 'field1,field2\ndata1,data2' }
15
+ * @returns > { success: true }
16
+ */
17
+ execute(context: ExecutionContext, params: ExportFileParam): Promise<unknown>;
18
+ }
@@ -0,0 +1,17 @@
1
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
2
+ /**
3
+ * Extract Page Content
4
+ */
5
+ export declare class ExtractContent implements Tool<any, string> {
6
+ name: string;
7
+ description: string;
8
+ input_schema: InputSchema;
9
+ constructor();
10
+ /**
11
+ * Extract Page Content
12
+ *
13
+ * @param {*} params {}
14
+ * @returns > string
15
+ */
16
+ execute(context: ExecutionContext, params: any): Promise<string>;
17
+ }
@@ -0,0 +1,12 @@
1
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
2
+ import { TaskPrompt, ElementRect } from '../../types/tools.types';
3
+ /**
4
+ * Find Element Position
5
+ */
6
+ export declare class FindElementPosition implements Tool<TaskPrompt, ElementRect | null> {
7
+ name: string;
8
+ description: string;
9
+ input_schema: InputSchema;
10
+ constructor();
11
+ execute(context: ExecutionContext, params: TaskPrompt): Promise<ElementRect | null>;
12
+ }
@@ -0,0 +1,10 @@
1
+ import { ElementRect } from '../../types/tools.types';
2
+ export declare function exportFile(filename: string, type: string, content: string): void;
3
+ export declare function xpath(element: any): string;
4
+ export declare function queryWithXpath(xpath: string): any;
5
+ /**
6
+ * Extract the elements related to html operability and wrap them into pseudo-html code.
7
+ */
8
+ export declare function extractOperableElements(): string;
9
+ export declare function clickOperableElement(id: any): any;
10
+ export declare function getOperableElementRect(id: any): ElementRect | null;
@@ -0,0 +1,7 @@
1
+ import { BrowserUse } from './browser_use';
2
+ import { ElementClick } from './element_click';
3
+ import { ExportFile } from './export_file';
4
+ import { ExtractContent } from './extract_content';
5
+ import { FindElementPosition } from './find_element_position';
6
+ import { Screenshot } from './screenshot';
7
+ export { BrowserUse, ElementClick, ExportFile, ExtractContent, FindElementPosition, Screenshot, };
@@ -0,0 +1,18 @@
1
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
2
+ import { ScreenshotResult } from '../../types/tools.types';
3
+ /**
4
+ * Current Page Screenshot
5
+ */
6
+ export declare class Screenshot implements Tool<any, ScreenshotResult> {
7
+ name: string;
8
+ description: string;
9
+ input_schema: InputSchema;
10
+ constructor();
11
+ /**
12
+ * Current Page Screenshot
13
+ *
14
+ * @param {*} params {}
15
+ * @returns > { image: { type: 'base64', media_type: 'image/png', data } }
16
+ */
17
+ execute(context: ExecutionContext, params: unknown): Promise<ScreenshotResult>;
18
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -41,6 +41,13 @@ export interface OpenUrlResult {
41
41
  windowId: number;
42
42
  title?: string;
43
43
  }
44
+ export interface BrowserTab {
45
+ id: number;
46
+ url?: string;
47
+ title?: string;
48
+ content: string;
49
+ description: string;
50
+ }
44
51
  export interface ScreenshotResult {
45
52
  image: ScreenshotImage;
46
53
  }
@@ -50,7 +57,7 @@ export interface ScreenshotImage {
50
57
  data: string;
51
58
  }
52
59
  export interface TabManagementParam {
53
- commond: string;
60
+ command: string;
54
61
  }
55
62
  export type TabManagementResult = TabInfo | CloseTabInfo | TabInfo[];
56
63
  export interface TabInfo {
@@ -86,3 +93,39 @@ export interface ElementRect {
86
93
  width?: number;
87
94
  height?: number;
88
95
  }
96
+ export interface CancelWorkflowInput {
97
+ reason: string;
98
+ }
99
+ export interface HumanInputTextInput {
100
+ question: string;
101
+ }
102
+ export interface HumanInputTextResult {
103
+ status: string;
104
+ answer: string;
105
+ }
106
+ export interface HumanInputSingleChoiceInput {
107
+ question: string;
108
+ choices: string[];
109
+ }
110
+ export interface HumanInputSingleChoiceResult {
111
+ status: string;
112
+ answer: string;
113
+ }
114
+ export interface HumanInputMultipleChoiceInput {
115
+ question: string;
116
+ choices: string[];
117
+ }
118
+ export interface HumanInputMultipleChoiceResult {
119
+ status: string;
120
+ answer: string[];
121
+ }
122
+ export interface HumanOperateInput {
123
+ reason: string;
124
+ }
125
+ export interface HumanOperateResult {
126
+ status: string;
127
+ userOperation: string;
128
+ }
129
+ export interface SummaryWorkflowInput {
130
+ summary: string;
131
+ }
@@ -1,18 +1,22 @@
1
1
  import { Action, ExecutionContext, Tool } from "./action.types";
2
2
  import { LLMProvider } from "./llm.types";
3
+ import { ExecutionLogger } from "@/utils/execution-logger";
4
+ export interface NodeOutput {
5
+ name: string;
6
+ description: string;
7
+ value?: unknown;
8
+ }
9
+ export interface NodeInput {
10
+ items: NodeOutput[];
11
+ }
3
12
  export interface WorkflowNode {
4
13
  id: string;
5
14
  name: string;
6
15
  description?: string;
7
- input: NodeIO;
8
- output: NodeIO;
9
- action: Action;
10
16
  dependencies: string[];
11
- }
12
- export interface NodeIO {
13
- type: string;
14
- schema: object;
15
- value: unknown;
17
+ action: Action;
18
+ input: NodeInput;
19
+ output: NodeOutput;
16
20
  }
17
21
  export interface Workflow {
18
22
  id: string;
@@ -21,7 +25,9 @@ export interface Workflow {
21
25
  nodes: WorkflowNode[];
22
26
  variables: Map<string, any>;
23
27
  llmProvider?: LLMProvider;
24
- execute(callback?: WorkflowCallback): Promise<void>;
28
+ setLogger(logger: ExecutionLogger): void;
29
+ execute(callback?: WorkflowCallback): Promise<NodeOutput[]>;
30
+ cancel(): Promise<void>;
25
31
  addNode(node: WorkflowNode): void;
26
32
  removeNode(nodeId: string): void;
27
33
  getNode(nodeId: string): WorkflowNode;
@@ -35,5 +41,12 @@ export interface WorkflowCallback {
35
41
  afterToolUse?: (tool: Tool<any, any>, context: ExecutionContext, result: any) => Promise<any>;
36
42
  afterSubtask?: (subtask: WorkflowNode, context: ExecutionContext, result: any) => Promise<void>;
37
43
  afterWorkflow?: (workflow: Workflow, variables: Map<string, unknown>) => Promise<void>;
44
+ onTabCreated?: (tabId: number) => Promise<void>;
45
+ onLlmMessage?: (textContent: string) => Promise<void>;
46
+ onHumanInputText?: (question: string) => Promise<string>;
47
+ onHumanInputSingleChoice?: (question: string, choices: string[]) => Promise<string>;
48
+ onHumanInputMultipleChoice?: (question: string, choices: string[]) => Promise<string[]>;
49
+ onHumanOperate?: (reason: string) => Promise<string>;
50
+ onSummaryWorkflow?: (summary: string) => Promise<void>;
38
51
  };
39
52
  }
@@ -0,0 +1,9 @@
1
+ import { CancelWorkflowInput } from '../types/tools.types';
2
+ import { Tool, InputSchema, ExecutionContext } from '../types/action.types';
3
+ export declare class CancelWorkflow implements Tool<CancelWorkflowInput, void> {
4
+ name: string;
5
+ description: string;
6
+ input_schema: InputSchema;
7
+ constructor();
8
+ execute(context: ExecutionContext, params: CancelWorkflowInput): Promise<void>;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { HumanInputTextInput, HumanInputTextResult } from '../../types/tools.types';
2
+ import { Tool, InputSchema, ExecutionContext } from '../../types/action.types';
3
+ export declare class HumanInputText implements Tool<HumanInputTextInput, HumanInputTextResult> {
4
+ name: string;
5
+ description: string;
6
+ input_schema: InputSchema;
7
+ constructor();
8
+ execute(context: ExecutionContext, params: HumanInputTextInput): Promise<HumanInputTextResult>;
9
+ }
@@ -0,0 +1,30 @@
1
+ import { HumanInputTextInput, HumanInputTextResult, HumanInputSingleChoiceInput, HumanInputSingleChoiceResult, HumanInputMultipleChoiceInput, HumanInputMultipleChoiceResult, HumanOperateInput, HumanOperateResult } from '../types/tools.types';
2
+ import { Tool, InputSchema, ExecutionContext } from '../types/action.types';
3
+ export declare class HumanInputText implements Tool<HumanInputTextInput, HumanInputTextResult> {
4
+ name: string;
5
+ description: string;
6
+ input_schema: InputSchema;
7
+ constructor();
8
+ execute(context: ExecutionContext, params: HumanInputTextInput): Promise<HumanInputTextResult>;
9
+ }
10
+ export declare class HumanInputSingleChoice implements Tool<HumanInputSingleChoiceInput, HumanInputSingleChoiceResult> {
11
+ name: string;
12
+ description: string;
13
+ input_schema: InputSchema;
14
+ constructor();
15
+ execute(context: ExecutionContext, params: HumanInputSingleChoiceInput): Promise<HumanInputSingleChoiceResult>;
16
+ }
17
+ export declare class HumanInputMultipleChoice implements Tool<HumanInputMultipleChoiceInput, HumanInputMultipleChoiceResult> {
18
+ name: string;
19
+ description: string;
20
+ input_schema: InputSchema;
21
+ constructor();
22
+ execute(context: ExecutionContext, params: HumanInputMultipleChoiceInput): Promise<HumanInputMultipleChoiceResult>;
23
+ }
24
+ export declare class HumanOperate implements Tool<HumanOperateInput, HumanOperateResult> {
25
+ name: string;
26
+ description: string;
27
+ input_schema: InputSchema;
28
+ constructor();
29
+ execute(context: ExecutionContext, params: HumanOperateInput): Promise<HumanOperateResult>;
30
+ }
@@ -0,0 +1,4 @@
1
+ import { CancelWorkflow } from "./cancel_workflow";
2
+ import { HumanInputText, HumanInputSingleChoice, HumanInputMultipleChoice, HumanOperate } from "./human";
3
+ import { SummaryWorkflow } from "./summary_workflow";
4
+ export { CancelWorkflow, HumanInputText, HumanInputSingleChoice, HumanInputMultipleChoice, HumanOperate, SummaryWorkflow, };
@@ -0,0 +1,9 @@
1
+ import { SummaryWorkflowInput } from '../types/tools.types';
2
+ import { Tool, InputSchema, ExecutionContext } from '../types/action.types';
3
+ export declare class SummaryWorkflow implements Tool<SummaryWorkflowInput, any> {
4
+ name: string;
5
+ description: string;
6
+ input_schema: InputSchema;
7
+ constructor();
8
+ execute(context: ExecutionContext, params: SummaryWorkflowInput): Promise<any>;
9
+ }
@@ -0,0 +1,69 @@
1
+ import { Message } from '../types/llm.types';
2
+ import { ExecutionContext } from '../types/action.types';
3
+ interface ImageData {
4
+ type: 'base64';
5
+ media_type: string;
6
+ data: string;
7
+ }
8
+ export interface LogOptions {
9
+ maxHistoryLength?: number;
10
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
11
+ includeTimestamp?: boolean;
12
+ debugImagePath?: string;
13
+ imageSaver?: (imageData: ImageData, filename: string) => Promise<string>;
14
+ }
15
+ /**
16
+ * Manages logging for action execution, providing a cleaner view of the execution
17
+ * flow while maintaining important context and history.
18
+ */
19
+ export declare class ExecutionLogger {
20
+ private history;
21
+ private readonly maxHistoryLength;
22
+ private readonly logLevel;
23
+ private readonly includeTimestamp;
24
+ private readonly debugImagePath?;
25
+ private readonly imageSaver?;
26
+ private readonly isNode;
27
+ constructor(options?: LogOptions);
28
+ /**
29
+ * Logs a message with execution context
30
+ */
31
+ log(level: string, message: string, context?: ExecutionContext): void;
32
+ /**
33
+ * Updates conversation history while maintaining size limit
34
+ */
35
+ updateHistory(messages: Message[]): void;
36
+ /**
37
+ * Gets current conversation history
38
+ */
39
+ getHistory(): Message[];
40
+ /**
41
+ * Summarizes the execution context for logging
42
+ */
43
+ private summarizeContext;
44
+ /**
45
+ * Checks if message should be logged based on log level
46
+ */
47
+ private shouldLog;
48
+ /**
49
+ * Logs the start of an action execution
50
+ */
51
+ logActionStart(actionName: string, input: unknown, context?: ExecutionContext): void;
52
+ /**
53
+ * Logs the completion of an action execution
54
+ */
55
+ logActionComplete(actionName: string, result: unknown, context?: ExecutionContext): void;
56
+ /**
57
+ * Logs a tool execution
58
+ */
59
+ logToolExecution(toolName: string, input: unknown, context?: ExecutionContext): void;
60
+ /**
61
+ * Logs an error that occurred during execution
62
+ */
63
+ logError(error: Error, context?: ExecutionContext): void;
64
+ private extractFromDataUrl;
65
+ private saveDebugImage;
66
+ private formatToolResult;
67
+ logToolResult(toolName: string, result: unknown, context?: ExecutionContext): Promise<void>;
68
+ }
69
+ export {};