agent-orcha 0.0.4 → 0.0.5

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 (483) hide show
  1. package/README.md +197 -221
  2. package/dist/lib/agents/agent-executor.d.ts +13 -4
  3. package/dist/lib/agents/agent-executor.d.ts.map +1 -1
  4. package/dist/lib/agents/agent-executor.js +307 -73
  5. package/dist/lib/agents/agent-executor.js.map +1 -1
  6. package/dist/lib/agents/agent-loader.d.ts +1 -1
  7. package/dist/lib/agents/agent-loader.d.ts.map +1 -1
  8. package/dist/lib/agents/agent-loader.js +10 -3
  9. package/dist/lib/agents/agent-loader.js.map +1 -1
  10. package/dist/lib/agents/index.d.ts +5 -5
  11. package/dist/lib/agents/index.js +4 -4
  12. package/dist/lib/agents/react-loop.d.ts +30 -0
  13. package/dist/lib/agents/react-loop.d.ts.map +1 -0
  14. package/dist/lib/agents/react-loop.js +155 -0
  15. package/dist/lib/agents/react-loop.js.map +1 -0
  16. package/dist/lib/agents/structured-output-wrapper.d.ts +3 -3
  17. package/dist/lib/agents/structured-output-wrapper.d.ts.map +1 -1
  18. package/dist/lib/agents/structured-output-wrapper.js +2 -2
  19. package/dist/lib/agents/structured-output-wrapper.js.map +1 -1
  20. package/dist/lib/agents/types.d.ts +132 -8
  21. package/dist/lib/agents/types.d.ts.map +1 -1
  22. package/dist/lib/agents/types.js +16 -2
  23. package/dist/lib/agents/types.js.map +1 -1
  24. package/dist/lib/functions/function-loader.d.ts +1 -1
  25. package/dist/lib/functions/function-loader.js +13 -5
  26. package/dist/lib/functions/function-loader.js.map +1 -1
  27. package/dist/lib/functions/index.d.ts +2 -2
  28. package/dist/lib/functions/index.js +1 -1
  29. package/dist/lib/functions/simple-function-wrapper.d.ts +2 -11
  30. package/dist/lib/functions/simple-function-wrapper.d.ts.map +1 -1
  31. package/dist/lib/functions/simple-function-wrapper.js +3 -3
  32. package/dist/lib/functions/simple-function-wrapper.js.map +1 -1
  33. package/dist/lib/index.d.ts +29 -17
  34. package/dist/lib/index.d.ts.map +1 -1
  35. package/dist/lib/index.js +21 -9
  36. package/dist/lib/index.js.map +1 -1
  37. package/dist/lib/integrations/collabnook.d.ts +56 -0
  38. package/dist/lib/integrations/collabnook.d.ts.map +1 -0
  39. package/dist/lib/integrations/collabnook.js +307 -0
  40. package/dist/lib/integrations/collabnook.js.map +1 -0
  41. package/dist/lib/integrations/integration-manager.d.ts +14 -0
  42. package/dist/lib/integrations/integration-manager.d.ts.map +1 -0
  43. package/dist/lib/integrations/integration-manager.js +109 -0
  44. package/dist/lib/integrations/integration-manager.js.map +1 -0
  45. package/dist/lib/integrations/types.d.ts +49 -0
  46. package/dist/lib/integrations/types.d.ts.map +1 -0
  47. package/dist/lib/integrations/types.js +14 -0
  48. package/dist/lib/integrations/types.js.map +1 -0
  49. package/dist/lib/knowledge/direct-mapper.d.ts +21 -0
  50. package/dist/lib/knowledge/direct-mapper.d.ts.map +1 -0
  51. package/dist/lib/knowledge/direct-mapper.js +134 -0
  52. package/dist/lib/knowledge/direct-mapper.js.map +1 -0
  53. package/dist/lib/knowledge/index.d.ts +9 -8
  54. package/dist/lib/knowledge/index.d.ts.map +1 -1
  55. package/dist/lib/knowledge/index.js +9 -7
  56. package/dist/lib/knowledge/index.js.map +1 -1
  57. package/dist/lib/knowledge/knowledge-store-metadata.d.ts +40 -0
  58. package/dist/lib/knowledge/knowledge-store-metadata.d.ts.map +1 -0
  59. package/dist/lib/knowledge/knowledge-store-metadata.js +93 -0
  60. package/dist/lib/knowledge/knowledge-store-metadata.js.map +1 -0
  61. package/dist/lib/knowledge/knowledge-store.d.ts +43 -0
  62. package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -0
  63. package/dist/lib/knowledge/knowledge-store.js +603 -0
  64. package/dist/lib/knowledge/knowledge-store.js.map +1 -0
  65. package/dist/lib/knowledge/loaders/database-loader.d.ts +5 -5
  66. package/dist/lib/knowledge/loaders/database-loader.d.ts.map +1 -1
  67. package/dist/lib/knowledge/loaders/database-loader.js +21 -10
  68. package/dist/lib/knowledge/loaders/database-loader.js.map +1 -1
  69. package/dist/lib/knowledge/loaders/file-loaders.d.ts +39 -0
  70. package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -0
  71. package/dist/lib/knowledge/loaders/file-loaders.js +131 -0
  72. package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -0
  73. package/dist/lib/knowledge/loaders/index.d.ts +3 -3
  74. package/dist/lib/knowledge/loaders/index.d.ts.map +1 -1
  75. package/dist/lib/knowledge/loaders/index.js +3 -3
  76. package/dist/lib/knowledge/loaders/index.js.map +1 -1
  77. package/dist/lib/knowledge/loaders/web-loader.d.ts +2 -2
  78. package/dist/lib/knowledge/loaders/web-loader.d.ts.map +1 -1
  79. package/dist/lib/knowledge/loaders/web-loader.js +22 -21
  80. package/dist/lib/knowledge/loaders/web-loader.js.map +1 -1
  81. package/dist/lib/knowledge/sqlite-store.d.ts +107 -0
  82. package/dist/lib/knowledge/sqlite-store.d.ts.map +1 -0
  83. package/dist/lib/knowledge/sqlite-store.js +327 -0
  84. package/dist/lib/knowledge/sqlite-store.js.map +1 -0
  85. package/dist/lib/knowledge/types.d.ts +72 -1432
  86. package/dist/lib/knowledge/types.d.ts.map +1 -1
  87. package/dist/lib/knowledge/types.js +36 -57
  88. package/dist/lib/knowledge/types.js.map +1 -1
  89. package/dist/lib/knowledge/utils/connection-pool.d.ts +3 -2
  90. package/dist/lib/knowledge/utils/connection-pool.d.ts.map +1 -1
  91. package/dist/lib/knowledge/utils/connection-pool.js +20 -10
  92. package/dist/lib/knowledge/utils/connection-pool.js.map +1 -1
  93. package/dist/lib/knowledge/utils/index.d.ts +2 -2
  94. package/dist/lib/knowledge/utils/index.js +2 -2
  95. package/dist/lib/llm/index.d.ts +5 -5
  96. package/dist/lib/llm/index.d.ts.map +1 -1
  97. package/dist/lib/llm/index.js +3 -3
  98. package/dist/lib/llm/index.js.map +1 -1
  99. package/dist/lib/llm/llm-call-logger.d.ts +37 -0
  100. package/dist/lib/llm/llm-call-logger.d.ts.map +1 -0
  101. package/dist/lib/llm/llm-call-logger.js +105 -0
  102. package/dist/lib/llm/llm-call-logger.js.map +1 -0
  103. package/dist/lib/llm/llm-config.d.ts +22 -16
  104. package/dist/lib/llm/llm-config.d.ts.map +1 -1
  105. package/dist/lib/llm/llm-config.js +19 -3
  106. package/dist/lib/llm/llm-config.js.map +1 -1
  107. package/dist/lib/llm/llm-factory.d.ts +3 -16
  108. package/dist/lib/llm/llm-factory.d.ts.map +1 -1
  109. package/dist/lib/llm/llm-factory.js +30 -48
  110. package/dist/lib/llm/llm-factory.js.map +1 -1
  111. package/dist/lib/llm/provider-detector.d.ts +1 -1
  112. package/dist/lib/llm/providers/anthropic-chat-model.d.ts +27 -0
  113. package/dist/lib/llm/providers/anthropic-chat-model.d.ts.map +1 -0
  114. package/dist/lib/llm/providers/anthropic-chat-model.js +186 -0
  115. package/dist/lib/llm/providers/anthropic-chat-model.js.map +1 -0
  116. package/dist/lib/llm/providers/gemini-chat-model.d.ts +29 -0
  117. package/dist/lib/llm/providers/gemini-chat-model.d.ts.map +1 -0
  118. package/dist/lib/llm/providers/gemini-chat-model.js +241 -0
  119. package/dist/lib/llm/providers/gemini-chat-model.js.map +1 -0
  120. package/dist/lib/llm/providers/gemini-embeddings.d.ts +14 -0
  121. package/dist/lib/llm/providers/gemini-embeddings.d.ts.map +1 -0
  122. package/dist/lib/llm/providers/gemini-embeddings.js +20 -0
  123. package/dist/lib/llm/providers/gemini-embeddings.js.map +1 -0
  124. package/dist/lib/llm/providers/openai-chat-model.d.ts +30 -0
  125. package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -0
  126. package/dist/lib/llm/providers/openai-chat-model.js +196 -0
  127. package/dist/lib/llm/providers/openai-chat-model.js.map +1 -0
  128. package/dist/lib/llm/providers/openai-embeddings.d.ts +17 -0
  129. package/dist/lib/llm/providers/openai-embeddings.d.ts.map +1 -0
  130. package/dist/lib/llm/providers/openai-embeddings.js +35 -0
  131. package/dist/lib/llm/providers/openai-embeddings.js.map +1 -0
  132. package/dist/lib/llm/types.d.ts +2 -2
  133. package/dist/lib/llm/types.js +1 -1
  134. package/dist/lib/logger.d.ts +7 -0
  135. package/dist/lib/logger.d.ts.map +1 -1
  136. package/dist/lib/logger.js +43 -4
  137. package/dist/lib/logger.js.map +1 -1
  138. package/dist/lib/mcp/index.d.ts +3 -3
  139. package/dist/lib/mcp/index.js +2 -2
  140. package/dist/lib/mcp/mcp-client.d.ts +3 -2
  141. package/dist/lib/mcp/mcp-client.d.ts.map +1 -1
  142. package/dist/lib/mcp/mcp-client.js +5 -2
  143. package/dist/lib/mcp/mcp-client.js.map +1 -1
  144. package/dist/lib/mcp/types.d.ts +33 -23
  145. package/dist/lib/mcp/types.d.ts.map +1 -1
  146. package/dist/lib/mcp/types.js +11 -2
  147. package/dist/lib/mcp/types.js.map +1 -1
  148. package/dist/lib/memory/conversation-store.d.ts +2 -2
  149. package/dist/lib/memory/conversation-store.d.ts.map +1 -1
  150. package/dist/lib/memory/conversation-store.js +1 -1
  151. package/dist/lib/memory/index.d.ts +3 -2
  152. package/dist/lib/memory/index.d.ts.map +1 -1
  153. package/dist/lib/memory/index.js +3 -2
  154. package/dist/lib/memory/index.js.map +1 -1
  155. package/dist/lib/memory/memory-manager.d.ts +9 -0
  156. package/dist/lib/memory/memory-manager.d.ts.map +1 -0
  157. package/dist/lib/memory/memory-manager.js +34 -0
  158. package/dist/lib/memory/memory-manager.js.map +1 -0
  159. package/dist/lib/memory/types.d.ts +1 -1
  160. package/dist/lib/memory/types.d.ts.map +1 -1
  161. package/dist/lib/orchestrator.d.ts +78 -18
  162. package/dist/lib/orchestrator.d.ts.map +1 -1
  163. package/dist/lib/orchestrator.js +247 -55
  164. package/dist/lib/orchestrator.js.map +1 -1
  165. package/dist/lib/sandbox/html-to-markdown.d.ts +2 -0
  166. package/dist/lib/sandbox/html-to-markdown.d.ts.map +1 -0
  167. package/dist/lib/sandbox/html-to-markdown.js +64 -0
  168. package/dist/lib/sandbox/html-to-markdown.js.map +1 -0
  169. package/dist/lib/sandbox/index.d.ts +7 -0
  170. package/dist/lib/sandbox/index.d.ts.map +1 -0
  171. package/dist/lib/sandbox/index.js +6 -0
  172. package/dist/lib/sandbox/index.js.map +1 -0
  173. package/dist/lib/sandbox/sandbox-exec.d.ts +5 -0
  174. package/dist/lib/sandbox/sandbox-exec.d.ts.map +1 -0
  175. package/dist/lib/sandbox/sandbox-exec.js +35 -0
  176. package/dist/lib/sandbox/sandbox-exec.js.map +1 -0
  177. package/dist/lib/sandbox/sandbox-web.d.ts +5 -0
  178. package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -0
  179. package/dist/lib/sandbox/sandbox-web.js +211 -0
  180. package/dist/lib/sandbox/sandbox-web.js.map +1 -0
  181. package/dist/lib/sandbox/types.d.ts +21 -0
  182. package/dist/lib/sandbox/types.d.ts.map +1 -0
  183. package/dist/lib/sandbox/types.js +7 -0
  184. package/dist/lib/sandbox/types.js.map +1 -0
  185. package/dist/lib/sandbox/vm-executor.d.ts +12 -0
  186. package/dist/lib/sandbox/vm-executor.d.ts.map +1 -0
  187. package/dist/lib/sandbox/vm-executor.js +101 -0
  188. package/dist/lib/sandbox/vm-executor.js.map +1 -0
  189. package/dist/lib/skills/index.d.ts +4 -0
  190. package/dist/lib/skills/index.d.ts.map +1 -0
  191. package/dist/lib/skills/index.js +3 -0
  192. package/dist/lib/skills/index.js.map +1 -0
  193. package/dist/lib/skills/skill-loader.d.ts +19 -0
  194. package/dist/lib/skills/skill-loader.d.ts.map +1 -0
  195. package/dist/lib/skills/skill-loader.js +105 -0
  196. package/dist/lib/skills/skill-loader.js.map +1 -0
  197. package/dist/lib/skills/types.d.ts +17 -0
  198. package/dist/lib/skills/types.d.ts.map +1 -0
  199. package/dist/lib/skills/types.js +6 -0
  200. package/dist/lib/skills/types.js.map +1 -0
  201. package/dist/lib/tasks/index.d.ts +4 -0
  202. package/dist/lib/tasks/index.d.ts.map +1 -0
  203. package/dist/lib/tasks/index.js +4 -0
  204. package/dist/lib/tasks/index.js.map +1 -0
  205. package/dist/lib/tasks/task-manager.d.ts +25 -0
  206. package/dist/lib/tasks/task-manager.d.ts.map +1 -0
  207. package/dist/lib/tasks/task-manager.js +189 -0
  208. package/dist/lib/tasks/task-manager.js.map +1 -0
  209. package/dist/lib/tasks/task-store.d.ts +20 -0
  210. package/dist/lib/tasks/task-store.d.ts.map +1 -0
  211. package/dist/lib/tasks/task-store.js +102 -0
  212. package/dist/lib/tasks/task-store.js.map +1 -0
  213. package/dist/lib/tasks/types.d.ts +38 -0
  214. package/dist/lib/tasks/types.d.ts.map +1 -0
  215. package/dist/lib/tasks/types.js +2 -0
  216. package/dist/lib/tasks/types.js.map +1 -0
  217. package/dist/lib/templates/resource-templates.d.ts +6 -0
  218. package/dist/lib/templates/resource-templates.d.ts.map +1 -0
  219. package/dist/lib/templates/resource-templates.js +146 -0
  220. package/dist/lib/templates/resource-templates.js.map +1 -0
  221. package/dist/lib/tools/agent-tool-wrapper.d.ts +5 -5
  222. package/dist/lib/tools/agent-tool-wrapper.js +3 -3
  223. package/dist/lib/tools/agent-tool-wrapper.js.map +1 -1
  224. package/dist/lib/tools/built-in/ask-user.tool.d.ts +1 -1
  225. package/dist/lib/tools/built-in/ask-user.tool.d.ts.map +1 -1
  226. package/dist/lib/tools/built-in/ask-user.tool.js +2 -2
  227. package/dist/lib/tools/built-in/ask-user.tool.js.map +1 -1
  228. package/dist/lib/tools/built-in/index.d.ts +9 -2
  229. package/dist/lib/tools/built-in/index.d.ts.map +1 -1
  230. package/dist/lib/tools/built-in/index.js +9 -2
  231. package/dist/lib/tools/built-in/index.js.map +1 -1
  232. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts +9 -0
  233. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts.map +1 -0
  234. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js +102 -0
  235. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js.map +1 -0
  236. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts +9 -0
  237. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts.map +1 -0
  238. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js +96 -0
  239. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js.map +1 -0
  240. package/dist/lib/tools/built-in/knowledge-search.tool.d.ts +2 -2
  241. package/dist/lib/tools/built-in/knowledge-search.tool.d.ts.map +1 -1
  242. package/dist/lib/tools/built-in/knowledge-search.tool.js +1 -1
  243. package/dist/lib/tools/built-in/knowledge-search.tool.js.map +1 -1
  244. package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts +7 -0
  245. package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts.map +1 -0
  246. package/dist/lib/tools/built-in/knowledge-sql.tool.js +127 -0
  247. package/dist/lib/tools/built-in/knowledge-sql.tool.js.map +1 -0
  248. package/dist/lib/tools/built-in/knowledge-tools-factory.d.ts +17 -0
  249. package/dist/lib/tools/built-in/knowledge-tools-factory.d.ts.map +1 -0
  250. package/dist/lib/tools/built-in/knowledge-tools-factory.js +54 -0
  251. package/dist/lib/tools/built-in/knowledge-tools-factory.js.map +1 -0
  252. package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts +9 -0
  253. package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts.map +1 -0
  254. package/dist/lib/tools/built-in/knowledge-traverse.tool.js +91 -0
  255. package/dist/lib/tools/built-in/knowledge-traverse.tool.js.map +1 -0
  256. package/dist/lib/tools/built-in/memory-save.tool.d.ts +4 -0
  257. package/dist/lib/tools/built-in/memory-save.tool.d.ts.map +1 -0
  258. package/dist/lib/tools/built-in/memory-save.tool.js +21 -0
  259. package/dist/lib/tools/built-in/memory-save.tool.js.map +1 -0
  260. package/dist/lib/tools/built-in/query-validators.d.ts +18 -0
  261. package/dist/lib/tools/built-in/query-validators.d.ts.map +1 -0
  262. package/dist/lib/tools/built-in/query-validators.js +87 -0
  263. package/dist/lib/tools/built-in/query-validators.js.map +1 -0
  264. package/dist/lib/tools/index.d.ts +4 -4
  265. package/dist/lib/tools/index.js +4 -4
  266. package/dist/lib/tools/tool-discovery.d.ts +11 -33
  267. package/dist/lib/tools/tool-discovery.d.ts.map +1 -1
  268. package/dist/lib/tools/tool-discovery.js +16 -43
  269. package/dist/lib/tools/tool-discovery.js.map +1 -1
  270. package/dist/lib/tools/tool-registry.d.ts +10 -18
  271. package/dist/lib/tools/tool-registry.d.ts.map +1 -1
  272. package/dist/lib/tools/tool-registry.js +37 -23
  273. package/dist/lib/tools/tool-registry.js.map +1 -1
  274. package/dist/lib/tools/workspace/workspace-tools.d.ts +60 -0
  275. package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -0
  276. package/dist/lib/tools/workspace/workspace-tools.js +140 -0
  277. package/dist/lib/tools/workspace/workspace-tools.js.map +1 -0
  278. package/dist/lib/triggers/cron-trigger.d.ts +12 -0
  279. package/dist/lib/triggers/cron-trigger.d.ts.map +1 -0
  280. package/dist/lib/triggers/cron-trigger.js +45 -0
  281. package/dist/lib/triggers/cron-trigger.js.map +1 -0
  282. package/dist/lib/triggers/index.d.ts +6 -0
  283. package/dist/lib/triggers/index.d.ts.map +1 -0
  284. package/dist/lib/triggers/index.js +5 -0
  285. package/dist/lib/triggers/index.js.map +1 -0
  286. package/dist/lib/triggers/trigger-manager.d.ts +11 -0
  287. package/dist/lib/triggers/trigger-manager.d.ts.map +1 -0
  288. package/dist/lib/triggers/trigger-manager.js +51 -0
  289. package/dist/lib/triggers/trigger-manager.js.map +1 -0
  290. package/dist/lib/triggers/types.d.ts +57 -0
  291. package/dist/lib/triggers/types.d.ts.map +1 -0
  292. package/dist/lib/triggers/types.js +16 -0
  293. package/dist/lib/triggers/types.js.map +1 -0
  294. package/dist/lib/triggers/webhook-trigger.d.ts +12 -0
  295. package/dist/lib/triggers/webhook-trigger.d.ts.map +1 -0
  296. package/dist/lib/triggers/webhook-trigger.js +34 -0
  297. package/dist/lib/triggers/webhook-trigger.js.map +1 -0
  298. package/dist/lib/types/llm-types.d.ts +54 -0
  299. package/dist/lib/types/llm-types.d.ts.map +1 -0
  300. package/dist/lib/types/llm-types.js +22 -0
  301. package/dist/lib/types/llm-types.js.map +1 -0
  302. package/dist/lib/types/text-splitters.d.ts +27 -0
  303. package/dist/lib/types/text-splitters.d.ts.map +1 -0
  304. package/dist/lib/types/text-splitters.js +114 -0
  305. package/dist/lib/types/text-splitters.js.map +1 -0
  306. package/dist/lib/types/tool-factory.d.ts +9 -0
  307. package/dist/lib/types/tool-factory.d.ts.map +1 -0
  308. package/dist/lib/types/tool-factory.js +12 -0
  309. package/dist/lib/types/tool-factory.js.map +1 -0
  310. package/dist/lib/utils/file-utils.d.ts +11 -0
  311. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  312. package/dist/lib/utils/file-utils.js +86 -0
  313. package/dist/lib/utils/file-utils.js.map +1 -0
  314. package/dist/lib/workflows/index.d.ts +6 -6
  315. package/dist/lib/workflows/index.d.ts.map +1 -1
  316. package/dist/lib/workflows/index.js +5 -5
  317. package/dist/lib/workflows/index.js.map +1 -1
  318. package/dist/lib/workflows/interrupt-manager.d.ts +1 -1
  319. package/dist/lib/workflows/interrupt-manager.js +1 -1
  320. package/dist/lib/workflows/react-workflow-executor.d.ts +26 -0
  321. package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -0
  322. package/dist/lib/workflows/react-workflow-executor.js +333 -0
  323. package/dist/lib/workflows/react-workflow-executor.js.map +1 -0
  324. package/dist/lib/workflows/types.d.ts +96 -97
  325. package/dist/lib/workflows/types.d.ts.map +1 -1
  326. package/dist/lib/workflows/types.js +5 -5
  327. package/dist/lib/workflows/types.js.map +1 -1
  328. package/dist/lib/workflows/workflow-executor.d.ts +3 -3
  329. package/dist/lib/workflows/workflow-executor.js +2 -2
  330. package/dist/lib/workflows/workflow-executor.js.map +1 -1
  331. package/dist/lib/workflows/workflow-loader.d.ts +1 -1
  332. package/dist/lib/workflows/workflow-loader.d.ts.map +1 -1
  333. package/dist/lib/workflows/workflow-loader.js +10 -3
  334. package/dist/lib/workflows/workflow-loader.js.map +1 -1
  335. package/dist/public/index.html +32 -0
  336. package/dist/public/src/components/AgentsView.js +298 -44
  337. package/dist/public/src/components/AppRoot.js +124 -4
  338. package/dist/public/src/components/GraphView.js +336 -0
  339. package/dist/public/src/components/IdeView.js +462 -7
  340. package/dist/public/src/components/KnowledgeView.js +443 -66
  341. package/dist/public/src/components/MonitorView.js +388 -0
  342. package/dist/public/src/components/NavBar.js +3 -0
  343. package/dist/public/src/components/SkillsView.js +137 -0
  344. package/dist/public/src/components/WorkflowsView.js +287 -114
  345. package/dist/public/src/services/ApiService.js +165 -25
  346. package/dist/public/src/store.js +3 -2
  347. package/dist/public/src/utils/markdown.js +1 -0
  348. package/dist/src/cli/commands/init.js +2 -2
  349. package/dist/src/cli/commands/init.js.map +1 -1
  350. package/dist/src/cli/commands/start.d.ts +0 -1
  351. package/dist/src/cli/commands/start.d.ts.map +1 -1
  352. package/dist/src/cli/commands/start.js +23 -14
  353. package/dist/src/cli/commands/start.js.map +1 -1
  354. package/dist/src/cli/index.js +3 -3
  355. package/dist/src/index.d.ts +1 -1
  356. package/dist/src/index.d.ts.map +1 -1
  357. package/dist/src/index.js +23 -9
  358. package/dist/src/index.js.map +1 -1
  359. package/dist/src/middleware/auth.d.ts +3 -0
  360. package/dist/src/middleware/auth.d.ts.map +1 -0
  361. package/dist/src/middleware/auth.js +107 -0
  362. package/dist/src/middleware/auth.js.map +1 -0
  363. package/dist/src/routes/agents.route.d.ts.map +1 -1
  364. package/dist/src/routes/agents.route.js +31 -2
  365. package/dist/src/routes/agents.route.js.map +1 -1
  366. package/dist/src/routes/files.route.d.ts.map +1 -1
  367. package/dist/src/routes/files.route.js +128 -87
  368. package/dist/src/routes/files.route.js.map +1 -1
  369. package/dist/src/routes/functions.route.js +1 -1
  370. package/dist/src/routes/graph.route.d.ts +3 -0
  371. package/dist/src/routes/graph.route.d.ts.map +1 -0
  372. package/dist/src/routes/graph.route.js +173 -0
  373. package/dist/src/routes/graph.route.js.map +1 -0
  374. package/dist/src/routes/knowledge.route.d.ts.map +1 -1
  375. package/dist/src/routes/knowledge.route.js +172 -69
  376. package/dist/src/routes/knowledge.route.js.map +1 -1
  377. package/dist/src/routes/llm.route.d.ts.map +1 -1
  378. package/dist/src/routes/llm.route.js +48 -7
  379. package/dist/src/routes/llm.route.js.map +1 -1
  380. package/dist/src/routes/mcp.route.js +1 -1
  381. package/dist/src/routes/skills.route.d.ts +3 -0
  382. package/dist/src/routes/skills.route.d.ts.map +1 -0
  383. package/dist/src/routes/skills.route.js +23 -0
  384. package/dist/src/routes/skills.route.js.map +1 -0
  385. package/dist/src/routes/tasks.route.d.ts +3 -0
  386. package/dist/src/routes/tasks.route.d.ts.map +1 -0
  387. package/dist/src/routes/tasks.route.js +135 -0
  388. package/dist/src/routes/tasks.route.js.map +1 -0
  389. package/dist/src/routes/workflows.route.d.ts.map +1 -1
  390. package/dist/src/routes/workflows.route.js +9 -1
  391. package/dist/src/routes/workflows.route.js.map +1 -1
  392. package/dist/src/server.d.ts +1 -1
  393. package/dist/src/server.d.ts.map +1 -1
  394. package/dist/src/server.js +21 -8
  395. package/dist/src/server.js.map +1 -1
  396. package/dist/templates/.env.example +4 -19
  397. package/dist/templates/README.md +18 -10
  398. package/dist/templates/agents/architect.agent.yaml +49 -0
  399. package/dist/templates/agents/chatbot.agent.yaml +58 -0
  400. package/dist/templates/agents/knowledge-broker.agent.yaml +39 -0
  401. package/dist/templates/agents/sandbox.agent.yaml +56 -0
  402. package/dist/templates/knowledge/example.knowledge.yaml +0 -3
  403. package/dist/templates/knowledge/org-chart/personnel.csv +21 -0
  404. package/dist/templates/knowledge/org-chart.knowledge.yaml +49 -0
  405. package/dist/templates/knowledge/pet-store/pet-store.db +0 -0
  406. package/dist/templates/knowledge/pet-store.knowledge.yaml +78 -0
  407. package/dist/templates/knowledge/web-docs.knowledge.yaml +20 -0
  408. package/dist/templates/llm.json +2 -2
  409. package/dist/templates/mcp.json +3 -0
  410. package/dist/templates/skills/orcha-builder/SKILL.md +339 -0
  411. package/dist/templates/skills/sandbox/SKILL.md +63 -0
  412. package/dist/templates/workflows/example.workflow.yaml +25 -30
  413. package/dist/templates/workflows/react-example.workflow.yaml +53 -0
  414. package/package.json +17 -20
  415. package/dist/lib/knowledge/graph-rag/community-detector.d.ts +0 -16
  416. package/dist/lib/knowledge/graph-rag/community-detector.d.ts.map +0 -1
  417. package/dist/lib/knowledge/graph-rag/community-detector.js +0 -81
  418. package/dist/lib/knowledge/graph-rag/community-detector.js.map +0 -1
  419. package/dist/lib/knowledge/graph-rag/community-summarizer.d.ts +0 -17
  420. package/dist/lib/knowledge/graph-rag/community-summarizer.d.ts.map +0 -1
  421. package/dist/lib/knowledge/graph-rag/community-summarizer.js +0 -87
  422. package/dist/lib/knowledge/graph-rag/community-summarizer.js.map +0 -1
  423. package/dist/lib/knowledge/graph-rag/entity-extractor.d.ts +0 -36
  424. package/dist/lib/knowledge/graph-rag/entity-extractor.d.ts.map +0 -1
  425. package/dist/lib/knowledge/graph-rag/entity-extractor.js +0 -192
  426. package/dist/lib/knowledge/graph-rag/entity-extractor.js.map +0 -1
  427. package/dist/lib/knowledge/graph-rag/extraction-cache.d.ts +0 -30
  428. package/dist/lib/knowledge/graph-rag/extraction-cache.d.ts.map +0 -1
  429. package/dist/lib/knowledge/graph-rag/extraction-cache.js +0 -88
  430. package/dist/lib/knowledge/graph-rag/extraction-cache.js.map +0 -1
  431. package/dist/lib/knowledge/graph-rag/global-search.d.ts +0 -19
  432. package/dist/lib/knowledge/graph-rag/global-search.d.ts.map +0 -1
  433. package/dist/lib/knowledge/graph-rag/global-search.js +0 -96
  434. package/dist/lib/knowledge/graph-rag/global-search.js.map +0 -1
  435. package/dist/lib/knowledge/graph-rag/graph-rag-factory.d.ts +0 -24
  436. package/dist/lib/knowledge/graph-rag/graph-rag-factory.d.ts.map +0 -1
  437. package/dist/lib/knowledge/graph-rag/graph-rag-factory.js +0 -239
  438. package/dist/lib/knowledge/graph-rag/graph-rag-factory.js.map +0 -1
  439. package/dist/lib/knowledge/graph-rag/index.d.ts +0 -14
  440. package/dist/lib/knowledge/graph-rag/index.d.ts.map +0 -1
  441. package/dist/lib/knowledge/graph-rag/index.js +0 -12
  442. package/dist/lib/knowledge/graph-rag/index.js.map +0 -1
  443. package/dist/lib/knowledge/graph-rag/local-search.d.ts +0 -20
  444. package/dist/lib/knowledge/graph-rag/local-search.d.ts.map +0 -1
  445. package/dist/lib/knowledge/graph-rag/local-search.js +0 -110
  446. package/dist/lib/knowledge/graph-rag/local-search.js.map +0 -1
  447. package/dist/lib/knowledge/graph-rag/memory-graph-store.d.ts +0 -31
  448. package/dist/lib/knowledge/graph-rag/memory-graph-store.d.ts.map +0 -1
  449. package/dist/lib/knowledge/graph-rag/memory-graph-store.js +0 -165
  450. package/dist/lib/knowledge/graph-rag/memory-graph-store.js.map +0 -1
  451. package/dist/lib/knowledge/graph-rag/neo4j-graph-store.d.ts +0 -38
  452. package/dist/lib/knowledge/graph-rag/neo4j-graph-store.d.ts.map +0 -1
  453. package/dist/lib/knowledge/graph-rag/neo4j-graph-store.js +0 -190
  454. package/dist/lib/knowledge/graph-rag/neo4j-graph-store.js.map +0 -1
  455. package/dist/lib/knowledge/graph-rag/search-mode-detector.d.ts +0 -11
  456. package/dist/lib/knowledge/graph-rag/search-mode-detector.d.ts.map +0 -1
  457. package/dist/lib/knowledge/graph-rag/search-mode-detector.js +0 -50
  458. package/dist/lib/knowledge/graph-rag/search-mode-detector.js.map +0 -1
  459. package/dist/lib/knowledge/graph-rag/types.d.ts +0 -368
  460. package/dist/lib/knowledge/graph-rag/types.d.ts.map +0 -1
  461. package/dist/lib/knowledge/graph-rag/types.js +0 -48
  462. package/dist/lib/knowledge/graph-rag/types.js.map +0 -1
  463. package/dist/lib/knowledge/knowledge-store-factory.d.ts +0 -16
  464. package/dist/lib/knowledge/knowledge-store-factory.d.ts.map +0 -1
  465. package/dist/lib/knowledge/knowledge-store-factory.js +0 -376
  466. package/dist/lib/knowledge/knowledge-store-factory.js.map +0 -1
  467. package/dist/lib/knowledge/knowledge-store-manager.d.ts +0 -18
  468. package/dist/lib/knowledge/knowledge-store-manager.d.ts.map +0 -1
  469. package/dist/lib/knowledge/knowledge-store-manager.js +0 -98
  470. package/dist/lib/knowledge/knowledge-store-manager.js.map +0 -1
  471. package/dist/lib/knowledge/loaders/s3-loader.d.ts +0 -17
  472. package/dist/lib/knowledge/loaders/s3-loader.d.ts.map +0 -1
  473. package/dist/lib/knowledge/loaders/s3-loader.js +0 -185
  474. package/dist/lib/knowledge/loaders/s3-loader.js.map +0 -1
  475. package/dist/lib/workflows/langgraph-executor.d.ts +0 -51
  476. package/dist/lib/workflows/langgraph-executor.d.ts.map +0 -1
  477. package/dist/lib/workflows/langgraph-executor.js +0 -297
  478. package/dist/lib/workflows/langgraph-executor.js.map +0 -1
  479. package/dist/templates/agents/call-center-analyst-simple.agent.yaml +0 -36
  480. package/dist/templates/agents/math.agent.yaml +0 -28
  481. package/dist/templates/agents/sentiment-structured.agent.yaml +0 -42
  482. package/dist/templates/llm.md +0 -1195
  483. package/dist/templates/workflows/langgraph-example.workflow.yaml +0 -84
