@bpinhosilva/agent-orchestrator 1.0.0-alpha.25 → 1.0.0-alpha.27

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 (258) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +170 -194
  3. package/dist/agents/agents.controller.js +0 -1
  4. package/dist/agents/agents.module.js +0 -1
  5. package/dist/agents/agents.service.js +0 -1
  6. package/dist/agents/dto/agent-request.dto.js +0 -1
  7. package/dist/agents/dto/create-agent.dto.js +0 -1
  8. package/dist/agents/dto/update-agent.dto.js +0 -1
  9. package/dist/agents/entities/agent.entity.js +0 -1
  10. package/dist/agents/enums/provider.enum.js +0 -1
  11. package/dist/agents/implementations/claude.agent.js +0 -1
  12. package/dist/agents/implementations/gemini.agent.js +0 -1
  13. package/dist/agents/interfaces/agent.interface.js +0 -1
  14. package/dist/agents/registry/agent.registry.js +0 -1
  15. package/dist/app.controller.d.ts +3 -0
  16. package/dist/app.controller.js +12 -1
  17. package/dist/app.module.js +13 -8
  18. package/dist/app.service.d.ts +3 -0
  19. package/dist/app.service.js +3 -1
  20. package/dist/auth/auth.controller.d.ts +7 -9
  21. package/dist/auth/auth.controller.js +14 -2
  22. package/dist/auth/auth.module.js +0 -1
  23. package/dist/auth/auth.service.d.ts +5 -10
  24. package/dist/auth/auth.service.js +35 -5
  25. package/dist/auth/decorators/current-user.decorator.js +0 -1
  26. package/dist/auth/decorators/public.decorator.js +0 -1
  27. package/dist/auth/decorators/roles.decorator.js +0 -1
  28. package/dist/auth/dto/login.dto.js +0 -1
  29. package/dist/auth/dto/register.dto.d.ts +3 -0
  30. package/dist/auth/dto/register.dto.js +16 -2
  31. package/dist/auth/dto/update-profile.dto.d.ts +9 -0
  32. package/dist/auth/dto/update-profile.dto.js +65 -0
  33. package/dist/auth/entities/refresh-token.entity.js +0 -1
  34. package/dist/auth/guards/jwt-auth.guard.js +0 -1
  35. package/dist/auth/guards/roles.guard.js +0 -1
  36. package/dist/auth/strategies/jwt.strategy.d.ts +1 -1
  37. package/dist/auth/strategies/jwt.strategy.js +9 -2
  38. package/dist/cli/index.d.ts +0 -5
  39. package/dist/cli/index.js +29 -59
  40. package/dist/common/common.module.js +0 -1
  41. package/dist/common/entities/artifact.entity.js +0 -1
  42. package/dist/common/filters/http-exception.filter.js +0 -1
  43. package/dist/common/storage.service.js +0 -1
  44. package/dist/config/env.validation.js +4 -2
  45. package/dist/config/port.defaults.d.ts +3 -0
  46. package/dist/config/port.defaults.js +9 -0
  47. package/dist/config/runtime-paths.d.ts +6 -0
  48. package/dist/config/runtime-paths.js +38 -0
  49. package/dist/config/typeorm.d.ts +3 -0
  50. package/dist/config/typeorm.js +27 -19
  51. package/dist/database/migration-state.d.ts +11 -0
  52. package/dist/database/migration-state.js +78 -0
  53. package/dist/main.js +25 -3
  54. package/dist/migrations/{1774850116434-CreateRefreshTokens.d.ts → 1775260737095-BaselineSchema.d.ts} +1 -1
  55. package/dist/migrations/1775260737095-BaselineSchema.js +215 -0
  56. package/dist/models/dto/create-model.dto.js +0 -1
  57. package/dist/models/dto/update-model.dto.js +0 -1
  58. package/dist/models/entities/model.entity.js +0 -1
  59. package/dist/models/models.controller.js +0 -1
  60. package/dist/models/models.module.js +0 -1
  61. package/dist/models/models.service.js +0 -1
  62. package/dist/projects/dto/add-member.dto.js +0 -1
  63. package/dist/projects/dto/create-project.dto.js +0 -1
  64. package/dist/projects/dto/update-project.dto.js +0 -1
  65. package/dist/projects/entities/project-member.entity.js +0 -1
  66. package/dist/projects/entities/project.entity.js +0 -1
  67. package/dist/projects/projects.controller.js +0 -1
  68. package/dist/projects/projects.module.js +0 -1
  69. package/dist/projects/projects.service.js +0 -1
  70. package/dist/providers/dto/create-provider.dto.js +0 -1
  71. package/dist/providers/dto/update-provider.dto.js +0 -1
  72. package/dist/providers/entities/provider.entity.js +0 -1
  73. package/dist/providers/providers.controller.js +0 -1
  74. package/dist/providers/providers.module.js +0 -1
  75. package/dist/providers/providers.service.js +0 -1
  76. package/dist/tasks/comments.controller.js +0 -1
  77. package/dist/tasks/comments.service.js +0 -1
  78. package/dist/tasks/dto/create-comment.dto.js +0 -1
  79. package/dist/tasks/dto/create-recurrent-task.dto.js +0 -1
  80. package/dist/tasks/dto/create-task.dto.js +0 -1
  81. package/dist/tasks/dto/update-comment.dto.js +0 -1
  82. package/dist/tasks/dto/update-recurrent-task.dto.js +0 -1
  83. package/dist/tasks/dto/update-task.dto.js +0 -1
  84. package/dist/tasks/entities/comment.entity.js +0 -1
  85. package/dist/tasks/entities/recurrent-task-exec.entity.js +0 -1
  86. package/dist/tasks/entities/recurrent-task.entity.js +0 -1
  87. package/dist/tasks/entities/task.entity.js +0 -1
  88. package/dist/tasks/recurrent-task-scheduler.service.js +0 -1
  89. package/dist/tasks/recurrent-tasks.controller.js +0 -1
  90. package/dist/tasks/recurrent-tasks.service.js +0 -1
  91. package/dist/tasks/task-scheduler.service.js +0 -1
  92. package/dist/tasks/tasks.controller.js +0 -1
  93. package/dist/tasks/tasks.module.js +0 -1
  94. package/dist/tasks/tasks.service.js +0 -1
  95. package/dist/ui/assets/AgentFleet-2bUM5tS8.js +1 -0
  96. package/dist/ui/assets/{ConfirmDialog-mRH8i_xK.js → ConfirmDialog-C1bkNgZT.js} +2 -2
  97. package/dist/ui/assets/{MarkdownField-flCuU7w3.js → MarkdownField-CYto7bYs.js} +1 -1
  98. package/dist/ui/assets/Profile-GA-ikEkL.js +1 -0
  99. package/dist/ui/assets/ProjectDetail-U4T3kwT6.js +1 -0
  100. package/dist/ui/assets/Providers-Dr8fFIru.js +1 -0
  101. package/dist/ui/assets/Scheduler-D1seGplm.js +1 -0
  102. package/dist/ui/assets/{TaskDetail-BdQJCVo3.js → TaskDetail-CEKuDv4W.js} +1 -1
  103. package/dist/ui/assets/TaskManager-vYV5vdM4.js +8 -0
  104. package/dist/ui/assets/box-CsCoq7gr.js +1 -0
  105. package/dist/ui/assets/chevron-down-g12gVicW.js +1 -0
  106. package/dist/ui/assets/index-CVlXsOAm.js +2 -0
  107. package/dist/ui/assets/index-CoqfjJsB.css +2 -0
  108. package/dist/ui/assets/providers-_o5m2NEh.js +1 -0
  109. package/dist/ui/assets/rocket-DvvoumQL.js +1 -0
  110. package/dist/ui/assets/{trending-up-DBTQIgW8.js → trending-up-BqKi8IJf.js} +1 -1
  111. package/dist/ui/avatar-presets/avatar-01.svg +11 -0
  112. package/dist/ui/avatar-presets/avatar-02.svg +12 -0
  113. package/dist/ui/avatar-presets/avatar-03.svg +12 -0
  114. package/dist/ui/avatar-presets/avatar-04.svg +12 -0
  115. package/dist/ui/avatar-presets/avatar-05.svg +12 -0
  116. package/dist/ui/avatar-presets/avatar-06.svg +12 -0
  117. package/dist/ui/avatar-presets/avatar-07.svg +12 -0
  118. package/dist/ui/avatar-presets/avatar-08.svg +12 -0
  119. package/dist/ui/index.html +5 -4
  120. package/dist/uploads/uploads.controller.js +0 -1
  121. package/dist/uploads/uploads.module.js +0 -1
  122. package/dist/users/avatar.constants.d.ts +11 -0
  123. package/dist/users/avatar.constants.js +35 -0
  124. package/dist/users/dto/create-user.dto.d.ts +3 -0
  125. package/dist/users/dto/create-user.dto.js +16 -2
  126. package/dist/users/dto/update-user.dto.d.ts +2 -0
  127. package/dist/users/dto/update-user.dto.js +18 -2
  128. package/dist/users/entities/user.entity.d.ts +2 -0
  129. package/dist/users/entities/user.entity.js +9 -0
  130. package/dist/users/users.controller.d.ts +3 -3
  131. package/dist/users/users.controller.js +12 -13
  132. package/dist/users/users.module.js +0 -1
  133. package/dist/users/users.service.d.ts +3 -0
  134. package/dist/users/users.service.js +9 -1
  135. package/package.json +15 -8
  136. package/dist/migrations/1774746981348-InitialSchemaAndSeed.d.ts +0 -6
  137. package/dist/migrations/1774746981348-InitialSchemaAndSeed.js +0 -57
  138. package/dist/migrations/1774850116434-CreateRefreshTokens.js +0 -68
  139. package/dist/migrations/1775103764402-AddRbacAndProjectMembership.d.ts +0 -6
  140. package/dist/migrations/1775103764402-AddRbacAndProjectMembership.js +0 -124
  141. package/dist/ui/assets/AgentFleet-CC0h_Ar0.js +0 -1
  142. package/dist/ui/assets/ProjectDetail-CY-VSV2D.js +0 -1
  143. package/dist/ui/assets/Providers-C9_lxOG1.js +0 -1
  144. package/dist/ui/assets/Scheduler-Du2cIGfB.js +0 -1
  145. package/dist/ui/assets/TaskManager-CWDh69pf.js +0 -8
  146. package/dist/ui/assets/index-CCsHBe__.css +0 -1
  147. package/dist/ui/assets/index-yzhzS93F.js +0 -2
  148. package/dist/ui/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 +0 -0
  149. package/dist/ui/assets/inter-cyrillic-300-normal-LR1W_oT8.woff +0 -0
  150. package/dist/ui/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  151. package/dist/ui/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  152. package/dist/ui/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  153. package/dist/ui/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  154. package/dist/ui/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  155. package/dist/ui/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  156. package/dist/ui/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2 +0 -0
  157. package/dist/ui/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff +0 -0
  158. package/dist/ui/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  159. package/dist/ui/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  160. package/dist/ui/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  161. package/dist/ui/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  162. package/dist/ui/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  163. package/dist/ui/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  164. package/dist/ui/assets/inter-greek-300-normal-BrhSP0vQ.woff +0 -0
  165. package/dist/ui/assets/inter-greek-300-normal-DmGD3g_f.woff2 +0 -0
  166. package/dist/ui/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  167. package/dist/ui/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  168. package/dist/ui/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  169. package/dist/ui/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  170. package/dist/ui/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  171. package/dist/ui/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  172. package/dist/ui/assets/inter-greek-ext-300-normal-DLbbeei1.woff +0 -0
  173. package/dist/ui/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2 +0 -0
  174. package/dist/ui/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  175. package/dist/ui/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  176. package/dist/ui/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  177. package/dist/ui/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  178. package/dist/ui/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  179. package/dist/ui/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  180. package/dist/ui/assets/inter-latin-300-normal-BVlfKGgI.woff2 +0 -0
  181. package/dist/ui/assets/inter-latin-300-normal-i8F0SvXL.woff +0 -0
  182. package/dist/ui/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  183. package/dist/ui/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  184. package/dist/ui/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  185. package/dist/ui/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  186. package/dist/ui/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  187. package/dist/ui/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  188. package/dist/ui/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2 +0 -0
  189. package/dist/ui/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff +0 -0
  190. package/dist/ui/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  191. package/dist/ui/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  192. package/dist/ui/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  193. package/dist/ui/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  194. package/dist/ui/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  195. package/dist/ui/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  196. package/dist/ui/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 +0 -0
  197. package/dist/ui/assets/inter-vietnamese-300-normal-DDGmYYdT.woff +0 -0
  198. package/dist/ui/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  199. package/dist/ui/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  200. package/dist/ui/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  201. package/dist/ui/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  202. package/dist/ui/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  203. package/dist/ui/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  204. package/dist/ui/assets/manrope-cyrillic-400-normal-BMzJvInZ.woff2 +0 -0
  205. package/dist/ui/assets/manrope-cyrillic-400-normal-Dvx59UGC.woff +0 -0
  206. package/dist/ui/assets/manrope-cyrillic-600-normal-DvRl3Mj-.woff2 +0 -0
  207. package/dist/ui/assets/manrope-cyrillic-600-normal-It4mZcQk.woff +0 -0
  208. package/dist/ui/assets/manrope-cyrillic-700-normal-7JNVKxyl.woff +0 -0
  209. package/dist/ui/assets/manrope-cyrillic-700-normal-Dw_fZAg2.woff2 +0 -0
  210. package/dist/ui/assets/manrope-cyrillic-800-normal-AvdZ5mAV.woff2 +0 -0
  211. package/dist/ui/assets/manrope-cyrillic-800-normal-BuEMjQU-.woff +0 -0
  212. package/dist/ui/assets/manrope-greek-400-normal-CM4qok81.woff2 +0 -0
  213. package/dist/ui/assets/manrope-greek-400-normal-DuX9RsAR.woff +0 -0
  214. package/dist/ui/assets/manrope-greek-600-normal-BoRV6lzK.woff2 +0 -0
  215. package/dist/ui/assets/manrope-greek-600-normal-CF2i9ZRY.woff +0 -0
  216. package/dist/ui/assets/manrope-greek-700-normal-CHUG9PD8.woff2 +0 -0
  217. package/dist/ui/assets/manrope-greek-700-normal-DyfsrCpP.woff +0 -0
  218. package/dist/ui/assets/manrope-greek-800-normal-Bw-67qu9.woff +0 -0
  219. package/dist/ui/assets/manrope-greek-800-normal-CDvU698_.woff2 +0 -0
  220. package/dist/ui/assets/manrope-latin-400-normal-8tf8FM3T.woff +0 -0
  221. package/dist/ui/assets/manrope-latin-400-normal-PaqtzbVb.woff2 +0 -0
  222. package/dist/ui/assets/manrope-latin-600-normal-4f0koTD-.woff2 +0 -0
  223. package/dist/ui/assets/manrope-latin-600-normal-BqgrALkZ.woff +0 -0
  224. package/dist/ui/assets/manrope-latin-700-normal-BZp_XxE4.woff2 +0 -0
  225. package/dist/ui/assets/manrope-latin-700-normal-DGRFkw-m.woff +0 -0
  226. package/dist/ui/assets/manrope-latin-800-normal-BfWYOv1c.woff2 +0 -0
  227. package/dist/ui/assets/manrope-latin-800-normal-uHUdIJgA.woff +0 -0
  228. package/dist/ui/assets/manrope-latin-ext-400-normal-C-X6QNXX.woff +0 -0
  229. package/dist/ui/assets/manrope-latin-ext-400-normal-CMDvPJRp.woff2 +0 -0
  230. package/dist/ui/assets/manrope-latin-ext-600-normal-_gBojHdJ.woff2 +0 -0
  231. package/dist/ui/assets/manrope-latin-ext-600-normal-u5Pl7hTU.woff +0 -0
  232. package/dist/ui/assets/manrope-latin-ext-700-normal-DYOwVNan.woff2 +0 -0
  233. package/dist/ui/assets/manrope-latin-ext-700-normal-eVCcYqtJ.woff +0 -0
  234. package/dist/ui/assets/manrope-latin-ext-800-normal-BQAQsuQc.woff +0 -0
  235. package/dist/ui/assets/manrope-latin-ext-800-normal-DdFx7KEb.woff2 +0 -0
  236. package/dist/ui/assets/manrope-vietnamese-400-normal-D7E_mLGF.woff +0 -0
  237. package/dist/ui/assets/manrope-vietnamese-400-normal-DHb3EETF.woff2 +0 -0
  238. package/dist/ui/assets/manrope-vietnamese-600-normal-C1J5PCl_.woff2 +0 -0
  239. package/dist/ui/assets/manrope-vietnamese-600-normal-lA7a_7Ok.woff +0 -0
  240. package/dist/ui/assets/manrope-vietnamese-700-normal-CUqMx5-1.woff2 +0 -0
  241. package/dist/ui/assets/manrope-vietnamese-700-normal-pt65Fn2Z.woff +0 -0
  242. package/dist/ui/assets/manrope-vietnamese-800-normal-ClPWri-A.woff2 +0 -0
  243. package/dist/ui/assets/manrope-vietnamese-800-normal-bvg7iBCV.woff +0 -0
  244. package/dist/ui/assets/providers-BMRq_pkm.js +0 -1
  245. /package/dist/ui/assets/{InitialsAvatar-0mIRaTK8.js → InitialsAvatar-B_nsCs58.js} +0 -0
  246. /package/dist/ui/assets/{clock-C0d1RzP_.js → clock-R052yhHC.js} +0 -0
  247. /package/dist/ui/assets/{cn-i-5ItZGU.js → cn-w7-BIiZy.js} +0 -0
  248. /package/dist/ui/assets/{eye-RB18-re_.js → eye-l4Yx91ui.js} +0 -0
  249. /package/dist/ui/assets/{layers-D5ECV506.js → layers-DmKVnI8y.js} +0 -0
  250. /package/dist/ui/assets/{send-BA7-sXzg.js → send-CaBqcm_I.js} +0 -0
  251. /package/dist/ui/assets/{shield-check-D7JIluse.js → shield-check-Vujd3EPc.js} +0 -0
  252. /package/dist/ui/assets/{sparkles-CCXaTT3H.js → sparkles-DfBrsYtR.js} +0 -0
  253. /package/dist/ui/assets/{tasks-DEHCZk48.js → tasks-9h6EhJqU.js} +0 -0
  254. /package/dist/ui/assets/{trash-2-BNP4kC5c.js → trash-2-Dj3ML80c.js} +0 -0
  255. /package/dist/ui/assets/{user-Cp55HCCi.js → user-r_WwM0uQ.js} +0 -0
  256. /package/dist/ui/assets/{vendor-forms-HC2wK6B9.js → vendor-forms-BhyC9zH1.js} +0 -0
  257. /package/dist/ui/assets/{vendor-motion-CkXYvnuI.js → vendor-motion-CYM51UOz.js} +0 -0
  258. /package/dist/ui/assets/{zap-D1sST66b.js → zap-Vy8-GCO1.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # [1.0.0-alpha.27](https://github.com/bpinhosilva/agent-orchestrator/compare/v1.0.0-alpha.26...v1.0.0-alpha.27) (2026-04-04)
2
+
3
+
4
+ ### Features
5
+
6
+ * update default port to 15789 for production, enhance migration handling, and refactor env ([e59ba31](https://github.com/bpinhosilva/agent-orchestrator/commit/e59ba3105c5ce7367281bf3ee637bcc3bc124dcc))
7
+ * update mascot image format and adjust display size in README ([6779313](https://github.com/bpinhosilva/agent-orchestrator/commit/6779313a26a6906ecb47a8819789dc8312f3d6fc))
8
+
9
+ # [1.0.0-alpha.26](https://github.com/bpinhosilva/agent-orchestrator/compare/v1.0.0-alpha.25...v1.0.0-alpha.26) (2026-04-04)
10
+
11
+
12
+ ### Features
13
+
14
+ * add AGENTS.md file ([51c706f](https://github.com/bpinhosilva/agent-orchestrator/commit/51c706f8784dd354280d853f605bb8c69e53175c))
15
+ * implement containerization, add health check endpoint, and update RBAC ([17149d3](https://github.com/bpinhosilva/agent-orchestrator/commit/17149d32a623f532308ba0f415a4b2ba332ec794))
16
+ * **refactor:** project terminology and update UI components ([47e5cb4](https://github.com/bpinhosilva/agent-orchestrator/commit/47e5cb4d45c05f893ebdd898f02ceeadcd213652))
17
+
1
18
  # [1.0.0-alpha.25](https://github.com/bpinhosilva/agent-orchestrator/compare/v1.0.0-alpha.24...v1.0.0-alpha.25) (2026-04-03)
2
19
 
3
20
 
package/README.md CHANGED
@@ -1,289 +1,265 @@
1
1
  # Agent Orchestrator
2
2
 
3
- [![CI](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/ci.yml/badge.svg)](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/ci.yml)
4
- [![Release](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/release.yml/badge.svg)](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/release.yml)
5
- [![Gitleaks](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/gitleaks.yml/badge.svg)](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/gitleaks.yml)
6
- [![Socket Badge](https://socket.dev/api/badge/npm/package/@bpinhosilva/agent-orchestrator)](https://socket.dev/npm/package/@bpinhosilva/agent-orchestrator)
7
-
8
- Agent Orchestrator is an open-source project designed to manage and orchestrate AI agents using both back-end services and front-end applications. It provides an automated agentic execution environment where you can create multiple agent profiles (e.g., Head Agent, Researcher, CMO) and delegate tasks to them through automated workflows.
9
-
10
- ## Features (In Progress & Planned)
11
- - **Agent Delegation**: Delegate tasks to specialized AI agents.
12
- - **Multi-Provider Support**: Google Gemini and Anthropic Claude providers.
13
- - **Job Scheduler**: Create and schedule recurring agentic tasks.
14
- - **Workflow Engine**: Drag-and-drop workflow builder supporting triggers, agent chaining, and outputs.
15
- - **Agent Capabilities**: File reading/writing, web search, email capabilities, and image generation.
16
- - **Role-Based Access Control**: Admin and member roles with project-level membership.
17
- - **TUI/CLI Tooling**: CLI executables to manage the installation and local agent configuration.
18
-
19
- ## Architecture
20
- - **Backend Framework**: NestJS 11 + TypeScript 5
21
- - **Frontend SPA**: React (built separately, served as static files)
22
- - **Database**: PostgreSQL (production) / SQLite (development)
23
- - **Testing**: Jest (TDD Approach with Unit & E2E)
24
- - **Architecture**: 3-Tier (Controller Service Repository)
3
+ <p align="center">
4
+ <img src="docs/assets/lupy-mascot.webp" alt="Lupy, the Agent Orchestrator mascot" width="500" />
5
+ </p>
6
+
7
+ <p align="center"><em>Lupy, the project mascot, inspired by Bruno's dog and companion of 10 years.</em></p>
8
+
9
+ <p align="center">
10
+ <a href="https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/ci.yml"><img src="https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
11
+ <a href="https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/gitleaks.yml"><img src="https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/gitleaks.yml/badge.svg" alt="Gitleaks" /></a>
12
+ <a href="https://socket.dev/npm/package/@bpinhosilva/agent-orchestrator"><img src="https://socket.dev/api/badge/npm/package/@bpinhosilva/agent-orchestrator" alt="Socket Badge" /></a>
13
+ </p>
14
+
15
+ Agent Orchestrator is an open-source platform for managing AI agents, tasks, and project-scoped automation across multiple model providers. It combines a NestJS API, a React dashboard, a packaged CLI/runtime, and Docker deployment options for both local use and production-style environments.
16
+
17
+ ## Current capabilities
18
+
19
+ - Multi-provider agent execution with Google Gemini and Anthropic Claude
20
+ - Agent profiles with provider/model selection
21
+ - Project management with project membership and RBAC
22
+ - Task execution plus recurring scheduling
23
+ - File upload and artifact-backed task workflows
24
+ - Packaged CLI/runtime for setup, run, status, logs, stop, and migrate
25
+ - React dashboard served by the backend or packaged runtime
26
+
27
+ ## Planned direction
28
+
29
+ - Richer workflow orchestration and agent chaining
30
+ - Broader agent tool integrations
31
+ - Expanded runtime and deployment ergonomics
32
+
33
+ ## Architecture at a glance
34
+
35
+ | Area | Stack |
36
+ | --- | --- |
37
+ | Backend | NestJS 11 + TypeScript 5 |
38
+ | Frontend | React SPA |
39
+ | Database | PostgreSQL (production) / SQLite via `better-sqlite3` (local/runtime) |
40
+ | ORM | TypeORM |
41
+ | Auth | JWT access/refresh tokens via httpOnly cookies |
42
+ | Packaging | npm package with bundled backend, CLI, and UI assets |
25
43
 
26
44
  ## Prerequisites
27
- - [Node.js](https://nodejs.org/) (v24+)
28
- - [Docker](https://www.docker.com/) and Docker Compose (optional, for PostgreSQL)
29
- - A [Google Gemini API Key](https://aistudio.google.com/) or [Anthropic API Key](https://console.anthropic.com/)
30
45
 
31
- ## Quick Start
46
+ - [Node.js](https://nodejs.org/) 24 or newer
47
+ - npm
48
+ - [Docker](https://www.docker.com/) and Docker Compose (optional)
49
+ - At least one provider API key to execute agents:
50
+ - [Google Gemini API key](https://aistudio.google.com/)
51
+ - [Anthropic API key](https://console.anthropic.com/)
52
+
53
+ ## Quick start
32
54
 
33
- ### 1. Choose an installation path
55
+ Choose the path that matches how you want to use the project:
34
56
 
35
- **Option A: install the packaged CLI**
57
+ - **Packaged CLI/runtime**: quickest way to run the app locally as an installed tool
58
+ - **Source checkout**: best path for development and contributing
59
+
60
+ ### Option A: packaged CLI/runtime
36
61
 
37
62
  ```bash
38
63
  npm install -g @bpinhosilva/agent-orchestrator
39
- agent-orchestrator --help
64
+ agent-orchestrator setup
65
+ agent-orchestrator run
66
+ agent-orchestrator status
40
67
  ```
41
68
 
42
- **Option B: run from a source checkout**
69
+ `setup` can create the runtime `.env`, run migrations, and seed an admin user. The default runtime home is `~/.agent-orchestrator`, or `${AGENT_ORCHESTRATOR_HOME}` if you set it explicitly.
70
+
71
+ For deeper CLI usage, see [docs/CLI.md](docs/CLI.md).
72
+
73
+ ### Option B: source checkout
43
74
 
44
75
  ```bash
45
- git clone <repo> && cd agent-orchestrator
76
+ git clone https://github.com/bpinhosilva/agent-orchestrator.git
77
+ cd agent-orchestrator
46
78
  npm install
47
79
  npm rebuild
48
80
  npm run build:all
49
81
  ```
50
82
 
51
- > **Note**: The project uses `ignore-scripts=true` in `.npmrc` for supply chain security. After installing dependencies from source, run `npm rebuild` to compile native modules (bcrypt, sqlite3).
83
+ > **Note**: The repository uses `ignore-scripts=true` in `.npmrc` for supply-chain hardening. After `npm install`, run `npm rebuild --ignore-scripts=false` so native modules such as `bcrypt` and `better-sqlite3` are actually compiled.
52
84
 
53
- ### 2. Configure the runtime
54
-
55
- **CLI-driven setup (recommended for local/runtime installs)**
85
+ If you want to use the packaged CLI behavior from a source checkout, run the built entrypoint directly:
56
86
 
57
87
  ```bash
58
- agent-orchestrator setup
88
+ node dist/cli/index.js --help
59
89
  ```
60
90
 
61
- The CLI writes `${AGENT_ORCHESTRATOR_HOME}/.env` with user-only permissions (`0600`), can run migrations, and can seed an admin user. It also supports non-interactive setup:
91
+ ## Configure the runtime
62
92
 
63
- ```bash
64
- agent-orchestrator setup \
65
- --yes \
66
- --db-type postgres \
67
- --database-url postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator \
68
- --provider gemini \
69
- --gemini-key your-gemini-api-key \
70
- --skip-admin-setup
71
- ```
93
+ The app loads configuration from:
72
94
 
73
- **Manual `.env` setup**
95
+ - `${AGENT_ORCHESTRATOR_HOME}/.env` when `AGENT_ORCHESTRATOR_HOME` is set
96
+ - `.env` in the project/package root otherwise
74
97
 
75
- Create a `.env` file in the project root (or set `AGENT_ORCHESTRATOR_HOME` to point to a directory containing `.env`):
98
+ Example `.env`:
76
99
 
77
100
  ```bash
78
101
  # Required
79
- JWT_SECRET="at-least-32-characters-long-secret-key"
102
+ JWT_SECRET="replace-with-a-secret-at-least-32-characters-long"
80
103
 
81
- # AI Providers (at least one required for agent functionality)
82
- GEMINI_API_KEY="your-gemini-api-key"
83
- ANTHROPIC_API_KEY="your-anthropic-api-key"
104
+ # Provider keys (optional until you want to execute agents)
105
+ GEMINI_API_KEY=""
106
+ ANTHROPIC_API_KEY=""
84
107
 
85
- # Optional
86
- PORT=3000 # Server port (default: 3000)
87
- NODE_ENV=development # development | production | test
88
- DATABASE_URL= # PostgreSQL connection string (omit for SQLite)
108
+ # Database
109
+ DB_TYPE=sqlite
110
+ DATABASE_URL=
111
+
112
+ # Runtime
113
+ PORT=15789
114
+ NODE_ENV=production
89
115
  ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000
90
- SCHEDULER_ENABLED=true # Enable/disable task scheduler CRON
91
- DB_LOGGING=false # Enable TypeORM query logging
116
+ SCHEDULER_ENABLED=true
117
+ DB_LOGGING=false
118
+ SERVE_STATIC_UI=true
119
+ CHECK_PENDING_MIGRATIONS_ON_STARTUP=false
92
120
  ```
93
121
 
94
- ### 3. Set Up the Database
122
+ ## Database setup
95
123
 
96
- **Option A: SQLite (Development — zero config)**
124
+ ### SQLite
97
125
 
98
- SQLite is used automatically when `DATABASE_URL` is not set. The database file is created at `local.sqlite` in the project root (or `$AGENT_ORCHESTRATOR_HOME/local.sqlite`).
126
+ SQLite is the default local/runtime option when `DATABASE_URL` is not set. The database file lives at:
99
127
 
100
- **Option B: PostgreSQL (Production)**
128
+ - `local.sqlite` in the project/package root, or
129
+ - `${AGENT_ORCHESTRATOR_HOME}/local.sqlite` when runtime home is set
101
130
 
102
- ```bash
103
- # Start PostgreSQL via Docker Compose
104
- docker compose up -d
131
+ ### PostgreSQL
105
132
 
106
- # Set the connection string
133
+ Use PostgreSQL by setting `DATABASE_URL` or `DB_TYPE=postgres`:
134
+
135
+ ```bash
107
136
  export DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator"
108
137
  ```
109
138
 
110
- Then run migrations and seed the admin user:
139
+ ### Initialize the schema
140
+
141
+ Run migrations before the first app start:
111
142
 
112
143
  ```bash
113
- # Apply database migrations
114
144
  npm run migration:run
115
-
116
- # Create the initial admin user (interactive prompt)
117
- npm run seed:admin
118
145
  ```
119
146
 
120
- ### 4. Run the Application
147
+ Create the initial admin user if you want to sign in through the dashboard:
121
148
 
122
149
  ```bash
123
- # Packaged/runtime CLI
124
- agent-orchestrator run
125
- agent-orchestrator status
126
- agent-orchestrator logs --lines 50
127
- agent-orchestrator stop
128
-
129
- # Development (API + UI with hot reload)
130
- npm run dev
131
-
132
- # Or API only in watch mode
133
- npm run start:dev
134
-
135
- # Production build
136
- npm run build
137
- npm run start:prod
150
+ npm run seed:admin
138
151
  ```
139
152
 
140
- The dashboard is available at `http://localhost:3000` and the API at `http://localhost:3000/api/v1/`.
141
-
142
- ## Database Management
153
+ If you use the packaged CLI, `agent-orchestrator setup` can perform both steps for you.
143
154
 
144
- The project uses [TypeORM](https://typeorm.io/) migrations to manage schema changes. **Never rely on `synchronize: true`** — it is disabled in all environments.
155
+ ## Run the application
145
156
 
146
- ### Migration Commands
157
+ ### Local development
147
158
 
148
159
  ```bash
149
- # Generate a new migration from entity changes
150
- npm run typeorm -- migration:generate src/migrations/DescriptiveName
151
-
152
- # Apply all pending migrations
153
- npm run migration:run
154
-
155
- # Revert the last applied migration
156
- npm run migration:revert
157
-
158
- # Drop the entire database schema (use with caution!)
159
- npm run schema:drop
160
+ npm run dev
160
161
  ```
161
162
 
162
- ### Migration Workflow
163
+ That starts:
163
164
 
164
- 1. Modify your entity files in `src/`
165
- 2. Generate a migration: `npm run typeorm -- migration:generate src/migrations/YourMigrationName`
166
- 3. Review the generated file in `src/migrations/`
167
- 4. Apply it: `npm run migration:run`
168
- 5. Verify with tests: `npm run test:all`
165
+ - UI dev server: `http://localhost:5173`
166
+ - API: `http://localhost:3000/api/v1`
167
+ - Swagger UI: `http://localhost:3000/api` (non-production only)
168
+ - Health endpoint: `http://localhost:3000/health`
169
169
 
170
- ### Seeding
170
+ If you only want the API in watch mode:
171
171
 
172
172
  ```bash
173
- # Create the initial admin user
174
- npm run seed:admin
173
+ npm run start:dev
175
174
  ```
176
175
 
177
- This creates a user with the `admin` role. All subsequent users registered via `POST /auth/register` (admin-only endpoint) default to `member` role.
178
-
179
- ## Deployment
180
-
181
- ### Production Checklist
182
-
183
- 1. **Database**: Use PostgreSQL — set `DATABASE_URL` environment variable
184
- 2. **Migrations**: Run `npm run migration:run` before starting the app
185
- 3. **Environment**:
186
- - `NODE_ENV=production` — disables Swagger UI and enables secure cookies
187
- - `JWT_SECRET` — strong secret, minimum 32 characters
188
- - `ALLOWED_ORIGINS` — comma-separated list of allowed CORS origins (required in production)
189
- 4. **Build**: Run `npm run build` to compile TypeScript and bundle the UI
190
- 5. **Start**: `npm run start:prod` (or `node dist/main.js`)
191
-
192
- ### Docker
176
+ ### Packaged/runtime mode
193
177
 
194
178
  ```bash
195
- # Build and run with Docker Compose (includes PostgreSQL)
196
- docker compose up -d
179
+ agent-orchestrator run
180
+ agent-orchestrator status
181
+ agent-orchestrator logs --lines 50
182
+ agent-orchestrator stop
183
+ ```
197
184
 
198
- # Apply migrations
199
- DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator" \
200
- npm run migration:run
185
+ When running the packaged app or a production build with static UI enabled, the dashboard is served from `http://localhost:15789` by default.
201
186
 
202
- # Seed admin
203
- DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator" \
204
- npm run seed:admin
205
- ```
187
+ ## Docker
206
188
 
207
- ### Updating an Existing Deployment
189
+ The repository ships three Compose entrypoints:
208
190
 
209
- 1. Pull the latest code
210
- 2. Install dependencies: `npm ci && npm rebuild`
211
- 3. Build: `npm run build`
212
- 4. Run new migrations: `npm run migration:run`
213
- 5. Restart the application
191
+ | File | Purpose |
192
+ | --- | --- |
193
+ | `docker-compose.yml` | Production-style stack with PostgreSQL, API, and Caddy-served UI |
194
+ | `docker-compose.dev.yml` | Development stack with API hot reload and Vite UI dev server |
195
+ | `docker-compose-test.yml` | Integration stack for migration, CLI/runtime, API, and UI checks |
214
196
 
215
- ## Testing
197
+ ### Production-style stack
216
198
 
217
199
  ```bash
218
- # Unit tests
219
- npm test
220
-
221
- # Unit tests in watch mode
222
- npm run test:watch
200
+ npm run docker:up
201
+ docker compose run --rm api dist/cli/index.js migrate --yes
202
+ ```
223
203
 
224
- # E2E tests
225
- npm run test:e2e
204
+ Endpoints:
226
205
 
227
- # All tests (unit + UI + E2E)
228
- npm run test:all
206
+ - UI: `https://localhost` or `https://agent-orchestrator.localhost`
207
+ - API: `http://localhost:3000/api/v1`
229
208
 
230
- # Test coverage
231
- npm run test:cov
209
+ In this stack the UI is served by **Caddy**, not by the Nest app. Docker explicitly sets `SERVE_STATIC_UI=false` so the backend only serves the API.
232
210
 
233
- # Run a single test file
234
- npm test -- src/auth/auth.service.spec.ts
211
+ ### Development stack
235
212
 
236
- # Run tests matching a name pattern
237
- npm test -- --testNamePattern="should validate email"
213
+ ```bash
214
+ npm run docker:dev
238
215
  ```
239
216
 
240
- ## Security
241
-
242
- ### Authentication & Authorization
243
-
244
- - **JWT-based authentication** with httpOnly cookie transport (no tokens in response bodies)
245
- - **Role-Based Access Control (RBAC)**: `admin` and `member` roles
246
- - **Admin**: Full access to all resources
247
- - **Member**: Access scoped to projects they own or are members of
248
- - **Project membership**: Many-to-many model with `owner` and `member` roles per project
249
- - **Rate limiting**: 60 req/min globally, 5 req/min on auth endpoints
250
- - All routes protected by default — use `@Public()` decorator for public endpoints
217
+ Endpoints:
251
218
 
252
- ### Supply Chain Protection
219
+ - UI: `http://localhost:5173`
220
+ - API: `http://localhost:3000/api/v1`
221
+ - PostgreSQL: `localhost:5433`
253
222
 
254
- - `.npmrc` hardened: registry pinned to `registry.npmjs.org`, install scripts disabled
255
- - `lockfile-lint` validates lockfile integrity in CI and pre-commit hooks
256
- - `npm audit signatures` checks package provenance in CI
257
- - [Socket.dev](https://socket.dev) monitors dependencies for supply chain risks
223
+ ### Integration stack
258
224
 
259
- ### Additional Hardening
225
+ Use `docker-compose-test.yml` when you want to exercise migration behavior, packaged CLI/runtime flows, API startup, and UI reachability together.
260
226
 
261
- - Helmet.js security headers with Content Security Policy
262
- - CORS restricted to `ALLOWED_ORIGINS` (deny-all in production without explicit config)
263
- - Swagger UI disabled in production
264
- - File upload validation: MIME type allowlist + 10MB size limit
265
- - Input length limits on all text fields via class-validator
227
+ ## Development workflow
266
228
 
267
- ## API Usage
229
+ | Task | Command |
230
+ | --- | --- |
231
+ | Start API + UI | `npm run dev` |
232
+ | Start API only | `npm run start:dev` |
233
+ | Lint API + UI | `npm run lint:all` |
234
+ | Run API + UI + E2E tests | `npm run test:all` |
235
+ | Run coverage | `npm run test:cov` |
236
+ | Run E2E tests | `npm run test:e2e` |
237
+ | Build backend + UI package output | `npm run build:all` |
238
+ | Apply migrations | `npm run migration:run` |
268
239
 
269
- **Endpoint**: `POST /api/v1/agents/process`
270
- **Payload**:
271
- ```json
272
- {
273
- "input": "Write a short poem about automation."
274
- }
275
- ```
276
-
277
- ## Contributing
240
+ ## Auth and access model
278
241
 
279
- See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
242
+ - Access and refresh tokens are issued by the auth service and transported via **httpOnly cookies**
243
+ - System roles are **`admin`** and **`user`**
244
+ - Project membership roles are **`owner`** and **`member`**
245
+ - Routes are protected by default; use `@Public()` for public endpoints
246
+ - Global throttling defaults to `60/min`, with stricter limits on auth endpoints
280
247
 
281
- ## Additional Documentation
248
+ ## Useful docs
282
249
 
283
250
  - [CLI reference](docs/CLI.md)
284
251
  - [CI/CD pipeline](docs/CI_CD.md)
285
252
  - [Release process](docs/RELEASE.md)
253
+ - [Contributing guide](CONTRIBUTING.md)
254
+
255
+ ## Troubleshooting
256
+
257
+ - **Native module errors after install**: run `npm rebuild`
258
+ - **`JWT_SECRET` rejected**: it must be at least 32 characters
259
+ - **Agent execution fails immediately**: confirm `GEMINI_API_KEY` and/or `ANTHROPIC_API_KEY` are set
260
+ - **Schema/startup issues**: run `npm run migration:run`
261
+ - **Need to undo the latest migration**: run `npm run migration:revert`
286
262
 
287
263
  ## License
288
264
 
289
- See [LICENSE](LICENSE) for details.
265
+ See [LICENSE](LICENSE).
@@ -114,4 +114,3 @@ exports.AgentsController = AgentsController = __decorate([
114
114
  (0, common_1.Controller)('agents'),
115
115
  __metadata("design:paramtypes", [agents_service_1.AgentsService])
116
116
  ], AgentsController);
117
- //# sourceMappingURL=agents.controller.js.map
@@ -25,4 +25,3 @@ exports.AgentsModule = AgentsModule = __decorate([
25
25
  exports: [agents_service_1.AgentsService],
26
26
  })
27
27
  ], AgentsModule);
28
- //# sourceMappingURL=agents.module.js.map
@@ -190,4 +190,3 @@ exports.AgentsService = AgentsService = AgentsService_1 = __decorate([
190
190
  __metadata("design:paramtypes", [typeorm_2.Repository,
191
191
  core_1.ModuleRef])
192
192
  ], AgentsService);
193
- //# sourceMappingURL=agents.service.js.map
@@ -31,4 +31,3 @@ __decorate([
31
31
  (0, class_validator_1.MaxLength)(50000),
32
32
  __metadata("design:type", String)
33
33
  ], AgentRequestDto.prototype, "input", void 0);
34
- //# sourceMappingURL=agent-request.dto.js.map
@@ -65,4 +65,3 @@ __decorate([
65
65
  (0, class_validator_1.IsNotEmpty)(),
66
66
  __metadata("design:type", String)
67
67
  ], CreateAgentDto.prototype, "providerId", void 0);
68
- //# sourceMappingURL=create-agent.dto.js.map
@@ -10,4 +10,3 @@ class UpdateAgentDto extends (0, mapped_types_1.PartialType)(create_agent_dto_1.
10
10
  }
11
11
  }
12
12
  exports.UpdateAgentDto = UpdateAgentDto;
13
- //# sourceMappingURL=update-agent.dto.js.map
@@ -84,4 +84,3 @@ __decorate([
84
84
  exports.AgentEntity = AgentEntity = __decorate([
85
85
  (0, typeorm_1.Entity)('agents')
86
86
  ], AgentEntity);
87
- //# sourceMappingURL=agent.entity.js.map
@@ -6,4 +6,3 @@ var Provider;
6
6
  Provider["GOOGLE"] = "google";
7
7
  Provider["ANTHROPIC"] = "anthropic";
8
8
  })(Provider || (exports.Provider = Provider = {}));
9
- //# sourceMappingURL=provider.enum.js.map
@@ -145,4 +145,3 @@ exports.ClaudeAgent = ClaudeAgent = ClaudeAgent_1 = __decorate([
145
145
  __param(1, (0, common_1.Optional)()),
146
146
  __metadata("design:paramtypes", [config_1.ConfigService, String])
147
147
  ], ClaudeAgent);
148
- //# sourceMappingURL=claude.agent.js.map
@@ -191,4 +191,3 @@ exports.GeminiAgent = GeminiAgent = GeminiAgent_1 = __decorate([
191
191
  __param(1, (0, common_1.Optional)()),
192
192
  __metadata("design:paramtypes", [config_1.ConfigService, String])
193
193
  ], GeminiAgent);
194
- //# sourceMappingURL=gemini.agent.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=agent.interface.js.map
@@ -12,4 +12,3 @@ function RegisterAgent(provider) {
12
12
  function getAgentImplementation(provider) {
13
13
  return exports.AGENT_REGISTRY.get(provider);
14
14
  }
15
- //# sourceMappingURL=agent.registry.js.map
@@ -3,4 +3,7 @@ export declare class AppController {
3
3
  private readonly appService;
4
4
  constructor(appService: AppService);
5
5
  getHello(): string;
6
+ getHealth(): {
7
+ status: string;
8
+ };
6
9
  }
@@ -13,6 +13,7 @@ exports.AppController = void 0;
13
13
  const openapi = require("@nestjs/swagger");
14
14
  const common_1 = require("@nestjs/common");
15
15
  const app_service_1 = require("./app.service");
16
+ const public_decorator_1 = require("./auth/decorators/public.decorator");
16
17
  let AppController = class AppController {
17
18
  appService;
18
19
  constructor(appService) {
@@ -21,6 +22,9 @@ let AppController = class AppController {
21
22
  getHello() {
22
23
  return this.appService.getHello();
23
24
  }
25
+ getHealth() {
26
+ return this.appService.getHealth();
27
+ }
24
28
  };
25
29
  exports.AppController = AppController;
26
30
  __decorate([
@@ -30,8 +34,15 @@ __decorate([
30
34
  __metadata("design:paramtypes", []),
31
35
  __metadata("design:returntype", String)
32
36
  ], AppController.prototype, "getHello", null);
37
+ __decorate([
38
+ (0, public_decorator_1.Public)(),
39
+ (0, common_1.Get)('health'),
40
+ openapi.ApiResponse({ status: 200 }),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", []),
43
+ __metadata("design:returntype", Object)
44
+ ], AppController.prototype, "getHealth", null);
33
45
  exports.AppController = AppController = __decorate([
34
46
  (0, common_1.Controller)(),
35
47
  __metadata("design:paramtypes", [app_service_1.AppService])
36
48
  ], AppController);
37
- //# sourceMappingURL=app.controller.js.map
@@ -30,8 +30,10 @@ const auth_module_1 = require("./auth/auth.module");
30
30
  const jwt_auth_guard_1 = require("./auth/guards/jwt-auth.guard");
31
31
  const roles_guard_1 = require("./auth/guards/roles.guard");
32
32
  const typeorm_2 = require("./config/typeorm");
33
- const APP_HOME = process.env.AGENT_ORCHESTRATOR_HOME;
34
- const ENV_PATH = APP_HOME ? (0, path_1.join)(APP_HOME, '.env') : '.env';
33
+ const runtime_paths_1 = require("./config/runtime-paths");
34
+ (0, runtime_paths_1.loadRuntimeEnv)();
35
+ const ENV_PATH = (0, runtime_paths_1.getRuntimeEnvPath)();
36
+ const shouldServeStaticUi = (0, runtime_paths_1.isEnvEnabled)('SERVE_STATIC_UI', true);
35
37
  let AppModule = class AppModule {
36
38
  };
37
39
  exports.AppModule = AppModule;
@@ -68,11 +70,15 @@ exports.AppModule = AppModule = __decorate([
68
70
  };
69
71
  },
70
72
  }),
71
- serve_static_1.ServeStaticModule.forRoot({
72
- rootPath: process.env.NODE_ENV === 'production'
73
- ? (0, path_1.join)(__dirname, 'ui')
74
- : (0, path_1.join)(__dirname, '..', 'ui', 'dist'),
75
- }),
73
+ ...(shouldServeStaticUi
74
+ ? [
75
+ serve_static_1.ServeStaticModule.forRoot({
76
+ rootPath: process.env.NODE_ENV === 'production'
77
+ ? (0, path_1.join)(__dirname, 'ui')
78
+ : (0, path_1.join)(__dirname, '..', 'ui', 'dist'),
79
+ }),
80
+ ]
81
+ : []),
76
82
  common_module_1.CommonModule,
77
83
  uploads_module_1.UploadsModule,
78
84
  agents_module_1.AgentsModule,
@@ -101,4 +107,3 @@ exports.AppModule = AppModule = __decorate([
101
107
  ],
102
108
  })
103
109
  ], AppModule);
104
- //# sourceMappingURL=app.module.js.map
@@ -1,3 +1,6 @@
1
1
  export declare class AppService {
2
2
  getHello(): string;
3
+ getHealth(): {
4
+ status: string;
5
+ };
3
6
  }