crewx 0.8.7-rc.21 → 0.8.7-rc.22

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 (222) hide show
  1. package/dist/assets/{MarketPage-aY16UW1_.js → MarketPage-lLBtAENs.js} +10 -15
  2. package/dist/assets/{PromptTab-C3aTJS6u.js → PromptTab-Daq54dMi.js} +1 -1
  3. package/dist/assets/_baseUniq-BJDqmZBO.js +1 -0
  4. package/dist/assets/{arc-BCQAokB1.js → arc-ByjRIa5p.js} +1 -1
  5. package/dist/assets/{architectureDiagram-UYN6MBPD-Bc87ujv2.js → architectureDiagram-UYN6MBPD-DcKpqSFb.js} +1 -1
  6. package/dist/assets/{blockDiagram-ZHA2E4KO-wC9uH8Lb.js → blockDiagram-ZHA2E4KO-YvUeULT5.js} +1 -1
  7. package/dist/assets/{c4Diagram-6F5ED5ID-CqB7lqni.js → c4Diagram-6F5ED5ID-vggzH2N5.js} +1 -1
  8. package/dist/assets/channel-1Y6YooBb.js +1 -0
  9. package/dist/assets/{chunk-5HRBRIJM-Cc1L17Eh.js → chunk-5HRBRIJM-BbaQwJkn.js} +1 -1
  10. package/dist/assets/{chunk-7U56Z5CX-Df3nu_7G.js → chunk-7U56Z5CX-DVYVpFaa.js} +1 -1
  11. package/dist/assets/{chunk-ASOPGD6M-DIXslLG-.js → chunk-ASOPGD6M-CXEvWb-8.js} +1 -1
  12. package/dist/assets/{chunk-KFBOBJHC-FytVljyP.js → chunk-KFBOBJHC-CadVXFV3.js} +1 -1
  13. package/dist/assets/{chunk-T2TOU4HS-CU5z-cXq.js → chunk-T2TOU4HS-lDZr1sVF.js} +1 -1
  14. package/dist/assets/{chunk-TMUBEWPD-CWo1AFyn.js → chunk-TMUBEWPD-D5A0MrFD.js} +1 -1
  15. package/dist/assets/classDiagram-LNE6IOMH-CDxkV2JV.js +1 -0
  16. package/dist/assets/classDiagram-v2-MQ7JQ4JX-CDxkV2JV.js +1 -0
  17. package/dist/assets/clone-6xznz_9G.js +1 -0
  18. package/dist/assets/{dagre-4EVJKHTY-CgZW5tg4.js → dagre-4EVJKHTY-Bncx7Ijq.js} +1 -1
  19. package/dist/assets/{diagram-QW4FP2JN-CJAng8RC.js → diagram-QW4FP2JN-RkxVNs99.js} +1 -1
  20. package/dist/assets/{erDiagram-6RL3IURR-C1uHztHX.js → erDiagram-6RL3IURR-DIiKqQdx.js} +1 -1
  21. package/dist/assets/{flowDiagram-7ASYPVHJ-Yiu2odO-.js → flowDiagram-7ASYPVHJ-DQ5PN7v6.js} +1 -1
  22. package/dist/assets/{ganttDiagram-NTVNEXSI-tutc0dJP.js → ganttDiagram-NTVNEXSI-BeNWGpB6.js} +1 -1
  23. package/dist/assets/{gitGraph-YCYPL57B-C3jM6T4G.js → gitGraph-YCYPL57B-CdMe059q.js} +1 -1
  24. package/dist/assets/{gitGraphDiagram-NRZ2UAAF-0aqHEKzz.js → gitGraphDiagram-NRZ2UAAF-BEke5TyK.js} +1 -1
  25. package/dist/assets/{graph-DC224ILV.js → graph-DyQIwWJd.js} +1 -1
  26. package/dist/assets/{infoDiagram-A4XQUW5V-Do7Mpzkx.js → infoDiagram-A4XQUW5V-CUcC8I_5.js} +1 -1
  27. package/dist/assets/{journeyDiagram-G5WM74LC-DAruEJc7.js → journeyDiagram-G5WM74LC-CQ5DqAH5.js} +1 -1
  28. package/dist/assets/{kanban-definition-QRCXZQQD-DB63vLR0.js → kanban-definition-QRCXZQQD-BBsgOii7.js} +1 -1
  29. package/dist/assets/{layout-BiYH5x6Q.js → layout-D7vBs_Wy.js} +1 -1
  30. package/dist/assets/{linear-CLyGW2s0.js → linear-CEOF9oJz.js} +1 -1
  31. package/dist/assets/{main-CEKkUqZb.js → main-Bx1nZ7_p.js} +278 -273
  32. package/dist/assets/main-C4ebvOIJ.css +10 -0
  33. package/dist/assets/{min-ChJMFU2N.js → min-RK9J5Utn.js} +1 -1
  34. package/dist/assets/{mindmap-definition-GWI6TPTV-CtADqQgd.js → mindmap-definition-GWI6TPTV-BXvEU7qC.js} +1 -1
  35. package/dist/assets/{pieDiagram-YF2LJOPJ-BSOfzo3O.js → pieDiagram-YF2LJOPJ-TrXqcpni.js} +1 -1
  36. package/dist/assets/{quadrantDiagram-OS5C2QUG-BLBQNFVb.js → quadrantDiagram-OS5C2QUG-B-chTEU4.js} +1 -1
  37. package/dist/assets/{requirementDiagram-MIRIMTAZ-DqorvuS6.js → requirementDiagram-MIRIMTAZ-BgJhNLp_.js} +1 -1
  38. package/dist/assets/{sankeyDiagram-Y46BX6SQ-4NDcrLkB.js → sankeyDiagram-Y46BX6SQ-BVsgYKK7.js} +1 -1
  39. package/dist/assets/{sequenceDiagram-G6AWOVSC-yha6BxK2.js → sequenceDiagram-G6AWOVSC-ByJOpkq3.js} +1 -1
  40. package/dist/assets/{stateDiagram-MAYHULR4-XJ_I41ez.js → stateDiagram-MAYHULR4-Dw7lUL1B.js} +1 -1
  41. package/dist/assets/stateDiagram-v2-4JROLMXI-DYJiM3bF.js +1 -0
  42. package/dist/assets/{timeline-definition-U7ZMHBDA-DCNrmvE7.js → timeline-definition-U7ZMHBDA-CSoEYs60.js} +1 -1
  43. package/dist/assets/{xychartDiagram-6QU3TZC5-9N-Ohhdp.js → xychartDiagram-6QU3TZC5-0_rG7p3L.js} +1 -1
  44. package/dist/index.html +2 -2
  45. package/package.json +8 -8
  46. package/packages/cli/package.json +1 -1
  47. package/dist/assets/_baseUniq-DxEFlwNt.js +0 -1
  48. package/dist/assets/channel-DNLHkiNp.js +0 -1
  49. package/dist/assets/classDiagram-LNE6IOMH-B430Onym.js +0 -1
  50. package/dist/assets/classDiagram-v2-MQ7JQ4JX-B430Onym.js +0 -1
  51. package/dist/assets/clone-B9O3E3P1.js +0 -1
  52. package/dist/assets/main-D3YeRndF.css +0 -10
  53. package/dist/assets/stateDiagram-v2-4JROLMXI-CxcyPJO2.js +0 -1
  54. package/dist-server/adapters/adapter.module.js +0 -35
  55. package/dist-server/adapters/adapter.service.js +0 -79
  56. package/dist-server/adapters/http-router.service.js +0 -91
  57. package/dist-server/app.module.js +0 -111
  58. package/dist-server/bootstrap/crewx-server.js +0 -80
  59. package/dist-server/bootstrap/tls.js +0 -138
  60. package/dist-server/common/analytics.client.js +0 -180
  61. package/dist-server/common/analytics.module.js +0 -21
  62. package/dist-server/common/cors.js +0 -15
  63. package/dist-server/common/decorators/project.decorator.js +0 -21
  64. package/dist-server/common/decorators/workspace.decorator.js +0 -24
  65. package/dist-server/common/device-id.js +0 -33
  66. package/dist-server/common/interceptor/api-id-header.interceptor.js +0 -53
  67. package/dist-server/common/interceptor/http-logging.interceptor.js +0 -124
  68. package/dist-server/common/limits/defaults.js +0 -13
  69. package/dist-server/common/limits/limits-provider.js +0 -6
  70. package/dist-server/common/limits/limits.controller.js +0 -38
  71. package/dist-server/common/limits/limits.module.js +0 -24
  72. package/dist-server/common/limits/local-limits.provider.js +0 -27
  73. package/dist-server/common/middleware/workspace.middleware.js +0 -210
  74. package/dist-server/common/repository.exception-filter.js +0 -48
  75. package/dist-server/common/workspace-context.store.js +0 -25
  76. package/dist-server/domain/agent/agent.controller.js +0 -96
  77. package/dist-server/domain/agent/agent.module.js +0 -27
  78. package/dist-server/domain/agent/agent.service.js +0 -335
  79. package/dist-server/domain/agent/agent.types.js +0 -3
  80. package/dist-server/domain/agent/dto/create-agent.dto.js +0 -80
  81. package/dist-server/domain/agent/dto/preview-prompt.dto.js +0 -77
  82. package/dist-server/domain/agent/dto/provider-meta.dto.js +0 -2
  83. package/dist-server/domain/agent/dto/update-agent.dto.js +0 -92
  84. package/dist-server/domain/agent/provider.controller.js +0 -38
  85. package/dist-server/domain/agent/template-processor.service.js +0 -71
  86. package/dist-server/domain/auth/auth.constants.js +0 -4
  87. package/dist-server/domain/auth/auth.controller.js +0 -123
  88. package/dist-server/domain/auth/auth.module.js +0 -47
  89. package/dist-server/domain/auth/decorators/public.decorator.js +0 -7
  90. package/dist-server/domain/auth/guards/base-auth.guard.js +0 -66
  91. package/dist-server/domain/auth/session-store.js +0 -26
  92. package/dist-server/domain/auth/utils/ip.utils.js +0 -31
  93. package/dist-server/domain/box/box.controller.js +0 -77
  94. package/dist-server/domain/box/box.module.js +0 -21
  95. package/dist-server/domain/box/box.service.js +0 -97
  96. package/dist-server/domain/box/dto/create-box.dto.js +0 -74
  97. package/dist-server/domain/cli/cli.controller.js +0 -136
  98. package/dist-server/domain/cli/cli.module.js +0 -21
  99. package/dist-server/domain/cli/cli.service.js +0 -598
  100. package/dist-server/domain/cli/dto/login-cli.dto.js +0 -25
  101. package/dist-server/domain/cli/dto/update-cli.dto.js +0 -31
  102. package/dist-server/domain/doc/doc.controller.js +0 -95
  103. package/dist-server/domain/doc/doc.module.js +0 -21
  104. package/dist-server/domain/doc/doc.service.js +0 -368
  105. package/dist-server/domain/doc/dto/doc.dto.js +0 -64
  106. package/dist-server/domain/document/document.controller.js +0 -57
  107. package/dist-server/domain/document/document.module.js +0 -22
  108. package/dist-server/domain/document/document.service.js +0 -274
  109. package/dist-server/domain/document/dto/register-document.dto.js +0 -24
  110. package/dist-server/domain/fs/dto/mkdir-request.dto.js +0 -47
  111. package/dist-server/domain/fs/dto/mkdir-response.dto.js +0 -2
  112. package/dist-server/domain/fs/dto/quick-access.dto.js +0 -2
  113. package/dist-server/domain/fs/dto/tree-node.dto.js +0 -2
  114. package/dist-server/domain/fs/dto/tree-query.dto.js +0 -35
  115. package/dist-server/domain/fs/fs.controller.js +0 -63
  116. package/dist-server/domain/fs/fs.module.js +0 -22
  117. package/dist-server/domain/fs/fs.service.js +0 -303
  118. package/dist-server/domain/git/git.module.js +0 -20
  119. package/dist-server/domain/git/git.service.js +0 -222
  120. package/dist-server/domain/goal/dto/goal.dto.js +0 -49
  121. package/dist-server/domain/goal/goal.controller.js +0 -86
  122. package/dist-server/domain/goal/goal.module.js +0 -22
  123. package/dist-server/domain/goal/goal.service.js +0 -197
  124. package/dist-server/domain/goal/parser/goal-md-parser.js +0 -166
  125. package/dist-server/domain/goal/parser/goal-md-serializer.js +0 -110
  126. package/dist-server/domain/health/health.controller.js +0 -57
  127. package/dist-server/domain/health/health.module.js +0 -19
  128. package/dist-server/domain/knowledge/dto/graph-knowledge.dto.js +0 -27
  129. package/dist-server/domain/knowledge/dto/knowledge.dto.js +0 -71
  130. package/dist-server/domain/knowledge/knowledge.controller.js +0 -122
  131. package/dist-server/domain/knowledge/knowledge.module.js +0 -21
  132. package/dist-server/domain/knowledge/knowledge.service.js +0 -538
  133. package/dist-server/domain/market/dto/add-registry.dto.js +0 -32
  134. package/dist-server/domain/market/dto/install-market.dto.js +0 -30
  135. package/dist-server/domain/market/market.controller.js +0 -163
  136. package/dist-server/domain/market/market.module.js +0 -22
  137. package/dist-server/domain/market/market.service.js +0 -1447
  138. package/dist-server/domain/mcp/browser-session.store.js +0 -247
  139. package/dist-server/domain/mcp/crewx-tool.factory.js +0 -119
  140. package/dist-server/domain/mcp/mcp-auth.guard.js +0 -61
  141. package/dist-server/domain/mcp/mcp.constants.js +0 -4
  142. package/dist-server/domain/mcp/mcp.controller.js +0 -125
  143. package/dist-server/domain/mcp/mcp.dto.js +0 -12
  144. package/dist-server/domain/mcp/mcp.module.js +0 -49
  145. package/dist-server/domain/mcp/mcp.service.js +0 -684
  146. package/dist-server/domain/mcp/tool-router.service.js +0 -120
  147. package/dist-server/domain/message/dto/list-messages.dto.js +0 -57
  148. package/dist-server/domain/message/dto/send-message.dto.js +0 -45
  149. package/dist-server/domain/message/message.controller.js +0 -73
  150. package/dist-server/domain/message/message.module.js +0 -25
  151. package/dist-server/domain/message/message.service.js +0 -160
  152. package/dist-server/domain/onboarding/onboarding.controller.js +0 -97
  153. package/dist-server/domain/onboarding/onboarding.module.js +0 -23
  154. package/dist-server/domain/onboarding/onboarding.service.js +0 -106
  155. package/dist-server/domain/onboarding/onboarding.types.js +0 -2
  156. package/dist-server/domain/onboarding/presets/custom.js +0 -10
  157. package/dist-server/domain/onboarding/presets/dev-team.js +0 -41
  158. package/dist-server/domain/onboarding/presets/index.js +0 -15
  159. package/dist-server/domain/onboarding/presets/marketing-team.js +0 -29
  160. package/dist-server/domain/onboarding/presets/planning-team.js +0 -29
  161. package/dist-server/domain/onboarding/presets/solo.js +0 -17
  162. package/dist-server/domain/planner/dto/planner.dto.js +0 -58
  163. package/dist-server/domain/planner/planner.controller.js +0 -74
  164. package/dist-server/domain/planner/planner.module.js +0 -22
  165. package/dist-server/domain/planner/planner.service.js +0 -269
  166. package/dist-server/domain/project/dto/create-project.dto.js +0 -46
  167. package/dist-server/domain/project/dto/update-project.dto.js +0 -60
  168. package/dist-server/domain/project/project.controller.js +0 -129
  169. package/dist-server/domain/project/project.module.js +0 -22
  170. package/dist-server/domain/project/project.service.js +0 -173
  171. package/dist-server/domain/settings/settings.controller.js +0 -52
  172. package/dist-server/domain/settings/settings.module.js +0 -22
  173. package/dist-server/domain/settings/settings.service.js +0 -105
  174. package/dist-server/domain/task/dto/all-tasks.dto.js +0 -55
  175. package/dist-server/domain/task/dto/list-tasks.dto.js +0 -69
  176. package/dist-server/domain/task/dto/search-tasks.dto.js +0 -66
  177. package/dist-server/domain/task/dto/send-message.dto.js +0 -31
  178. package/dist-server/domain/task/dto/task-status.dto.js +0 -34
  179. package/dist-server/domain/task/dto/workspace-usage.dto.js +0 -38
  180. package/dist-server/domain/task/task.constants.js +0 -5
  181. package/dist-server/domain/task/task.controller.js +0 -169
  182. package/dist-server/domain/task/task.module.js +0 -23
  183. package/dist-server/domain/task/task.service.js +0 -775
  184. package/dist-server/domain/thread/dto/build-context.dto.js +0 -42
  185. package/dist-server/domain/thread/dto/list-messages.dto.js +0 -49
  186. package/dist-server/domain/thread/dto/list-threads.dto.js +0 -70
  187. package/dist-server/domain/thread/dto/search-threads.dto.js +0 -13
  188. package/dist-server/domain/thread/dto/update-thread.dto.js +0 -23
  189. package/dist-server/domain/thread/thread.controller.js +0 -160
  190. package/dist-server/domain/thread/thread.module.js +0 -23
  191. package/dist-server/domain/thread/thread.service.js +0 -419
  192. package/dist-server/domain/usage/usage.controller.js +0 -118
  193. package/dist-server/domain/usage/usage.module.js +0 -21
  194. package/dist-server/domain/usage/usage.service.js +0 -358
  195. package/dist-server/domain/usage/usage.types.js +0 -4
  196. package/dist-server/domain/wbs/wbs.controller.js +0 -51
  197. package/dist-server/domain/wbs/wbs.module.js +0 -21
  198. package/dist-server/domain/wbs/wbs.service.js +0 -94
  199. package/dist-server/domain/workflow/workflow.controller.js +0 -53
  200. package/dist-server/domain/workflow/workflow.module.js +0 -21
  201. package/dist-server/domain/workflow/workflow.service.js +0 -209
  202. package/dist-server/domain/workspace/dto/create-workspace.dto.js +0 -45
  203. package/dist-server/domain/workspace/dto/switch-workspace.dto.js +0 -32
  204. package/dist-server/domain/workspace/dto/workspace-info.dto.js +0 -2
  205. package/dist-server/domain/workspace/workspace.controller.js +0 -98
  206. package/dist-server/domain/workspace/workspace.module.js +0 -22
  207. package/dist-server/domain/workspace/workspace.service.js +0 -198
  208. package/dist-server/main.js +0 -204
  209. package/dist-server/modules/crewx-pool.service.js +0 -75
  210. package/dist-server/modules/crewx.module.js +0 -47
  211. package/dist-server/repository/base-sqlite.repository.js +0 -18
  212. package/dist-server/repository/box.repository.js +0 -99
  213. package/dist-server/repository/message.repository.js +0 -22
  214. package/dist-server/repository/project.repository.js +0 -51
  215. package/dist-server/repository/repository.module.js +0 -34
  216. package/dist-server/repository/request-log.repository.js +0 -96
  217. package/dist-server/repository/task.repository.js +0 -105
  218. package/dist-server/repository/thread.repository.js +0 -165
  219. package/dist-server/shared/crewx-home.js +0 -58
  220. package/dist-server/shared/crewx-state.js +0 -66
  221. package/dist-server/test-utils/compat-database.js +0 -30
  222. package/dist-server/utils/tokenizer.js +0 -8
