@octo-cyber/ai 0.5.5 → 0.5.6

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 (329) hide show
  1. package/dist/shared/IClaudeCodeSessionManager.d.ts +151 -0
  2. package/dist/shared/IClaudeCodeSessionManager.d.ts.map +1 -0
  3. package/dist/shared/IClaudeCodeSessionManager.js +6 -0
  4. package/dist/shared/IClaudeCodeSessionManager.js.map +1 -0
  5. package/dist/src/BranchDecisionEngine.d.ts +73 -0
  6. package/dist/src/BranchDecisionEngine.d.ts.map +1 -0
  7. package/dist/src/BranchDecisionEngine.js +195 -0
  8. package/dist/src/BranchDecisionEngine.js.map +1 -0
  9. package/dist/src/agent/agent-approval.controller.d.ts +20 -0
  10. package/dist/src/agent/agent-approval.controller.d.ts.map +1 -0
  11. package/dist/src/agent/agent-approval.controller.js +101 -0
  12. package/dist/src/agent/agent-approval.controller.js.map +1 -0
  13. package/dist/src/agent/agent-approval.entity.d.ts +15 -0
  14. package/dist/src/agent/agent-approval.entity.d.ts.map +1 -0
  15. package/dist/src/agent/agent-approval.entity.js +63 -0
  16. package/dist/src/agent/agent-approval.entity.js.map +1 -0
  17. package/dist/src/agent/agent-approval.service.d.ts +35 -0
  18. package/dist/src/agent/agent-approval.service.d.ts.map +1 -0
  19. package/dist/src/agent/agent-approval.service.js +109 -0
  20. package/dist/src/agent/agent-approval.service.js.map +1 -0
  21. package/dist/src/agent/agent-gateway.controller.d.ts +30 -0
  22. package/dist/src/agent/agent-gateway.controller.d.ts.map +1 -0
  23. package/dist/src/agent/agent-gateway.controller.js +112 -0
  24. package/dist/src/agent/agent-gateway.controller.js.map +1 -0
  25. package/dist/src/agent/agent-gateway.service.d.ts +33 -0
  26. package/dist/src/agent/agent-gateway.service.d.ts.map +1 -0
  27. package/dist/src/agent/agent-gateway.service.js +84 -0
  28. package/dist/src/agent/agent-gateway.service.js.map +1 -0
  29. package/dist/src/agent/agent-registry.service.d.ts +30 -0
  30. package/dist/src/agent/agent-registry.service.d.ts.map +1 -0
  31. package/dist/src/agent/agent-registry.service.js +45 -0
  32. package/dist/src/agent/agent-registry.service.js.map +1 -0
  33. package/dist/src/agent/agent-run.controller.d.ts +42 -0
  34. package/dist/src/agent/agent-run.controller.d.ts.map +1 -0
  35. package/dist/src/agent/agent-run.controller.js +195 -0
  36. package/dist/src/agent/agent-run.controller.js.map +1 -0
  37. package/dist/src/agent/agent-run.entity.d.ts +35 -0
  38. package/dist/src/agent/agent-run.entity.d.ts.map +1 -0
  39. package/dist/src/agent/agent-run.entity.js +98 -0
  40. package/dist/src/agent/agent-run.entity.js.map +1 -0
  41. package/dist/src/agent/agent-run.service.d.ts +48 -0
  42. package/dist/src/agent/agent-run.service.d.ts.map +1 -0
  43. package/dist/src/agent/agent-run.service.js +155 -0
  44. package/dist/src/agent/agent-run.service.js.map +1 -0
  45. package/dist/src/agent/agent-session.controller.d.ts +20 -0
  46. package/dist/src/agent/agent-session.controller.d.ts.map +1 -0
  47. package/dist/src/agent/agent-session.controller.js +97 -0
  48. package/dist/src/agent/agent-session.controller.js.map +1 -0
  49. package/dist/src/agent/agent-session.entity.d.ts +13 -0
  50. package/dist/src/agent/agent-session.entity.d.ts.map +1 -0
  51. package/dist/src/agent/agent-session.entity.js +57 -0
  52. package/dist/src/agent/agent-session.entity.js.map +1 -0
  53. package/dist/src/agent/agent-session.service.d.ts +38 -0
  54. package/dist/src/agent/agent-session.service.d.ts.map +1 -0
  55. package/dist/src/agent/agent-session.service.js +112 -0
  56. package/dist/src/agent/agent-session.service.js.map +1 -0
  57. package/dist/src/agent/coding-tools.d.ts +7 -0
  58. package/dist/src/agent/coding-tools.d.ts.map +1 -0
  59. package/dist/src/agent/coding-tools.js +181 -0
  60. package/dist/src/agent/coding-tools.js.map +1 -0
  61. package/dist/src/agent/computer-use-tools.d.ts +15 -0
  62. package/dist/src/agent/computer-use-tools.d.ts.map +1 -0
  63. package/dist/src/agent/computer-use-tools.js +256 -0
  64. package/dist/src/agent/computer-use-tools.js.map +1 -0
  65. package/dist/src/agent/external-agent.controller.d.ts +41 -0
  66. package/dist/src/agent/external-agent.controller.d.ts.map +1 -0
  67. package/dist/src/agent/external-agent.controller.js +129 -0
  68. package/dist/src/agent/external-agent.controller.js.map +1 -0
  69. package/dist/src/agent/external-agent.entity.d.ts +22 -0
  70. package/dist/src/agent/external-agent.entity.d.ts.map +1 -0
  71. package/dist/src/agent/external-agent.entity.js +75 -0
  72. package/dist/src/agent/external-agent.entity.js.map +1 -0
  73. package/dist/src/agent/external-agent.service.d.ts +60 -0
  74. package/dist/src/agent/external-agent.service.d.ts.map +1 -0
  75. package/dist/src/agent/external-agent.service.js +143 -0
  76. package/dist/src/agent/external-agent.service.js.map +1 -0
  77. package/dist/src/ai.module.d.ts +22 -0
  78. package/dist/src/ai.module.d.ts.map +1 -0
  79. package/dist/src/ai.module.js +178 -0
  80. package/dist/src/ai.module.js.map +1 -0
  81. package/dist/{cli → src/cli}/adapters/antigravity.adapter.d.ts +2 -0
  82. package/dist/src/cli/adapters/antigravity.adapter.d.ts.map +1 -0
  83. package/dist/{cli → src/cli}/adapters/antigravity.adapter.js +78 -0
  84. package/dist/src/cli/adapters/antigravity.adapter.js.map +1 -0
  85. package/dist/src/cli/adapters/claude-cli.adapter.d.ts.map +1 -0
  86. package/dist/{cli → src/cli}/adapters/claude-cli.adapter.js +2 -0
  87. package/dist/src/cli/adapters/claude-cli.adapter.js.map +1 -0
  88. package/dist/src/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
  89. package/dist/src/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
  90. package/dist/src/cli/adapters/cli-proxy-api.adapter.js +239 -0
  91. package/dist/src/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
  92. package/dist/src/cli/adapters/codex-cli.adapter.d.ts.map +1 -0
  93. package/dist/src/cli/adapters/codex-cli.adapter.js.map +1 -0
  94. package/dist/src/cli/adapters/detect-cli.d.ts.map +1 -0
  95. package/dist/src/cli/adapters/detect-cli.js.map +1 -0
  96. package/dist/src/cli/adapters/gemini-cli.adapter.d.ts.map +1 -0
  97. package/dist/src/cli/adapters/gemini-cli.adapter.js.map +1 -0
  98. package/dist/src/cli/adapters/index.d.ts.map +1 -0
  99. package/dist/src/cli/adapters/index.js.map +1 -0
  100. package/dist/{cli → src/cli}/cli-executor.service.d.ts +2 -0
  101. package/dist/src/cli/cli-executor.service.d.ts.map +1 -0
  102. package/dist/{cli → src/cli}/cli-executor.service.js +21 -1
  103. package/dist/src/cli/cli-executor.service.js.map +1 -0
  104. package/dist/src/cli/cli-registry.service.d.ts.map +1 -0
  105. package/dist/{cli → src/cli}/cli-registry.service.js +3 -1
  106. package/dist/src/cli/cli-registry.service.js.map +1 -0
  107. package/dist/{cli → src/cli}/controllers/ai-cli.controller.d.ts +4 -0
  108. package/dist/src/cli/controllers/ai-cli.controller.d.ts.map +1 -0
  109. package/dist/{cli → src/cli}/controllers/ai-cli.controller.js +33 -4
  110. package/dist/src/cli/controllers/ai-cli.controller.js.map +1 -0
  111. package/dist/{cli → src/cli}/index.d.ts +1 -1
  112. package/dist/src/cli/index.d.ts.map +1 -0
  113. package/dist/src/cli/index.js.map +1 -0
  114. package/dist/{cli → src/cli}/types.d.ts +23 -1
  115. package/dist/src/cli/types.d.ts.map +1 -0
  116. package/dist/{skill → src/cli}/types.js.map +1 -1
  117. package/dist/{cli → src/cli}/workspace.service.d.ts +11 -3
  118. package/dist/src/cli/workspace.service.d.ts.map +1 -0
  119. package/dist/{cli → src/cli}/workspace.service.js +61 -6
  120. package/dist/src/cli/workspace.service.js.map +1 -0
  121. package/dist/src/computer-use/computer-use.controller.d.ts +23 -0
  122. package/dist/src/computer-use/computer-use.controller.d.ts.map +1 -0
  123. package/dist/src/computer-use/computer-use.controller.js +87 -0
  124. package/dist/src/computer-use/computer-use.controller.js.map +1 -0
  125. package/dist/src/index.d.ts +12 -0
  126. package/dist/src/index.d.ts.map +1 -0
  127. package/dist/src/index.js +51 -0
  128. package/dist/src/index.js.map +1 -0
  129. package/dist/src/orchestrator/orchestrator-plan.entity.d.ts +31 -0
  130. package/dist/src/orchestrator/orchestrator-plan.entity.d.ts.map +1 -0
  131. package/dist/src/orchestrator/orchestrator-plan.entity.js +69 -0
  132. package/dist/src/orchestrator/orchestrator-plan.entity.js.map +1 -0
  133. package/dist/src/orchestrator/orchestrator-plan.service.d.ts +27 -0
  134. package/dist/src/orchestrator/orchestrator-plan.service.d.ts.map +1 -0
  135. package/dist/src/orchestrator/orchestrator-plan.service.js +201 -0
  136. package/dist/src/orchestrator/orchestrator-plan.service.js.map +1 -0
  137. package/dist/src/orchestrator/orchestrator.controller.d.ts +29 -0
  138. package/dist/src/orchestrator/orchestrator.controller.d.ts.map +1 -0
  139. package/dist/src/orchestrator/orchestrator.controller.js +144 -0
  140. package/dist/src/orchestrator/orchestrator.controller.js.map +1 -0
  141. package/dist/src/orchestrator/workflow-feedback.entity.d.ts +12 -0
  142. package/dist/src/orchestrator/workflow-feedback.entity.d.ts.map +1 -0
  143. package/dist/src/orchestrator/workflow-feedback.entity.js +49 -0
  144. package/dist/src/orchestrator/workflow-feedback.entity.js.map +1 -0
  145. package/dist/src/orchestrator/workflow-feedback.service.d.ts +14 -0
  146. package/dist/src/orchestrator/workflow-feedback.service.d.ts.map +1 -0
  147. package/dist/src/orchestrator/workflow-feedback.service.js +51 -0
  148. package/dist/src/orchestrator/workflow-feedback.service.js.map +1 -0
  149. package/dist/src/session/claude-code-session-manager.service.d.ts +28 -0
  150. package/dist/src/session/claude-code-session-manager.service.d.ts.map +1 -0
  151. package/dist/src/session/claude-code-session-manager.service.js +177 -0
  152. package/dist/src/session/claude-code-session-manager.service.js.map +1 -0
  153. package/dist/src/skill/controllers/skill-market.controller.d.ts +18 -0
  154. package/dist/src/skill/controllers/skill-market.controller.d.ts.map +1 -0
  155. package/dist/src/skill/controllers/skill-market.controller.js +128 -0
  156. package/dist/src/skill/controllers/skill-market.controller.js.map +1 -0
  157. package/dist/{skill → src/skill}/controllers/skill.controller.d.ts +4 -0
  158. package/dist/src/skill/controllers/skill.controller.d.ts.map +1 -0
  159. package/dist/{skill → src/skill}/controllers/skill.controller.js +31 -0
  160. package/dist/src/skill/controllers/skill.controller.js.map +1 -0
  161. package/dist/src/skill/entities/octo-skill.entity.d.ts.map +1 -0
  162. package/dist/src/skill/entities/octo-skill.entity.js.map +1 -0
  163. package/dist/{skill → src/skill}/index.d.ts +3 -1
  164. package/dist/src/skill/index.d.ts.map +1 -0
  165. package/dist/{skill → src/skill}/index.js +5 -1
  166. package/dist/src/skill/index.js.map +1 -0
  167. package/dist/src/skill/services/skill-generator.service.d.ts.map +1 -0
  168. package/dist/src/skill/services/skill-generator.service.js.map +1 -0
  169. package/dist/{skill → src/skill}/services/skill-installer.service.d.ts +27 -0
  170. package/dist/src/skill/services/skill-installer.service.d.ts.map +1 -0
  171. package/dist/{skill → src/skill}/services/skill-installer.service.js +108 -0
  172. package/dist/src/skill/services/skill-installer.service.js.map +1 -0
  173. package/dist/src/skill/services/skill-market-helpers.d.ts +25 -0
  174. package/dist/src/skill/services/skill-market-helpers.d.ts.map +1 -0
  175. package/dist/src/skill/services/skill-market-helpers.js +22 -0
  176. package/dist/src/skill/services/skill-market-helpers.js.map +1 -0
  177. package/dist/src/skill/services/skill-market.service.d.ts +60 -0
  178. package/dist/src/skill/services/skill-market.service.d.ts.map +1 -0
  179. package/dist/src/skill/services/skill-market.service.js +228 -0
  180. package/dist/src/skill/services/skill-market.service.js.map +1 -0
  181. package/dist/src/skill/services/skill-registry.service.d.ts.map +1 -0
  182. package/dist/{skill → src/skill}/services/skill-registry.service.js +4 -4
  183. package/dist/src/skill/services/skill-registry.service.js.map +1 -0
  184. package/dist/{skill → src/skill}/types.d.ts +32 -1
  185. package/dist/src/skill/types.d.ts.map +1 -0
  186. package/dist/{cli → src/skill}/types.js.map +1 -1
  187. package/dist/src/workflow-design/DocumentExtractorAgent.d.ts +47 -0
  188. package/dist/src/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
  189. package/dist/src/workflow-design/DocumentExtractorAgent.js +118 -0
  190. package/dist/src/workflow-design/DocumentExtractorAgent.js.map +1 -0
  191. package/dist/src/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
  192. package/dist/src/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
  193. package/dist/src/workflow-design/N8nNodeKnowledgeBase.js +362 -0
  194. package/dist/src/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
  195. package/dist/src/workflow-design/OctoAgentClient.d.ts +42 -0
  196. package/dist/src/workflow-design/OctoAgentClient.d.ts.map +1 -0
  197. package/dist/src/workflow-design/OctoAgentClient.js +191 -0
  198. package/dist/src/workflow-design/OctoAgentClient.js.map +1 -0
  199. package/dist/src/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
  200. package/dist/src/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
  201. package/dist/src/workflow-design/WorkflowDesignOrchestrator.js +265 -0
  202. package/dist/src/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
  203. package/dist/src/workflow-design/agents/ActionChainAgent.d.ts +9 -0
  204. package/dist/src/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
  205. package/dist/src/workflow-design/agents/ActionChainAgent.js +79 -0
  206. package/dist/src/workflow-design/agents/ActionChainAgent.js.map +1 -0
  207. package/dist/src/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
  208. package/dist/src/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
  209. package/dist/src/workflow-design/agents/CodeScriptAgent.js +96 -0
  210. package/dist/src/workflow-design/agents/CodeScriptAgent.js.map +1 -0
  211. package/dist/src/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
  212. package/dist/src/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
  213. package/dist/src/workflow-design/agents/LogicFlowAgent.js +78 -0
  214. package/dist/src/workflow-design/agents/LogicFlowAgent.js.map +1 -0
  215. package/dist/src/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
  216. package/dist/src/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
  217. package/dist/src/workflow-design/agents/TriggerAnalystAgent.js +65 -0
  218. package/dist/src/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
  219. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
  220. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
  221. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
  222. package/dist/src/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
  223. package/dist/src/workflow-design/index.d.ts +12 -0
  224. package/dist/src/workflow-design/index.d.ts.map +1 -0
  225. package/dist/src/workflow-design/index.js +23 -0
  226. package/dist/src/workflow-design/index.js.map +1 -0
  227. package/dist/src/workflow-design/types.d.ts +155 -0
  228. package/dist/src/workflow-design/types.d.ts.map +1 -0
  229. package/dist/src/workflow-design/types.js +6 -0
  230. package/dist/src/workflow-design/types.js.map +1 -0
  231. package/package.json +20 -14
  232. package/web/components/CreateWorkspaceDialog.tsx +157 -0
  233. package/web/components/DirBrowser.tsx +85 -0
  234. package/web/components/GithubTokenDialog.tsx +152 -0
  235. package/web/components/LocalPathSection.tsx +91 -0
  236. package/web/components/MarketInstallDialog.tsx +196 -0
  237. package/web/components/MarketSkillCard.tsx +74 -0
  238. package/web/components/RepoList.tsx +97 -0
  239. package/web/components/SearchResultsGrid.tsx +55 -0
  240. package/web/components/SkillCard.tsx +4 -1
  241. package/web/components/ToolCard.tsx +88 -0
  242. package/web/components/WorkspaceCard.tsx +146 -0
  243. package/web/components/WorkspaceItem.tsx +65 -0
  244. package/web/components/WorkspaceSelect.tsx +94 -0
  245. package/web/index.ts +18 -1
  246. package/web/manifest.ts +7 -0
  247. package/web/messages/en-US.json +231 -7
  248. package/web/messages/zh-CN.json +234 -7
  249. package/web/pages/AgentMarketPage.tsx +318 -0
  250. package/web/pages/AgentRunsPage.tsx +162 -0
  251. package/web/pages/AgentsPage.tsx +239 -0
  252. package/web/pages/AiCliToolsPage.tsx +17 -128
  253. package/web/pages/ApprovalsPage.tsx +260 -0
  254. package/web/pages/OrchestratorPage.tsx +384 -0
  255. package/web/pages/SessionsPage.tsx +248 -0
  256. package/web/pages/SkillMarketPage.tsx +25 -0
  257. package/web/pages/WorkspaceSection.tsx +13 -113
  258. package/web/pages/WorkspacesPage.tsx +29 -254
  259. package/web/services/agent-approval.service.ts +35 -0
  260. package/web/services/agent-gateway.service.ts +41 -0
  261. package/web/services/agent-run.service.ts +48 -0
  262. package/web/services/agent-session.service.ts +30 -0
  263. package/web/services/ai-cli-service.ts +33 -0
  264. package/web/services/external-agent.service.ts +38 -0
  265. package/web/services/orchestrator.service.ts +52 -0
  266. package/web/services/skill-market-service.ts +88 -0
  267. package/web/services/skill-service.ts +12 -0
  268. package/dist/ai.module.d.ts +0 -4
  269. package/dist/ai.module.d.ts.map +0 -1
  270. package/dist/ai.module.js +0 -59
  271. package/dist/ai.module.js.map +0 -1
  272. package/dist/cli/adapters/antigravity.adapter.d.ts.map +0 -1
  273. package/dist/cli/adapters/antigravity.adapter.js.map +0 -1
  274. package/dist/cli/adapters/claude-cli.adapter.d.ts.map +0 -1
  275. package/dist/cli/adapters/claude-cli.adapter.js.map +0 -1
  276. package/dist/cli/adapters/codex-cli.adapter.d.ts.map +0 -1
  277. package/dist/cli/adapters/codex-cli.adapter.js.map +0 -1
  278. package/dist/cli/adapters/detect-cli.d.ts.map +0 -1
  279. package/dist/cli/adapters/detect-cli.js.map +0 -1
  280. package/dist/cli/adapters/gemini-cli.adapter.d.ts.map +0 -1
  281. package/dist/cli/adapters/gemini-cli.adapter.js.map +0 -1
  282. package/dist/cli/adapters/index.d.ts.map +0 -1
  283. package/dist/cli/adapters/index.js.map +0 -1
  284. package/dist/cli/cli-executor.service.d.ts.map +0 -1
  285. package/dist/cli/cli-executor.service.js.map +0 -1
  286. package/dist/cli/cli-registry.service.d.ts.map +0 -1
  287. package/dist/cli/cli-registry.service.js.map +0 -1
  288. package/dist/cli/controllers/ai-cli.controller.d.ts.map +0 -1
  289. package/dist/cli/controllers/ai-cli.controller.js.map +0 -1
  290. package/dist/cli/index.d.ts.map +0 -1
  291. package/dist/cli/index.js.map +0 -1
  292. package/dist/cli/types.d.ts.map +0 -1
  293. package/dist/cli/workspace.service.d.ts.map +0 -1
  294. package/dist/cli/workspace.service.js.map +0 -1
  295. package/dist/index.d.ts +0 -5
  296. package/dist/index.d.ts.map +0 -1
  297. package/dist/index.js +0 -23
  298. package/dist/index.js.map +0 -1
  299. package/dist/skill/controllers/skill.controller.d.ts.map +0 -1
  300. package/dist/skill/controllers/skill.controller.js.map +0 -1
  301. package/dist/skill/entities/octo-skill.entity.d.ts.map +0 -1
  302. package/dist/skill/entities/octo-skill.entity.js.map +0 -1
  303. package/dist/skill/index.d.ts.map +0 -1
  304. package/dist/skill/index.js.map +0 -1
  305. package/dist/skill/services/skill-generator.service.d.ts.map +0 -1
  306. package/dist/skill/services/skill-generator.service.js.map +0 -1
  307. package/dist/skill/services/skill-installer.service.d.ts.map +0 -1
  308. package/dist/skill/services/skill-installer.service.js.map +0 -1
  309. package/dist/skill/services/skill-registry.service.d.ts.map +0 -1
  310. package/dist/skill/services/skill-registry.service.js.map +0 -1
  311. package/dist/skill/types.d.ts.map +0 -1
  312. /package/dist/{cli → src/cli}/adapters/claude-cli.adapter.d.ts +0 -0
  313. /package/dist/{cli → src/cli}/adapters/codex-cli.adapter.d.ts +0 -0
  314. /package/dist/{cli → src/cli}/adapters/codex-cli.adapter.js +0 -0
  315. /package/dist/{cli → src/cli}/adapters/detect-cli.d.ts +0 -0
  316. /package/dist/{cli → src/cli}/adapters/detect-cli.js +0 -0
  317. /package/dist/{cli → src/cli}/adapters/gemini-cli.adapter.d.ts +0 -0
  318. /package/dist/{cli → src/cli}/adapters/gemini-cli.adapter.js +0 -0
  319. /package/dist/{cli → src/cli}/adapters/index.d.ts +0 -0
  320. /package/dist/{cli → src/cli}/adapters/index.js +0 -0
  321. /package/dist/{cli → src/cli}/cli-registry.service.d.ts +0 -0
  322. /package/dist/{cli → src/cli}/index.js +0 -0
  323. /package/dist/{cli → src/cli}/types.js +0 -0
  324. /package/dist/{skill → src/skill}/entities/octo-skill.entity.d.ts +0 -0
  325. /package/dist/{skill → src/skill}/entities/octo-skill.entity.js +0 -0
  326. /package/dist/{skill → src/skill}/services/skill-generator.service.d.ts +0 -0
  327. /package/dist/{skill → src/skill}/services/skill-generator.service.js +0 -0
  328. /package/dist/{skill → src/skill}/services/skill-registry.service.d.ts +0 -0
  329. /package/dist/{skill → src/skill}/types.js +0 -0
