@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,153 @@
1
+ /**
2
+ * AI CLI integration type definitions.
3
+ *
4
+ * Defines interfaces for CLI tool adapters, execution options/results,
5
+ * and workspace management.
6
+ */
7
+ /** Supported CLI tool identifiers */
8
+ export type CliToolName = 'claude' | 'gemini' | 'codex' | 'antigravity' | 'cli-proxy-api';
9
+ /** High-level tool category: spawns a local process vs calls an HTTP API */
10
+ export type ToolType = 'cli' | 'api';
11
+ /** How the adapter executes: spawn a child process or call an HTTP API */
12
+ export type AdapterExecutionType = 'spawn' | 'http';
13
+ /** Information about an installed CLI tool */
14
+ export interface CliToolInfo {
15
+ name: CliToolName;
16
+ displayName: string;
17
+ version: string;
18
+ executablePath: string;
19
+ isAvailable: boolean;
20
+ /** cli = spawns a local process; api = calls an HTTP API. Set by CliRegistryService. */
21
+ toolType?: ToolType;
22
+ /** Available models for this tool */
23
+ models?: string[];
24
+ /** Default model identifier */
25
+ defaultModel?: string;
26
+ }
27
+ /** File passed as input to a CLI execution */
28
+ export interface FileInput {
29
+ /** Relative path within the workspace */
30
+ path: string;
31
+ /** File content (text) or absolute path to existing file */
32
+ content?: string;
33
+ sourcePath?: string;
34
+ }
35
+ /** File produced by a CLI execution */
36
+ export interface FileOutput {
37
+ /** Relative path within the workspace */
38
+ path: string;
39
+ /** Size in bytes */
40
+ size: number;
41
+ }
42
+ /** Options for executing an AI CLI tool */
43
+ export interface CliExecuteOptions {
44
+ /** Which CLI tool to use */
45
+ tool: CliToolName;
46
+ /** The prompt to send to the CLI */
47
+ prompt: string;
48
+ /** System prompt (used by HTTP/API adapters that support separate system message role) */
49
+ systemPrompt?: string;
50
+ /** Model to use (tool-specific, e.g. 'sonnet', 'gemini-2.5-flash') */
51
+ model?: string;
52
+ /** Working directory for the CLI process (default: temp workspace) */
53
+ workingDir?: string;
54
+ /** Files to place in the workspace before execution */
55
+ files?: FileInput[];
56
+ /** Timeout in milliseconds (default: 300_000, max: 600_000) */
57
+ timeoutMs?: number;
58
+ /** Extra CLI arguments */
59
+ args?: string[];
60
+ /** Extra environment variables for the CLI process */
61
+ env?: Record<string, string>;
62
+ /** Request JSON output format from the CLI */
63
+ jsonOutput?: boolean;
64
+ }
65
+ /** Result of a CLI execution */
66
+ export interface CliExecuteResult {
67
+ success: boolean;
68
+ /** CLI stdout content */
69
+ output: string;
70
+ /** CLI stderr content (if any) */
71
+ error?: string;
72
+ /** Process exit code */
73
+ exitCode: number;
74
+ /** Execution duration in milliseconds */
75
+ durationMs: number;
76
+ /** Files generated or modified by the CLI */
77
+ files?: FileOutput[];
78
+ /** The tool that was executed */
79
+ tool: CliToolName;
80
+ }
81
+ /**
82
+ * Adapter for a specific CLI tool.
83
+ * Each CLI (claude, gemini, codex) implements this interface
84
+ * to handle tool-specific argument construction and output parsing.
85
+ */
86
+ export interface ICliAdapter {
87
+ /** Tool identifier */
88
+ readonly toolName: CliToolName;
89
+ /** Human-readable display name */
90
+ readonly displayName: string;
91
+ /** How this adapter executes: spawn a child process or call HTTP API */
92
+ readonly executionType: AdapterExecutionType;
93
+ /** Build CLI command-line arguments from execution options */
94
+ buildArgs(options: CliExecuteOptions): string[];
95
+ /**
96
+ * Build environment variables for the CLI process.
97
+ * Returns only tool-specific env vars (merged with system env at execution time).
98
+ */
99
+ buildEnv(options: CliExecuteOptions): Record<string, string>;
100
+ /** Parse raw CLI output into structured result */
101
+ parseOutput(stdout: string, stderr: string, exitCode: number, durationMs: number): CliExecuteResult;
102
+ /** Detect if this CLI tool is installed and get its info */
103
+ detectInstallation(): Promise<CliToolInfo | null>;
104
+ /** Execute via HTTP (only for http-type adapters) */
105
+ executeHttp?(options: CliExecuteOptions): Promise<CliExecuteResult>;
106
+ /** Execute via HTTP with streaming chunks (only for http-type adapters) */
107
+ executeHttpStream?(options: CliExecuteOptions, onChunk: (chunk: string) => void): Promise<CliExecuteResult>;
108
+ /** List available models for this tool */
109
+ listModels?(): Promise<string[]>;
110
+ /** Default model identifier */
111
+ getDefaultModel?(): string;
112
+ }
113
+ export type WorkspaceType = 'local' | 'github';
114
+ /** Workspace metadata stored in .workspace.json */
115
+ export interface WorkspaceMetadata {
116
+ id: string;
117
+ type: WorkspaceType;
118
+ name: string;
119
+ description?: string;
120
+ createdAt: string;
121
+ /** Original local directory path (local type) */
122
+ localPath?: string;
123
+ /** GitHub repository URL (github type) */
124
+ repoUrl?: string;
125
+ /** Git branch name (github type) */
126
+ branch?: string;
127
+ }
128
+ /** Workspace information returned by WorkspaceService */
129
+ export interface Workspace {
130
+ id: string;
131
+ type: WorkspaceType;
132
+ name: string;
133
+ description?: string;
134
+ /** Effective working directory path */
135
+ path: string;
136
+ createdAt: Date;
137
+ localPath?: string;
138
+ repoUrl?: string;
139
+ branch?: string;
140
+ }
141
+ /** Git info detected from a local directory */
142
+ export interface DetectedGitInfo {
143
+ isGitRepo: boolean;
144
+ remoteUrl?: string;
145
+ branch?: string;
146
+ }
147
+ /** Directory entry for browsing */
148
+ export interface DirEntry {
149
+ name: string;
150
+ path: string;
151
+ isDirectory: boolean;
152
+ }
153
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * AI CLI integration type definitions.
4
+ *
5
+ * Defines interfaces for CLI tool adapters, execution options/results,
6
+ * and workspace management.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,42 @@
1
+ import type { Workspace, DetectedGitInfo, DirEntry } from './types.js';
2
+ /**
3
+ * Manages workspaces for AI CLI executions.
4
+ *
5
+ * Two workspace types:
6
+ * - **local**: References an existing local directory (no file copying)
7
+ * - **github**: Clones a GitHub repo + branch to a managed directory
8
+ */
9
+ export declare class WorkspaceService {
10
+ private readonly logger;
11
+ private basePath;
12
+ /** Initialize with base data directory */
13
+ initialize(dataDir: string): void;
14
+ /** Create a workspace pointing to an existing local directory */
15
+ createLocalWorkspace(name: string, localPath: string, options?: {
16
+ description?: string;
17
+ repoUrl?: string;
18
+ branch?: string;
19
+ }): Promise<Workspace>;
20
+ /** Create a workspace by cloning a GitHub repository */
21
+ createGithubWorkspace(name: string, repoUrl: string, branch: string, description?: string): Promise<Workspace>;
22
+ /** Pull latest changes for a github workspace */
23
+ pullWorkspace(id: string): Promise<void>;
24
+ /** Get workspace by ID */
25
+ getWorkspace(id: string): Promise<Workspace | null>;
26
+ /** List all workspaces */
27
+ listWorkspaces(): Promise<Workspace[]>;
28
+ /** Delete a workspace */
29
+ deleteWorkspace(id: string): Promise<void>;
30
+ /** Detect git info (remote URL + branch) for a given directory */
31
+ detectGitInfo(dirPath: string): Promise<DetectedGitInfo>;
32
+ /** Browse directory contents — returns subdirectories at the given path */
33
+ browseDir(dirPath: string): Promise<DirEntry[]>;
34
+ private resolveMetaPath;
35
+ private resolveClonePath;
36
+ private readWorkspace;
37
+ private metadataToWorkspace;
38
+ private ensureBaseDir;
39
+ private slugify;
40
+ private gitExec;
41
+ }
42
+ //# sourceMappingURL=workspace.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.service.d.ts","sourceRoot":"","sources":["../../../src/cli/workspace.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAqB,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI1F;;;;;;GAMG;AACH,qBACa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAM;IAEtB,0CAA0C;IAC1C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,iEAAiE;IAC3D,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,SAAS,CAAC;IA0BrB,wDAAwD;IAClD,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,CAAC;IA2BrB,iDAAiD;IAC3C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,0BAA0B;IACpB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IASzD,0BAA0B;IACpB,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAuB5C,yBAAyB;IACnB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhD,kEAAkE;IAC5D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2B9D,2EAA2E;IACrE,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAyBrD,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;YAIV,aAAa;IAW3B,OAAO,CAAC,mBAAmB;YAkBb,aAAa;IAI3B,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,OAAO;CAWhB"}
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.WorkspaceService = void 0;
10
+ const promises_1 = require("node:fs/promises");
11
+ const node_path_1 = require("node:path");
12
+ const node_child_process_1 = require("node:child_process");
13
+ const node_crypto_1 = require("node:crypto");
14
+ const core_1 = require("@octo-cyber/core");
15
+ const METADATA_FILE = '.workspace.json';
16
+ /**
17
+ * Manages workspaces for AI CLI executions.
18
+ *
19
+ * Two workspace types:
20
+ * - **local**: References an existing local directory (no file copying)
21
+ * - **github**: Clones a GitHub repo + branch to a managed directory
22
+ */
23
+ let WorkspaceService = class WorkspaceService {
24
+ logger = core_1.Container.get(core_1.LoggerService);
25
+ basePath = '';
26
+ /** Initialize with base data directory */
27
+ initialize(dataDir) {
28
+ this.basePath = (0, node_path_1.resolve)(dataDir, 'workspaces');
29
+ this.logger.info(`[WorkspaceService] Base path: ${this.basePath}`);
30
+ }
31
+ /** Create a workspace pointing to an existing local directory */
32
+ async createLocalWorkspace(name, localPath, options) {
33
+ const resolvedPath = (0, node_path_1.resolve)(localPath);
34
+ const dirStat = await (0, promises_1.stat)(resolvedPath);
35
+ if (!dirStat.isDirectory()) {
36
+ throw core_1.AppError.badRequest(`Path is not a directory: ${resolvedPath}`);
37
+ }
38
+ const id = `local-${this.slugify(name)}-${(0, node_crypto_1.randomUUID)().slice(0, 8)}`;
39
+ const metaDir = this.resolveMetaPath(id);
40
+ await (0, promises_1.mkdir)(metaDir, { recursive: true });
41
+ const metadata = {
42
+ id,
43
+ type: 'local',
44
+ name,
45
+ description: options?.description,
46
+ localPath: resolvedPath,
47
+ repoUrl: options?.repoUrl,
48
+ branch: options?.branch,
49
+ createdAt: new Date().toISOString(),
50
+ };
51
+ await (0, promises_1.writeFile)((0, node_path_1.join)(metaDir, METADATA_FILE), JSON.stringify(metadata, null, 2));
52
+ return this.metadataToWorkspace(metadata);
53
+ }
54
+ /** Create a workspace by cloning a GitHub repository */
55
+ async createGithubWorkspace(name, repoUrl, branch, description) {
56
+ const id = `github-${this.slugify(name)}-${(0, node_crypto_1.randomUUID)().slice(0, 8)}`;
57
+ const cloneDir = this.resolveClonePath(id);
58
+ await this.gitExec([
59
+ 'clone',
60
+ '--branch', branch,
61
+ '--single-branch',
62
+ '--depth', '1',
63
+ repoUrl,
64
+ cloneDir,
65
+ ]);
66
+ const metadata = {
67
+ id,
68
+ type: 'github',
69
+ name,
70
+ description,
71
+ repoUrl,
72
+ branch,
73
+ createdAt: new Date().toISOString(),
74
+ };
75
+ await (0, promises_1.writeFile)((0, node_path_1.join)(cloneDir, METADATA_FILE), JSON.stringify(metadata, null, 2));
76
+ return this.metadataToWorkspace(metadata);
77
+ }
78
+ /** Pull latest changes for a github workspace */
79
+ async pullWorkspace(id) {
80
+ const ws = await this.getWorkspace(id);
81
+ if (!ws)
82
+ throw core_1.AppError.notFound(`Workspace not found: ${id}`);
83
+ if (ws.type !== 'github')
84
+ throw core_1.AppError.badRequest('Pull is only supported for github workspaces');
85
+ await this.gitExec(['pull'], ws.path);
86
+ this.logger.info(`[WorkspaceService] Pulled workspace: ${id}`);
87
+ }
88
+ /** Get workspace by ID */
89
+ async getWorkspace(id) {
90
+ const cloneDir = this.resolveClonePath(id);
91
+ const fromClone = await this.readWorkspace(cloneDir);
92
+ if (fromClone)
93
+ return fromClone;
94
+ const metaDir = this.resolveMetaPath(id);
95
+ return this.readWorkspace(metaDir);
96
+ }
97
+ /** List all workspaces */
98
+ async listWorkspaces() {
99
+ await this.ensureBaseDir();
100
+ const workspaces = [];
101
+ const metaBase = (0, node_path_1.resolve)(this.basePath, 'meta');
102
+ await (0, promises_1.mkdir)(metaBase, { recursive: true });
103
+ for (const entry of await (0, promises_1.readdir)(metaBase, { withFileTypes: true })) {
104
+ if (!entry.isDirectory())
105
+ continue;
106
+ const ws = await this.readWorkspace((0, node_path_1.join)(metaBase, entry.name));
107
+ if (ws)
108
+ workspaces.push(ws);
109
+ }
110
+ const clonesBase = (0, node_path_1.resolve)(this.basePath, 'clones');
111
+ await (0, promises_1.mkdir)(clonesBase, { recursive: true });
112
+ for (const entry of await (0, promises_1.readdir)(clonesBase, { withFileTypes: true })) {
113
+ if (!entry.isDirectory())
114
+ continue;
115
+ const ws = await this.readWorkspace((0, node_path_1.join)(clonesBase, entry.name));
116
+ if (ws)
117
+ workspaces.push(ws);
118
+ }
119
+ return workspaces;
120
+ }
121
+ /** Delete a workspace */
122
+ async deleteWorkspace(id) {
123
+ const ws = await this.getWorkspace(id);
124
+ if (!ws)
125
+ throw core_1.AppError.notFound(`Workspace not found: ${id}`);
126
+ if (ws.type === 'local') {
127
+ // Only remove metadata, never delete the original directory
128
+ const metaDir = this.resolveMetaPath(id);
129
+ await (0, promises_1.rm)(metaDir, { recursive: true, force: true });
130
+ }
131
+ else {
132
+ // Remove the cloned directory entirely
133
+ const cloneDir = this.resolveClonePath(id);
134
+ await (0, promises_1.rm)(cloneDir, { recursive: true, force: true });
135
+ }
136
+ this.logger.info(`[WorkspaceService] Deleted workspace: ${id} (${ws.type})`);
137
+ }
138
+ /** Detect git info (remote URL + branch) for a given directory */
139
+ async detectGitInfo(dirPath) {
140
+ try {
141
+ const resolvedPath = (0, node_path_1.resolve)(dirPath);
142
+ const dirStat = await (0, promises_1.stat)(resolvedPath);
143
+ if (!dirStat.isDirectory())
144
+ return { isGitRepo: false };
145
+ // Check if it's a git repo
146
+ await this.gitExec(['rev-parse', '--git-dir'], resolvedPath);
147
+ // Get remote URL
148
+ let remoteUrl;
149
+ try {
150
+ remoteUrl = await this.gitExec(['config', '--get', 'remote.origin.url'], resolvedPath);
151
+ }
152
+ catch { /* no remote */ }
153
+ // Get current branch
154
+ let branch;
155
+ try {
156
+ branch = await this.gitExec(['rev-parse', '--abbrev-ref', 'HEAD'], resolvedPath);
157
+ }
158
+ catch { /* detached HEAD */ }
159
+ return { isGitRepo: true, remoteUrl: remoteUrl || undefined, branch: branch || undefined };
160
+ }
161
+ catch {
162
+ return { isGitRepo: false };
163
+ }
164
+ }
165
+ /** Browse directory contents — returns subdirectories at the given path */
166
+ async browseDir(dirPath) {
167
+ const resolvedPath = (0, node_path_1.resolve)(dirPath || '/');
168
+ const entries = [];
169
+ try {
170
+ const items = await (0, promises_1.readdir)(resolvedPath, { withFileTypes: true });
171
+ for (const item of items) {
172
+ if (item.name.startsWith('.'))
173
+ continue; // skip hidden
174
+ if (item.isDirectory()) {
175
+ entries.push({
176
+ name: item.name,
177
+ path: (0, node_path_1.join)(resolvedPath, item.name),
178
+ isDirectory: true,
179
+ });
180
+ }
181
+ }
182
+ }
183
+ catch {
184
+ // Directory not readable
185
+ }
186
+ return entries.sort((a, b) => a.name.localeCompare(b.name));
187
+ }
188
+ // ─── Private ────────────────────────────────────────────────
189
+ resolveMetaPath(id) {
190
+ return (0, node_path_1.resolve)(this.basePath, 'meta', id);
191
+ }
192
+ resolveClonePath(id) {
193
+ return (0, node_path_1.resolve)(this.basePath, 'clones', id);
194
+ }
195
+ async readWorkspace(dir) {
196
+ try {
197
+ const metaPath = (0, node_path_1.join)(dir, METADATA_FILE);
198
+ const raw = await (0, promises_1.readFile)(metaPath, 'utf-8');
199
+ const metadata = JSON.parse(raw);
200
+ return this.metadataToWorkspace(metadata);
201
+ }
202
+ catch {
203
+ return null;
204
+ }
205
+ }
206
+ metadataToWorkspace(metadata) {
207
+ const path = metadata.type === 'local' && metadata.localPath
208
+ ? metadata.localPath
209
+ : this.resolveClonePath(metadata.id);
210
+ return {
211
+ id: metadata.id,
212
+ type: metadata.type,
213
+ name: metadata.name,
214
+ description: metadata.description,
215
+ path,
216
+ createdAt: new Date(metadata.createdAt),
217
+ localPath: metadata.localPath,
218
+ repoUrl: metadata.repoUrl,
219
+ branch: metadata.branch,
220
+ };
221
+ }
222
+ async ensureBaseDir() {
223
+ await (0, promises_1.mkdir)(this.basePath, { recursive: true });
224
+ }
225
+ slugify(name) {
226
+ return name
227
+ .toLowerCase()
228
+ .replace(/[^a-z0-9]+/g, '-')
229
+ .replace(/^-|-$/g, '')
230
+ .slice(0, 30);
231
+ }
232
+ gitExec(args, cwd) {
233
+ return new Promise((resolve, reject) => {
234
+ (0, node_child_process_1.execFile)('git', args, { cwd, timeout: 120_000 }, (err, stdout, stderr) => {
235
+ if (err) {
236
+ reject(new Error(stderr.trim() || err.message));
237
+ }
238
+ else {
239
+ resolve(stdout.trim());
240
+ }
241
+ });
242
+ });
243
+ }
244
+ };
245
+ exports.WorkspaceService = WorkspaceService;
246
+ exports.WorkspaceService = WorkspaceService = __decorate([
247
+ (0, core_1.Service)()
248
+ ], WorkspaceService);
249
+ //# sourceMappingURL=workspace.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.service.js","sourceRoot":"","sources":["../../../src/cli/workspace.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Request, Response } from '@octo-cyber/core';
2
+ /**
3
+ * Computer Use controller.
4
+ *
5
+ * Exposes a single endpoint that runs a computer-use agent loop:
6
+ * the agent takes screenshots, clicks, types, scrolls, and presses keys
7
+ * to complete the requested task on the local desktop.
8
+ *
9
+ * Endpoints:
10
+ * POST /api/v1/ai/computer-use — Run a computer-use agent task
11
+ */
12
+ export declare class ComputerUseController {
13
+ /**
14
+ * Run a computer-use agent loop.
15
+ *
16
+ * Body:
17
+ * prompt {string} — Task description for the agent
18
+ * maxRounds {number?} — Max LLM rounds (default 20, max 50)
19
+ * timeoutMs {number?} — Timeout in ms (default 300 000)
20
+ */
21
+ runComputerUse(req: Request, res: Response): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=computer-use.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-use.controller.d.ts","sourceRoot":"","sources":["../../../src/computer-use/computer-use.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA6B1D;;;;;;;;;GASG;AACH,qBACa,qBAAqB;IAChC;;;;;;;OAOG;IAEG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BjE"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ComputerUseController = void 0;
13
+ const core_1 = require("@octo-cyber/core");
14
+ const OctoAgentClient_js_1 = require("../workflow-design/OctoAgentClient.js");
15
+ const computer_use_tools_js_1 = require("../agent/computer-use-tools.js");
16
+ const MAX_ROUNDS_DEFAULT = 20;
17
+ const MAX_ROUNDS_LIMIT = 50;
18
+ const TIMEOUT_MS_DEFAULT = 300_000; // 5 minutes
19
+ const SYSTEM_PROMPT = `You are an AI agent that can control the desktop computer.
20
+ You have access to these tools:
21
+ - screenshot: take a screenshot to see the current state of the screen
22
+ - left_click: click at a specific (x, y) coordinate
23
+ - type: type text into the focused element
24
+ - scroll: scroll up or down at a screen position
25
+ - key: press a key or key combination (e.g. "enter", "ctrl+c")
26
+
27
+ To complete a task:
28
+ 1. Start by taking a screenshot to understand the current state of the screen.
29
+ 2. Identify what needs to be done based on the screenshot.
30
+ 3. Use the appropriate tools to interact with the UI.
31
+ 4. Take follow-up screenshots to verify your actions had the intended effect.
32
+ 5. Repeat until the task is complete, then summarize what you did.
33
+
34
+ Important:
35
+ - Always verify actions with a screenshot after significant interactions.
36
+ - Use the "key" tool for keyboard shortcuts (e.g. "enter" to confirm, "escape" to cancel).
37
+ - Coordinate (0, 0) is the top-left corner of the screen.
38
+ - Be precise with coordinates — click the center of buttons and input fields.`;
39
+ /**
40
+ * Computer Use controller.
41
+ *
42
+ * Exposes a single endpoint that runs a computer-use agent loop:
43
+ * the agent takes screenshots, clicks, types, scrolls, and presses keys
44
+ * to complete the requested task on the local desktop.
45
+ *
46
+ * Endpoints:
47
+ * POST /api/v1/ai/computer-use — Run a computer-use agent task
48
+ */
49
+ let ComputerUseController = class ComputerUseController {
50
+ /**
51
+ * Run a computer-use agent loop.
52
+ *
53
+ * Body:
54
+ * prompt {string} — Task description for the agent
55
+ * maxRounds {number?} — Max LLM rounds (default 20, max 50)
56
+ * timeoutMs {number?} — Timeout in ms (default 300 000)
57
+ */
58
+ async runComputerUse(req, res) {
59
+ const { prompt, maxRounds, timeoutMs } = req.body;
60
+ if (!prompt || typeof prompt !== 'string' || prompt.trim().length === 0) {
61
+ throw core_1.AppError.badRequest('Missing or invalid prompt');
62
+ }
63
+ const rounds = Math.min(typeof maxRounds === 'number' ? maxRounds : MAX_ROUNDS_DEFAULT, MAX_ROUNDS_LIMIT);
64
+ const timeout = typeof timeoutMs === 'number' ? timeoutMs : TIMEOUT_MS_DEFAULT;
65
+ const client = new OctoAgentClient_js_1.OctoAgentClient();
66
+ const tools = (0, computer_use_tools_js_1.createComputerUseTools)();
67
+ const output = await client.run({
68
+ systemPrompt: SYSTEM_PROMPT,
69
+ userMessage: prompt.trim(),
70
+ tools,
71
+ maxRounds: rounds,
72
+ timeoutMs: timeout,
73
+ });
74
+ res.json(core_1.ApiResponse.ok({ output }));
75
+ }
76
+ };
77
+ exports.ComputerUseController = ComputerUseController;
78
+ __decorate([
79
+ (0, core_1.Post)('/computer-use'),
80
+ __metadata("design:type", Function),
81
+ __metadata("design:paramtypes", [Object, Object]),
82
+ __metadata("design:returntype", Promise)
83
+ ], ComputerUseController.prototype, "runComputerUse", null);
84
+ exports.ComputerUseController = ComputerUseController = __decorate([
85
+ (0, core_1.Controller)('/api/v1/ai')
86
+ ], ComputerUseController);
87
+ //# sourceMappingURL=computer-use.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-use.controller.js","sourceRoot":"","sources":["../../../src/computer-use/computer-use.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2E;AAE3E,8EAAwE;AACxE,0EAAwE;AAExE,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,YAAY;AAEhD,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;8EAmBwD,CAAC;AAE/E;;;;;;;;;GASG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC;;;;;;;OAOG;IAEG,AAAN,KAAK,CAAC,cAAc,CAAC,GAAY,EAAE,GAAa;QAC9C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAI5C,CAAC;QAEF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,eAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAC9D,gBAAgB,CACjB,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAE/E,MAAM,MAAM,GAAG,IAAI,oCAAe,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAA,8CAAsB,GAAE,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC;YAC9B,YAAY,EAAE,aAAa;YAC3B,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE;YAC1B,KAAK;YACL,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,OAAO;SACnB,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,kBAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AAzCY,sDAAqB;AAU1B;IADL,IAAA,WAAI,EAAC,eAAe,CAAC;;;;2DA+BrB;gCAxCU,qBAAqB;IADjC,IAAA,iBAAU,EAAC,YAAY,CAAC;GACZ,qBAAqB,CAyCjC"}
@@ -0,0 +1,12 @@
1
+ export { AiModule } from './ai.module.js';
2
+ export { CliRegistryService, CliExecutorService, WorkspaceService, ClaudeCliAdapter, GeminiCliAdapter, CodexCliAdapter, type CliToolName, type CliToolInfo, type CliExecuteOptions, type CliExecuteResult, type ICliAdapter, type FileInput, type FileOutput, type WorkspaceType, type Workspace, } from './cli/index.js';
3
+ export { AiCliController } from './cli/controllers/ai-cli.controller.js';
4
+ export { OctoSkill, SkillGeneratorService, SkillRegistryService, SkillInstallerService, SkillController, type SkillTarget, type SkillTargetInfo, type SkillSourceType, type SkillGenerateParams, type SkillGenerateResult, type EndpointInfo, } from './skill/index.js';
5
+ export { BranchDecisionEngine, type BranchDecision, type BranchStrategy, type DecisionInput, type RequirementType, } from './BranchDecisionEngine.js';
6
+ export { WorkflowDesignOrchestrator, OctoAgentClient, N8nNodeKnowledgeBase, TriggerAnalystAgent, ActionChainAgent, LogicFlowAgent, CodeScriptAgent, WorkflowValidatorAgent, type Message, type Tool, type TriggerNodeSpec, type ActionNodeSpec, type LogicNodeSpec, type N8nWorkflow, type WorkflowDraft, type ValidationResult, type ModificationScope, type NodeCategory, type NodeTemplate, type ToolDefinition, type AgentRunOptions, } from './workflow-design/index.js';
7
+ export { createCodingTools } from './agent/coding-tools.js';
8
+ export { createComputerUseTools, IMAGE_RESULT_PREFIX } from './agent/computer-use-tools.js';
9
+ export { ComputerUseController } from './computer-use/computer-use.controller.js';
10
+ export { ClaudeCodeSessionManagerService } from './session/claude-code-session-manager.service.js';
11
+ export { CLAUDE_CODE_SESSION_MANAGER, type IClaudeCodeSessionManager, type ClaudeCodeSession, type ClaudeCodeSessionStatus, type StartSessionOptions, type StopSessionResult, } from '../shared/IClaudeCodeSessionManager.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAGzE,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAG5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAGlF,OAAO,EAAE,+BAA+B,EAAE,MAAM,kDAAkD,CAAC;AACnG,OAAO,EACL,2BAA2B,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,wCAAwC,CAAC"}