@@ -1,335 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AgentService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const fs_1 = require("fs");
15
- const path_1 = require("path");
16
- const sdk_1 = require("@crewx/sdk");
17
- const js_yaml_1 = require("js-yaml");
18
- const document_service_js_1 = require("../document/document.service.js");
19
- const template_processor_service_js_1 = require("./template-processor.service.js");
20
- const crewx_pool_service_js_1 = require("../../modules/crewx-pool.service.js");
21
- const workspace_context_store_js_1 = require("../../common/workspace-context.store.js");
22
- const limits_provider_js_1 = require("../../common/limits/limits-provider.js");
23
- const PROVIDER_CACHE_TTL_MS = 3_600_000; // 1 hour
24
- let AgentService = class AgentService {
25
- documentService;
26
- templateProcessor;
27
- limitsProvider;
28
- crewxPool;
29
- providerMetaCache = null;
30
- constructor(documentService, templateProcessor, limitsProvider, crewxPool) {
31
- this.documentService = documentService;
32
- this.templateProcessor = templateProcessor;
33
- this.limitsProvider = limitsProvider;
34
- this.crewxPool = crewxPool;
35
- }
36
- // List agents from the current request workspace's crewx.yaml.
37
- getAgents() {
38
- try {
39
- const configPath = this.resolveCrewxConfigPath();
40
- if (!configPath || !(0, fs_1.existsSync)(configPath))
41
- return { agents: [] };
42
- const { config } = this.loadConfig(configPath);
43
- const rawProviders = Array.isArray(config.providers) ? config.providers : [];
44
- const rawAgents = Array.isArray(config.agents) ? config.agents : [];
45
- const agents = rawAgents.map((a) => this.toAgentInfo(a, rawProviders));
46
- return { agents };
47
- }
48
- catch {
49
- return { agents: [] };
50
- }
51
- }
52
- // Create agent — POST /api/v1/agents
53
- createAgent(dto) {
54
- if (!dto.id || typeof dto.id !== 'string' || dto.id.trim() === '') {
55
- throw new common_1.BadRequestException('Agent id is required');
56
- }
57
- if (!dto.name || typeof dto.name !== 'string' || dto.name.trim() === '') {
58
- throw new common_1.BadRequestException('Agent name is required');
59
- }
60
- this.validateAgentId(dto.id);
61
- const configPath = this.requireConfigPath();
62
- const { config, raw } = this.loadConfig(configPath);
63
- const agents = Array.isArray(config.agents) ? config.agents : [];
64
- const limits = this.limitsProvider.resolve();
65
- if (limits.agentsPerWorkspace !== -1 && agents.length >= limits.agentsPerWorkspace) {
66
- throw new common_1.HttpException({ code: 'AGENT_LIMIT_EXCEEDED', current: agents.length, limit: limits.agentsPerWorkspace }, 412);
67
- }
68
- // Check duplicate id
69
- const exists = agents.some((a) => String(a.id || '') === dto.id);
70
- if (exists) {
71
- throw new common_1.ConflictException(`Agent '${dto.id}' already exists`);
72
- }
73
- const normalizedPrompt = this.normalizePrompt(dto.prompt);
74
- const inlineFields = {};
75
- if (dto.model !== undefined)
76
- inlineFields.model = dto.model;
77
- if (normalizedPrompt !== undefined)
78
- inlineFields.prompt = normalizedPrompt;
79
- const newAgent = {
80
- id: dto.id,
81
- name: dto.name,
82
- ...(dto.role !== undefined && { role: dto.role }),
83
- ...(dto.team !== undefined && { team: dto.team }),
84
- ...(dto.description !== undefined && { description: dto.description }),
85
- ...(dto.provider !== undefined && { provider: dto.provider }),
86
- ...(Object.keys(inlineFields).length > 0 && { inline: inlineFields }),
87
- ...(dto.options !== undefined && { options: dto.options }),
88
- };
89
- agents.push(newAgent);
90
- config.agents = agents;
91
- this.saveConfig(configPath, config, raw);
92
- this.crewxPool.invalidate((0, workspace_context_store_js_1.getWorkspacePath)());
93
- return this.toAgentInfo(newAgent);
94
- }
95
- // Update agent — PUT /api/v1/agents/:id
96
- updateAgent(id, dto) {
97
- if (!id || id.trim() === '') {
98
- throw new common_1.BadRequestException('Agent id is required');
99
- }
100
- if (dto.name !== undefined && dto.name.trim() === '') {
101
- throw new common_1.BadRequestException('Agent name cannot be empty');
102
- }
103
- this.validateAgentId(id);
104
- const configPath = this.requireConfigPath();
105
- const { config, raw } = this.loadConfig(configPath);
106
- const agents = Array.isArray(config.agents) ? config.agents : [];
107
- const idx = agents.findIndex((a) => String(a.id || '') === id);
108
- if (idx === -1) {
109
- throw new common_1.NotFoundException(`Agent '${id}' not found`);
110
- }
111
- const existing = agents[idx];
112
- // Merge only provided fields
113
- if (dto.name !== undefined)
114
- existing.name = dto.name;
115
- if (dto.role !== undefined)
116
- existing.role = dto.role;
117
- if (dto.team !== undefined)
118
- existing.team = dto.team;
119
- if (dto.description !== undefined)
120
- existing.description = dto.description;
121
- if (dto.provider !== undefined)
122
- existing.provider = dto.provider;
123
- if (dto.model !== undefined) {
124
- const inline = existing.inline && typeof existing.inline === 'object' && !Array.isArray(existing.inline)
125
- ? { ...existing.inline }
126
- : {};
127
- inline.model = dto.model;
128
- existing.inline = inline;
129
- delete existing.model;
130
- }
131
- if (dto.prompt !== undefined) {
132
- const inline = existing.inline && typeof existing.inline === 'object' && !Array.isArray(existing.inline)
133
- ? { ...existing.inline }
134
- : {};
135
- const normalizedPrompt = this.normalizePrompt(dto.prompt);
136
- if (normalizedPrompt === undefined) {
137
- delete inline.prompt;
138
- if (Object.keys(inline).length === 0) {
139
- delete existing.inline;
140
- }
141
- else {
142
- existing.inline = inline;
143
- }
144
- }
145
- else {
146
- inline.prompt = normalizedPrompt;
147
- existing.inline = inline;
148
- }
149
- }
150
- if (dto.skills !== undefined) {
151
- existing.skills = { include: dto.skills.include };
152
- }
153
- if (dto.options !== undefined) {
154
- const existingOptions = existing.options ?? {};
155
- const existQuery = existingOptions.query ?? {};
156
- const existExecute = existingOptions.execute ?? {};
157
- const { query: dtoQuery, execute: dtoExecute, ...restDto } = dto.options;
158
- const { query: _eq, execute: _ee, ...restExisting } = existingOptions;
159
- const mergedQuery = { ...existQuery, ...(dtoQuery ?? {}) };
160
- const mergedExecute = { ...existExecute, ...(dtoExecute ?? {}) };
161
- existing.options = {
162
- ...restExisting,
163
- ...restDto,
164
- ...(Object.keys(mergedQuery).length > 0 && { query: mergedQuery }),
165
- ...(Object.keys(mergedExecute).length > 0 && { execute: mergedExecute }),
166
- };
167
- }
168
- agents[idx] = existing;
169
- config.agents = agents;
170
- this.saveConfig(configPath, config, raw);
171
- this.crewxPool.invalidate((0, workspace_context_store_js_1.getWorkspacePath)());
172
- return this.toAgentInfo(existing);
173
- }
174
- // Delete agent — DELETE /api/v1/agents/:id
175
- deleteAgent(id) {
176
- if (!id || id.trim() === '') {
177
- throw new common_1.BadRequestException('Agent id is required');
178
- }
179
- this.validateAgentId(id);
180
- const configPath = this.requireConfigPath();
181
- const { config, raw } = this.loadConfig(configPath);
182
- const agents = Array.isArray(config.agents) ? config.agents : [];
183
- const idx = agents.findIndex((a) => String(a.id || '') === id);
184
- if (idx === -1) {
185
- throw new common_1.NotFoundException(`Agent '${id}' not found`);
186
- }
187
- agents.splice(idx, 1);
188
- config.agents = agents;
189
- this.saveConfig(configPath, config, raw);
190
- this.crewxPool.invalidate((0, workspace_context_store_js_1.getWorkspacePath)());
191
- }
192
- // Preview prompt — POST /api/v1/agents/prompt/preview
193
- async previewPrompt(dto) {
194
- // 1. Load documents from crewx.yaml
195
- const entries = this.documentService.loadDocumentEntries();
196
- // 2. Build documents context with frontmatter-safe content + toc
197
- const documentsContext = {};
198
- for (const [key, entry] of entries) {
199
- documentsContext[key] = {
200
- content: entry.content,
201
- toc: this.documentService.extractToc(entry.content),
202
- ...(entry.path !== undefined && { path: entry.path }),
203
- };
204
- }
205
- // 3. Find referenced document keys and warn about missing ones
206
- const warnings = [];
207
- const docRefPattern = /\{\{\{?documents\.([^.}]+)\./g;
208
- const refMatches = [...dto.template.matchAll(docRefPattern)];
209
- const seenMissing = new Set();
210
- for (const match of refMatches) {
211
- const key = match[1];
212
- if (key && !documentsContext[key] && !seenMissing.has(key)) {
213
- warnings.push(`Document key '${key}' not found — rendered as empty string`);
214
- documentsContext[key] = { content: '', toc: '' };
215
- seenMissing.add(key);
216
- }
217
- }
218
- // 4. Delegate to TemplateProcessorService (CLI-equivalent rendering)
219
- try {
220
- const rendered = this.templateProcessor.processTemplate(dto.template, documentsContext, { agent: dto.context?.agent ?? {} });
221
- return { rendered, ...(warnings.length > 0 && { warnings }) };
222
- }
223
- catch (error) {
224
- const message = error instanceof Error ? error.message : String(error);
225
- throw new common_1.UnprocessableEntityException(`Template compilation error: ${message}`);
226
- }
227
- }
228
- // PRV.LIST: Get ACP provider metadata with 1-hour cache
229
- async getProviderMetas() {
230
- const now = Date.now();
231
- if (this.providerMetaCache && this.providerMetaCache.expiresAt > now) {
232
- return this.providerMetaCache.data;
233
- }
234
- const data = await (0, sdk_1.queryAllAcpProviderMetas)();
235
- this.providerMetaCache = { data, expiresAt: now + PROVIDER_CACHE_TTL_MS };
236
- return data;
237
- }
238
- // --- Private helpers ---
239
- requireConfigPath() {
240
- const configPath = this.resolveCrewxConfigPath();
241
- if (!configPath || !(0, fs_1.existsSync)(configPath)) {
242
- throw new common_1.BadRequestException('crewx.yaml not found');
243
- }
244
- return configPath;
245
- }
246
- loadConfig(configPath) {
247
- const raw = (0, fs_1.readFileSync)(configPath, 'utf-8');
248
- const config = (0, js_yaml_1.load)(raw);
249
- if (!config || typeof config !== 'object') {
250
- throw new common_1.BadRequestException('Invalid crewx.yaml format');
251
- }
252
- return { config, raw };
253
- }
254
- saveConfig(configPath, config, _raw) {
255
- // Serialize with js-yaml preserving structure
256
- const output = (0, js_yaml_1.dump)(config, {
257
- indent: 2,
258
- lineWidth: -1,
259
- noRefs: true,
260
- });
261
- (0, fs_1.writeFileSync)(configPath, output, 'utf-8');
262
- }
263
- toAgentInfo(a, providers = []) {
264
- // model can be at top-level or nested under inline.model
265
- const inline = a.inline;
266
- const inlineModel = inline?.model;
267
- const inlinePrompt = inline?.prompt;
268
- const resolvedModel = a.model ?? inlineModel;
269
- const resolvedPrompt = inlinePrompt === undefined ? undefined : String(inlinePrompt);
270
- // Resolve providerLocation for remote providers (e.g. "remote/remote_cto")
271
- let providerLocation;
272
- const providerRaw = Array.isArray(a.provider) ? a.provider[0] : a.provider;
273
- const providerStr = providerRaw !== undefined ? String(providerRaw) : undefined;
274
- if (providerStr && providerStr.startsWith('remote/')) {
275
- const providerId = providerStr.slice('remote/'.length);
276
- const matched = providers.find((p) => String(p.id || '') === providerId);
277
- if (matched?.location !== undefined) {
278
- providerLocation = String(matched.location);
279
- }
280
- }
281
- const rawSkills = a.skills;
282
- const skills = rawSkills !== null && rawSkills !== undefined && Array.isArray(rawSkills.include)
283
- ? { include: rawSkills.include }
284
- : undefined;
285
- const options = a.options;
286
- return {
287
- id: String(a.id || ''),
288
- name: String(a.name || a.id || ''),
289
- role: String(a.role || ''),
290
- team: String(a.team || ''),
291
- description: String(a.description || ''),
292
- provider: providerStr,
293
- model: resolvedModel !== undefined ? String(resolvedModel) : undefined,
294
- providerLocation,
295
- prompt: resolvedPrompt,
296
- ...(skills !== undefined && { skills }),
297
- ...(options !== undefined && { options }),
298
- };
299
- }
300
- normalizePrompt(prompt) {
301
- if (prompt === undefined) {
302
- return undefined;
303
- }
304
- const normalized = prompt.trim();
305
- return normalized === '' ? undefined : normalized;
306
- }
307
- validateAgentId(id) {
308
- if (!/^[a-zA-Z0-9_-]+$/.test(id)) {
309
- throw new common_1.BadRequestException('Invalid agent id format');
310
- }
311
- }
312
- resolveCrewxConfigPath() {
313
- const envPath = process.env.CREWX_CONFIG;
314
- if (envPath && (0, fs_1.existsSync)(envPath))
315
- return envPath;
316
- const base = (0, workspace_context_store_js_1.getWorkspacePath)();
317
- const candidates = [
318
- (0, path_1.join)(base, 'crewx.yaml'),
319
- (0, path_1.join)(base, 'crewx.yml'),
320
- ];
321
- for (const p of candidates) {
322
- if ((0, fs_1.existsSync)(p))
323
- return p;
324
- }
325
- return null;
326
- }
327
- };
328
- exports.AgentService = AgentService;
329
- exports.AgentService = AgentService = __decorate([
330
- (0, common_1.Injectable)(),
331
- __metadata("design:paramtypes", [document_service_js_1.DocumentService,
332
- template_processor_service_js_1.TemplateProcessorService,
333
- limits_provider_js_1.LimitsProvider,
334
- crewx_pool_service_js_1.CrewxPoolService])
335
- ], AgentService);
@@ -1,3 +0,0 @@
1
- "use strict";
2
- // Agent types for AGTUI001
3
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CreateAgentDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- const class_validator_1 = require("class-validator");
15
- class CreateAgentDto {
16
- id;
17
- name;
18
- role;
19
- team;
20
- description;
21
- provider;
22
- model;
23
- prompt;
24
- options;
25
- }
26
- exports.CreateAgentDto = CreateAgentDto;
27
- __decorate([
28
- (0, swagger_1.ApiProperty)({ description: 'Unique agent identifier' }),
29
- (0, class_validator_1.IsString)(),
30
- (0, class_validator_1.IsNotEmpty)(),
31
- __metadata("design:type", String)
32
- ], CreateAgentDto.prototype, "id", void 0);
33
- __decorate([
34
- (0, swagger_1.ApiProperty)({ description: 'Agent display name' }),
35
- (0, class_validator_1.IsString)(),
36
- (0, class_validator_1.IsNotEmpty)(),
37
- __metadata("design:type", String)
38
- ], CreateAgentDto.prototype, "name", void 0);
39
- __decorate([
40
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent role' }),
41
- (0, class_validator_1.IsOptional)(),
42
- (0, class_validator_1.IsString)(),
43
- __metadata("design:type", String)
44
- ], CreateAgentDto.prototype, "role", void 0);
45
- __decorate([
46
- (0, swagger_1.ApiPropertyOptional)({ description: 'Team name' }),
47
- (0, class_validator_1.IsOptional)(),
48
- (0, class_validator_1.IsString)(),
49
- __metadata("design:type", String)
50
- ], CreateAgentDto.prototype, "team", void 0);
51
- __decorate([
52
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent description' }),
53
- (0, class_validator_1.IsOptional)(),
54
- (0, class_validator_1.IsString)(),
55
- __metadata("design:type", String)
56
- ], CreateAgentDto.prototype, "description", void 0);
57
- __decorate([
58
- (0, swagger_1.ApiPropertyOptional)({ description: 'Provider identifier' }),
59
- (0, class_validator_1.IsOptional)(),
60
- (0, class_validator_1.IsString)(),
61
- __metadata("design:type", String)
62
- ], CreateAgentDto.prototype, "provider", void 0);
63
- __decorate([
64
- (0, swagger_1.ApiPropertyOptional)({ description: 'Model identifier' }),
65
- (0, class_validator_1.IsOptional)(),
66
- (0, class_validator_1.IsString)(),
67
- __metadata("design:type", String)
68
- ], CreateAgentDto.prototype, "model", void 0);
69
- __decorate([
70
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent system prompt' }),
71
- (0, class_validator_1.IsOptional)(),
72
- (0, class_validator_1.IsString)(),
73
- __metadata("design:type", String)
74
- ], CreateAgentDto.prototype, "prompt", void 0);
75
- __decorate([
76
- (0, swagger_1.ApiPropertyOptional)({ description: 'CLI options per invocation mode' }),
77
- (0, class_validator_1.IsOptional)(),
78
- (0, class_validator_1.IsObject)(),
79
- __metadata("design:type", Object)
80
- ], CreateAgentDto.prototype, "options", void 0);
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PreviewPromptDto = void 0;
13
- const class_validator_1 = require("class-validator");
14
- const class_transformer_1 = require("class-transformer");
15
- class AgentContextDto {
16
- id;
17
- name;
18
- role;
19
- team;
20
- description;
21
- }
22
- __decorate([
23
- (0, class_validator_1.IsOptional)(),
24
- (0, class_validator_1.IsString)(),
25
- __metadata("design:type", String)
26
- ], AgentContextDto.prototype, "id", void 0);
27
- __decorate([
28
- (0, class_validator_1.IsOptional)(),
29
- (0, class_validator_1.IsString)(),
30
- __metadata("design:type", String)
31
- ], AgentContextDto.prototype, "name", void 0);
32
- __decorate([
33
- (0, class_validator_1.IsOptional)(),
34
- (0, class_validator_1.IsString)(),
35
- __metadata("design:type", String)
36
- ], AgentContextDto.prototype, "role", void 0);
37
- __decorate([
38
- (0, class_validator_1.IsOptional)(),
39
- (0, class_validator_1.IsString)(),
40
- __metadata("design:type", String)
41
- ], AgentContextDto.prototype, "team", void 0);
42
- __decorate([
43
- (0, class_validator_1.IsOptional)(),
44
- (0, class_validator_1.IsString)(),
45
- __metadata("design:type", String)
46
- ], AgentContextDto.prototype, "description", void 0);
47
- class PreviewContextDto {
48
- agent;
49
- }
50
- __decorate([
51
- (0, class_validator_1.IsOptional)(),
52
- (0, class_validator_1.ValidateNested)(),
53
- (0, class_transformer_1.Type)(() => AgentContextDto),
54
- __metadata("design:type", AgentContextDto)
55
- ], PreviewContextDto.prototype, "agent", void 0);
56
- class PreviewPromptDto {
57
- template;
58
- agentId;
59
- context;
60
- }
61
- exports.PreviewPromptDto = PreviewPromptDto;
62
- __decorate([
63
- (0, class_validator_1.IsString)(),
64
- __metadata("design:type", String)
65
- ], PreviewPromptDto.prototype, "template", void 0);
66
- __decorate([
67
- (0, class_validator_1.IsOptional)(),
68
- (0, class_validator_1.IsString)(),
69
- __metadata("design:type", String)
70
- ], PreviewPromptDto.prototype, "agentId", void 0);
71
- __decorate([
72
- (0, class_validator_1.IsOptional)(),
73
- (0, class_validator_1.IsObject)(),
74
- (0, class_validator_1.ValidateNested)(),
75
- (0, class_transformer_1.Type)(() => PreviewContextDto),
76
- __metadata("design:type", PreviewContextDto)
77
- ], PreviewPromptDto.prototype, "context", void 0);
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,92 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UpdateAgentDto = exports.AgentSkillsDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- const class_validator_1 = require("class-validator");
15
- const class_transformer_1 = require("class-transformer");
16
- class AgentSkillsDto {
17
- include;
18
- }
19
- exports.AgentSkillsDto = AgentSkillsDto;
20
- __decorate([
21
- (0, swagger_1.ApiPropertyOptional)({ description: 'Whitelist of skill names. Empty array means no skills allowed.', type: [String] }),
22
- (0, class_validator_1.IsArray)(),
23
- (0, class_validator_1.IsString)({ each: true }),
24
- __metadata("design:type", Array)
25
- ], AgentSkillsDto.prototype, "include", void 0);
26
- class UpdateAgentDto {
27
- name;
28
- role;
29
- team;
30
- description;
31
- provider;
32
- model;
33
- prompt;
34
- skills;
35
- options;
36
- }
37
- exports.UpdateAgentDto = UpdateAgentDto;
38
- __decorate([
39
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent display name' }),
40
- (0, class_validator_1.IsOptional)(),
41
- (0, class_validator_1.IsString)(),
42
- __metadata("design:type", String)
43
- ], UpdateAgentDto.prototype, "name", void 0);
44
- __decorate([
45
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent role' }),
46
- (0, class_validator_1.IsOptional)(),
47
- (0, class_validator_1.IsString)(),
48
- __metadata("design:type", String)
49
- ], UpdateAgentDto.prototype, "role", void 0);
50
- __decorate([
51
- (0, swagger_1.ApiPropertyOptional)({ description: 'Team name' }),
52
- (0, class_validator_1.IsOptional)(),
53
- (0, class_validator_1.IsString)(),
54
- __metadata("design:type", String)
55
- ], UpdateAgentDto.prototype, "team", void 0);
56
- __decorate([
57
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent description' }),
58
- (0, class_validator_1.IsOptional)(),
59
- (0, class_validator_1.IsString)(),
60
- __metadata("design:type", String)
61
- ], UpdateAgentDto.prototype, "description", void 0);
62
- __decorate([
63
- (0, swagger_1.ApiPropertyOptional)({ description: 'Provider identifier' }),
64
- (0, class_validator_1.IsOptional)(),
65
- (0, class_validator_1.IsString)(),
66
- __metadata("design:type", String)
67
- ], UpdateAgentDto.prototype, "provider", void 0);
68
- __decorate([
69
- (0, swagger_1.ApiPropertyOptional)({ description: 'Model identifier' }),
70
- (0, class_validator_1.IsOptional)(),
71
- (0, class_validator_1.IsString)(),
72
- __metadata("design:type", String)
73
- ], UpdateAgentDto.prototype, "model", void 0);
74
- __decorate([
75
- (0, swagger_1.ApiPropertyOptional)({ description: 'Agent system prompt' }),
76
- (0, class_validator_1.IsOptional)(),
77
- (0, class_validator_1.IsString)(),
78
- __metadata("design:type", String)
79
- ], UpdateAgentDto.prototype, "prompt", void 0);
80
- __decorate([
81
- (0, swagger_1.ApiPropertyOptional)({ description: 'Skill configuration. Undefined = keep existing; include:[] = block all; include:[...] = whitelist.' }),
82
- (0, class_validator_1.IsOptional)(),
83
- (0, class_validator_1.ValidateNested)(),
84
- (0, class_transformer_1.Type)(() => AgentSkillsDto),
85
- __metadata("design:type", AgentSkillsDto)
86
- ], UpdateAgentDto.prototype, "skills", void 0);
87
- __decorate([
88
- (0, swagger_1.ApiPropertyOptional)({ description: 'CLI options per invocation mode' }),
89
- (0, class_validator_1.IsOptional)(),
90
- (0, class_validator_1.IsObject)(),
91
- __metadata("design:type", Object)
92
- ], UpdateAgentDto.prototype, "options", void 0);
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ProviderController = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const swagger_1 = require("@nestjs/swagger");
15
- const agent_service_js_1 = require("./agent.service.js");
16
- let ProviderController = class ProviderController {
17
- agentService;
18
- constructor(agentService) {
19
- this.agentService = agentService;
20
- }
21
- async getProviders() {
22
- const data = await this.agentService.getProviderMetas();
23
- return { success: true, data };
24
- }
25
- };
26
- exports.ProviderController = ProviderController;
27
- __decorate([
28
- (0, swagger_1.ApiOperation)({ operationId: 'PRV.LIST', summary: 'List ACP provider metadata' }),
29
- (0, common_1.Get)(),
30
- __metadata("design:type", Function),
31
- __metadata("design:paramtypes", []),
32
- __metadata("design:returntype", Promise)
33
- ], ProviderController.prototype, "getProviders", null);
34
- exports.ProviderController = ProviderController = __decorate([
35
- (0, swagger_1.ApiTags)('providers'),
36
- (0, common_1.Controller)('ws/:slug/providers'),
37
- __metadata("design:paramtypes", [agent_service_js_1.AgentService])
38
- ], ProviderController);