@@ -0,0 +1,86 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ export const IGNORED = new Set(['node_modules', 'dist', '.git', '.DS_Store']);
4
+ export const MAX_DEPTH = 5;
5
+ export async function resolveSafePath(baseDir, relativePath) {
6
+ // Block absolute paths and obvious traversal before any resolution
7
+ if (path.isAbsolute(relativePath)) {
8
+ throw new Error('Path traversal detected');
9
+ }
10
+ // String-based check first (fast reject)
11
+ const resolved = path.resolve(baseDir, relativePath);
12
+ const normalizedBase = path.normalize(baseDir);
13
+ const normalizedResolved = path.normalize(resolved);
14
+ if (normalizedResolved !== normalizedBase &&
15
+ !normalizedResolved.startsWith(normalizedBase + path.sep)) {
16
+ throw new Error('Path traversal detected');
17
+ }
18
+ // Symlink-aware check: resolve real paths on disk to prevent symlink bypass
19
+ const realBase = await fs.realpath(baseDir);
20
+ let realResolved;
21
+ try {
22
+ realResolved = await fs.realpath(resolved);
23
+ }
24
+ catch {
25
+ // File doesn't exist yet — resolve parent dir to check it's inside base
26
+ const parentDir = path.dirname(resolved);
27
+ try {
28
+ const realParent = await fs.realpath(parentDir);
29
+ if (realParent !== realBase &&
30
+ !realParent.startsWith(realBase + path.sep)) {
31
+ throw new Error('Path traversal detected');
32
+ }
33
+ }
34
+ catch {
35
+ throw new Error('Path traversal detected');
36
+ }
37
+ return resolved;
38
+ }
39
+ if (realResolved !== realBase &&
40
+ !realResolved.startsWith(realBase + path.sep)) {
41
+ throw new Error('Path traversal detected');
42
+ }
43
+ return resolved;
44
+ }
45
+ export async function buildTree(dirPath, baseDir, depth) {
46
+ if (depth > MAX_DEPTH)
47
+ return [];
48
+ let entries;
49
+ try {
50
+ entries = await fs.readdir(dirPath, { withFileTypes: true });
51
+ }
52
+ catch {
53
+ return [];
54
+ }
55
+ const nodes = [];
56
+ for (const entry of entries) {
57
+ if (entry.name.startsWith('.') || IGNORED.has(entry.name))
58
+ continue;
59
+ const fullPath = path.join(dirPath, entry.name);
60
+ const relativePath = path.relative(baseDir, fullPath);
61
+ if (entry.isDirectory()) {
62
+ const children = await buildTree(fullPath, baseDir, depth + 1);
63
+ nodes.push({
64
+ name: entry.name,
65
+ path: relativePath,
66
+ type: 'directory',
67
+ children,
68
+ });
69
+ }
70
+ else {
71
+ nodes.push({
72
+ name: entry.name,
73
+ path: relativePath,
74
+ type: 'file',
75
+ });
76
+ }
77
+ }
78
+ // Sort: directories first, then alphabetical
79
+ nodes.sort((a, b) => {
80
+ if (a.type !== b.type)
81
+ return a.type === 'directory' ? -1 : 1;
82
+ return a.name.localeCompare(b.name);
83
+ });
84
+ return nodes;
85
+ }
86
+ //# sourceMappingURL=file-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../../lib/utils/file-utils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- export { WorkflowLoader } from './workflow-loader.js';
2
- export { WorkflowExecutor } from './workflow-executor.js';
3
- export { LangGraphExecutor } from './langgraph-executor.js';
4
- export { InterruptManager } from './interrupt-manager.js';
5
- export { WorkflowDefinitionSchema, WorkflowStepSchema, InputMappingSchema, RetryConfigSchema, StepOutputSchema, ParallelStepsSchema, InputFieldSchema, WorkflowConfigSchema, LangGraphWorkflowSchema, GraphToolConfigSchema, GraphAgentConfigSchema, GraphConfigSchema, } from './types.js';
6
- export type { WorkflowDefinition, WorkflowStep, InputMapping, RetryConfig, StepOutput, ParallelSteps, InputField, WorkflowConfig, WorkflowContext, WorkflowResult, StepResult, LangGraphWorkflowDefinition, StepBasedWorkflowDefinition, GraphToolConfig, GraphAgentConfig, GraphConfig, WorkflowInterrupt, InterruptState, WorkflowStatus, } from './types.js';
1
+ export { WorkflowLoader } from './workflow-loader.ts';
2
+ export { WorkflowExecutor } from './workflow-executor.ts';
3
+ export { ReactWorkflowExecutor } from './react-workflow-executor.ts';
4
+ export { InterruptManager } from './interrupt-manager.ts';
5
+ export { WorkflowDefinitionSchema, WorkflowStepSchema, InputMappingSchema, RetryConfigSchema, StepOutputSchema, ParallelStepsSchema, InputFieldSchema, WorkflowConfigSchema, ReactWorkflowSchema, GraphToolConfigSchema, GraphAgentConfigSchema, GraphConfigSchema, } from './types.ts';
6
+ export type { WorkflowDefinition, WorkflowStep, InputMapping, RetryConfig, StepOutput, ParallelSteps, InputField, WorkflowConfig, WorkflowContext, WorkflowResult, StepResult, ReactWorkflowDefinition, StepBasedWorkflowDefinition, GraphToolConfig, GraphAgentConfig, GraphConfig, WorkflowInterrupt, InterruptState, WorkflowStatus, } from './types.ts';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
- export { WorkflowLoader } from './workflow-loader.js';
2
- export { WorkflowExecutor } from './workflow-executor.js';
3
- export { LangGraphExecutor } from './langgraph-executor.js';
4
- export { InterruptManager } from './interrupt-manager.js';
5
- export { WorkflowDefinitionSchema, WorkflowStepSchema, InputMappingSchema, RetryConfigSchema, StepOutputSchema, ParallelStepsSchema, InputFieldSchema, WorkflowConfigSchema, LangGraphWorkflowSchema, GraphToolConfigSchema, GraphAgentConfigSchema, GraphConfigSchema, } from './types.js';
1
+ export { WorkflowLoader } from "./workflow-loader.js";
2
+ export { WorkflowExecutor } from "./workflow-executor.js";
3
+ export { ReactWorkflowExecutor } from "./react-workflow-executor.js";
4
+ export { InterruptManager } from "./interrupt-manager.js";
5
+ export { WorkflowDefinitionSchema, WorkflowStepSchema, InputMappingSchema, RetryConfigSchema, StepOutputSchema, ParallelStepsSchema, InputFieldSchema, WorkflowConfigSchema, ReactWorkflowSchema, GraphToolConfigSchema, GraphAgentConfigSchema, GraphConfigSchema, } from "./types.js";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { InterruptState } from './types.js';
1
+ import type { InterruptState } from './types.ts';
2
2
  /**
3
3
  * Manages workflow interrupts for human-in-the-loop interactions.
4
4
  * Interrupts are stored in-memory and expire after 1 hour.
@@ -1,4 +1,4 @@
1
- import { logger } from '../logger.js';
1
+ import { logger } from "../logger.js";
2
2
  /**
3
3
  * Manages workflow interrupts for human-in-the-loop interactions.
4
4
  * Interrupts are stored in-memory and expire after 1 hour.
@@ -0,0 +1,26 @@
1
+ import type { ReactWorkflowDefinition, WorkflowResult, WorkflowStatus } from './types.ts';
2
+ import type { InterruptManager } from './interrupt-manager.ts';
3
+ import { ToolDiscovery } from '../tools/tool-discovery.ts';
4
+ /**
5
+ * Executes ReAct-style workflows (Reasoning + Acting).
6
+ * Supports autonomous tool/agent discovery and human-in-the-loop via ask_user tool.
7
+ */
8
+ export declare class ReactWorkflowExecutor {
9
+ private toolDiscovery;
10
+ private interruptManager;
11
+ /** Stores thread message state for pause/resume */
12
+ private threadStates;
13
+ constructor(toolDiscovery: ToolDiscovery, interruptManager: InterruptManager);
14
+ execute(definition: ReactWorkflowDefinition, input: Record<string, unknown>, threadId?: string, onStatus?: (status: WorkflowStatus) => void): Promise<WorkflowResult>;
15
+ resumeWithAnswer(definition: ReactWorkflowDefinition, threadId: string, answer: string, onStatus?: (status: WorkflowStatus) => void): Promise<WorkflowResult>;
16
+ /**
17
+ * Runs the ReAct loop: LLM -> tool calls -> LLM -> ... until done.
18
+ * Returns the full message history.
19
+ */
20
+ private runReActLoop;
21
+ private handleInterrupt;
22
+ private interpolateGoal;
23
+ private extractOutput;
24
+ private generateThreadId;
25
+ }
26
+ //# sourceMappingURL=react-workflow-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-workflow-executor.d.ts","sourceRoot":"","sources":["../../../lib/workflows/react-workflow-executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,EAEf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAK3D;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,mDAAmD;IACnD,OAAO,CAAC,YAAY,CAAoC;gBAE5C,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB;IAKtE,OAAO,CACX,UAAU,EAAE,uBAAuB,EACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,cAAc,CAAC;IAqHpB,gBAAgB,CACpB,UAAU,EAAE,uBAAuB,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,cAAc,CAAC;IAkG1B;;;OAGG;YACW,YAAY;IAyH1B,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,gBAAgB;CAGzB"}
@@ -0,0 +1,333 @@
1
+ import { NodeInterrupt, aiMessage, toolMessage } from "../types/llm-types.js";
2
+ import { LLMFactory } from "../llm/llm-factory.js";
3
+ import { logLLMCallStart, logLLMCallEnd } from "../llm/llm-call-logger.js";
4
+ import { logger } from "../logger.js";
5
+ /**
6
+ * Executes ReAct-style workflows (Reasoning + Acting).
7
+ * Supports autonomous tool/agent discovery and human-in-the-loop via ask_user tool.
8
+ */
9
+ export class ReactWorkflowExecutor {
10
+ toolDiscovery;
11
+ interruptManager;
12
+ /** Stores thread message state for pause/resume */
13
+ threadStates = new Map();
14
+ constructor(toolDiscovery, interruptManager) {
15
+ this.toolDiscovery = toolDiscovery;
16
+ this.interruptManager = interruptManager;
17
+ }
18
+ async execute(definition, input, threadId, onStatus) {
19
+ const startTime = Date.now();
20
+ const actualThreadId = threadId || this.generateThreadId();
21
+ onStatus?.({
22
+ type: 'workflow_start',
23
+ message: `Starting ReAct workflow: ${definition.name}`,
24
+ elapsed: 0,
25
+ });
26
+ try {
27
+ // 1. Discover tools
28
+ onStatus?.({
29
+ type: 'tool_discovery',
30
+ message: 'Discovering tools...',
31
+ elapsed: Date.now() - startTime,
32
+ });
33
+ logger.info(`[ReactWorkflow] Discovering tools for workflow "${definition.name}"...`);
34
+ const tools = await this.toolDiscovery.discoverAll(definition.graph.tools);
35
+ onStatus?.({
36
+ type: 'tool_discovery',
37
+ message: `Discovered ${tools.length} tools`,
38
+ elapsed: Date.now() - startTime,
39
+ });
40
+ logger.info(`[ReactWorkflow] Discovered ${tools.length} tools`);
41
+ // 2. Discover agents
42
+ onStatus?.({
43
+ type: 'tool_discovery',
44
+ message: 'Discovering agent tools...',
45
+ elapsed: Date.now() - startTime,
46
+ });
47
+ logger.info(`[ReactWorkflow] Discovering agents for workflow "${definition.name}"...`);
48
+ const agentTools = await this.toolDiscovery.discoverAgents(definition.graph.agents);
49
+ onStatus?.({
50
+ type: 'tool_discovery',
51
+ message: `Discovered ${agentTools.length} agent tools`,
52
+ elapsed: Date.now() - startTime,
53
+ });
54
+ logger.info(`[ReactWorkflow] Discovered ${agentTools.length} agent tools`);
55
+ // 3. Combine all tools
56
+ const allTools = [...tools, ...agentTools];
57
+ onStatus?.({
58
+ type: 'tool_discovery',
59
+ message: `${allTools.length} total tools ready`,
60
+ elapsed: Date.now() - startTime,
61
+ });
62
+ logger.info(`[ReactWorkflow] Total tools available: ${allTools.length}`);
63
+ // 4. Get LLM
64
+ const llm = LLMFactory.create(definition.graph.model);
65
+ // 5. Execute the ReAct loop
66
+ const goal = this.interpolateGoal(definition.prompt.goal, input);
67
+ logger.info(`[ReactWorkflow] Executing workflow with goal: ${goal}`);
68
+ const messages = [{ role: 'human', content: goal }];
69
+ const result = await this.runReActLoop(llm, allTools, definition, messages, actualThreadId, onStatus, startTime);
70
+ // 7. Extract output
71
+ const output = this.extractOutput(definition.output, result);
72
+ const duration = Date.now() - startTime;
73
+ onStatus?.({
74
+ type: 'workflow_complete',
75
+ message: 'ReAct workflow completed',
76
+ elapsed: duration,
77
+ });
78
+ logger.info(`[ReactWorkflow] Workflow completed in ${duration}ms`);
79
+ return {
80
+ output,
81
+ metadata: {
82
+ duration,
83
+ stepsExecuted: result.length,
84
+ success: true,
85
+ },
86
+ stepResults: {},
87
+ };
88
+ }
89
+ catch (error) {
90
+ // Check if it's an interrupt
91
+ if (error instanceof NodeInterrupt) {
92
+ return this.handleInterrupt(error, definition, actualThreadId, startTime, onStatus);
93
+ }
94
+ const duration = Date.now() - startTime;
95
+ onStatus?.({
96
+ type: 'workflow_error',
97
+ message: error instanceof Error ? error.message : String(error),
98
+ elapsed: duration,
99
+ error: String(error),
100
+ });
101
+ logger.error(`[ReactWorkflow] Workflow error:`, error);
102
+ throw error;
103
+ }
104
+ }
105
+ async resumeWithAnswer(definition, threadId, answer, onStatus) {
106
+ const startTime = Date.now();
107
+ logger.info(`[ReactWorkflow] Resuming workflow "${definition.name}" with thread ${threadId}`);
108
+ // Resolve the interrupt
109
+ const resolved = this.interruptManager.resolveInterrupt(threadId, answer);
110
+ if (!resolved) {
111
+ throw new Error(`No active interrupt found for thread ${threadId}`);
112
+ }
113
+ onStatus?.({
114
+ type: 'workflow_start',
115
+ message: `Resuming ReAct workflow: ${definition.name}`,
116
+ elapsed: 0,
117
+ });
118
+ try {
119
+ // 1. Discover tools (same as before)
120
+ const tools = await this.toolDiscovery.discoverAll(definition.graph.tools);
121
+ const agentTools = await this.toolDiscovery.discoverAgents(definition.graph.agents);
122
+ const allTools = [...tools, ...agentTools];
123
+ // 2. Get LLM
124
+ const llm = LLMFactory.create(definition.graph.model);
125
+ // 3. Load saved thread state and append the user's answer
126
+ const savedMessages = this.threadStates.get(threadId) ?? [];
127
+ // Add the answer as a tool result for the pending ask_user call
128
+ const lastAiMsg = [...savedMessages].reverse().find(m => m.role === 'ai' && m.tool_calls?.length);
129
+ const askUserCall = lastAiMsg?.tool_calls?.find(tc => tc.name === 'ask_user');
130
+ if (askUserCall) {
131
+ savedMessages.push(toolMessage(answer, askUserCall.id, 'ask_user'));
132
+ }
133
+ else {
134
+ // Fallback: add as a human message
135
+ savedMessages.push({ role: 'human', content: answer });
136
+ }
137
+ // 4. Continue the ReAct loop
138
+ const result = await this.runReActLoop(llm, allTools, definition, savedMessages, threadId, onStatus, startTime);
139
+ // 5. Extract output
140
+ const output = this.extractOutput(definition.output, result);
141
+ const duration = Date.now() - startTime;
142
+ onStatus?.({
143
+ type: 'workflow_complete',
144
+ message: 'ReAct workflow resumed and completed',
145
+ elapsed: duration,
146
+ });
147
+ // Clean up
148
+ this.interruptManager.removeInterrupt(threadId);
149
+ this.threadStates.delete(threadId);
150
+ return {
151
+ output,
152
+ metadata: {
153
+ duration,
154
+ stepsExecuted: result.length,
155
+ success: true,
156
+ },
157
+ stepResults: {},
158
+ };
159
+ }
160
+ catch (error) {
161
+ // Check if it's another interrupt
162
+ if (error instanceof NodeInterrupt) {
163
+ return this.handleInterrupt(error, definition, threadId, startTime, onStatus);
164
+ }
165
+ const duration = Date.now() - startTime;
166
+ onStatus?.({
167
+ type: 'workflow_error',
168
+ message: error instanceof Error ? error.message : String(error),
169
+ elapsed: duration,
170
+ error: String(error),
171
+ });
172
+ throw error;
173
+ }
174
+ }
175
+ /**
176
+ * Runs the ReAct loop: LLM -> tool calls -> LLM -> ... until done.
177
+ * Returns the full message history.
178
+ */
179
+ async runReActLoop(llm, tools, definition, initialMessages, threadId, onStatus, loopStartTime) {
180
+ const executionMode = definition.graph.executionMode || 'react';
181
+ const maxIterations = definition.graph.maxIterations ?? 200;
182
+ const toolMap = new Map(tools.map(t => [t.name, t]));
183
+ const elapsed = () => Date.now() - (loopStartTime || Date.now());
184
+ const allMessages = [
185
+ { role: 'system', content: definition.prompt.system },
186
+ ...initialMessages,
187
+ ];
188
+ let toolExecutionCount = 0;
189
+ for (let i = 0; i < maxIterations; i++) {
190
+ onStatus?.({
191
+ type: 'react_iteration',
192
+ message: `Iteration ${i + 1}: Reasoning...`,
193
+ elapsed: elapsed(),
194
+ });
195
+ // In single-turn mode, after tools have executed once, don't bind tools
196
+ const shouldBindTools = executionMode === 'react' || toolExecutionCount === 0;
197
+ const modelToUse = shouldBindTools && tools.length > 0 ? llm.bindTools(tools) : llm;
198
+ // Add instruction to wrap up if in single-turn mode after tools executed
199
+ let effectiveMessages = allMessages;
200
+ if (executionMode === 'single-turn' && toolExecutionCount > 0) {
201
+ const augmentedSystem = `${definition.prompt.system}\n\nIMPORTANT: You have received tool results. Provide your final answer now without calling any more tools.`;
202
+ effectiveMessages = [
203
+ { role: 'system', content: augmentedSystem },
204
+ ...allMessages.slice(1), // Skip original system message
205
+ ];
206
+ }
207
+ const caller = `ReactWorkflow: ${definition.name}`;
208
+ const { startTime: llmStart, stats } = logLLMCallStart({
209
+ caller,
210
+ systemPrompt: definition.prompt.system,
211
+ messages: effectiveMessages,
212
+ tools: shouldBindTools ? tools : undefined,
213
+ });
214
+ const response = await modelToUse.invoke(effectiveMessages);
215
+ const responseContent = response.content ?? '';
216
+ logLLMCallEnd(caller, llmStart, stats, { contentLength: responseContent.length });
217
+ allMessages.push(aiMessage(responseContent, response.tool_calls));
218
+ // No tool calls = final answer
219
+ if (!response.tool_calls || response.tool_calls.length === 0) {
220
+ onStatus?.({
221
+ type: 'react_iteration',
222
+ message: `Iteration ${i + 1}: Final answer generated`,
223
+ elapsed: elapsed(),
224
+ });
225
+ break;
226
+ }
227
+ // In single-turn mode, only allow one round of tool execution
228
+ if (executionMode === 'single-turn' && toolExecutionCount > 0) {
229
+ logger.info('[ReactWorkflow] Single-turn mode: tools already executed, ending workflow');
230
+ break;
231
+ }
232
+ // Execute each tool call
233
+ toolExecutionCount++;
234
+ for (const tc of response.tool_calls) {
235
+ const tool = toolMap.get(tc.name);
236
+ if (!tool) {
237
+ onStatus?.({
238
+ type: 'step_error',
239
+ message: `Tool "${tc.name}" not found`,
240
+ elapsed: elapsed(),
241
+ });
242
+ allMessages.push(toolMessage(`Tool "${tc.name}" not found`, tc.id, tc.name));
243
+ continue;
244
+ }
245
+ onStatus?.({
246
+ type: 'tool_call',
247
+ message: `Calling: ${tc.name}`,
248
+ elapsed: elapsed(),
249
+ });
250
+ try {
251
+ const result = await tool.invoke(tc.args);
252
+ onStatus?.({
253
+ type: 'tool_result',
254
+ message: `${tc.name} completed`,
255
+ elapsed: elapsed(),
256
+ });
257
+ allMessages.push(toolMessage(result, tc.id, tc.name));
258
+ }
259
+ catch (error) {
260
+ // Handle NodeInterrupt: save state and re-throw
261
+ if (error instanceof NodeInterrupt) {
262
+ this.threadStates.set(threadId, allMessages);
263
+ throw error;
264
+ }
265
+ const errMsg = error instanceof Error ? error.message : String(error);
266
+ onStatus?.({
267
+ type: 'step_error',
268
+ message: `${tc.name} failed: ${errMsg}`,
269
+ elapsed: elapsed(),
270
+ });
271
+ allMessages.push(toolMessage(`Error: ${errMsg}`, tc.id, tc.name));
272
+ }
273
+ }
274
+ }
275
+ return allMessages;
276
+ }
277
+ handleInterrupt(error, definition, threadId, startTime, onStatus) {
278
+ const question = error.data?.question ? String(error.data.question) : error.message || 'Agent requires input';
279
+ logger.info(`[ReactWorkflow] Workflow interrupted with question: ${question}`);
280
+ // Store interrupt state
281
+ this.interruptManager.addInterrupt({
282
+ threadId,
283
+ workflowName: definition.name,
284
+ question,
285
+ timestamp: Date.now(),
286
+ resolved: false,
287
+ });
288
+ const interrupt = {
289
+ threadId,
290
+ question,
291
+ timestamp: Date.now(),
292
+ };
293
+ const duration = Date.now() - startTime;
294
+ onStatus?.({
295
+ type: 'workflow_interrupt',
296
+ message: `Workflow paused: ${question}`,
297
+ elapsed: duration,
298
+ interrupt,
299
+ });
300
+ return {
301
+ output: { interrupted: true, threadId, question },
302
+ metadata: {
303
+ duration,
304
+ stepsExecuted: 0,
305
+ success: false,
306
+ },
307
+ stepResults: {},
308
+ };
309
+ }
310
+ interpolateGoal(template, input) {
311
+ return template.replace(/\{\{input\.([^}]+)\}\}/g, (_, key) => {
312
+ const value = input[key];
313
+ return value !== undefined ? String(value) : '';
314
+ });
315
+ }
316
+ extractOutput(outputMapping, messages) {
317
+ const output = {};
318
+ for (const [key, template] of Object.entries(outputMapping)) {
319
+ if (template.includes('{{state.messages[-1].content}}')) {
320
+ const lastMessage = messages[messages.length - 1];
321
+ output[key] = lastMessage?.content ?? '';
322
+ }
323
+ else {
324
+ output[key] = template;
325
+ }
326
+ }
327
+ return output;
328
+ }
329
+ generateThreadId() {
330
+ return `thread_${Date.now()}_${Math.random().toString(36).substring(7)}`;
331
+ }
332
+ }
333
+ //# sourceMappingURL=react-workflow-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-workflow-executor.js","sourceRoot":"","sources":["../../../lib/workflows/react-workflow-executor.ts"],"names":[],"mappings":"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"}