@octo-cyber/ai 0.5.5 → 0.5.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 (426) hide show
  1. package/dist/BranchDecisionEngine.d.ts +73 -0
  2. package/dist/BranchDecisionEngine.d.ts.map +1 -0
  3. package/dist/BranchDecisionEngine.js +195 -0
  4. package/dist/BranchDecisionEngine.js.map +1 -0
  5. package/dist/agent/coding-tools.d.ts +7 -0
  6. package/dist/agent/coding-tools.d.ts.map +1 -0
  7. package/dist/agent/coding-tools.js +181 -0
  8. package/dist/agent/coding-tools.js.map +1 -0
  9. package/dist/ai.module.d.ts +14 -2
  10. package/dist/ai.module.d.ts.map +1 -1
  11. package/dist/ai.module.js +61 -14
  12. package/dist/ai.module.js.map +1 -1
  13. package/dist/cli/adapters/antigravity.adapter.d.ts +2 -0
  14. package/dist/cli/adapters/antigravity.adapter.d.ts.map +1 -1
  15. package/dist/cli/adapters/antigravity.adapter.js +78 -0
  16. package/dist/cli/adapters/antigravity.adapter.js.map +1 -1
  17. package/dist/cli/adapters/claude-cli.adapter.d.ts.map +1 -1
  18. package/dist/cli/adapters/claude-cli.adapter.js +2 -0
  19. package/dist/cli/adapters/claude-cli.adapter.js.map +1 -1
  20. package/dist/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
  21. package/dist/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
  22. package/dist/cli/adapters/cli-proxy-api.adapter.js +239 -0
  23. package/dist/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
  24. package/dist/cli/cli-executor.service.d.ts +2 -0
  25. package/dist/cli/cli-executor.service.d.ts.map +1 -1
  26. package/dist/cli/cli-executor.service.js +21 -1
  27. package/dist/cli/cli-executor.service.js.map +1 -1
  28. package/dist/cli/cli-registry.service.d.ts.map +1 -1
  29. package/dist/cli/cli-registry.service.js +3 -1
  30. package/dist/cli/cli-registry.service.js.map +1 -1
  31. package/dist/cli/controllers/ai-cli.controller.d.ts +4 -0
  32. package/dist/cli/controllers/ai-cli.controller.d.ts.map +1 -1
  33. package/dist/cli/controllers/ai-cli.controller.js +33 -4
  34. package/dist/cli/controllers/ai-cli.controller.js.map +1 -1
  35. package/dist/cli/index.d.ts +1 -1
  36. package/dist/cli/index.d.ts.map +1 -1
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/cli/types.d.ts +23 -1
  39. package/dist/cli/types.d.ts.map +1 -1
  40. package/dist/cli/workspace.service.d.ts +11 -3
  41. package/dist/cli/workspace.service.d.ts.map +1 -1
  42. package/dist/cli/workspace.service.js +61 -6
  43. package/dist/cli/workspace.service.js.map +1 -1
  44. package/dist/index.d.ts +5 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +22 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/session/claude-code-session-manager.service.d.ts +28 -0
  49. package/dist/session/claude-code-session-manager.service.d.ts.map +1 -0
  50. package/dist/session/claude-code-session-manager.service.js +177 -0
  51. package/dist/session/claude-code-session-manager.service.js.map +1 -0
  52. package/dist/shared/IClaudeCodeSessionManager.d.ts +151 -0
  53. package/dist/shared/IClaudeCodeSessionManager.d.ts.map +1 -0
  54. package/dist/shared/IClaudeCodeSessionManager.js +6 -0
  55. package/dist/shared/IClaudeCodeSessionManager.js.map +1 -0
  56. package/dist/skill/controllers/skill-market.controller.d.ts +18 -0
  57. package/dist/skill/controllers/skill-market.controller.d.ts.map +1 -0
  58. package/dist/skill/controllers/skill-market.controller.js +128 -0
  59. package/dist/skill/controllers/skill-market.controller.js.map +1 -0
  60. package/dist/skill/controllers/skill.controller.d.ts +4 -0
  61. package/dist/skill/controllers/skill.controller.d.ts.map +1 -1
  62. package/dist/skill/controllers/skill.controller.js +31 -0
  63. package/dist/skill/controllers/skill.controller.js.map +1 -1
  64. package/dist/skill/index.d.ts +3 -1
  65. package/dist/skill/index.d.ts.map +1 -1
  66. package/dist/skill/index.js +5 -1
  67. package/dist/skill/index.js.map +1 -1
  68. package/dist/skill/services/skill-installer.service.d.ts +27 -0
  69. package/dist/skill/services/skill-installer.service.d.ts.map +1 -1
  70. package/dist/skill/services/skill-installer.service.js +108 -0
  71. package/dist/skill/services/skill-installer.service.js.map +1 -1
  72. package/dist/skill/services/skill-market.service.d.ts +60 -0
  73. package/dist/skill/services/skill-market.service.d.ts.map +1 -0
  74. package/dist/skill/services/skill-market.service.js +244 -0
  75. package/dist/skill/services/skill-market.service.js.map +1 -0
  76. package/dist/skill/services/skill-registry.service.js +4 -4
  77. package/dist/skill/services/skill-registry.service.js.map +1 -1
  78. package/dist/skill/types.d.ts +32 -1
  79. package/dist/skill/types.d.ts.map +1 -1
  80. package/dist/src/BranchDecisionEngine.d.ts +73 -0
  81. package/dist/src/BranchDecisionEngine.d.ts.map +1 -0
  82. package/dist/src/BranchDecisionEngine.js +195 -0
  83. package/dist/src/BranchDecisionEngine.js.map +1 -0
  84. package/dist/src/agent/agent-approval.controller.d.ts +20 -0
  85. package/dist/src/agent/agent-approval.controller.d.ts.map +1 -0
  86. package/dist/src/agent/agent-approval.controller.js +101 -0
  87. package/dist/src/agent/agent-approval.controller.js.map +1 -0
  88. package/dist/src/agent/agent-approval.entity.d.ts +15 -0
  89. package/dist/src/agent/agent-approval.entity.d.ts.map +1 -0
  90. package/dist/src/agent/agent-approval.entity.js +63 -0
  91. package/dist/src/agent/agent-approval.entity.js.map +1 -0
  92. package/dist/src/agent/agent-approval.service.d.ts +35 -0
  93. package/dist/src/agent/agent-approval.service.d.ts.map +1 -0
  94. package/dist/src/agent/agent-approval.service.js +109 -0
  95. package/dist/src/agent/agent-approval.service.js.map +1 -0
  96. package/dist/src/agent/agent-gateway.controller.d.ts +30 -0
  97. package/dist/src/agent/agent-gateway.controller.d.ts.map +1 -0
  98. package/dist/src/agent/agent-gateway.controller.js +112 -0
  99. package/dist/src/agent/agent-gateway.controller.js.map +1 -0
  100. package/dist/src/agent/agent-gateway.service.d.ts +33 -0
  101. package/dist/src/agent/agent-gateway.service.d.ts.map +1 -0
  102. package/dist/src/agent/agent-gateway.service.js +84 -0
  103. package/dist/src/agent/agent-gateway.service.js.map +1 -0
  104. package/dist/src/agent/agent-registry.service.d.ts +30 -0
  105. package/dist/src/agent/agent-registry.service.d.ts.map +1 -0
  106. package/dist/src/agent/agent-registry.service.js +45 -0
  107. package/dist/src/agent/agent-registry.service.js.map +1 -0
  108. package/dist/src/agent/agent-run-persistence.service.d.ts +82 -0
  109. package/dist/src/agent/agent-run-persistence.service.d.ts.map +1 -0
  110. package/dist/src/agent/agent-run-persistence.service.js +171 -0
  111. package/dist/src/agent/agent-run-persistence.service.js.map +1 -0
  112. package/dist/src/agent/agent-run-step.entity.d.ts +23 -0
  113. package/dist/src/agent/agent-run-step.entity.d.ts.map +1 -0
  114. package/dist/src/agent/agent-run-step.entity.js +76 -0
  115. package/dist/src/agent/agent-run-step.entity.js.map +1 -0
  116. package/dist/src/agent/agent-run.controller.d.ts +42 -0
  117. package/dist/src/agent/agent-run.controller.d.ts.map +1 -0
  118. package/dist/src/agent/agent-run.controller.js +195 -0
  119. package/dist/src/agent/agent-run.controller.js.map +1 -0
  120. package/dist/src/agent/agent-run.entity.d.ts +35 -0
  121. package/dist/src/agent/agent-run.entity.d.ts.map +1 -0
  122. package/dist/src/agent/agent-run.entity.js +98 -0
  123. package/dist/src/agent/agent-run.entity.js.map +1 -0
  124. package/dist/src/agent/agent-run.service.d.ts +48 -0
  125. package/dist/src/agent/agent-run.service.d.ts.map +1 -0
  126. package/dist/src/agent/agent-run.service.js +155 -0
  127. package/dist/src/agent/agent-run.service.js.map +1 -0
  128. package/dist/src/agent/agent-session.controller.d.ts +20 -0
  129. package/dist/src/agent/agent-session.controller.d.ts.map +1 -0
  130. package/dist/src/agent/agent-session.controller.js +97 -0
  131. package/dist/src/agent/agent-session.controller.js.map +1 -0
  132. package/dist/src/agent/agent-session.entity.d.ts +13 -0
  133. package/dist/src/agent/agent-session.entity.d.ts.map +1 -0
  134. package/dist/src/agent/agent-session.entity.js +57 -0
  135. package/dist/src/agent/agent-session.entity.js.map +1 -0
  136. package/dist/src/agent/agent-session.service.d.ts +38 -0
  137. package/dist/src/agent/agent-session.service.d.ts.map +1 -0
  138. package/dist/src/agent/agent-session.service.js +112 -0
  139. package/dist/src/agent/agent-session.service.js.map +1 -0
  140. package/dist/src/agent/coding-tools.d.ts +7 -0
  141. package/dist/src/agent/coding-tools.d.ts.map +1 -0
  142. package/dist/src/agent/coding-tools.js +181 -0
  143. package/dist/src/agent/coding-tools.js.map +1 -0
  144. package/dist/src/agent/computer-use-tools.d.ts +15 -0
  145. package/dist/src/agent/computer-use-tools.d.ts.map +1 -0
  146. package/dist/src/agent/computer-use-tools.js +256 -0
  147. package/dist/src/agent/computer-use-tools.js.map +1 -0
  148. package/dist/src/agent/external-agent.controller.d.ts +41 -0
  149. package/dist/src/agent/external-agent.controller.d.ts.map +1 -0
  150. package/dist/src/agent/external-agent.controller.js +129 -0
  151. package/dist/src/agent/external-agent.controller.js.map +1 -0
  152. package/dist/src/agent/external-agent.entity.d.ts +22 -0
  153. package/dist/src/agent/external-agent.entity.d.ts.map +1 -0
  154. package/dist/src/agent/external-agent.entity.js +75 -0
  155. package/dist/src/agent/external-agent.entity.js.map +1 -0
  156. package/dist/src/agent/external-agent.service.d.ts +60 -0
  157. package/dist/src/agent/external-agent.service.d.ts.map +1 -0
  158. package/dist/src/agent/external-agent.service.js +143 -0
  159. package/dist/src/agent/external-agent.service.js.map +1 -0
  160. package/dist/src/ai.module.d.ts +22 -0
  161. package/dist/src/ai.module.d.ts.map +1 -0
  162. package/dist/src/ai.module.js +178 -0
  163. package/dist/src/ai.module.js.map +1 -0
  164. package/dist/src/cli/adapters/antigravity.adapter.d.ts +31 -0
  165. package/dist/src/cli/adapters/antigravity.adapter.d.ts.map +1 -0
  166. package/dist/src/cli/adapters/antigravity.adapter.js +248 -0
  167. package/dist/src/cli/adapters/antigravity.adapter.js.map +1 -0
  168. package/dist/src/cli/adapters/claude-cli.adapter.d.ts +23 -0
  169. package/dist/src/cli/adapters/claude-cli.adapter.d.ts.map +1 -0
  170. package/dist/src/cli/adapters/claude-cli.adapter.js +81 -0
  171. package/dist/src/cli/adapters/claude-cli.adapter.js.map +1 -0
  172. package/dist/src/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
  173. package/dist/src/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
  174. package/dist/src/cli/adapters/cli-proxy-api.adapter.js +239 -0
  175. package/dist/src/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
  176. package/dist/src/cli/adapters/codex-cli.adapter.d.ts +22 -0
  177. package/dist/src/cli/adapters/codex-cli.adapter.d.ts.map +1 -0
  178. package/dist/src/cli/adapters/codex-cli.adapter.js +76 -0
  179. package/dist/src/cli/adapters/codex-cli.adapter.js.map +1 -0
  180. package/dist/src/cli/adapters/detect-cli.d.ts +11 -0
  181. package/dist/src/cli/adapters/detect-cli.d.ts.map +1 -0
  182. package/dist/src/cli/adapters/detect-cli.js +40 -0
  183. package/dist/src/cli/adapters/detect-cli.js.map +1 -0
  184. package/dist/src/cli/adapters/gemini-cli.adapter.d.ts +21 -0
  185. package/dist/src/cli/adapters/gemini-cli.adapter.d.ts.map +1 -0
  186. package/dist/src/cli/adapters/gemini-cli.adapter.js +72 -0
  187. package/dist/src/cli/adapters/gemini-cli.adapter.js.map +1 -0
  188. package/dist/src/cli/adapters/index.d.ts +4 -0
  189. package/dist/src/cli/adapters/index.d.ts.map +1 -0
  190. package/dist/src/cli/adapters/index.js +10 -0
  191. package/dist/src/cli/adapters/index.js.map +1 -0
  192. package/dist/src/cli/cli-executor.service.d.ts +25 -0
  193. package/dist/src/cli/cli-executor.service.d.ts.map +1 -0
  194. package/dist/src/cli/cli-executor.service.js +170 -0
  195. package/dist/src/cli/cli-executor.service.js.map +1 -0
  196. package/dist/src/cli/cli-registry.service.d.ts +38 -0
  197. package/dist/src/cli/cli-registry.service.d.ts.map +1 -0
  198. package/dist/src/cli/cli-registry.service.js +114 -0
  199. package/dist/src/cli/cli-registry.service.js.map +1 -0
  200. package/dist/src/cli/controllers/ai-cli.controller.d.ts +40 -0
  201. package/dist/src/cli/controllers/ai-cli.controller.d.ts.map +1 -0
  202. package/dist/src/cli/controllers/ai-cli.controller.js +208 -0
  203. package/dist/src/cli/controllers/ai-cli.controller.js.map +1 -0
  204. package/dist/src/cli/index.d.ts +8 -0
  205. package/dist/src/cli/index.d.ts.map +1 -0
  206. package/dist/src/cli/index.js +17 -0
  207. package/dist/src/cli/index.js.map +1 -0
  208. package/dist/src/cli/types.d.ts +153 -0
  209. package/dist/src/cli/types.d.ts.map +1 -0
  210. package/dist/src/cli/types.js +9 -0
  211. package/dist/src/cli/types.js.map +1 -0
  212. package/dist/src/cli/workspace.service.d.ts +42 -0
  213. package/dist/src/cli/workspace.service.d.ts.map +1 -0
  214. package/dist/src/cli/workspace.service.js +249 -0
  215. package/dist/src/cli/workspace.service.js.map +1 -0
  216. package/dist/src/computer-use/computer-use.controller.d.ts +23 -0
  217. package/dist/src/computer-use/computer-use.controller.d.ts.map +1 -0
  218. package/dist/src/computer-use/computer-use.controller.js +87 -0
  219. package/dist/src/computer-use/computer-use.controller.js.map +1 -0
  220. package/dist/src/index.d.ts +12 -0
  221. package/dist/src/index.d.ts.map +1 -0
  222. package/dist/src/index.js +51 -0
  223. package/dist/src/index.js.map +1 -0
  224. package/dist/src/orchestrator/orchestrator-plan.entity.d.ts +31 -0
  225. package/dist/src/orchestrator/orchestrator-plan.entity.d.ts.map +1 -0
  226. package/dist/src/orchestrator/orchestrator-plan.entity.js +69 -0
  227. package/dist/src/orchestrator/orchestrator-plan.entity.js.map +1 -0
  228. package/dist/src/orchestrator/orchestrator-plan.service.d.ts +27 -0
  229. package/dist/src/orchestrator/orchestrator-plan.service.d.ts.map +1 -0
  230. package/dist/src/orchestrator/orchestrator-plan.service.js +201 -0
  231. package/dist/src/orchestrator/orchestrator-plan.service.js.map +1 -0
  232. package/dist/src/orchestrator/orchestrator.controller.d.ts +29 -0
  233. package/dist/src/orchestrator/orchestrator.controller.d.ts.map +1 -0
  234. package/dist/src/orchestrator/orchestrator.controller.js +144 -0
  235. package/dist/src/orchestrator/orchestrator.controller.js.map +1 -0
  236. package/dist/src/orchestrator/workflow-feedback.entity.d.ts +12 -0
  237. package/dist/src/orchestrator/workflow-feedback.entity.d.ts.map +1 -0
  238. package/dist/src/orchestrator/workflow-feedback.entity.js +49 -0
  239. package/dist/src/orchestrator/workflow-feedback.entity.js.map +1 -0
  240. package/dist/src/orchestrator/workflow-feedback.service.d.ts +14 -0
  241. package/dist/src/orchestrator/workflow-feedback.service.d.ts.map +1 -0
  242. package/dist/src/orchestrator/workflow-feedback.service.js +51 -0
  243. package/dist/src/orchestrator/workflow-feedback.service.js.map +1 -0
  244. package/dist/src/session/claude-code-session-manager.service.d.ts +28 -0
  245. package/dist/src/session/claude-code-session-manager.service.d.ts.map +1 -0
  246. package/dist/src/session/claude-code-session-manager.service.js +177 -0
  247. package/dist/src/session/claude-code-session-manager.service.js.map +1 -0
  248. package/dist/src/skill/controllers/skill-market.controller.d.ts +18 -0
  249. package/dist/src/skill/controllers/skill-market.controller.d.ts.map +1 -0
  250. package/dist/src/skill/controllers/skill-market.controller.js +128 -0
  251. package/dist/src/skill/controllers/skill-market.controller.js.map +1 -0
  252. package/dist/src/skill/controllers/skill.controller.d.ts +37 -0
  253. package/dist/src/skill/controllers/skill.controller.d.ts.map +1 -0
  254. package/dist/src/skill/controllers/skill.controller.js +295 -0
  255. package/dist/src/skill/controllers/skill.controller.js.map +1 -0
  256. package/dist/src/skill/entities/octo-skill.entity.d.ts +22 -0
  257. package/dist/src/skill/entities/octo-skill.entity.d.ts.map +1 -0
  258. package/dist/src/skill/entities/octo-skill.entity.js +91 -0
  259. package/dist/src/skill/entities/octo-skill.entity.js.map +1 -0
  260. package/dist/src/skill/index.d.ts +9 -0
  261. package/dist/src/skill/index.d.ts.map +1 -0
  262. package/dist/src/skill/index.js +21 -0
  263. package/dist/src/skill/index.js.map +1 -0
  264. package/dist/src/skill/services/skill-generator.service.d.ts +47 -0
  265. package/dist/src/skill/services/skill-generator.service.d.ts.map +1 -0
  266. package/dist/src/skill/services/skill-generator.service.js +232 -0
  267. package/dist/src/skill/services/skill-generator.service.js.map +1 -0
  268. package/dist/src/skill/services/skill-installer.service.d.ts +65 -0
  269. package/dist/src/skill/services/skill-installer.service.d.ts.map +1 -0
  270. package/dist/src/skill/services/skill-installer.service.js +258 -0
  271. package/dist/src/skill/services/skill-installer.service.js.map +1 -0
  272. package/dist/src/skill/services/skill-market-helpers.d.ts +25 -0
  273. package/dist/src/skill/services/skill-market-helpers.d.ts.map +1 -0
  274. package/dist/src/skill/services/skill-market-helpers.js +22 -0
  275. package/dist/src/skill/services/skill-market-helpers.js.map +1 -0
  276. package/dist/src/skill/services/skill-market-utils.d.ts +25 -0
  277. package/dist/src/skill/services/skill-market-utils.d.ts.map +1 -0
  278. package/dist/src/skill/services/skill-market-utils.js +22 -0
  279. package/dist/src/skill/services/skill-market-utils.js.map +1 -0
  280. package/dist/src/skill/services/skill-market.service.d.ts +60 -0
  281. package/dist/src/skill/services/skill-market.service.d.ts.map +1 -0
  282. package/dist/src/skill/services/skill-market.service.js +228 -0
  283. package/dist/src/skill/services/skill-market.service.js.map +1 -0
  284. package/dist/src/skill/services/skill-registry.service.d.ts +61 -0
  285. package/dist/src/skill/services/skill-registry.service.d.ts.map +1 -0
  286. package/dist/src/skill/services/skill-registry.service.js +159 -0
  287. package/dist/src/skill/services/skill-registry.service.js.map +1 -0
  288. package/dist/src/skill/types.d.ts +76 -0
  289. package/dist/src/skill/types.d.ts.map +1 -0
  290. package/dist/src/skill/types.js +6 -0
  291. package/dist/src/skill/types.js.map +1 -0
  292. package/dist/src/workflow-design/DocumentExtractorAgent.d.ts +47 -0
  293. package/dist/src/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
  294. package/dist/src/workflow-design/DocumentExtractorAgent.js +118 -0
  295. package/dist/src/workflow-design/DocumentExtractorAgent.js.map +1 -0
  296. package/dist/src/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
  297. package/dist/src/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
  298. package/dist/src/workflow-design/N8nNodeKnowledgeBase.js +362 -0
  299. package/dist/src/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
  300. package/dist/src/workflow-design/OctoAgentClient.d.ts +42 -0
  301. package/dist/src/workflow-design/OctoAgentClient.d.ts.map +1 -0
  302. package/dist/src/workflow-design/OctoAgentClient.js +191 -0
  303. package/dist/src/workflow-design/OctoAgentClient.js.map +1 -0
  304. package/dist/src/workflow-design/WorkflowAssembler.d.ts +10 -0
  305. package/dist/src/workflow-design/WorkflowAssembler.d.ts.map +1 -0
  306. package/dist/src/workflow-design/WorkflowAssembler.js +81 -0
  307. package/dist/src/workflow-design/WorkflowAssembler.js.map +1 -0
  308. package/dist/src/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
  309. package/dist/src/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
  310. package/dist/src/workflow-design/WorkflowDesignOrchestrator.js +265 -0
  311. package/dist/src/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
  312. package/dist/src/workflow-design/agents/ActionChainAgent.d.ts +9 -0
  313. package/dist/src/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
  314. package/dist/src/workflow-design/agents/ActionChainAgent.js +79 -0
  315. package/dist/src/workflow-design/agents/ActionChainAgent.js.map +1 -0
  316. package/dist/src/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
  317. package/dist/src/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
  318. package/dist/src/workflow-design/agents/CodeScriptAgent.js +96 -0
  319. package/dist/src/workflow-design/agents/CodeScriptAgent.js.map +1 -0
  320. package/dist/src/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
  321. package/dist/src/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
  322. package/dist/src/workflow-design/agents/LogicFlowAgent.js +78 -0
  323. package/dist/src/workflow-design/agents/LogicFlowAgent.js.map +1 -0
  324. package/dist/src/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
  325. package/dist/src/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
  326. package/dist/src/workflow-design/agents/TriggerAnalystAgent.js +65 -0
  327. package/dist/src/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
  328. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
  329. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
  330. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
  331. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
  332. package/dist/src/workflow-design/index.d.ts +12 -0
  333. package/dist/src/workflow-design/index.d.ts.map +1 -0
  334. package/dist/src/workflow-design/index.js +23 -0
  335. package/dist/src/workflow-design/index.js.map +1 -0
  336. package/dist/src/workflow-design/n8n-node-templates-data.d.ts +4 -0
  337. package/dist/src/workflow-design/n8n-node-templates-data.d.ts.map +1 -0
  338. package/dist/src/workflow-design/n8n-node-templates-data.js +290 -0
  339. package/dist/src/workflow-design/n8n-node-templates-data.js.map +1 -0
  340. package/dist/src/workflow-design/types.d.ts +155 -0
  341. package/dist/src/workflow-design/types.d.ts.map +1 -0
  342. package/dist/src/workflow-design/types.js +6 -0
  343. package/dist/src/workflow-design/types.js.map +1 -0
  344. package/dist/workflow-design/DocumentExtractorAgent.d.ts +47 -0
  345. package/dist/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
  346. package/dist/workflow-design/DocumentExtractorAgent.js +118 -0
  347. package/dist/workflow-design/DocumentExtractorAgent.js.map +1 -0
  348. package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
  349. package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
  350. package/dist/workflow-design/N8nNodeKnowledgeBase.js +320 -0
  351. package/dist/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
  352. package/dist/workflow-design/OctoAgentClient.d.ts +42 -0
  353. package/dist/workflow-design/OctoAgentClient.d.ts.map +1 -0
  354. package/dist/workflow-design/OctoAgentClient.js +166 -0
  355. package/dist/workflow-design/OctoAgentClient.js.map +1 -0
  356. package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
  357. package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
  358. package/dist/workflow-design/WorkflowDesignOrchestrator.js +265 -0
  359. package/dist/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
  360. package/dist/workflow-design/agents/ActionChainAgent.d.ts +9 -0
  361. package/dist/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
  362. package/dist/workflow-design/agents/ActionChainAgent.js +79 -0
  363. package/dist/workflow-design/agents/ActionChainAgent.js.map +1 -0
  364. package/dist/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
  365. package/dist/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
  366. package/dist/workflow-design/agents/CodeScriptAgent.js +96 -0
  367. package/dist/workflow-design/agents/CodeScriptAgent.js.map +1 -0
  368. package/dist/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
  369. package/dist/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
  370. package/dist/workflow-design/agents/LogicFlowAgent.js +78 -0
  371. package/dist/workflow-design/agents/LogicFlowAgent.js.map +1 -0
  372. package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
  373. package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
  374. package/dist/workflow-design/agents/TriggerAnalystAgent.js +65 -0
  375. package/dist/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
  376. package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
  377. package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
  378. package/dist/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
  379. package/dist/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
  380. package/dist/workflow-design/index.d.ts +12 -0
  381. package/dist/workflow-design/index.d.ts.map +1 -0
  382. package/dist/workflow-design/index.js +23 -0
  383. package/dist/workflow-design/index.js.map +1 -0
  384. package/dist/workflow-design/types.d.ts +155 -0
  385. package/dist/workflow-design/types.d.ts.map +1 -0
  386. package/dist/workflow-design/types.js +6 -0
  387. package/dist/workflow-design/types.js.map +1 -0
  388. package/package.json +21 -14
  389. package/web/components/CreateWorkspaceDialog.tsx +157 -0
  390. package/web/components/DirBrowser.tsx +85 -0
  391. package/web/components/GithubTokenDialog.tsx +152 -0
  392. package/web/components/LocalPathSection.tsx +91 -0
  393. package/web/components/MarketInstallDialog.tsx +196 -0
  394. package/web/components/MarketSkillCard.tsx +74 -0
  395. package/web/components/RepoList.tsx +97 -0
  396. package/web/components/SearchResultsGrid.tsx +55 -0
  397. package/web/components/SkillCard.tsx +4 -1
  398. package/web/components/ToolCard.tsx +88 -0
  399. package/web/components/WorkspaceCard.tsx +146 -0
  400. package/web/components/WorkspaceItem.tsx +65 -0
  401. package/web/components/WorkspaceSelect.tsx +94 -0
  402. package/web/dist/module.iife.js +254 -0
  403. package/web/dynamic-entry.tsx +94 -0
  404. package/web/index.ts +18 -1
  405. package/web/manifest.ts +7 -0
  406. package/web/messages/en-US.json +231 -7
  407. package/web/messages/zh-CN.json +234 -7
  408. package/web/pages/AgentMarketPage.tsx +318 -0
  409. package/web/pages/AgentRunsPage.tsx +162 -0
  410. package/web/pages/AgentsPage.tsx +239 -0
  411. package/web/pages/AiCliToolsPage.tsx +17 -128
  412. package/web/pages/ApprovalsPage.tsx +260 -0
  413. package/web/pages/OrchestratorPage.tsx +384 -0
  414. package/web/pages/SessionsPage.tsx +248 -0
  415. package/web/pages/SkillMarketPage.tsx +25 -0
  416. package/web/pages/WorkspaceSection.tsx +13 -113
  417. package/web/pages/WorkspacesPage.tsx +29 -254
  418. package/web/services/agent-approval.service.ts +35 -0
  419. package/web/services/agent-gateway.service.ts +41 -0
  420. package/web/services/agent-run.service.ts +48 -0
  421. package/web/services/agent-session.service.ts +30 -0
  422. package/web/services/ai-cli-service.ts +33 -0
  423. package/web/services/external-agent.service.ts +38 -0
  424. package/web/services/orchestrator.service.ts +52 -0
  425. package/web/services/skill-market-service.ts +88 -0
  426. package/web/services/skill-service.ts +12 -0
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowDesignOrchestrator = void 0;
4
+ const ActionChainAgent_js_1 = require("./agents/ActionChainAgent.js");
5
+ const CodeScriptAgent_js_1 = require("./agents/CodeScriptAgent.js");
6
+ const LogicFlowAgent_js_1 = require("./agents/LogicFlowAgent.js");
7
+ const TriggerAnalystAgent_js_1 = require("./agents/TriggerAnalystAgent.js");
8
+ const WorkflowValidatorAgent_js_1 = require("./agents/WorkflowValidatorAgent.js");
9
+ // ============================================================
10
+ // WorkflowDesignOrchestrator
11
+ // Main entry point. Maintains WorkflowDraft state and coordinates
12
+ // sub-agents through the 5-phase pipeline.
13
+ // ============================================================
14
+ class WorkflowDesignOrchestrator {
15
+ client;
16
+ draft;
17
+ triggerAgent;
18
+ actionAgent;
19
+ logicAgent;
20
+ codeAgent;
21
+ validatorAgent;
22
+ constructor(client) {
23
+ this.client = client;
24
+ this.triggerAgent = new TriggerAnalystAgent_js_1.TriggerAnalystAgent(client);
25
+ this.actionAgent = new ActionChainAgent_js_1.ActionChainAgent(client);
26
+ this.logicAgent = new LogicFlowAgent_js_1.LogicFlowAgent(client);
27
+ this.codeAgent = new CodeScriptAgent_js_1.CodeScriptAgent(client);
28
+ this.validatorAgent = new WorkflowValidatorAgent_js_1.WorkflowValidatorAgent(client);
29
+ this.draft = { intent: '', conversationHistory: [] };
30
+ }
31
+ // ============================================================
32
+ // Public API
33
+ // ============================================================
34
+ /**
35
+ * First call: design a brand-new workflow from user intent.
36
+ */
37
+ async design(userMessage) {
38
+ this.draft.intent = userMessage;
39
+ this.draft.conversationHistory = [{ role: 'user', content: userMessage }];
40
+ await this.runFullPipeline();
41
+ if (!this.draft.finalWorkflow) {
42
+ throw new Error('WorkflowDesignOrchestrator: pipeline completed but finalWorkflow is not set');
43
+ }
44
+ return this.draft.finalWorkflow;
45
+ }
46
+ /**
47
+ * Subsequent calls: modify the existing workflow based on user follow-up.
48
+ * Only re-runs the sub-agents relevant to the detected modification scope.
49
+ */
50
+ async modify(userMessage) {
51
+ this.draft.conversationHistory.push({ role: 'user', content: userMessage });
52
+ const modification = this.detectModificationScope(userMessage);
53
+ switch (modification.scope) {
54
+ case 'trigger':
55
+ await this.runPhase1();
56
+ break;
57
+ case 'actions':
58
+ await this.runPhase2Actions();
59
+ break;
60
+ case 'logic':
61
+ await this.runPhase2Logic();
62
+ break;
63
+ case 'code':
64
+ await this.runPhase3();
65
+ break;
66
+ case 'all':
67
+ await this.runFullPipeline();
68
+ return this.draft.finalWorkflow;
69
+ }
70
+ // Re-assemble and re-validate after partial update
71
+ await this.runPhase4And5();
72
+ if (!this.draft.finalWorkflow) {
73
+ throw new Error('WorkflowDesignOrchestrator: modification pipeline completed but finalWorkflow is not set');
74
+ }
75
+ return this.draft.finalWorkflow;
76
+ }
77
+ /** Access the current draft (for debugging / partial progress). */
78
+ getDraft() {
79
+ return this.draft;
80
+ }
81
+ /** Reset state for a new conversation. */
82
+ reset() {
83
+ this.draft = { intent: '', conversationHistory: [] };
84
+ }
85
+ // ============================================================
86
+ // Pipeline phases
87
+ // ============================================================
88
+ async runFullPipeline() {
89
+ await this.runPhase1();
90
+ await this.runPhase2();
91
+ await this.runPhase3();
92
+ await this.runPhase4And5();
93
+ }
94
+ /** Phase 1: TriggerAnalystAgent (serial) */
95
+ async runPhase1() {
96
+ const result = await this.triggerAgent.analyse(this.draft.intent, this.draft.conversationHistory);
97
+ this.draft.triggerSpec = result.spec;
98
+ }
99
+ /** Phase 2: ActionChainAgent + LogicFlowAgent (parallel) */
100
+ async runPhase2() {
101
+ await Promise.all([
102
+ this.runPhase2Actions(),
103
+ this.runPhase2Logic(),
104
+ ]);
105
+ }
106
+ async runPhase2Actions() {
107
+ if (!this.draft.triggerSpec) {
108
+ await this.runPhase1();
109
+ }
110
+ const result = await this.actionAgent.design(this.draft.intent, this.draft.triggerSpec, this.draft.conversationHistory);
111
+ this.draft.actionSpecs = result.specs;
112
+ }
113
+ async runPhase2Logic() {
114
+ // LogicFlowAgent can run with an empty action list — it will return []
115
+ const actionSpecs = this.draft.actionSpecs ?? [];
116
+ const result = await this.logicAgent.design(this.draft.intent, actionSpecs, this.draft.conversationHistory);
117
+ this.draft.logicSpecs = result.specs;
118
+ }
119
+ /** Phase 3: CodeScriptAgent (conditional) */
120
+ async runPhase3() {
121
+ const actionSpecs = this.draft.actionSpecs ?? [];
122
+ const logicSpecs = this.draft.logicSpecs ?? [];
123
+ const hasCodeNodes = actionSpecs.some((s) => s.needsCodeGen);
124
+ if (!hasCodeNodes) {
125
+ this.draft.codeSpecs = {};
126
+ return;
127
+ }
128
+ const result = await this.codeAgent.generate(actionSpecs, logicSpecs, this.draft.conversationHistory);
129
+ this.draft.codeSpecs = result.codes;
130
+ }
131
+ /** Phase 4: Assemble + Phase 5: Validate */
132
+ async runPhase4And5() {
133
+ const workflow = this.assembleWorkflow();
134
+ this.draft.finalWorkflow = workflow;
135
+ const validation = await this.runPhase5(workflow);
136
+ this.draft.validationErrors = validation.errors;
137
+ if (!validation.valid) {
138
+ await this.repairFromValidationErrors(validation);
139
+ }
140
+ }
141
+ /** Phase 5: WorkflowValidatorAgent */
142
+ async runPhase5(workflow) {
143
+ return this.validatorAgent.validate(workflow, this.draft.conversationHistory);
144
+ }
145
+ // ============================================================
146
+ // Workflow assembly (Phase 4)
147
+ // ============================================================
148
+ assembleWorkflow() {
149
+ const nodes = [];
150
+ const connections = {};
151
+ const triggerSpec = this.draft.triggerSpec;
152
+ if (!triggerSpec) {
153
+ throw new Error('Cannot assemble workflow: triggerSpec is missing');
154
+ }
155
+ // 1. Trigger node
156
+ const triggerId = 'trigger_0';
157
+ nodes.push(this.specToNode(triggerSpec, triggerId));
158
+ // 2. Build ordered list: merge actionSpecs and logicSpecs by insertAfterIndex
159
+ const actionSpecs = this.draft.actionSpecs ?? [];
160
+ const logicSpecs = this.draft.logicSpecs ?? [];
161
+ const ordered = this.mergeActionAndLogic(actionSpecs, logicSpecs);
162
+ // 3. Build nodes + connections in order
163
+ let prevNodeName = triggerSpec.name;
164
+ ordered.forEach((item, idx) => {
165
+ const nodeId = `node_${idx}`;
166
+ const node = this.specToNode(item, nodeId);
167
+ // Inject generated code if applicable
168
+ if ('needsCodeGen' in item && item.needsCodeGen && this.draft.codeSpecs) {
169
+ const codeKey = `action_${actionSpecs.indexOf(item)}`;
170
+ const code = this.draft.codeSpecs[codeKey];
171
+ if (code) {
172
+ node.parameters = { ...node.parameters, jsCode: code };
173
+ }
174
+ }
175
+ nodes.push(node);
176
+ // Connect previous → current
177
+ if (!connections[prevNodeName]) {
178
+ connections[prevNodeName] = { main: [[]] };
179
+ }
180
+ connections[prevNodeName].main[0].push({
181
+ node: node.name,
182
+ type: 'main',
183
+ index: 0,
184
+ });
185
+ prevNodeName = node.name;
186
+ });
187
+ return {
188
+ name: this.generateWorkflowName(),
189
+ nodes,
190
+ connections,
191
+ active: false,
192
+ settings: { executionOrder: 'v1' },
193
+ };
194
+ }
195
+ mergeActionAndLogic(actionSpecs, logicSpecs) {
196
+ const result = [...actionSpecs];
197
+ // Insert logic nodes at their specified positions (descending order to preserve indices)
198
+ const sorted = [...logicSpecs].sort((a, b) => b.insertAfterIndex - a.insertAfterIndex);
199
+ for (const logic of sorted) {
200
+ const insertAt = logic.insertAfterIndex + 1;
201
+ result.splice(insertAt, 0, logic);
202
+ }
203
+ return result;
204
+ }
205
+ specToNode(spec, id) {
206
+ return {
207
+ id,
208
+ name: spec.name,
209
+ type: spec.type,
210
+ typeVersion: 1,
211
+ position: [spec.position.x, spec.position.y],
212
+ parameters: spec.parameters,
213
+ };
214
+ }
215
+ generateWorkflowName() {
216
+ const words = this.draft.intent.split(/\s+/).slice(0, 5).join(' ');
217
+ return `Workflow: ${words}`;
218
+ }
219
+ // ============================================================
220
+ // Repair loop after validation errors
221
+ // ============================================================
222
+ async repairFromValidationErrors(validation) {
223
+ const MAX_REPAIR_ROUNDS = 2;
224
+ for (let round = 0; round < MAX_REPAIR_ROUNDS; round++) {
225
+ const errorSummary = validation.errors.join('; ');
226
+ // Classify which agents to re-run based on error messages
227
+ const needsTriggerRepair = /trigger/i.test(errorSummary);
228
+ const needsActionRepair = /node.*does not exist|missing.*name|duplicate/i.test(errorSummary);
229
+ if (needsTriggerRepair)
230
+ await this.runPhase1();
231
+ if (needsActionRepair) {
232
+ await this.runPhase2Actions();
233
+ await this.runPhase2Logic();
234
+ }
235
+ const repairedWorkflow = this.assembleWorkflow();
236
+ const reValidation = await this.runPhase5(repairedWorkflow);
237
+ this.draft.finalWorkflow = repairedWorkflow;
238
+ this.draft.validationErrors = reValidation.errors;
239
+ if (reValidation.valid)
240
+ break;
241
+ }
242
+ }
243
+ // ============================================================
244
+ // Modification intent detection
245
+ // ============================================================
246
+ detectModificationScope(userMessage) {
247
+ const lower = userMessage.toLowerCase();
248
+ if (/trigger|schedule|cron|webhook|每.*分钟|定时|触发/.test(lower)) {
249
+ return { scope: 'trigger', description: userMessage };
250
+ }
251
+ if (/代码|code|script|function|函数/.test(lower)) {
252
+ return { scope: 'code', description: userMessage };
253
+ }
254
+ if (/if|条件|判断|分支|error|错误|merge|合并|switch/.test(lower)) {
255
+ return { scope: 'logic', description: userMessage };
256
+ }
257
+ if (/add|remove|delete|step|节点|加一步|删掉|新增|修改步骤/.test(lower)) {
258
+ return { scope: 'actions', description: userMessage };
259
+ }
260
+ // Default: full re-design
261
+ return { scope: 'all', description: userMessage };
262
+ }
263
+ }
264
+ exports.WorkflowDesignOrchestrator = WorkflowDesignOrchestrator;
265
+ //# sourceMappingURL=WorkflowDesignOrchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowDesignOrchestrator.js","sourceRoot":"","sources":["../../src/workflow-design/WorkflowDesignOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { OctoAgentClient } from '../OctoAgentClient.js';
2
+ import type { ActionChainResult, Message, TriggerNodeSpec } from '../types.js';
3
+ export declare class ActionChainAgent {
4
+ private readonly client;
5
+ constructor(client: OctoAgentClient);
6
+ design(intent: string, triggerSpec: TriggerNodeSpec, history: Message[]): Promise<ActionChainResult>;
7
+ private validateAndNormalise;
8
+ }
9
+ //# sourceMappingURL=ActionChainAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionChainAgent.d.ts","sourceRoot":"","sources":["../../../src/workflow-design/agents/ActionChainAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,EACP,eAAe,EAChB,MAAM,aAAa,CAAC;AAqCrB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE9C,MAAM,CACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAuB7B,OAAO,CAAC,oBAAoB;CAiB7B"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionChainAgent = void 0;
4
+ const OctoAgentClient_js_1 = require("../OctoAgentClient.js");
5
+ const N8nNodeKnowledgeBase_js_1 = require("../N8nNodeKnowledgeBase.js");
6
+ // ============================================================
7
+ // ActionChainAgent
8
+ // Designs the main execution chain of action nodes for a workflow.
9
+ // Runs in parallel with LogicFlowAgent (Phase 2).
10
+ // ============================================================
11
+ const SYSTEM_PROMPT_BASE = `You are an n8n workflow action chain designer.
12
+ Your job is to design the sequence of action nodes that fulfil the user's workflow requirement.
13
+ You will be told what trigger node was chosen; your nodes come AFTER the trigger.
14
+
15
+ Rules:
16
+ - Respond with ONLY a JSON object inside a markdown json fence.
17
+ - The JSON must match this shape exactly:
18
+ {
19
+ "specs": [
20
+ {
21
+ "type": "<n8n node type>",
22
+ "name": "<display name>",
23
+ "parameters": { <params> },
24
+ "position": { "x": <number>, "y": 300 },
25
+ "dependsOn": "<name of upstream node or null>",
26
+ "needsCodeGen": <true|false>,
27
+ "codeDescription": "<optional description when needsCodeGen=true>"
28
+ }
29
+ ],
30
+ "reasoning": "<brief explanation>"
31
+ }
32
+ - Start the first node's x at 460, increment by 220 for each subsequent node.
33
+ - Set "dependsOn" to the name of the preceding node (trigger or action).
34
+ First action node's dependsOn = the trigger node name.
35
+ - Mark "needsCodeGen": true for any Function/Code node, and provide "codeDescription".
36
+ - Use realistic, minimal parameters; leave credentials as empty strings.
37
+ - Include at most 8 action nodes.
38
+ `;
39
+ class ActionChainAgent {
40
+ client;
41
+ constructor(client) {
42
+ this.client = client;
43
+ }
44
+ async design(intent, triggerSpec, history) {
45
+ const categories = N8nNodeKnowledgeBase_js_1.N8nNodeKnowledgeBase.inferCategories(intent);
46
+ const actionCategories = categories.filter((c) => c !== 'trigger');
47
+ const system = [
48
+ { type: 'text', text: SYSTEM_PROMPT_BASE },
49
+ N8nNodeKnowledgeBase_js_1.N8nNodeKnowledgeBase.buildCachedBlock(actionCategories),
50
+ ];
51
+ const contextBlock = `Trigger node chosen: "${triggerSpec.name}" (type: ${triggerSpec.type})
52
+
53
+ Workflow requirement: ${intent}`;
54
+ const messages = [
55
+ ...history,
56
+ { role: 'user', content: contextBlock },
57
+ ];
58
+ const reply = await this.client.singleCall(messages, system);
59
+ const result = OctoAgentClient_js_1.OctoAgentClient.parseJsonFromReply(reply);
60
+ return this.validateAndNormalise(result);
61
+ }
62
+ validateAndNormalise(result) {
63
+ if (!Array.isArray(result.specs)) {
64
+ throw new Error('ActionChainAgent: specs must be an array');
65
+ }
66
+ const specs = result.specs.map((s, idx) => ({
67
+ type: s.type || 'n8n-nodes-base.set',
68
+ name: s.name || `Step ${idx + 1}`,
69
+ parameters: s.parameters ?? {},
70
+ position: s.position ?? { x: 460 + idx * 220, y: 300 },
71
+ dependsOn: s.dependsOn ?? undefined,
72
+ needsCodeGen: s.needsCodeGen ?? false,
73
+ codeDescription: s.codeDescription ?? undefined,
74
+ }));
75
+ return { specs, reasoning: result.reasoning ?? '' };
76
+ }
77
+ }
78
+ exports.ActionChainAgent = ActionChainAgent;
79
+ //# sourceMappingURL=ActionChainAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionChainAgent.js","sourceRoot":"","sources":["../../../src/workflow-design/agents/ActionChainAgent.ts"],"names":[],"mappings":";;;AAAA,8DAAwD;AACxD,wEAAkE;AAQlE,+DAA+D;AAC/D,mBAAmB;AACnB,mEAAmE;AACnE,kDAAkD;AAClD,+DAA+D;AAE/D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1B,CAAC;AAEF,MAAa,gBAAgB;IACE;IAA7B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAExD,KAAK,CAAC,MAAM,CACV,MAAc,EACd,WAA4B,EAC5B,OAAkB;QAElB,MAAM,UAAU,GAAG,8CAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG;YACb,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACnD,8CAAoB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;SACxD,CAAC;QAEF,MAAM,YAAY,GAAG,yBAAyB,WAAW,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI;;wBAEtE,MAAM,EAAE,CAAC;QAE7B,MAAM,QAAQ,GAAc;YAC1B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;SACxC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,oCAAe,CAAC,kBAAkB,CAAoB,KAAK,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,oBAAoB,CAAC,MAAyB;QACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAqB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,oBAAoB;YACpC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,QAAQ,GAAG,GAAG,CAAC,EAAE;YACjC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;YAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YACtD,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS;YACnC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,KAAK;YACrC,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;SAChD,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;IACtD,CAAC;CACF;AA/CD,4CA+CC"}
@@ -0,0 +1,15 @@
1
+ import { OctoAgentClient } from '../OctoAgentClient.js';
2
+ import type { ActionNodeSpec, CodeScriptResult, LogicNodeSpec, Message } from '../types.js';
3
+ export declare class CodeScriptAgent {
4
+ private readonly client;
5
+ constructor(client: OctoAgentClient);
6
+ /**
7
+ * Generate code for all nodes marked needsCodeGen.
8
+ * @param actionSpecs Full action spec list (to find code nodes).
9
+ * @param logicSpecs Logic spec list (in case logic nodes also need code).
10
+ * @param history Conversation history for context.
11
+ */
12
+ generate(actionSpecs: ActionNodeSpec[], logicSpecs: LogicNodeSpec[], history: Message[]): Promise<CodeScriptResult>;
13
+ private collectCodeRequests;
14
+ }
15
+ //# sourceMappingURL=CodeScriptAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeScriptAgent.d.ts","sourceRoot":"","sources":["../../../src/workflow-design/agents/CodeScriptAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA0C5F,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;;;;OAKG;IACG,QAAQ,CACZ,WAAW,EAAE,cAAc,EAAE,EAC7B,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,gBAAgB,CAAC;IA6B5B,OAAO,CAAC,mBAAmB;CAgC5B"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeScriptAgent = void 0;
4
+ const OctoAgentClient_js_1 = require("../OctoAgentClient.js");
5
+ // ============================================================
6
+ // CodeScriptAgent
7
+ // Generates JavaScript code snippets for Function/Code nodes.
8
+ // Only invoked when at least one node has needsCodeGen = true (Phase 3).
9
+ // ============================================================
10
+ const SYSTEM_PROMPT = `You are an n8n JavaScript code generator for Code nodes.
11
+ Your job is to write the body of n8n Code nodes based on a description of what the code should do.
12
+
13
+ SECURITY CONSTRAINTS (mandatory — never violate):
14
+ - Do NOT access external networks (no fetch, no require('http'), no require('https')) unless the user explicitly states the code must call an external API.
15
+ - Do NOT read or write local files (no fs module, no require('fs')).
16
+ - Do NOT execute child processes (no child_process, no exec, no spawn).
17
+ - Do NOT access environment variables beyond what n8n already injects.
18
+
19
+ n8n Code node context:
20
+ - Input items are available as: const items = $input.all(); or $input.first()
21
+ - Each item has: item.json, item.binary
22
+ - Return value must be an array of items: return items; or return [{ json: {...} }]
23
+ - Built-in helpers available: $now, $today, DateTime, $jmespath, $workflow, $execution, $node
24
+
25
+ Rules:
26
+ - Respond with ONLY a JSON object inside a markdown json fence.
27
+ - The JSON must match this shape:
28
+ {
29
+ "codes": {
30
+ "<nodeId>": "<complete JS code string for that node>"
31
+ }
32
+ }
33
+ - Each code value is the full jsCode string (not a function wrapper — just the statements).
34
+ - Add a brief comment at the top of each snippet explaining what it does.
35
+ - Keep each snippet under 40 lines.
36
+ `;
37
+ class CodeScriptAgent {
38
+ client;
39
+ constructor(client) {
40
+ this.client = client;
41
+ }
42
+ /**
43
+ * Generate code for all nodes marked needsCodeGen.
44
+ * @param actionSpecs Full action spec list (to find code nodes).
45
+ * @param logicSpecs Logic spec list (in case logic nodes also need code).
46
+ * @param history Conversation history for context.
47
+ */
48
+ async generate(actionSpecs, logicSpecs, history) {
49
+ const requests = this.collectCodeRequests(actionSpecs, logicSpecs);
50
+ if (requests.length === 0) {
51
+ return { codes: {} };
52
+ }
53
+ const requestList = requests
54
+ .map((r) => `- Node "${r.nodeName}" (id: ${r.nodeId}): ${r.description}`)
55
+ .join('\n');
56
+ const prompt = `Generate JavaScript code for the following n8n Code nodes:\n\n${requestList}`;
57
+ const messages = [
58
+ ...history,
59
+ { role: 'user', content: prompt },
60
+ ];
61
+ // Cache the code-gen system prompt — same instructions for all code generation calls
62
+ const reply = await this.client.singleCall(messages, [{ type: 'text', text: SYSTEM_PROMPT, cache_control: { type: 'ephemeral' } }]);
63
+ const result = OctoAgentClient_js_1.OctoAgentClient.parseJsonFromReply(reply);
64
+ if (!result.codes || typeof result.codes !== 'object') {
65
+ throw new Error('CodeScriptAgent: missing codes object in response');
66
+ }
67
+ return result;
68
+ }
69
+ collectCodeRequests(actionSpecs, logicSpecs) {
70
+ const requests = [];
71
+ actionSpecs.forEach((spec, idx) => {
72
+ if (spec.needsCodeGen) {
73
+ requests.push({
74
+ nodeId: `action_${idx}`,
75
+ nodeName: spec.name,
76
+ description: spec.codeDescription ?? `Execute custom logic for "${spec.name}"`,
77
+ });
78
+ }
79
+ });
80
+ // Logic nodes don't typically need code gen, but support it for completeness
81
+ logicSpecs.forEach((spec, idx) => {
82
+ const isCodeNode = spec.type === 'n8n-nodes-base.code' ||
83
+ spec.type === 'n8n-nodes-base.function';
84
+ if (isCodeNode) {
85
+ requests.push({
86
+ nodeId: `logic_${idx}`,
87
+ nodeName: spec.name,
88
+ description: spec.condition ?? `Execute logic for "${spec.name}"`,
89
+ });
90
+ }
91
+ });
92
+ return requests;
93
+ }
94
+ }
95
+ exports.CodeScriptAgent = CodeScriptAgent;
96
+ //# sourceMappingURL=CodeScriptAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeScriptAgent.js","sourceRoot":"","sources":["../../../src/workflow-design/agents/CodeScriptAgent.ts"],"names":[],"mappings":";;;AAAA,8DAAwD;AAGxD,+DAA+D;AAC/D,kBAAkB;AAClB,8DAA8D;AAC9D,yEAAyE;AACzE,+DAA+D;AAE/D,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BrB,CAAC;AAQF,MAAa,eAAe;IACG;IAA7B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAExD;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,WAA6B,EAC7B,UAA2B,EAC3B,OAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;aACxE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,iEAAiE,WAAW,EAAE,CAAC;QAE9F,MAAM,QAAQ,GAAc;YAC1B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAClC,CAAC;QAEF,qFAAqF;QACrF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACpI,MAAM,MAAM,GAAG,oCAAe,CAAC,kBAAkB,CAAmB,KAAK,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB,CACzB,WAA6B,EAC7B,UAA2B;QAE3B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,UAAU,GAAG,EAAE;oBACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,WAAW,EAAE,IAAI,CAAC,eAAe,IAAI,6BAA6B,IAAI,CAAC,IAAI,GAAG;iBAC/E,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC/B,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,qBAAqB;gBACnC,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,SAAS,GAAG,EAAE;oBACtB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,IAAI,GAAG;iBAClE,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA1ED,0CA0EC"}
@@ -0,0 +1,9 @@
1
+ import { OctoAgentClient } from '../OctoAgentClient.js';
2
+ import type { ActionNodeSpec, LogicFlowResult, Message } from '../types.js';
3
+ export declare class LogicFlowAgent {
4
+ private readonly client;
5
+ constructor(client: OctoAgentClient);
6
+ design(intent: string, actionSpecs: ActionNodeSpec[], history: Message[]): Promise<LogicFlowResult>;
7
+ private validateAndNormalise;
8
+ }
9
+ //# sourceMappingURL=LogicFlowAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogicFlowAgent.d.ts","sourceRoot":"","sources":["../../../src/workflow-design/agents/LogicFlowAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAEf,OAAO,EACR,MAAM,aAAa,CAAC;AAiCrB,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE9C,MAAM,CACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,eAAe,CAAC;IA4B3B,OAAO,CAAC,oBAAoB;CAgB7B"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicFlowAgent = void 0;
4
+ const OctoAgentClient_js_1 = require("../OctoAgentClient.js");
5
+ const N8nNodeKnowledgeBase_js_1 = require("../N8nNodeKnowledgeBase.js");
6
+ // ============================================================
7
+ // LogicFlowAgent
8
+ // Adds conditional branches, merge nodes, and error handling.
9
+ // Runs in parallel with ActionChainAgent (Phase 2).
10
+ // ============================================================
11
+ const SYSTEM_PROMPT_BASE = `You are an n8n workflow logic flow designer.
12
+ Your job is to identify where conditional branching (IF/Switch), merging (Merge), or error handling (Error Trigger) is needed in a workflow, and specify those nodes.
13
+
14
+ Rules:
15
+ - Respond with ONLY a JSON object inside a markdown json fence.
16
+ - The JSON must match this shape exactly:
17
+ {
18
+ "specs": [
19
+ {
20
+ "type": "<n8n node type>",
21
+ "name": "<display name>",
22
+ "parameters": { <params> },
23
+ "position": { "x": <number>, "y": 300 },
24
+ "insertAfterIndex": <integer index into the action specs array>,
25
+ "condition": "<optional condition expression for IF/Switch>"
26
+ }
27
+ ],
28
+ "reasoning": "<brief explanation>"
29
+ }
30
+ - If no logic nodes are needed, return { "specs": [], "reasoning": "No conditional logic required." }
31
+ - "insertAfterIndex" is 0-based; -1 means before the first action node.
32
+ - Use y: 120 for true-branch paths (if you want to indicate branching visually).
33
+ - Provide realistic condition expressions using n8n expression syntax: e.g. {{ $json.status === 'error' }}
34
+ `;
35
+ class LogicFlowAgent {
36
+ client;
37
+ constructor(client) {
38
+ this.client = client;
39
+ }
40
+ async design(intent, actionSpecs, history) {
41
+ const system = [
42
+ { type: 'text', text: SYSTEM_PROMPT_BASE },
43
+ N8nNodeKnowledgeBase_js_1.N8nNodeKnowledgeBase.buildCachedBlock(['control']),
44
+ ];
45
+ const actionSummary = actionSpecs
46
+ .map((s, i) => `[${i}] ${s.name} (${s.type})`)
47
+ .join('\n');
48
+ const contextBlock = `Workflow requirement: ${intent}
49
+
50
+ Current action nodes (in order):
51
+ ${actionSummary}
52
+
53
+ Identify any conditional logic, branches, or error handling that should be added.`;
54
+ const messages = [
55
+ ...history,
56
+ { role: 'user', content: contextBlock },
57
+ ];
58
+ const reply = await this.client.singleCall(messages, system);
59
+ const result = OctoAgentClient_js_1.OctoAgentClient.parseJsonFromReply(reply);
60
+ return this.validateAndNormalise(result);
61
+ }
62
+ validateAndNormalise(result) {
63
+ if (!Array.isArray(result.specs)) {
64
+ throw new Error('LogicFlowAgent: specs must be an array');
65
+ }
66
+ const specs = result.specs.map((s, idx) => ({
67
+ type: s.type || 'n8n-nodes-base.if',
68
+ name: s.name || `Logic ${idx + 1}`,
69
+ parameters: s.parameters ?? {},
70
+ position: s.position ?? { x: 460, y: 120 },
71
+ insertAfterIndex: typeof s.insertAfterIndex === 'number' ? s.insertAfterIndex : -1,
72
+ condition: s.condition ?? undefined,
73
+ }));
74
+ return { specs, reasoning: result.reasoning ?? '' };
75
+ }
76
+ }
77
+ exports.LogicFlowAgent = LogicFlowAgent;
78
+ //# sourceMappingURL=LogicFlowAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogicFlowAgent.js","sourceRoot":"","sources":["../../../src/workflow-design/agents/LogicFlowAgent.ts"],"names":[],"mappings":";;;AAAA,8DAAwD;AACxD,wEAAkE;AAQlE,+DAA+D;AAC/D,iBAAiB;AACjB,8DAA8D;AAC9D,oDAAoD;AACpD,+DAA+D;AAE/D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAC;AAEF,MAAa,cAAc;IACI;IAA7B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAExD,KAAK,CAAC,MAAM,CACV,MAAc,EACd,WAA6B,EAC7B,OAAkB;QAElB,MAAM,MAAM,GAAG;YACb,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACnD,8CAAoB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC;SACnD,CAAC;QAEF,MAAM,aAAa,GAAG,WAAW;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;aAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,YAAY,GAAG,yBAAyB,MAAM;;;EAGtD,aAAa;;kFAEmE,CAAC;QAE/E,MAAM,QAAQ,GAAc;YAC1B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;SACxC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,oCAAe,CAAC,kBAAkB,CAAkB,KAAK,CAAC,CAAC;QAE1E,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,oBAAoB,CAAC,MAAuB;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,KAAK,GAAoB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,mBAAmB;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,EAAE;YAClC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;YAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YAC1C,gBAAgB,EAAE,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS;SACpC,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;IACtD,CAAC;CACF;AAnDD,wCAmDC"}
@@ -0,0 +1,9 @@
1
+ import { OctoAgentClient } from '../OctoAgentClient.js';
2
+ import type { Message, TriggerAnalysisResult } from '../types.js';
3
+ export declare class TriggerAnalystAgent {
4
+ private readonly client;
5
+ constructor(client: OctoAgentClient);
6
+ analyse(intent: string, history: Message[]): Promise<TriggerAnalysisResult>;
7
+ private validateAndNormalise;
8
+ }
9
+ //# sourceMappingURL=TriggerAnalystAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerAnalystAgent.d.ts","sourceRoot":"","sources":["../../../src/workflow-design/agents/TriggerAnalystAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAmB,MAAM,aAAa,CAAC;AA4BnF,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE9C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoBjF,OAAO,CAAC,oBAAoB;CAc7B"}