@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.
- package/CHANGELOG.md +17 -0
- package/README.md +170 -194
- package/dist/agents/agents.controller.js +0 -1
- package/dist/agents/agents.module.js +0 -1
- package/dist/agents/agents.service.js +0 -1
- package/dist/agents/dto/agent-request.dto.js +0 -1
- package/dist/agents/dto/create-agent.dto.js +0 -1
- package/dist/agents/dto/update-agent.dto.js +0 -1
- package/dist/agents/entities/agent.entity.js +0 -1
- package/dist/agents/enums/provider.enum.js +0 -1
- package/dist/agents/implementations/claude.agent.js +0 -1
- package/dist/agents/implementations/gemini.agent.js +0 -1
- package/dist/agents/interfaces/agent.interface.js +0 -1
- package/dist/agents/registry/agent.registry.js +0 -1
- package/dist/app.controller.d.ts +3 -0
- package/dist/app.controller.js +12 -1
- package/dist/app.module.js +13 -8
- package/dist/app.service.d.ts +3 -0
- package/dist/app.service.js +3 -1
- package/dist/auth/auth.controller.d.ts +7 -9
- package/dist/auth/auth.controller.js +14 -2
- package/dist/auth/auth.module.js +0 -1
- package/dist/auth/auth.service.d.ts +5 -10
- package/dist/auth/auth.service.js +35 -5
- package/dist/auth/decorators/current-user.decorator.js +0 -1
- package/dist/auth/decorators/public.decorator.js +0 -1
- package/dist/auth/decorators/roles.decorator.js +0 -1
- package/dist/auth/dto/login.dto.js +0 -1
- package/dist/auth/dto/register.dto.d.ts +3 -0
- package/dist/auth/dto/register.dto.js +16 -2
- package/dist/auth/dto/update-profile.dto.d.ts +9 -0
- package/dist/auth/dto/update-profile.dto.js +65 -0
- package/dist/auth/entities/refresh-token.entity.js +0 -1
- package/dist/auth/guards/jwt-auth.guard.js +0 -1
- package/dist/auth/guards/roles.guard.js +0 -1
- package/dist/auth/strategies/jwt.strategy.d.ts +1 -1
- package/dist/auth/strategies/jwt.strategy.js +9 -2
- package/dist/cli/index.d.ts +0 -5
- package/dist/cli/index.js +29 -59
- package/dist/common/common.module.js +0 -1
- package/dist/common/entities/artifact.entity.js +0 -1
- package/dist/common/filters/http-exception.filter.js +0 -1
- package/dist/common/storage.service.js +0 -1
- package/dist/config/env.validation.js +4 -2
- package/dist/config/port.defaults.d.ts +3 -0
- package/dist/config/port.defaults.js +9 -0
- package/dist/config/runtime-paths.d.ts +6 -0
- package/dist/config/runtime-paths.js +38 -0
- package/dist/config/typeorm.d.ts +3 -0
- package/dist/config/typeorm.js +27 -19
- package/dist/database/migration-state.d.ts +11 -0
- package/dist/database/migration-state.js +78 -0
- package/dist/main.js +25 -3
- package/dist/migrations/{1774850116434-CreateRefreshTokens.d.ts → 1775260737095-BaselineSchema.d.ts} +1 -1
- package/dist/migrations/1775260737095-BaselineSchema.js +215 -0
- package/dist/models/dto/create-model.dto.js +0 -1
- package/dist/models/dto/update-model.dto.js +0 -1
- package/dist/models/entities/model.entity.js +0 -1
- package/dist/models/models.controller.js +0 -1
- package/dist/models/models.module.js +0 -1
- package/dist/models/models.service.js +0 -1
- package/dist/projects/dto/add-member.dto.js +0 -1
- package/dist/projects/dto/create-project.dto.js +0 -1
- package/dist/projects/dto/update-project.dto.js +0 -1
- package/dist/projects/entities/project-member.entity.js +0 -1
- package/dist/projects/entities/project.entity.js +0 -1
- package/dist/projects/projects.controller.js +0 -1
- package/dist/projects/projects.module.js +0 -1
- package/dist/projects/projects.service.js +0 -1
- package/dist/providers/dto/create-provider.dto.js +0 -1
- package/dist/providers/dto/update-provider.dto.js +0 -1
- package/dist/providers/entities/provider.entity.js +0 -1
- package/dist/providers/providers.controller.js +0 -1
- package/dist/providers/providers.module.js +0 -1
- package/dist/providers/providers.service.js +0 -1
- package/dist/tasks/comments.controller.js +0 -1
- package/dist/tasks/comments.service.js +0 -1
- package/dist/tasks/dto/create-comment.dto.js +0 -1
- package/dist/tasks/dto/create-recurrent-task.dto.js +0 -1
- package/dist/tasks/dto/create-task.dto.js +0 -1
- package/dist/tasks/dto/update-comment.dto.js +0 -1
- package/dist/tasks/dto/update-recurrent-task.dto.js +0 -1
- package/dist/tasks/dto/update-task.dto.js +0 -1
- package/dist/tasks/entities/comment.entity.js +0 -1
- package/dist/tasks/entities/recurrent-task-exec.entity.js +0 -1
- package/dist/tasks/entities/recurrent-task.entity.js +0 -1
- package/dist/tasks/entities/task.entity.js +0 -1
- package/dist/tasks/recurrent-task-scheduler.service.js +0 -1
- package/dist/tasks/recurrent-tasks.controller.js +0 -1
- package/dist/tasks/recurrent-tasks.service.js +0 -1
- package/dist/tasks/task-scheduler.service.js +0 -1
- package/dist/tasks/tasks.controller.js +0 -1
- package/dist/tasks/tasks.module.js +0 -1
- package/dist/tasks/tasks.service.js +0 -1
- package/dist/ui/assets/AgentFleet-2bUM5tS8.js +1 -0
- package/dist/ui/assets/{ConfirmDialog-mRH8i_xK.js → ConfirmDialog-C1bkNgZT.js} +2 -2
- package/dist/ui/assets/{MarkdownField-flCuU7w3.js → MarkdownField-CYto7bYs.js} +1 -1
- package/dist/ui/assets/Profile-GA-ikEkL.js +1 -0
- package/dist/ui/assets/ProjectDetail-U4T3kwT6.js +1 -0
- package/dist/ui/assets/Providers-Dr8fFIru.js +1 -0
- package/dist/ui/assets/Scheduler-D1seGplm.js +1 -0
- package/dist/ui/assets/{TaskDetail-BdQJCVo3.js → TaskDetail-CEKuDv4W.js} +1 -1
- package/dist/ui/assets/TaskManager-vYV5vdM4.js +8 -0
- package/dist/ui/assets/box-CsCoq7gr.js +1 -0
- package/dist/ui/assets/chevron-down-g12gVicW.js +1 -0
- package/dist/ui/assets/index-CVlXsOAm.js +2 -0
- package/dist/ui/assets/index-CoqfjJsB.css +2 -0
- package/dist/ui/assets/providers-_o5m2NEh.js +1 -0
- package/dist/ui/assets/rocket-DvvoumQL.js +1 -0
- package/dist/ui/assets/{trending-up-DBTQIgW8.js → trending-up-BqKi8IJf.js} +1 -1
- package/dist/ui/avatar-presets/avatar-01.svg +11 -0
- package/dist/ui/avatar-presets/avatar-02.svg +12 -0
- package/dist/ui/avatar-presets/avatar-03.svg +12 -0
- package/dist/ui/avatar-presets/avatar-04.svg +12 -0
- package/dist/ui/avatar-presets/avatar-05.svg +12 -0
- package/dist/ui/avatar-presets/avatar-06.svg +12 -0
- package/dist/ui/avatar-presets/avatar-07.svg +12 -0
- package/dist/ui/avatar-presets/avatar-08.svg +12 -0
- package/dist/ui/index.html +5 -4
- package/dist/uploads/uploads.controller.js +0 -1
- package/dist/uploads/uploads.module.js +0 -1
- package/dist/users/avatar.constants.d.ts +11 -0
- package/dist/users/avatar.constants.js +35 -0
- package/dist/users/dto/create-user.dto.d.ts +3 -0
- package/dist/users/dto/create-user.dto.js +16 -2
- package/dist/users/dto/update-user.dto.d.ts +2 -0
- package/dist/users/dto/update-user.dto.js +18 -2
- package/dist/users/entities/user.entity.d.ts +2 -0
- package/dist/users/entities/user.entity.js +9 -0
- package/dist/users/users.controller.d.ts +3 -3
- package/dist/users/users.controller.js +12 -13
- package/dist/users/users.module.js +0 -1
- package/dist/users/users.service.d.ts +3 -0
- package/dist/users/users.service.js +9 -1
- package/package.json +15 -8
- package/dist/migrations/1774746981348-InitialSchemaAndSeed.d.ts +0 -6
- package/dist/migrations/1774746981348-InitialSchemaAndSeed.js +0 -57
- package/dist/migrations/1774850116434-CreateRefreshTokens.js +0 -68
- package/dist/migrations/1775103764402-AddRbacAndProjectMembership.d.ts +0 -6
- package/dist/migrations/1775103764402-AddRbacAndProjectMembership.js +0 -124
- package/dist/ui/assets/AgentFleet-CC0h_Ar0.js +0 -1
- package/dist/ui/assets/ProjectDetail-CY-VSV2D.js +0 -1
- package/dist/ui/assets/Providers-C9_lxOG1.js +0 -1
- package/dist/ui/assets/Scheduler-Du2cIGfB.js +0 -1
- package/dist/ui/assets/TaskManager-CWDh69pf.js +0 -8
- package/dist/ui/assets/index-CCsHBe__.css +0 -1
- package/dist/ui/assets/index-yzhzS93F.js +0 -2
- package/dist/ui/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-300-normal-LR1W_oT8.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
- package/dist/ui/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
- package/dist/ui/assets/inter-greek-300-normal-BrhSP0vQ.woff +0 -0
- package/dist/ui/assets/inter-greek-300-normal-DmGD3g_f.woff2 +0 -0
- package/dist/ui/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- package/dist/ui/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- package/dist/ui/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
- package/dist/ui/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
- package/dist/ui/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
- package/dist/ui/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
- package/dist/ui/assets/inter-greek-ext-300-normal-DLbbeei1.woff +0 -0
- package/dist/ui/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2 +0 -0
- package/dist/ui/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- package/dist/ui/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- package/dist/ui/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
- package/dist/ui/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
- package/dist/ui/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
- package/dist/ui/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
- package/dist/ui/assets/inter-latin-300-normal-BVlfKGgI.woff2 +0 -0
- package/dist/ui/assets/inter-latin-300-normal-i8F0SvXL.woff +0 -0
- package/dist/ui/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/dist/ui/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- package/dist/ui/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
- package/dist/ui/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
- package/dist/ui/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
- package/dist/ui/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
- package/dist/ui/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2 +0 -0
- package/dist/ui/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff +0 -0
- package/dist/ui/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- package/dist/ui/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- package/dist/ui/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
- package/dist/ui/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
- package/dist/ui/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
- package/dist/ui/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
- package/dist/ui/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 +0 -0
- package/dist/ui/assets/inter-vietnamese-300-normal-DDGmYYdT.woff +0 -0
- package/dist/ui/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- package/dist/ui/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- package/dist/ui/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- package/dist/ui/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
- package/dist/ui/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
- package/dist/ui/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- package/dist/ui/assets/manrope-cyrillic-400-normal-BMzJvInZ.woff2 +0 -0
- package/dist/ui/assets/manrope-cyrillic-400-normal-Dvx59UGC.woff +0 -0
- package/dist/ui/assets/manrope-cyrillic-600-normal-DvRl3Mj-.woff2 +0 -0
- package/dist/ui/assets/manrope-cyrillic-600-normal-It4mZcQk.woff +0 -0
- package/dist/ui/assets/manrope-cyrillic-700-normal-7JNVKxyl.woff +0 -0
- package/dist/ui/assets/manrope-cyrillic-700-normal-Dw_fZAg2.woff2 +0 -0
- package/dist/ui/assets/manrope-cyrillic-800-normal-AvdZ5mAV.woff2 +0 -0
- package/dist/ui/assets/manrope-cyrillic-800-normal-BuEMjQU-.woff +0 -0
- package/dist/ui/assets/manrope-greek-400-normal-CM4qok81.woff2 +0 -0
- package/dist/ui/assets/manrope-greek-400-normal-DuX9RsAR.woff +0 -0
- package/dist/ui/assets/manrope-greek-600-normal-BoRV6lzK.woff2 +0 -0
- package/dist/ui/assets/manrope-greek-600-normal-CF2i9ZRY.woff +0 -0
- package/dist/ui/assets/manrope-greek-700-normal-CHUG9PD8.woff2 +0 -0
- package/dist/ui/assets/manrope-greek-700-normal-DyfsrCpP.woff +0 -0
- package/dist/ui/assets/manrope-greek-800-normal-Bw-67qu9.woff +0 -0
- package/dist/ui/assets/manrope-greek-800-normal-CDvU698_.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-400-normal-8tf8FM3T.woff +0 -0
- package/dist/ui/assets/manrope-latin-400-normal-PaqtzbVb.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-600-normal-4f0koTD-.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-600-normal-BqgrALkZ.woff +0 -0
- package/dist/ui/assets/manrope-latin-700-normal-BZp_XxE4.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-700-normal-DGRFkw-m.woff +0 -0
- package/dist/ui/assets/manrope-latin-800-normal-BfWYOv1c.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-800-normal-uHUdIJgA.woff +0 -0
- package/dist/ui/assets/manrope-latin-ext-400-normal-C-X6QNXX.woff +0 -0
- package/dist/ui/assets/manrope-latin-ext-400-normal-CMDvPJRp.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-ext-600-normal-_gBojHdJ.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-ext-600-normal-u5Pl7hTU.woff +0 -0
- package/dist/ui/assets/manrope-latin-ext-700-normal-DYOwVNan.woff2 +0 -0
- package/dist/ui/assets/manrope-latin-ext-700-normal-eVCcYqtJ.woff +0 -0
- package/dist/ui/assets/manrope-latin-ext-800-normal-BQAQsuQc.woff +0 -0
- package/dist/ui/assets/manrope-latin-ext-800-normal-DdFx7KEb.woff2 +0 -0
- package/dist/ui/assets/manrope-vietnamese-400-normal-D7E_mLGF.woff +0 -0
- package/dist/ui/assets/manrope-vietnamese-400-normal-DHb3EETF.woff2 +0 -0
- package/dist/ui/assets/manrope-vietnamese-600-normal-C1J5PCl_.woff2 +0 -0
- package/dist/ui/assets/manrope-vietnamese-600-normal-lA7a_7Ok.woff +0 -0
- package/dist/ui/assets/manrope-vietnamese-700-normal-CUqMx5-1.woff2 +0 -0
- package/dist/ui/assets/manrope-vietnamese-700-normal-pt65Fn2Z.woff +0 -0
- package/dist/ui/assets/manrope-vietnamese-800-normal-ClPWri-A.woff2 +0 -0
- package/dist/ui/assets/manrope-vietnamese-800-normal-bvg7iBCV.woff +0 -0
- package/dist/ui/assets/providers-BMRq_pkm.js +0 -1
- /package/dist/ui/assets/{InitialsAvatar-0mIRaTK8.js → InitialsAvatar-B_nsCs58.js} +0 -0
- /package/dist/ui/assets/{clock-C0d1RzP_.js → clock-R052yhHC.js} +0 -0
- /package/dist/ui/assets/{cn-i-5ItZGU.js → cn-w7-BIiZy.js} +0 -0
- /package/dist/ui/assets/{eye-RB18-re_.js → eye-l4Yx91ui.js} +0 -0
- /package/dist/ui/assets/{layers-D5ECV506.js → layers-DmKVnI8y.js} +0 -0
- /package/dist/ui/assets/{send-BA7-sXzg.js → send-CaBqcm_I.js} +0 -0
- /package/dist/ui/assets/{shield-check-D7JIluse.js → shield-check-Vujd3EPc.js} +0 -0
- /package/dist/ui/assets/{sparkles-CCXaTT3H.js → sparkles-DfBrsYtR.js} +0 -0
- /package/dist/ui/assets/{tasks-DEHCZk48.js → tasks-9h6EhJqU.js} +0 -0
- /package/dist/ui/assets/{trash-2-BNP4kC5c.js → trash-2-Dj3ML80c.js} +0 -0
- /package/dist/ui/assets/{user-Cp55HCCi.js → user-r_WwM0uQ.js} +0 -0
- /package/dist/ui/assets/{vendor-forms-HC2wK6B9.js → vendor-forms-BhyC9zH1.js} +0 -0
- /package/dist/ui/assets/{vendor-motion-CkXYvnuI.js → vendor-motion-CYM51UOz.js} +0 -0
- /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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
+
Choose the path that matches how you want to use the project:
|
|
34
56
|
|
|
35
|
-
**
|
|
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
|
|
64
|
+
agent-orchestrator setup
|
|
65
|
+
agent-orchestrator run
|
|
66
|
+
agent-orchestrator status
|
|
40
67
|
```
|
|
41
68
|
|
|
42
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
88
|
+
node dist/cli/index.js --help
|
|
59
89
|
```
|
|
60
90
|
|
|
61
|
-
|
|
91
|
+
## Configure the runtime
|
|
62
92
|
|
|
63
|
-
|
|
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
|
-
|
|
95
|
+
- `${AGENT_ORCHESTRATOR_HOME}/.env` when `AGENT_ORCHESTRATOR_HOME` is set
|
|
96
|
+
- `.env` in the project/package root otherwise
|
|
74
97
|
|
|
75
|
-
|
|
98
|
+
Example `.env`:
|
|
76
99
|
|
|
77
100
|
```bash
|
|
78
101
|
# Required
|
|
79
|
-
JWT_SECRET="at-least-32-characters-long
|
|
102
|
+
JWT_SECRET="replace-with-a-secret-at-least-32-characters-long"
|
|
80
103
|
|
|
81
|
-
#
|
|
82
|
-
GEMINI_API_KEY="
|
|
83
|
-
ANTHROPIC_API_KEY="
|
|
104
|
+
# Provider keys (optional until you want to execute agents)
|
|
105
|
+
GEMINI_API_KEY=""
|
|
106
|
+
ANTHROPIC_API_KEY=""
|
|
84
107
|
|
|
85
|
-
#
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
|
91
|
-
DB_LOGGING=false
|
|
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
|
-
|
|
122
|
+
## Database setup
|
|
95
123
|
|
|
96
|
-
|
|
124
|
+
### SQLite
|
|
97
125
|
|
|
98
|
-
SQLite is
|
|
126
|
+
SQLite is the default local/runtime option when `DATABASE_URL` is not set. The database file lives at:
|
|
99
127
|
|
|
100
|
-
|
|
128
|
+
- `local.sqlite` in the project/package root, or
|
|
129
|
+
- `${AGENT_ORCHESTRATOR_HOME}/local.sqlite` when runtime home is set
|
|
101
130
|
|
|
102
|
-
|
|
103
|
-
# Start PostgreSQL via Docker Compose
|
|
104
|
-
docker compose up -d
|
|
131
|
+
### PostgreSQL
|
|
105
132
|
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
147
|
+
Create the initial admin user if you want to sign in through the dashboard:
|
|
121
148
|
|
|
122
149
|
```bash
|
|
123
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
## Database Management
|
|
153
|
+
If you use the packaged CLI, `agent-orchestrator setup` can perform both steps for you.
|
|
143
154
|
|
|
144
|
-
|
|
155
|
+
## Run the application
|
|
145
156
|
|
|
146
|
-
###
|
|
157
|
+
### Local development
|
|
147
158
|
|
|
148
159
|
```bash
|
|
149
|
-
|
|
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
|
-
|
|
163
|
+
That starts:
|
|
163
164
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
170
|
+
If you only want the API in watch mode:
|
|
171
171
|
|
|
172
172
|
```bash
|
|
173
|
-
|
|
174
|
-
npm run seed:admin
|
|
173
|
+
npm run start:dev
|
|
175
174
|
```
|
|
176
175
|
|
|
177
|
-
|
|
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
|
-
|
|
196
|
-
|
|
179
|
+
agent-orchestrator run
|
|
180
|
+
agent-orchestrator status
|
|
181
|
+
agent-orchestrator logs --lines 50
|
|
182
|
+
agent-orchestrator stop
|
|
183
|
+
```
|
|
197
184
|
|
|
198
|
-
|
|
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
|
-
|
|
203
|
-
DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator" \
|
|
204
|
-
npm run seed:admin
|
|
205
|
-
```
|
|
187
|
+
## Docker
|
|
206
188
|
|
|
207
|
-
|
|
189
|
+
The repository ships three Compose entrypoints:
|
|
208
190
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
-
|
|
197
|
+
### Production-style stack
|
|
216
198
|
|
|
217
199
|
```bash
|
|
218
|
-
|
|
219
|
-
|
|
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
|
-
|
|
225
|
-
npm run test:e2e
|
|
204
|
+
Endpoints:
|
|
226
205
|
|
|
227
|
-
|
|
228
|
-
|
|
206
|
+
- UI: `https://localhost` or `https://agent-orchestrator.localhost`
|
|
207
|
+
- API: `http://localhost:3000/api/v1`
|
|
229
208
|
|
|
230
|
-
|
|
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
|
-
|
|
234
|
-
npm test -- src/auth/auth.service.spec.ts
|
|
211
|
+
### Development stack
|
|
235
212
|
|
|
236
|
-
|
|
237
|
-
npm
|
|
213
|
+
```bash
|
|
214
|
+
npm run docker:dev
|
|
238
215
|
```
|
|
239
216
|
|
|
240
|
-
|
|
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
|
-
|
|
219
|
+
- UI: `http://localhost:5173`
|
|
220
|
+
- API: `http://localhost:3000/api/v1`
|
|
221
|
+
- PostgreSQL: `localhost:5433`
|
|
253
222
|
|
|
254
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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)
|
|
265
|
+
See [LICENSE](LICENSE).
|
package/dist/app.controller.d.ts
CHANGED
package/dist/app.controller.js
CHANGED
|
@@ -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
|
package/dist/app.module.js
CHANGED
|
@@ -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
|
|
34
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|