@@ -0,0 +1,248 @@
1
+ 'use client'
2
+
3
+ import { useState, useEffect, useCallback } from 'react'
4
+ import { useTranslations } from 'next-intl'
5
+ import { toast } from 'sonner'
6
+ import { RefreshCw, Loader2, Plus, X } from 'lucide-react'
7
+
8
+ import { PageHeader } from '@octo-cyber/ui/components/shared/page-header'
9
+ import { Button } from '@octo-cyber/ui/components/ui/button'
10
+ import { Badge } from '@octo-cyber/ui/components/ui/badge'
11
+ import { Input } from '@octo-cyber/ui/components/ui/input'
12
+ import { Label } from '@octo-cyber/ui/components/ui/label'
13
+ import {
14
+ Table,
15
+ TableBody,
16
+ TableCell,
17
+ TableHead,
18
+ TableHeader,
19
+ TableRow,
20
+ } from '@octo-cyber/ui/components/ui/table'
21
+ import {
22
+ Dialog,
23
+ DialogContent,
24
+ DialogDescription,
25
+ DialogFooter,
26
+ DialogHeader,
27
+ DialogTitle,
28
+ } from '@octo-cyber/ui/components/ui/dialog'
29
+
30
+ import { agentSessionService } from '../services/agent-session.service'
31
+ import type { AgentSession, SessionStatus } from '../services/agent-session.service'
32
+
33
+ function StatusBadge({ status }: { status: SessionStatus }) {
34
+ const t = useTranslations('aiTools.sessions')
35
+ return (
36
+ <Badge
37
+ variant="outline"
38
+ className={
39
+ status === 'active'
40
+ ? 'bg-green-500 hover:bg-green-500/80 text-white border-transparent'
41
+ : 'text-muted-foreground'
42
+ }
43
+ >
44
+ {t(status)}
45
+ </Badge>
46
+ )
47
+ }
48
+
49
+ function ContextPanel({ context }: { context: Record<string, unknown> }) {
50
+ const t = useTranslations('aiTools.sessions')
51
+ return (
52
+ <div className="rounded-lg border dark:border-zinc-700 bg-muted/30 dark:bg-zinc-800/30 p-4">
53
+ <p className="text-sm font-medium text-muted-foreground mb-2">{t('context')}</p>
54
+ <pre className="text-xs bg-muted dark:bg-zinc-900 rounded p-3 overflow-auto max-h-60 whitespace-pre-wrap">
55
+ {JSON.stringify(context, null, 2)}
56
+ </pre>
57
+ </div>
58
+ )
59
+ }
60
+
61
+ export default function SessionsPage() {
62
+ const t = useTranslations('aiTools.sessions')
63
+ const tc = useTranslations('common')
64
+
65
+ const [sessions, setSessions] = useState<AgentSession[]>([])
66
+ const [loading, setLoading] = useState(true)
67
+ const [expandedId, setExpandedId] = useState<string | null>(null)
68
+ const [dialogOpen, setDialogOpen] = useState(false)
69
+ const [newName, setNewName] = useState('')
70
+ const [creating, setCreating] = useState(false)
71
+ const [closingId, setClosingId] = useState<string | null>(null)
72
+
73
+ const loadSessions = useCallback(async () => {
74
+ try {
75
+ const data = await agentSessionService.listSessions()
76
+ setSessions(data)
77
+ } catch {
78
+ toast.error(tc('loadDataFailed'))
79
+ } finally {
80
+ setLoading(false)
81
+ }
82
+ }, [tc])
83
+
84
+ useEffect(() => {
85
+ loadSessions()
86
+ }, [loadSessions])
87
+
88
+ const handleCreate = async () => {
89
+ setCreating(true)
90
+ try {
91
+ await agentSessionService.createSession(newName.trim() || undefined)
92
+ toast.success(t('createSuccess'))
93
+ setDialogOpen(false)
94
+ setNewName('')
95
+ await loadSessions()
96
+ } catch {
97
+ toast.error(tc('operationFailed'))
98
+ } finally {
99
+ setCreating(false)
100
+ }
101
+ }
102
+
103
+ const handleClose = async (id: string, e: React.MouseEvent) => {
104
+ e.stopPropagation()
105
+ setClosingId(id)
106
+ try {
107
+ await agentSessionService.closeSession(id)
108
+ toast.success(t('closeSuccess'))
109
+ await loadSessions()
110
+ } catch {
111
+ toast.error(tc('operationFailed'))
112
+ } finally {
113
+ setClosingId(null)
114
+ }
115
+ }
116
+
117
+ const toggleExpand = (id: string) => {
118
+ setExpandedId((prev) => (prev === id ? null : id))
119
+ }
120
+
121
+ return (
122
+ <div className="space-y-6">
123
+ <PageHeader title={t('title')} description={t('description')}>
124
+ <div className="flex gap-2">
125
+ <Button variant="outline" onClick={loadSessions} disabled={loading}>
126
+ {loading ? (
127
+ <Loader2 className="mr-2 h-4 w-4 animate-spin" />
128
+ ) : (
129
+ <RefreshCw className="mr-2 h-4 w-4" />
130
+ )}
131
+ {tc('refresh')}
132
+ </Button>
133
+ <Button onClick={() => setDialogOpen(true)}>
134
+ <Plus className="mr-2 h-4 w-4" />
135
+ {t('newSession')}
136
+ </Button>
137
+ </div>
138
+ </PageHeader>
139
+
140
+ <div className="rounded-lg border dark:border-zinc-800">
141
+ <Table>
142
+ <TableHeader>
143
+ <TableRow>
144
+ <TableHead className="w-[30%]">{t('name')}</TableHead>
145
+ <TableHead>{t('status')}</TableHead>
146
+ <TableHead>{t('runs')}</TableHead>
147
+ <TableHead>{t('createdAt')}</TableHead>
148
+ <TableHead className="text-right">{tc('actions')}</TableHead>
149
+ </TableRow>
150
+ </TableHeader>
151
+ <TableBody>
152
+ {loading ? (
153
+ <TableRow>
154
+ <TableCell colSpan={5} className="h-32 text-center text-muted-foreground">
155
+ {tc('loading')}
156
+ </TableCell>
157
+ </TableRow>
158
+ ) : sessions.length === 0 ? (
159
+ <TableRow>
160
+ <TableCell colSpan={5} className="h-32 text-center text-muted-foreground">
161
+ {t('noSessions')}
162
+ </TableCell>
163
+ </TableRow>
164
+ ) : (
165
+ sessions.map((session) => (
166
+ <>
167
+ <TableRow
168
+ key={session.id}
169
+ className="cursor-pointer hover:bg-muted/50 dark:hover:bg-zinc-800/50"
170
+ onClick={() => toggleExpand(session.id)}
171
+ >
172
+ <TableCell className="font-medium text-sm">
173
+ {session.name ?? <span className="text-muted-foreground italic">{t('unnamed')}</span>}
174
+ </TableCell>
175
+ <TableCell>
176
+ <StatusBadge status={session.status} />
177
+ </TableCell>
178
+ <TableCell className="text-sm text-muted-foreground">
179
+ {session.runIds.length}
180
+ </TableCell>
181
+ <TableCell className="text-sm">
182
+ {new Date(session.createdAt).toLocaleString()}
183
+ </TableCell>
184
+ <TableCell className="text-right">
185
+ {session.status === 'active' && (
186
+ <Button
187
+ size="sm"
188
+ variant="outline"
189
+ onClick={(e) => handleClose(session.id, e)}
190
+ disabled={closingId === session.id}
191
+ className="h-7 px-2 text-xs"
192
+ >
193
+ {closingId === session.id ? (
194
+ <Loader2 className="h-3 w-3 animate-spin" />
195
+ ) : (
196
+ <X className="h-3 w-3" />
197
+ )}
198
+ <span className="ml-1">{t('close')}</span>
199
+ </Button>
200
+ )}
201
+ </TableCell>
202
+ </TableRow>
203
+ {expandedId === session.id && (
204
+ <TableRow key={`${session.id}-context`}>
205
+ <TableCell colSpan={5} className="bg-muted/20 dark:bg-zinc-900/40 p-4">
206
+ <ContextPanel context={session.context} />
207
+ </TableCell>
208
+ </TableRow>
209
+ )}
210
+ </>
211
+ ))
212
+ )}
213
+ </TableBody>
214
+ </Table>
215
+ </div>
216
+
217
+ <Dialog open={dialogOpen} onOpenChange={(open) => { if (!creating) setDialogOpen(open) }}>
218
+ <DialogContent className="sm:max-w-md dark:bg-zinc-900 dark:border-zinc-700">
219
+ <DialogHeader>
220
+ <DialogTitle>{t('newSession')}</DialogTitle>
221
+ <DialogDescription>{t('sessionName')}</DialogDescription>
222
+ </DialogHeader>
223
+ <div className="space-y-2 py-2">
224
+ <Label htmlFor="session-name">{t('name')}</Label>
225
+ <Input
226
+ id="session-name"
227
+ placeholder={t('namePlaceholder')}
228
+ value={newName}
229
+ onChange={(e) => setNewName(e.target.value)}
230
+ disabled={creating}
231
+ onKeyDown={(e) => { if (e.key === 'Enter') handleCreate() }}
232
+ className="dark:bg-zinc-800 dark:border-zinc-700"
233
+ />
234
+ </div>
235
+ <DialogFooter>
236
+ <Button variant="outline" onClick={() => setDialogOpen(false)} disabled={creating}>
237
+ {tc('cancel')}
238
+ </Button>
239
+ <Button onClick={handleCreate} disabled={creating}>
240
+ {creating && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
241
+ {tc('create')}
242
+ </Button>
243
+ </DialogFooter>
244
+ </DialogContent>
245
+ </Dialog>
246
+ </div>
247
+ )
248
+ }
@@ -0,0 +1,25 @@
1
+ 'use client'
2
+
3
+ import { useTranslations } from 'next-intl'
4
+ import { Store } from 'lucide-react'
5
+ import { PageHeader } from '@octo-cyber/ui/components/shared/page-header'
6
+ import { Card, CardContent } from '@octo-cyber/ui/components/ui/card'
7
+
8
+ export default function SkillMarketPage() {
9
+ const t = useTranslations('aiSkills')
10
+
11
+ return (
12
+ <div className="space-y-6">
13
+ <PageHeader
14
+ title={t('market.title')}
15
+ description={t('market.description')}
16
+ />
17
+ <Card>
18
+ <CardContent className="flex flex-col items-center justify-center py-16 gap-4 text-muted-foreground">
19
+ <Store className="h-12 w-12 opacity-40" />
20
+ <p className="text-sm">{t('market.comingSoon')}</p>
21
+ </CardContent>
22
+ </Card>
23
+ </div>
24
+ )
25
+ }
@@ -3,46 +3,19 @@
3
3
  import { useState, useEffect, useCallback } from 'react'
4
4
  import { useTranslations } from 'next-intl'
5
5
  import { toast } from 'sonner'
6
- import {
7
- RefreshCw,
8
- Trash2,
9
- Plus,
10
- FolderOpen,
11
- Clock,
12
- HardDrive,
13
- Loader2,
14
- } from 'lucide-react'
6
+ import { RefreshCw, Plus, Clock, Loader2 } from 'lucide-react'
15
7
 
16
8
  import { ConfirmDialog } from '@octo-cyber/ui/components/shared/confirm-dialog'
17
9
  import { Button } from '@octo-cyber/ui/components/ui/button'
18
- import { Badge } from '@octo-cyber/ui/components/ui/badge'
19
10
  import { Input } from '@octo-cyber/ui/components/ui/input'
20
11
  import { Label } from '@octo-cyber/ui/components/ui/label'
21
12
  import {
22
- Card,
23
- CardContent,
24
- CardHeader,
25
- CardTitle,
26
- } from '@octo-cyber/ui/components/ui/card'
27
- import {
28
- Dialog,
29
- DialogContent,
30
- DialogHeader,
31
- DialogTitle,
32
- DialogDescription,
33
- DialogFooter,
13
+ Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter,
34
14
  } from '@octo-cyber/ui/components/ui/dialog'
35
15
  import { aiCliService } from '../services/ai-cli-service'
16
+ import { WorkspaceItem } from '../components/WorkspaceItem'
36
17
  import type { WorkspaceInfo } from '../services/ai-cli-service'
37
18
 
38
- function formatDate(dateStr: string): string {
39
- try {
40
- return new Date(dateStr).toLocaleString()
41
- } catch {
42
- return dateStr
43
- }
44
- }
45
-
46
19
  export default function WorkspaceSection() {
47
20
  const t = useTranslations('aiCli.workspaces')
48
21
  const tc = useTranslations('common')
@@ -67,9 +40,7 @@ export default function WorkspaceSection() {
67
40
  }
68
41
  }, [t])
