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,173 +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.ProjectService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const path_1 = require("path");
15
- const uuid_1 = require("uuid");
16
- const project_repository_js_1 = require("../../repository/project.repository.js");
17
- let ProjectService = class ProjectService {
18
- projectRepo;
19
- constructor(projectRepo) {
20
- this.projectRepo = projectRepo;
21
- }
22
- toProject(row) {
23
- return {
24
- id: row.id,
25
- slug: row.slug,
26
- name: row.name,
27
- description: row.description ?? null,
28
- repoPath: row.workspace_path ?? null,
29
- isActive: row.is_active === 1,
30
- createdAt: row.created_at,
31
- updatedAt: row.updated_at,
32
- };
33
- }
34
- toThread(row) {
35
- return {
36
- id: row.id,
37
- workspaceId: row.workspace_id ?? null,
38
- platform: row.platform,
39
- title: row.title ?? null,
40
- firstMessage: row.first_message ?? null,
41
- lastMessage: row.last_message ?? null,
42
- messageCount: row.message_count,
43
- createdAt: row.created_at,
44
- updatedAt: row.updated_at,
45
- };
46
- }
47
- toThreadWithAgent(row) {
48
- return {
49
- ...this.toThread(row),
50
- agentId: row.agent_id ?? null,
51
- };
52
- }
53
- // PJT001: List all projects
54
- listProjects(params) {
55
- const limit = Math.min(Number(params.limit) || 50, 200);
56
- const offset = Math.max(Number(params.offset) || 0, 0);
57
- const { rows, total } = this.projectRepo.listProjects({
58
- isActive: params.isActive,
59
- limit,
60
- offset,
61
- });
62
- return {
63
- projects: rows.map((r) => this.toProject(r)),
64
- total,
65
- };
66
- }
67
- // PJT002: Get project detail (includes agents derived from tasks)
68
- getProject(id) {
69
- const row = this.projectRepo.findById(id);
70
- if (!row) {
71
- throw new common_1.NotFoundException(`Project not found: ${id}`);
72
- }
73
- const agents = this.projectRepo.findAgentsByProject(id);
74
- return {
75
- ...this.toProject(row),
76
- agents,
77
- };
78
- }
79
- // PJT003: Get project docs (returns doc files under workspace_path/docs)
80
- getProjectDocs(id) {
81
- const project = this.getProject(id);
82
- return {
83
- projectId: id,
84
- projectName: project.name,
85
- repoPath: project.repoPath,
86
- docsPath: project.repoPath ? (0, path_1.join)(project.repoPath, 'docs') : null,
87
- docs: [],
88
- message: project.repoPath
89
- ? 'Use GET /api/v1/docs/tree to list documents for this project'
90
- : 'Project has no repo path configured',
91
- };
92
- }
93
- // PJT004: Get threads associated with a project (includes agentId from tasks)
94
- getProjectThreads(id, params) {
95
- // Verify project exists
96
- this.getProject(id);
97
- const limit = Math.min(Number(params.limit) || 50, 200);
98
- const offset = Math.max(Number(params.offset) || 0, 0);
99
- const { rows, total } = this.projectRepo.findThreadsByProject(id, { limit, offset });
100
- return {
101
- threads: rows.map((r) => this.toThreadWithAgent(r)),
102
- total,
103
- };
104
- }
105
- // PJT005: Create project
106
- createProject(dto) {
107
- if (this.projectRepo.slugExists(dto.slug)) {
108
- throw new common_1.ConflictException(`Project with slug '${dto.slug}' already exists`);
109
- }
110
- const id = (0, uuid_1.v4)();
111
- const row = this.projectRepo.insert(id, dto.slug, dto.name, dto.repoPath ?? null);
112
- return { ...this.toProject(row), agents: [] };
113
- }
114
- // PJT006: Update project
115
- updateProject(id, dto) {
116
- const existing = this.projectRepo.findById(id);
117
- if (!existing) {
118
- throw new common_1.NotFoundException(`Project not found: ${id}`);
119
- }
120
- // Check slug conflict if slug is being changed
121
- if (dto.slug && dto.slug !== existing.slug) {
122
- if (this.projectRepo.slugExists(dto.slug, id)) {
123
- throw new common_1.ConflictException(`Project with slug '${dto.slug}' already exists`);
124
- }
125
- }
126
- if (dto.name === undefined && dto.description === undefined && dto.slug === undefined && dto.repoPath === undefined && dto.isActive === undefined) {
127
- throw new common_1.BadRequestException('No fields to update');
128
- }
129
- const updates = [];
130
- const args = [];
131
- if (dto.name !== undefined) {
132
- updates.push('name = ?');
133
- args.push(dto.name);
134
- }
135
- if (dto.description !== undefined) {
136
- updates.push('description = ?');
137
- args.push(dto.description || null);
138
- }
139
- if (dto.slug !== undefined) {
140
- updates.push('slug = ?');
141
- args.push(dto.slug);
142
- }
143
- if (dto.repoPath !== undefined) {
144
- updates.push('workspace_path = ?');
145
- args.push(dto.repoPath);
146
- }
147
- if (dto.isActive !== undefined) {
148
- updates.push('is_active = ?');
149
- args.push(dto.isActive ? 1 : 0);
150
- }
151
- const now = new Date().toISOString();
152
- updates.push('updated_at = ?');
153
- args.push(now);
154
- args.push(id);
155
- const row = this.projectRepo.update(id, updates, args);
156
- const agents = this.projectRepo.findAgentsByProject(id);
157
- return { ...this.toProject(row), agents };
158
- }
159
- // PJT007: Delete project
160
- deleteProject(id) {
161
- const existing = this.projectRepo.findById(id);
162
- if (!existing) {
163
- throw new common_1.NotFoundException(`Project not found: ${id}`);
164
- }
165
- this.projectRepo.delete(id);
166
- return { deleted: true, id };
167
- }
168
- };
169
- exports.ProjectService = ProjectService;
170
- exports.ProjectService = ProjectService = __decorate([
171
- (0, common_1.Injectable)(),
172
- __metadata("design:paramtypes", [project_repository_js_1.ProjectRepository])
173
- ], ProjectService);
@@ -1,52 +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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.SettingsController = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const swagger_1 = require("@nestjs/swagger");
18
- const settings_service_js_1 = require("./settings.service.js");
19
- let SettingsController = class SettingsController {
20
- settingsService;
21
- constructor(settingsService) {
22
- this.settingsService = settingsService;
23
- }
24
- getSettings() {
25
- return { success: true, data: this.settingsService.getSettings() };
26
- }
27
- updateSettings(body) {
28
- const updated = this.settingsService.updateSettings(body);
29
- return { success: true, data: updated };
30
- }
31
- };
32
- exports.SettingsController = SettingsController;
33
- __decorate([
34
- (0, swagger_1.ApiOperation)({ operationId: 'STG.GET', summary: 'Get settings' }),
35
- (0, common_1.Get)(),
36
- __metadata("design:type", Function),
37
- __metadata("design:paramtypes", []),
38
- __metadata("design:returntype", void 0)
39
- ], SettingsController.prototype, "getSettings", null);
40
- __decorate([
41
- (0, swagger_1.ApiOperation)({ operationId: 'STG.UPDATE', summary: 'Update settings' }),
42
- (0, common_1.Put)(),
43
- __param(0, (0, common_1.Body)()),
44
- __metadata("design:type", Function),
45
- __metadata("design:paramtypes", [Object]),
46
- __metadata("design:returntype", void 0)
47
- ], SettingsController.prototype, "updateSettings", null);
48
- exports.SettingsController = SettingsController = __decorate([
49
- (0, swagger_1.ApiTags)('settings'),
50
- (0, common_1.Controller)('settings'),
51
- __metadata("design:paramtypes", [settings_service_js_1.SettingsService])
52
- ], SettingsController);
@@ -1,22 +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
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.SettingsModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const settings_controller_js_1 = require("./settings.controller.js");
12
- const settings_service_js_1 = require("./settings.service.js");
13
- let SettingsModule = class SettingsModule {
14
- };
15
- exports.SettingsModule = SettingsModule;
16
- exports.SettingsModule = SettingsModule = __decorate([
17
- (0, common_1.Module)({
18
- controllers: [settings_controller_js_1.SettingsController],
19
- providers: [settings_service_js_1.SettingsService],
20
- exports: [settings_service_js_1.SettingsService],
21
- })
22
- ], SettingsModule);
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- 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;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.SettingsService = void 0;
46
- const fs_1 = require("fs");
47
- const common_1 = require("@nestjs/common");
48
- const yaml = __importStar(require("js-yaml"));
49
- const analytics_client_js_1 = require("../../common/analytics.client.js");
50
- let SettingsService = class SettingsService {
51
- analyticsService;
52
- constructor(analyticsService) {
53
- this.analyticsService = analyticsService;
54
- }
55
- get configPath() {
56
- return process.env.CREWX_CONFIG || 'crewx.yaml';
57
- }
58
- getSettings() {
59
- const config = this.loadConfig();
60
- const settings = (config.settings ?? {});
61
- return {
62
- analytics: settings.analytics !== false,
63
- };
64
- }
65
- updateSettings(patch) {
66
- const config = this.loadConfig();
67
- if (!config.settings || typeof config.settings !== 'object') {
68
- config.settings = {};
69
- }
70
- const settings = config.settings;
71
- if (patch.analytics !== undefined) {
72
- if (patch.analytics) {
73
- delete settings.analytics;
74
- }
75
- else {
76
- settings.analytics = false;
77
- }
78
- this.saveConfig(config);
79
- this.analyticsService.setEnabled(patch.analytics);
80
- }
81
- return this.getSettings();
82
- }
83
- loadConfig() {
84
- if (!(0, fs_1.existsSync)(this.configPath))
85
- return {};
86
- try {
87
- const content = (0, fs_1.readFileSync)(this.configPath, 'utf-8');
88
- const parsed = yaml.load(content);
89
- return typeof parsed === 'object' && parsed !== null
90
- ? parsed
91
- : {};
92
- }
93
- catch {
94
- return {};
95
- }
96
- }
97
- saveConfig(config) {
98
- (0, fs_1.writeFileSync)(this.configPath, yaml.dump(config, { lineWidth: -1 }), 'utf-8');
99
- }
100
- };
101
- exports.SettingsService = SettingsService;
102
- exports.SettingsService = SettingsService = __decorate([
103
- (0, common_1.Injectable)(),
104
- __metadata("design:paramtypes", [analytics_client_js_1.AnalyticsService])
105
- ], SettingsService);
@@ -1,55 +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.AllTasksDto = void 0;
13
- const class_validator_1 = require("class-validator");
14
- const class_transformer_1 = require("class-transformer");
15
- class AllTasksDto {
16
- agent; // comma-separated multi agent (e.g. "pm,dev")
17
- status; // comma-separated multi status (e.g. "success,failed")
18
- q; // prompt LIKE search
19
- page; // default 1
20
- limit; // default 20, max 100
21
- sort; // "started_at:desc" (default) or "started_at:asc"
22
- }
23
- exports.AllTasksDto = AllTasksDto;
24
- __decorate([
25
- (0, class_validator_1.IsOptional)(),
26
- (0, class_validator_1.IsString)(),
27
- __metadata("design:type", String)
28
- ], AllTasksDto.prototype, "agent", void 0);
29
- __decorate([
30
- (0, class_validator_1.IsOptional)(),
31
- (0, class_validator_1.IsString)(),
32
- __metadata("design:type", String)
33
- ], AllTasksDto.prototype, "status", void 0);
34
- __decorate([
35
- (0, class_validator_1.IsOptional)(),
36
- (0, class_validator_1.IsString)(),
37
- __metadata("design:type", String)
38
- ], AllTasksDto.prototype, "q", void 0);
39
- __decorate([
40
- (0, class_validator_1.IsOptional)(),
41
- (0, class_transformer_1.Transform)(({ value }) => Number(value)),
42
- (0, class_validator_1.IsNumber)(),
43
- __metadata("design:type", Number)
44
- ], AllTasksDto.prototype, "page", void 0);
45
- __decorate([
46
- (0, class_validator_1.IsOptional)(),
47
- (0, class_transformer_1.Transform)(({ value }) => Number(value)),
48
- (0, class_validator_1.IsNumber)(),
49
- __metadata("design:type", Number)
50
- ], AllTasksDto.prototype, "limit", void 0);
51
- __decorate([
52
- (0, class_validator_1.IsOptional)(),
53
- (0, class_validator_1.IsString)(),
54
- __metadata("design:type", String)
55
- ], AllTasksDto.prototype, "sort", void 0);
@@ -1,69 +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.ListTasksDto = 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 ListTasksDto {
17
- project;
18
- platform;
19
- agent;
20
- sort;
21
- order;
22
- limit;
23
- offset;
24
- }
25
- exports.ListTasksDto = ListTasksDto;
26
- __decorate([
27
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by project' }),
28
- (0, class_validator_1.IsOptional)(),
29
- (0, class_validator_1.IsString)(),
30
- __metadata("design:type", String)
31
- ], ListTasksDto.prototype, "project", void 0);
32
- __decorate([
33
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by platform' }),
34
- (0, class_validator_1.IsOptional)(),
35
- (0, class_validator_1.IsString)(),
36
- __metadata("design:type", String)
37
- ], ListTasksDto.prototype, "platform", void 0);
38
- __decorate([
39
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by agent' }),
40
- (0, class_validator_1.IsOptional)(),
41
- (0, class_validator_1.IsString)(),
42
- __metadata("design:type", String)
43
- ], ListTasksDto.prototype, "agent", void 0);
44
- __decorate([
45
- (0, swagger_1.ApiPropertyOptional)({ description: 'Sort field' }),
46
- (0, class_validator_1.IsOptional)(),
47
- (0, class_validator_1.IsString)(),
48
- __metadata("design:type", String)
49
- ], ListTasksDto.prototype, "sort", void 0);
50
- __decorate([
51
- (0, swagger_1.ApiPropertyOptional)({ description: 'Sort order (asc/desc)' }),
52
- (0, class_validator_1.IsOptional)(),
53
- (0, class_validator_1.IsString)(),
54
- __metadata("design:type", String)
55
- ], ListTasksDto.prototype, "order", void 0);
56
- __decorate([
57
- (0, swagger_1.ApiPropertyOptional)({ description: 'Max number of results' }),
58
- (0, class_validator_1.IsOptional)(),
59
- (0, class_transformer_1.Type)(() => Number),
60
- (0, class_validator_1.IsNumber)(),
61
- __metadata("design:type", Number)
62
- ], ListTasksDto.prototype, "limit", void 0);
63
- __decorate([
64
- (0, swagger_1.ApiPropertyOptional)({ description: 'Number of results to skip' }),
65
- (0, class_validator_1.IsOptional)(),
66
- (0, class_transformer_1.Type)(() => Number),
67
- (0, class_validator_1.IsNumber)(),
68
- __metadata("design:type", Number)
69
- ], ListTasksDto.prototype, "offset", void 0);
@@ -1,66 +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.SearchTasksDto = 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
- // TSK003: Search tasks query parameters
17
- // Spec defines: q, project, agent, platform, limit
18
- // offset is added for pagination convenience (not in spec)
19
- class SearchTasksDto {
20
- q;
21
- project;
22
- agent;
23
- platform;
24
- limit;
25
- /** Not in TSK003 spec — added for pagination support */
26
- offset;
27
- }
28
- exports.SearchTasksDto = SearchTasksDto;
29
- __decorate([
30
- (0, swagger_1.ApiProperty)({ description: 'Search query string' }),
31
- (0, class_validator_1.IsString)(),
32
- (0, class_validator_1.IsNotEmpty)(),
33
- __metadata("design:type", String)
34
- ], SearchTasksDto.prototype, "q", void 0);
35
- __decorate([
36
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by project' }),
37
- (0, class_validator_1.IsOptional)(),
38
- (0, class_validator_1.IsString)(),
39
- __metadata("design:type", String)
40
- ], SearchTasksDto.prototype, "project", void 0);
41
- __decorate([
42
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by agent' }),
43
- (0, class_validator_1.IsOptional)(),
44
- (0, class_validator_1.IsString)(),
45
- __metadata("design:type", String)
46
- ], SearchTasksDto.prototype, "agent", void 0);
47
- __decorate([
48
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by platform' }),
49
- (0, class_validator_1.IsOptional)(),
50
- (0, class_validator_1.IsString)(),
51
- __metadata("design:type", String)
52
- ], SearchTasksDto.prototype, "platform", void 0);
53
- __decorate([
54
- (0, swagger_1.ApiPropertyOptional)({ description: 'Max number of results' }),
55
- (0, class_validator_1.IsOptional)(),
56
- (0, class_transformer_1.Type)(() => Number),
57
- (0, class_validator_1.IsNumber)(),
58
- __metadata("design:type", Number)
59
- ], SearchTasksDto.prototype, "limit", void 0);
60
- __decorate([
61
- (0, swagger_1.ApiPropertyOptional)({ description: 'Number of results to skip' }),
62
- (0, class_validator_1.IsOptional)(),
63
- (0, class_transformer_1.Type)(() => Number),
64
- (0, class_validator_1.IsNumber)(),
65
- __metadata("design:type", Number)
66
- ], SearchTasksDto.prototype, "offset", void 0);
@@ -1,31 +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.TaskSendMessageDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- const class_validator_1 = require("class-validator");
15
- class TaskSendMessageDto {
16
- message;
17
- agent;
18
- }
19
- exports.TaskSendMessageDto = TaskSendMessageDto;
20
- __decorate([
21
- (0, swagger_1.ApiProperty)({ description: 'Message content to send' }),
22
- (0, class_validator_1.IsString)(),
23
- (0, class_validator_1.IsNotEmpty)(),
24
- __metadata("design:type", String)
25
- ], TaskSendMessageDto.prototype, "message", void 0);
26
- __decorate([
27
- (0, swagger_1.ApiProperty)({ description: 'Target agent identifier' }),
28
- (0, class_validator_1.IsString)(),
29
- (0, class_validator_1.IsNotEmpty)(),
30
- __metadata("design:type", String)
31
- ], TaskSendMessageDto.prototype, "agent", void 0);
@@ -1,34 +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.TaskStatusDto = 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
- // TSK005: Task status query parameters
17
- class TaskStatusDto {
18
- include;
19
- logLimit;
20
- }
21
- exports.TaskStatusDto = TaskStatusDto;
22
- __decorate([
23
- (0, swagger_1.ApiPropertyOptional)({ description: 'Comma-separated list of fields to include' }),
24
- (0, class_validator_1.IsOptional)(),
25
- (0, class_validator_1.IsString)(),
26
- __metadata("design:type", String)
27
- ], TaskStatusDto.prototype, "include", void 0);
28
- __decorate([
29
- (0, swagger_1.ApiPropertyOptional)({ description: 'Max number of log lines' }),
30
- (0, class_validator_1.IsOptional)(),
31
- (0, class_transformer_1.Type)(() => Number),
32
- (0, class_validator_1.IsNumber)(),
33
- __metadata("design:type", Number)
34
- ], TaskStatusDto.prototype, "logLimit", void 0);
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkspaceUsageSummaryResponseDto = exports.WorkspaceUsageDto = void 0;
4
- /**
5
- * Phase 5: Per-workspace usage aggregation DTO.
6
- *
7
- * Returned by GET /tasks/workspace-usage (getWorkspaceUsageSummary).
8
- * Each entry represents one workspace's cumulative usage across all tasks
9
- * stored in the centralised crewx.db.
10
- *
11
- * Security: workspace_id is the first 16 hex chars of SHA-256(workspacePath).
12
- * The raw path is NEVER exposed.
13
- */
14
- class WorkspaceUsageDto {
15
- /** Opaque 16-char hex identifier (SHA-256[:16] of the workspace's absolute path) */
16
- workspace_id;
17
- /** Human-readable display name (basename of workspace dir or git remote name) */
18
- workspace_name;
19
- /** Total input tokens across all tasks in this workspace */
20
- input_tokens;
21
- /** Total output tokens across all tasks in this workspace */
22
- output_tokens;
23
- /** Total cost in USD across all tasks in this workspace */
24
- cost_usd;
25
- /** Number of tasks recorded for this workspace */
26
- task_count;
27
- }
28
- exports.WorkspaceUsageDto = WorkspaceUsageDto;
29
- /**
30
- * Response wrapper for the workspace usage summary endpoint.
31
- */
32
- class WorkspaceUsageSummaryResponseDto {
33
- /** Per-workspace breakdown, sorted by cost_usd descending */
34
- workspaces;
35
- /** Grand totals across all workspaces (for the global tier calculation) */
36
- totals;
37
- }
38
- exports.WorkspaceUsageSummaryResponseDto = WorkspaceUsageSummaryResponseDto;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_TASK_LOG_LIMIT = exports.DEFAULT_TASK_LOG_LIMIT = void 0;
4
- exports.DEFAULT_TASK_LOG_LIMIT = 1000;
5
- exports.MAX_TASK_LOG_LIMIT = 1000;