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,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.GoalModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const goal_controller_js_1 = require("./goal.controller.js");
12
- const goal_service_js_1 = require("./goal.service.js");
13
- let GoalModule = class GoalModule {
14
- };
15
- exports.GoalModule = GoalModule;
16
- exports.GoalModule = GoalModule = __decorate([
17
- (0, common_1.Module)({
18
- controllers: [goal_controller_js_1.GoalController],
19
- providers: [goal_service_js_1.GoalService],
20
- exports: [goal_service_js_1.GoalService],
21
- })
22
- ], GoalModule);
@@ -1,197 +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.GoalService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const fs_1 = require("fs");
12
- const path_1 = require("path");
13
- const goal_md_parser_js_1 = require("./parser/goal-md-parser.js");
14
- const goal_md_serializer_js_1 = require("./parser/goal-md-serializer.js");
15
- let GoalService = class GoalService {
16
- goalDir(workspacePath) {
17
- return (0, path_1.join)(workspacePath, 'docs', 'goal');
18
- }
19
- filePath(workspacePath, goalId) {
20
- return (0, path_1.join)(this.goalDir(workspacePath), `${goalId}.md`);
21
- }
22
- listGoals(workspacePath, status) {
23
- const dir = this.goalDir(workspacePath);
24
- if (!(0, fs_1.existsSync)(dir)) {
25
- return { goals: [] };
26
- }
27
- const files = (0, fs_1.readdirSync)(dir).filter((f) => f.endsWith('.md') && !f.toUpperCase().includes('-TEMPLATE'));
28
- const goals = [];
29
- for (const file of files) {
30
- const goalId = (0, path_1.basename)(file, '.md');
31
- const fp = (0, path_1.join)(dir, file);
32
- const raw = (0, fs_1.readFileSync)(fp, 'utf-8');
33
- const parsed = (0, goal_md_parser_js_1.parseGoalMd)(goalId, raw);
34
- if (status && parsed.period.status !== status)
35
- continue;
36
- const progress = this.computeOverallProgress(parsed.keyResults);
37
- const stat = (0, fs_1.statSync)(fp);
38
- goals.push({
39
- goalId,
40
- title: parsed.title,
41
- status: parsed.period.status,
42
- period: parsed.period,
43
- progress,
44
- krSummary: parsed.keyResults.slice(0, 4).map((kr) => ({
45
- rank: kr.rank,
46
- text: kr.text,
47
- progress: this.getKRProgress(kr),
48
- checked: kr.checked,
49
- })),
50
- krCount: parsed.keyResults.length,
51
- updatedAt: stat.mtime.toISOString(),
52
- });
53
- }
54
- goals.sort((a, b) => {
55
- const statusOrder = { active: 0, done: 1, dropped: 2 };
56
- const oa = statusOrder[a.status] ?? 3;
57
- const ob = statusOrder[b.status] ?? 3;
58
- if (oa !== ob)
59
- return oa - ob;
60
- if (a.status === 'active')
61
- return b.period.start.localeCompare(a.period.start);
62
- if (a.status === 'done')
63
- return (b.period.completedAt ?? '').localeCompare(a.period.completedAt ?? '');
64
- return (b.period.droppedAt ?? '').localeCompare(a.period.droppedAt ?? '');
65
- });
66
- return { goals };
67
- }
68
- getGoal(workspacePath, goalId) {
69
- const fp = this.filePath(workspacePath, goalId);
70
- if (!(0, fs_1.existsSync)(fp)) {
71
- throw new common_1.NotFoundException(`Goal not found: ${goalId}`);
72
- }
73
- const raw = (0, fs_1.readFileSync)(fp, 'utf-8');
74
- const parsed = (0, goal_md_parser_js_1.parseGoalMd)(goalId, raw);
75
- const stat = (0, fs_1.statSync)(fp);
76
- return this.toGoalDetail(goalId, parsed, stat.mtime.toISOString());
77
- }
78
- putGoal(workspacePath, goalId, dto, createOnly = false) {
79
- if (dto.period?.status === 'dropped' && !dto.period?.reason) {
80
- throw new common_1.BadRequestException('Reason is required when status is dropped');
81
- }
82
- const dir = this.goalDir(workspacePath);
83
- if (!(0, fs_1.existsSync)(dir)) {
84
- (0, fs_1.mkdirSync)(dir, { recursive: true });
85
- }
86
- if (createOnly && (0, fs_1.existsSync)(this.filePath(workspacePath, goalId))) {
87
- throw new common_1.ConflictException(`Goal already exists: ${goalId}`);
88
- }
89
- const keyResults = this.recalculateAutoProgress(dto.keyResults ?? []);
90
- const parsed = {
91
- frontmatter: {
92
- type: 'goal',
93
- description: 'CrewX Goal — OKR',
94
- notation: {
95
- weight: '(w:N) — KR weight, default 1 if omitted',
96
- auto: 'N% auto — L1 progress auto-calculated as weighted average of children',
97
- },
98
- },
99
- title: dto.title,
100
- period: dto.period ?? { start: '', end: '', status: 'active' },
101
- objective: dto.objective ?? { body: '' },
102
- keyResults,
103
- notes: dto.notes ?? '',
104
- reflection: dto.reflection ?? '',
105
- };
106
- const md = (0, goal_md_serializer_js_1.serializeGoalMd)(parsed);
107
- const fp = this.filePath(workspacePath, goalId);
108
- (0, fs_1.writeFileSync)(fp, md, 'utf-8');
109
- const stat = (0, fs_1.statSync)(fp);
110
- return this.toGoalDetail(goalId, parsed, stat.mtime.toISOString());
111
- }
112
- deleteGoal(workspacePath, goalId) {
113
- const fp = this.filePath(workspacePath, goalId);
114
- if (!(0, fs_1.existsSync)(fp)) {
115
- throw new common_1.NotFoundException(`Goal not found: ${goalId}`);
116
- }
117
- (0, fs_1.unlinkSync)(fp);
118
- return { goalId, deleted: true };
119
- }
120
- recalculateAutoProgress(keyResults) {
121
- return keyResults.map((kr) => {
122
- if (kr.children && kr.children.length > 0) {
123
- let totalWeight = 0;
124
- let weightedSum = 0;
125
- for (const c of kr.children) {
126
- const w = c.weight ?? 1;
127
- const p = c.counter
128
- ? Math.round((c.counter.current / c.counter.target) * 100)
129
- : (c.progress ?? 0);
130
- weightedSum += p * w;
131
- totalWeight += w;
132
- }
133
- const auto = totalWeight > 0 ? Math.round(weightedSum / totalWeight) : 0;
134
- return { ...kr, progressAuto: auto, progress: undefined };
135
- }
136
- if (kr.counter) {
137
- const pct = Math.round((kr.counter.current / kr.counter.target) * 100);
138
- return { ...kr, progress: pct };
139
- }
140
- return kr;
141
- });
142
- }
143
- computeOverallProgress(keyResults) {
144
- if (keyResults.length === 0)
145
- return 0;
146
- let totalWeight = 0;
147
- let weightedSum = 0;
148
- for (const kr of keyResults) {
149
- const w = kr.weight ?? 1;
150
- const p = this.getKRProgress(kr);
151
- weightedSum += p * w;
152
- totalWeight += w;
153
- }
154
- return totalWeight > 0 ? Math.round(weightedSum / totalWeight) : 0;
155
- }
156
- getKRProgress(kr) {
157
- if (kr.children && kr.children.length > 0) {
158
- let totalWeight = 0;
159
- let weightedSum = 0;
160
- for (const c of kr.children) {
161
- const w = c.weight ?? 1;
162
- const p = c.counter
163
- ? Math.round((c.counter.current / c.counter.target) * 100)
164
- : (c.progress ?? 0);
165
- weightedSum += p * w;
166
- totalWeight += w;
167
- }
168
- return totalWeight > 0 ? Math.round(weightedSum / totalWeight) : 0;
169
- }
170
- if (kr.progressAuto !== undefined)
171
- return kr.progressAuto;
172
- if (kr.counter)
173
- return Math.round((kr.counter.current / kr.counter.target) * 100);
174
- return kr.progress ?? 0;
175
- }
176
- toGoalDetail(goalId, parsed, updatedAt) {
177
- return {
178
- goalId,
179
- title: parsed.title,
180
- description: parsed.frontmatter.description ?? 'CrewX Goal — OKR',
181
- notation: parsed.frontmatter.notation ?? {
182
- weight: '(w:N) — KR weight, default 1 if omitted',
183
- auto: 'N% auto — L1 progress auto-calculated as weighted average of children',
184
- },
185
- period: parsed.period,
186
- objective: parsed.objective,
187
- keyResults: this.recalculateAutoProgress(parsed.keyResults),
188
- notes: parsed.notes,
189
- reflection: parsed.reflection,
190
- updatedAt,
191
- };
192
- }
193
- };
194
- exports.GoalService = GoalService;
195
- exports.GoalService = GoalService = __decorate([
196
- (0, common_1.Injectable)()
197
- ], GoalService);
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseGoalMd = parseGoalMd;
7
- const gray_matter_1 = __importDefault(require("gray-matter"));
8
- const WEIGHT_RE = /\(w:(\d+)\)/;
9
- const AUTO_RE = /—\s+(\d+)%\s+auto/;
10
- const COUNTER_RE = /—\s+(\d+)\/(\d+)\s+\((\d+)%\)/;
11
- const SIMPLE_PCT_RE = /—\s+(\d+)%/;
12
- const L1_RE = /^(\d+)\.\s+\[(x| )\]\s+(.+)$/;
13
- const L2_RE = /^ {3}-\s+\[(x| )\]\s+(.+)$/;
14
- function extractWeight(text) {
15
- const m = text.match(WEIGHT_RE);
16
- if (!m)
17
- return { text: text.trim(), weight: 1 };
18
- return {
19
- text: text.replace(WEIGHT_RE, '').trim(),
20
- weight: parseInt(m[1], 10),
21
- };
22
- }
23
- function parseProgress(text) {
24
- let autoMatch = text.match(AUTO_RE);
25
- if (autoMatch) {
26
- const cleanText = text.replace(AUTO_RE, '').trim();
27
- return { cleanText, progressAuto: parseInt(autoMatch[1], 10) };
28
- }
29
- let counterMatch = text.match(COUNTER_RE);
30
- if (counterMatch) {
31
- const cleanText = text.replace(COUNTER_RE, '').trim();
32
- return {
33
- cleanText,
34
- counter: {
35
- current: parseInt(counterMatch[1], 10),
36
- target: parseInt(counterMatch[2], 10),
37
- },
38
- progress: parseInt(counterMatch[3], 10),
39
- };
40
- }
41
- let pctMatch = text.match(SIMPLE_PCT_RE);
42
- if (pctMatch) {
43
- const cleanText = text.replace(SIMPLE_PCT_RE, '').trim();
44
- return { cleanText, progress: parseInt(pctMatch[1], 10) };
45
- }
46
- return { cleanText: text.trim(), progress: 0 };
47
- }
48
- function parseL2(line) {
49
- const m = line.match(L2_RE);
50
- if (!m)
51
- return null;
52
- const checked = m[1] === 'x';
53
- let rawText = m[2];
54
- const { text: afterWeight, weight } = extractWeight(rawText);
55
- const { cleanText, progress, counter } = parseProgress(afterWeight);
56
- const child = { text: cleanText, checked, weight };
57
- if (progress !== undefined)
58
- child.progress = progress;
59
- if (counter)
60
- child.counter = counter;
61
- return child;
62
- }
63
- function parseL1(line) {
64
- const m = line.match(L1_RE);
65
- if (!m)
66
- return null;
67
- const rank = parseInt(m[1], 10);
68
- const checked = m[2] === 'x';
69
- let rawText = m[3];
70
- const { text: afterWeight, weight } = extractWeight(rawText);
71
- const { cleanText, progress, progressAuto, counter } = parseProgress(afterWeight);
72
- const item = { rank, text: cleanText, checked, weight };
73
- if (progressAuto !== undefined)
74
- item.progressAuto = progressAuto;
75
- if (progress !== undefined)
76
- item.progress = progress;
77
- if (counter)
78
- item.counter = counter;
79
- return item;
80
- }
81
- function parsePeriod(body) {
82
- const period = { start: '', end: '', status: 'active' };
83
- const lines = body.split('\n');
84
- for (const line of lines) {
85
- const m = line.match(/^-\s+(\w[\w\s]*):\s*(.+)$/);
86
- if (!m)
87
- continue;
88
- const key = m[1].trim().toLowerCase();
89
- const val = m[2].trim();
90
- if (key === 'start')
91
- period.start = val;
92
- else if (key === 'end')
93
- period.end = val;
94
- else if (key === 'status')
95
- period.status = val;
96
- else if (key === 'completed at')
97
- period.completedAt = val;
98
- else if (key === 'dropped at')
99
- period.droppedAt = val;
100
- else if (key === 'reason')
101
- period.reason = val;
102
- }
103
- return period;
104
- }
105
- function parseKeyResults(body) {
106
- const lines = body.split('\n');
107
- const items = [];
108
- let currentL1 = null;
109
- for (const line of lines) {
110
- const l1 = parseL1(line);
111
- if (l1) {
112
- if (currentL1)
113
- items.push(currentL1);
114
- currentL1 = l1;
115
- continue;
116
- }
117
- const l2 = parseL2(line);
118
- if (l2 && currentL1) {
119
- if (!currentL1.children)
120
- currentL1.children = [];
121
- currentL1.children.push(l2);
122
- }
123
- }
124
- if (currentL1)
125
- items.push(currentL1);
126
- return items;
127
- }
128
- function splitSections(content) {
129
- const sections = new Map();
130
- const parts = content.split(/^(?=##\s)/m);
131
- for (const part of parts) {
132
- const m = part.match(/^##\s+(.+)$/m);
133
- if (!m)
134
- continue;
135
- const heading = m[1].trim();
136
- const body = part.slice(m[0].length).trimStart();
137
- sections.set(heading, body);
138
- }
139
- return sections;
140
- }
141
- function parseGoalMd(_goalId, raw) {
142
- const { data: fm, content: body } = (0, gray_matter_1.default)(raw);
143
- const frontmatter = {
144
- type: fm.type,
145
- description: fm.description,
146
- notation: fm.notation,
147
- };
148
- // Extract H1 title
149
- const h1Match = body.match(/^#\s+(.+)$/m);
150
- const title = h1Match ? h1Match[1].trim() : '';
151
- const sections = splitSections(body);
152
- const period = parsePeriod(sections.get('Period') ?? '');
153
- const objectiveBody = (sections.get('Objective') ?? '').trim();
154
- const keyResults = parseKeyResults(sections.get('Key Results') ?? '');
155
- const notes = (sections.get('Notes') ?? '').trim();
156
- const reflection = (sections.get('Reflection') ?? '').trim();
157
- return {
158
- frontmatter,
159
- title,
160
- period,
161
- objective: { body: objectiveBody },
162
- keyResults,
163
- notes,
164
- reflection,
165
- };
166
- }
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serializeGoalMd = serializeGoalMd;
4
- const DEFAULT_FRONTMATTER = `---
5
- type: goal
6
- description: CrewX Goal — OKR
7
- notation:
8
- weight: "(w:N) — KR weight, default 1 if omitted"
9
- auto: "N% auto — L1 progress auto-calculated as weighted average of children"
10
- ---`;
11
- function computeWeightedAverage(children) {
12
- let totalWeight = 0;
13
- let weightedSum = 0;
14
- for (const c of children) {
15
- const w = c.weight ?? 1;
16
- const p = c.counter
17
- ? Math.round((c.counter.current / c.counter.target) * 100)
18
- : (c.progress ?? 0);
19
- weightedSum += p * w;
20
- totalWeight += w;
21
- }
22
- return totalWeight > 0 ? Math.round(weightedSum / totalWeight) : 0;
23
- }
24
- function serializeKRProgress(kr, isL1WithChildren, autoProgress) {
25
- if (isL1WithChildren && autoProgress !== undefined) {
26
- return ` — ${autoProgress}% auto`;
27
- }
28
- if (kr.counter) {
29
- const pct = Math.round((kr.counter.current / kr.counter.target) * 100);
30
- return ` — ${kr.counter.current}/${kr.counter.target} (${pct}%)`;
31
- }
32
- if (kr.progress !== undefined && kr.progress !== 0) {
33
- return ` — ${kr.progress}%`;
34
- }
35
- if (kr.progress === 0) {
36
- return '';
37
- }
38
- return '';
39
- }
40
- function serializeWeight(weight) {
41
- return weight !== 1 ? ` (w:${weight})` : '';
42
- }
43
- function serializeL2(child) {
44
- const check = child.checked ? 'x' : ' ';
45
- const progress = serializeKRProgress(child, false);
46
- const weight = serializeWeight(child.weight ?? 1);
47
- return ` - [${check}] ${child.text}${progress}${weight}`;
48
- }
49
- function serializeL1(kr) {
50
- const lines = [];
51
- const check = kr.checked ? 'x' : ' ';
52
- const hasChildren = kr.children && kr.children.length > 0;
53
- let autoProgress;
54
- if (hasChildren) {
55
- autoProgress = computeWeightedAverage(kr.children);
56
- }
57
- const progress = serializeKRProgress(kr, !!hasChildren, autoProgress);
58
- const weight = serializeWeight(kr.weight ?? 1);
59
- lines.push(`${kr.rank}. [${check}] ${kr.text}${progress}${weight}`);
60
- if (kr.children) {
61
- for (const child of kr.children) {
62
- lines.push(serializeL2(child));
63
- }
64
- }
65
- return lines;
66
- }
67
- function serializePeriod(period) {
68
- const lines = [];
69
- lines.push(`- Start: ${period.start}`);
70
- lines.push(`- End: ${period.end}`);
71
- lines.push(`- Status: ${period.status}`);
72
- if (period.completedAt)
73
- lines.push(`- Completed At: ${period.completedAt}`);
74
- if (period.droppedAt)
75
- lines.push(`- Dropped At: ${period.droppedAt}`);
76
- if (period.reason)
77
- lines.push(`- Reason: ${period.reason}`);
78
- return lines;
79
- }
80
- function serializeGoalMd(parsed) {
81
- const lines = [];
82
- lines.push(DEFAULT_FRONTMATTER);
83
- lines.push('');
84
- lines.push(`# ${parsed.title}`);
85
- lines.push('');
86
- lines.push('## Period');
87
- lines.push(...serializePeriod(parsed.period));
88
- lines.push('');
89
- lines.push('## Objective');
90
- if (parsed.objective.body) {
91
- lines.push(parsed.objective.body);
92
- }
93
- lines.push('');
94
- lines.push('## Key Results');
95
- for (const kr of parsed.keyResults) {
96
- lines.push(...serializeL1(kr));
97
- }
98
- lines.push('');
99
- lines.push('## Notes');
100
- if (parsed.notes) {
101
- lines.push(parsed.notes);
102
- }
103
- lines.push('');
104
- lines.push('## Reflection');
105
- if (parsed.reflection) {
106
- lines.push(parsed.reflection);
107
- }
108
- lines.push('');
109
- return lines.join('\n');
110
- }
@@ -1,57 +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.HealthController = void 0;
13
- const node_fs_1 = require("node:fs");
14
- const node_path_1 = require("node:path");
15
- const common_1 = require("@nestjs/common");
16
- const swagger_1 = require("@nestjs/swagger");
17
- const sdk_1 = require("@crewx/sdk");
18
- const public_decorator_js_1 = require("../auth/decorators/public.decorator.js");
19
- // Walk up from __dirname to find root package.json (works in both src/ and dist-server/ layouts)
20
- const PKG_VERSION = (() => {
21
- let dir = __dirname;
22
- while (dir !== (0, node_path_1.dirname)(dir)) {
23
- try {
24
- const pkg = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, 'package.json'), 'utf-8'));
25
- if (pkg.name === 'crewx')
26
- return pkg.version;
27
- }
28
- catch { }
29
- dir = (0, node_path_1.dirname)(dir);
30
- }
31
- return 'unknown';
32
- })();
33
- let HealthController = class HealthController {
34
- startedAt = Date.now();
35
- health() {
36
- const raw = process.env.CREWX_WORKSPACE || process.cwd();
37
- const workspace = (0, sdk_1.normalizeWorkspacePath)(raw);
38
- const uptime = Math.floor((Date.now() - this.startedAt) / 1000);
39
- return {
40
- success: true,
41
- data: { status: 'ok', version: PKG_VERSION, workspace, uptime },
42
- };
43
- }
44
- };
45
- exports.HealthController = HealthController;
46
- __decorate([
47
- (0, swagger_1.ApiOperation)({ operationId: 'SYS.HEALTH', summary: 'Server health check' }),
48
- (0, common_1.Get)(),
49
- __metadata("design:type", Function),
50
- __metadata("design:paramtypes", []),
51
- __metadata("design:returntype", void 0)
52
- ], HealthController.prototype, "health", null);
53
- exports.HealthController = HealthController = __decorate([
54
- (0, public_decorator_js_1.Public)(),
55
- (0, swagger_1.ApiTags)('health'),
56
- (0, common_1.Controller)('health')
57
- ], HealthController);
@@ -1,19 +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.HealthModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const health_controller_js_1 = require("./health.controller.js");
12
- let HealthModule = class HealthModule {
13
- };
14
- exports.HealthModule = HealthModule;
15
- exports.HealthModule = HealthModule = __decorate([
16
- (0, common_1.Module)({
17
- controllers: [health_controller_js_1.HealthController],
18
- })
19
- ], HealthModule);
@@ -1,27 +0,0 @@
1
- "use strict";
2
- /**
3
- * DTOs for KNW.GRAPH Knowledge Graph API
4
- */
5
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
- 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;
9
- return c > 3 && r && Object.defineProperty(target, key, r), r;
10
- };
11
- var __metadata = (this && this.__metadata) || function (k, v) {
12
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.GraphKnowledgeDto = void 0;
16
- const swagger_1 = require("@nestjs/swagger");
17
- const class_validator_1 = require("class-validator");
18
- class GraphKnowledgeDto {
19
- agent;
20
- }
21
- exports.GraphKnowledgeDto = GraphKnowledgeDto;
22
- __decorate([
23
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by agent' }),
24
- (0, class_validator_1.IsOptional)(),
25
- (0, class_validator_1.IsString)(),
26
- __metadata("design:type", String)
27
- ], GraphKnowledgeDto.prototype, "agent", void 0);
@@ -1,71 +0,0 @@
1
- "use strict";
2
- /**
3
- * DTOs for Knowledge API endpoints
4
- */
5
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
- 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;
9
- return c > 3 && r && Object.defineProperty(target, key, r), r;
10
- };
11
- var __metadata = (this && this.__metadata) || function (k, v) {
12
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.SummaryKnowledgeDto = exports.SearchKnowledgeDto = exports.GetKnowledgeDto = exports.ListKnowledgeDto = void 0;
16
- const swagger_1 = require("@nestjs/swagger");
17
- const class_validator_1 = require("class-validator");
18
- class ListKnowledgeDto {
19
- agent;
20
- category;
21
- }
22
- exports.ListKnowledgeDto = ListKnowledgeDto;
23
- __decorate([
24
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by agent' }),
25
- (0, class_validator_1.IsOptional)(),
26
- (0, class_validator_1.IsString)(),
27
- __metadata("design:type", String)
28
- ], ListKnowledgeDto.prototype, "agent", void 0);
29
- __decorate([
30
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by category' }),
31
- (0, class_validator_1.IsOptional)(),
32
- (0, class_validator_1.IsString)(),
33
- __metadata("design:type", String)
34
- ], ListKnowledgeDto.prototype, "category", void 0);
35
- class GetKnowledgeDto {
36
- agent;
37
- }
38
- exports.GetKnowledgeDto = GetKnowledgeDto;
39
- __decorate([
40
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by agent' }),
41
- (0, class_validator_1.IsOptional)(),
42
- (0, class_validator_1.IsString)(),
43
- __metadata("design:type", String)
44
- ], GetKnowledgeDto.prototype, "agent", void 0);
45
- class SearchKnowledgeDto {
46
- q;
47
- agent;
48
- }
49
- exports.SearchKnowledgeDto = SearchKnowledgeDto;
50
- __decorate([
51
- (0, swagger_1.ApiProperty)({ description: 'Search query' }),
52
- (0, class_validator_1.IsString)(),
53
- (0, class_validator_1.IsNotEmpty)(),
54
- __metadata("design:type", String)
55
- ], SearchKnowledgeDto.prototype, "q", void 0);
56
- __decorate([
57
- (0, swagger_1.ApiPropertyOptional)({ description: 'Filter by agent' }),
58
- (0, class_validator_1.IsOptional)(),
59
- (0, class_validator_1.IsString)(),
60
- __metadata("design:type", String)
61
- ], SearchKnowledgeDto.prototype, "agent", void 0);
62
- class SummaryKnowledgeDto {
63
- agent;
64
- }
65
- exports.SummaryKnowledgeDto = SummaryKnowledgeDto;
66
- __decorate([
67
- (0, swagger_1.ApiProperty)({ description: 'Agent identifier' }),
68
- (0, class_validator_1.IsString)(),
69
- (0, class_validator_1.IsNotEmpty)(),
70
- __metadata("design:type", String)
71
- ], SummaryKnowledgeDto.prototype, "agent", void 0);