69
42
 
70
- useEffect(() => {
71
- loadWorkspaces()
72
- }, [loadWorkspaces])
43
+ useEffect(() => { loadWorkspaces() }, [loadWorkspaces])
73
44
 
74
45
  const handleCreatePersistent = async () => {
75
46
  if (!newWorkspaceName.trim()) return
@@ -120,32 +91,14 @@ export default function WorkspaceSection() {
120
91
  <div className="flex items-center justify-between">
121
92
  <div>
122
93
  <h3 className="text-lg font-semibold">{t('title')}</h3>
123
- <p className="text-sm text-muted-foreground">
124
- {t('summary', { temp: tempCount, persistent: persistentCount })}
125
- </p>
94
+ <p className="text-sm text-muted-foreground">{t('summary', { temp: tempCount, persistent: persistentCount })}</p>
126
95
  </div>
127
96
  <div className="flex gap-2">
128
- <Button
129
- variant="outline"
130
- size="sm"
131
- onClick={handleCleanup}
132
- disabled={isCleaning}
133
- >
134
- {isCleaning ? (
135
- <Loader2 className="mr-1 h-3 w-3 animate-spin" />
136
- ) : (
137
- <Clock className="mr-1 h-3 w-3" />
138
- )}
97
+ <Button variant="outline" size="sm" onClick={handleCleanup} disabled={isCleaning}>
98
+ {isCleaning ? <Loader2 className="mr-1 h-3 w-3 animate-spin" /> : <Clock className="mr-1 h-3 w-3" />}
139
99
  {t('actions.cleanup')}
140
100
  </Button>
141
- <Button
142
- variant="outline"
143
- size="sm"
144
- onClick={() => {
145
- setNewWorkspaceName('')
146
- setCreateDialogOpen(true)
147
- }}
148
- >
101
+ <Button variant="outline" size="sm" onClick={() => { setNewWorkspaceName(''); setCreateDialogOpen(true) }}>
149
102
  <Plus className="mr-1 h-3 w-3" />
150
103
  {t('actions.create')}
151
104
  </Button>
@@ -166,49 +119,7 @@ export default function WorkspaceSection() {
166
119
  ) : (
167
120
  <div className="grid gap-3 md:grid-cols-2 lg:grid-cols-3">
168
121
  {workspaces.map((ws) => (
169
- <Card key={ws.id}>
170
- <CardHeader className="pb-2">
171
- <div className="flex items-center justify-between">
172
- <div className="flex items-center gap-2">
173
- {ws.type === 'persistent' ? (
174
- <HardDrive className="h-4 w-4 text-muted-foreground" />
175
- ) : (
176
- <FolderOpen className="h-4 w-4 text-muted-foreground" />
177
- )}
178
- <CardTitle className="text-sm">
179
- {ws.name || ws.id.slice(0, 8)}
180
- </CardTitle>
181
- </div>
182
- <Badge variant={ws.type === 'persistent' ? 'default' : 'secondary'}>
183
- {ws.type === 'persistent' ? t('type.persistent') : t('type.temp')}
184
- </Badge>
185
- </div>
186
- </CardHeader>
187
- <CardContent className="space-y-2">
188
- <p className="text-xs text-muted-foreground truncate" title={ws.path}>
189
- {ws.path}
190
- </p>
191
- <div className="flex items-center justify-between text-xs text-muted-foreground">
192
- <span>{formatDate(ws.createdAt)}</span>
193
- {ws.expiresAt && (
194
- <span className="text-orange-500">
195
- {t('expiresAt', { time: formatDate(ws.expiresAt) })}
196
- </span>
197
- )}
198
- </div>
199
- <div className="flex justify-end pt-1">
200
- <Button
201
- variant="ghost"
202
- size="sm"
203
- className="text-destructive hover:text-destructive"
204
- onClick={() => setDeleteTarget(ws)}
205
- >
206
- <Trash2 className="mr-1 h-3 w-3" />
207
- {tc('delete')}
208
- </Button>
209
- </div>
210
- </CardContent>
211
- </Card>
122
+ <WorkspaceItem key={ws.id} ws={ws} onDelete={setDeleteTarget} />
212
123
  ))}
213
124
  </div>
214
125
  )}
@@ -222,24 +133,13 @@ export default function WorkspaceSection() {
222
133
  <div className="space-y-4">
223
134
  <div className="space-y-2">
224
135
  <Label>{t('createDialog.nameLabel')}</Label>
225
- <Input
226
- placeholder={t('createDialog.namePlaceholder')}
227
- value={newWorkspaceName}
228
- onChange={(e) => setNewWorkspaceName(e.target.value)}
229
- />
136
+ <Input placeholder={t('createDialog.namePlaceholder')} value={newWorkspaceName} onChange={(e) => setNewWorkspaceName(e.target.value)} />
230
137
  </div>
231
138
  </div>
232
139
  <DialogFooter>
233
- <Button variant="outline" onClick={() => setCreateDialogOpen(false)}>
234
- {tc('cancel')}
235
- </Button>
236
- <Button
237
- onClick={handleCreatePersistent}
238
- disabled={isCreating || !newWorkspaceName.trim()}
239
- >
240
- {isCreating ? (
241
- <Loader2 className="mr-1 h-3 w-3 animate-spin" />
242
- ) : null}
140
+ <Button variant="outline" onClick={() => setCreateDialogOpen(false)}>{tc('cancel')}</Button>
141
+ <Button onClick={handleCreatePersistent} disabled={isCreating || !newWorkspaceName.trim()}>
142
+ {isCreating ? <Loader2 className="mr-1 h-3 w-3 animate-spin" /> : null}
243
143
  {tc('create')}
244
144
  </Button>
245
145
  </DialogFooter>