crewly 1.0.7 → 1.0.10

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 (468) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +50 -3
  3. package/config/constants.ts +59 -0
  4. package/config/index.ts +2 -0
  5. package/config/roles/architect/prompt.md +17 -5
  6. package/config/roles/backend-developer/prompt.md +35 -5
  7. package/config/roles/designer/prompt.md +17 -5
  8. package/config/roles/developer/prompt.md +43 -9
  9. package/config/roles/frontend-developer/prompt.md +35 -5
  10. package/config/roles/fullstack-dev/prompt.md +35 -5
  11. package/config/roles/generalist/prompt.md +18 -5
  12. package/config/roles/orchestrator/prompt.md +126 -3
  13. package/config/roles/product-manager/prompt.md +24 -9
  14. package/config/roles/qa/prompt.md +35 -5
  15. package/config/roles/qa-engineer/prompt.md +35 -5
  16. package/config/roles/sales/prompt.md +17 -5
  17. package/config/roles/support/prompt.md +17 -5
  18. package/config/roles/tpm/prompt.md +17 -5
  19. package/config/skills/agent/_common/lib.sh +4 -0
  20. package/config/skills/agent/core/accept-task/execute.sh +21 -0
  21. package/config/skills/agent/core/accept-task/instructions.md +20 -0
  22. package/config/skills/agent/core/accept-task/skill.json +20 -0
  23. package/config/skills/agent/core/block-task/execute.sh +26 -0
  24. package/config/skills/agent/core/block-task/instructions.md +22 -0
  25. package/config/skills/agent/core/block-task/skill.json +20 -0
  26. package/config/skills/agent/core/check-quality-gates/execute.sh +20 -0
  27. package/config/skills/agent/core/check-quality-gates/instructions.md +23 -0
  28. package/config/skills/agent/core/check-quality-gates/skill.json +20 -0
  29. package/config/skills/agent/core/complete-task/execute.sh +29 -0
  30. package/config/skills/agent/core/complete-task/instructions.md +53 -0
  31. package/config/skills/agent/core/complete-task/skill.json +20 -0
  32. package/config/skills/agent/core/get-my-context/execute.sh +23 -0
  33. package/config/skills/agent/core/get-my-context/instructions.md +21 -0
  34. package/config/skills/agent/core/get-my-context/skill.json +20 -0
  35. package/config/skills/agent/core/get-sops/execute.sh +24 -0
  36. package/config/skills/agent/core/get-sops/instructions.md +21 -0
  37. package/config/skills/agent/core/get-sops/skill.json +20 -0
  38. package/config/skills/agent/core/get-team-status/execute.sh +8 -0
  39. package/config/skills/agent/core/get-team-status/instructions.md +17 -0
  40. package/config/skills/agent/core/get-team-status/skill.json +20 -0
  41. package/config/skills/agent/core/heartbeat/execute.sh +22 -0
  42. package/config/skills/agent/core/heartbeat/instructions.md +23 -0
  43. package/config/skills/agent/core/heartbeat/skill.json +20 -0
  44. package/config/skills/agent/core/manage-knowledge/execute.sh +60 -0
  45. package/config/skills/agent/core/manage-knowledge/instructions.md +46 -0
  46. package/config/skills/agent/core/marketplace-search/execute.sh +77 -0
  47. package/config/skills/agent/core/marketplace-search/instructions.md +59 -0
  48. package/config/skills/agent/core/marketplace-search/skill.json +20 -0
  49. package/config/skills/agent/core/query-knowledge/execute.sh +30 -0
  50. package/config/skills/agent/core/query-knowledge/instructions.md +47 -0
  51. package/config/skills/agent/core/query-knowledge/skill.json +20 -0
  52. package/config/skills/agent/core/read-task/execute.sh +15 -0
  53. package/config/skills/agent/core/read-task/instructions.md +19 -0
  54. package/config/skills/agent/core/read-task/skill.json +20 -0
  55. package/config/skills/agent/core/recall/execute.sh +24 -0
  56. package/config/skills/agent/core/recall/instructions.md +23 -0
  57. package/config/skills/agent/core/recall/skill.json +20 -0
  58. package/config/skills/agent/core/record-learning/execute.sh +29 -0
  59. package/config/skills/agent/core/record-learning/instructions.md +24 -0
  60. package/config/skills/agent/core/record-learning/skill.json +20 -0
  61. package/config/skills/agent/core/register-self/execute.sh +28 -0
  62. package/config/skills/agent/core/register-self/instructions.md +18 -0
  63. package/config/skills/agent/core/register-self/skill.json +20 -0
  64. package/config/skills/agent/core/remember/execute.sh +29 -0
  65. package/config/skills/agent/core/remember/instructions.md +24 -0
  66. package/config/skills/agent/core/remember/skill.json +20 -0
  67. package/config/skills/agent/core/report-progress/execute.sh +28 -0
  68. package/config/skills/agent/core/report-progress/instructions.md +25 -0
  69. package/config/skills/agent/core/report-progress/skill.json +20 -0
  70. package/config/skills/agent/core/report-status/execute.sh +35 -0
  71. package/config/skills/agent/core/report-status/instructions.md +36 -0
  72. package/config/skills/agent/core/report-status/skill.json +20 -0
  73. package/config/skills/agent/core/send-chat-response/execute.sh +26 -0
  74. package/config/skills/agent/core/send-chat-response/instructions.md +22 -0
  75. package/config/skills/agent/core/send-chat-response/skill.json +20 -0
  76. package/config/skills/agent/core/send-message/execute.sh +17 -0
  77. package/config/skills/agent/core/send-message/instructions.md +20 -0
  78. package/config/skills/agent/core/send-message/skill.json +20 -0
  79. package/config/skills/orchestrator/complete-task/execute.sh +1 -0
  80. package/config/skills/orchestrator/delegate-task/execute.sh +1 -1
  81. package/config/skills/registry.json +850 -0
  82. package/config/templates/agent-claude-md.md +16 -0
  83. package/config/templates/research-team.json +22 -0
  84. package/config/templates/startup-team.json +22 -0
  85. package/config/templates/web-dev-team.json +22 -0
  86. package/dist/backend/backend/src/constants.d.ts +127 -1
  87. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  88. package/dist/backend/backend/src/constants.js +119 -8
  89. package/dist/backend/backend/src/constants.js.map +1 -1
  90. package/dist/backend/backend/src/controllers/marketplace/index.d.ts +1 -1
  91. package/dist/backend/backend/src/controllers/marketplace/index.d.ts.map +1 -1
  92. package/dist/backend/backend/src/controllers/marketplace/index.js +1 -1
  93. package/dist/backend/backend/src/controllers/marketplace/index.js.map +1 -1
  94. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +64 -8
  95. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  96. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +194 -96
  97. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  98. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  99. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +7 -2
  100. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  101. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +7 -0
  102. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  103. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +174 -4
  104. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  105. package/dist/backend/backend/src/index.d.ts.map +1 -1
  106. package/dist/backend/backend/src/index.js +34 -0
  107. package/dist/backend/backend/src/index.js.map +1 -1
  108. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  109. package/dist/backend/backend/src/routes/modules/task-management.routes.js +2 -0
  110. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  111. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +8 -0
  112. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/agent/agent-registration.service.js +89 -17
  114. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  115. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +265 -0
  116. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
  117. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +811 -0
  118. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
  119. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/agent/idle-detection.service.js +11 -4
  121. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  122. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +11 -0
  123. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +18 -0
  125. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  126. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +12 -0
  127. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  128. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +51 -1
  129. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  130. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts +6 -0
  131. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
  132. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js +10 -0
  133. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
  134. package/dist/backend/backend/src/services/index.d.ts +3 -0
  135. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  136. package/dist/backend/backend/src/services/index.js +5 -0
  137. package/dist/backend/backend/src/services/index.js.map +1 -1
  138. package/dist/backend/backend/src/services/marketplace/index.d.ts +1 -0
  139. package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -1
  140. package/dist/backend/backend/src/services/marketplace/index.js +2 -0
  141. package/dist/backend/backend/src/services/marketplace/index.js.map +1 -1
  142. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +10 -9
  143. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  144. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +262 -73
  145. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  146. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.d.ts +71 -0
  147. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.d.ts.map +1 -0
  148. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.js +339 -0
  149. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.js.map +1 -0
  150. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts +4 -15
  151. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
  152. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +172 -27
  153. package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
  154. package/dist/backend/backend/src/services/mcp-client.d.ts +233 -0
  155. package/dist/backend/backend/src/services/mcp-client.d.ts.map +1 -0
  156. package/dist/backend/backend/src/services/mcp-client.js +297 -0
  157. package/dist/backend/backend/src/services/mcp-client.js.map +1 -0
  158. package/dist/backend/backend/src/services/mcp-server.d.ts +167 -0
  159. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -0
  160. package/dist/backend/backend/src/services/mcp-server.js +586 -0
  161. package/dist/backend/backend/src/services/mcp-server.js.map +1 -0
  162. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +32 -2
  163. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  164. package/dist/backend/backend/src/services/messaging/message-queue.service.js +85 -4
  165. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  166. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +10 -0
  167. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  168. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +129 -41
  169. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  170. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  171. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +31 -0
  172. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  173. package/dist/backend/backend/src/services/quality/index.d.ts +1 -0
  174. package/dist/backend/backend/src/services/quality/index.d.ts.map +1 -1
  175. package/dist/backend/backend/src/services/quality/index.js +1 -0
  176. package/dist/backend/backend/src/services/quality/index.js.map +1 -1
  177. package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts +84 -0
  178. package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts.map +1 -0
  179. package/dist/backend/backend/src/services/quality/task-output-validator.service.js +163 -0
  180. package/dist/backend/backend/src/services/quality/task-output-validator.service.js.map +1 -0
  181. package/dist/backend/backend/src/services/runtime-adapter.d.ts +254 -0
  182. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -0
  183. package/dist/backend/backend/src/services/runtime-adapter.js +201 -0
  184. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -0
  185. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +19 -0
  186. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  187. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +31 -2
  188. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  189. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +14 -0
  190. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  191. package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -1
  192. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +9 -0
  193. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  194. package/dist/backend/backend/src/services/session/session-command-helper.js +24 -1
  195. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  196. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +7 -13
  197. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  198. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +38 -47
  199. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  200. package/dist/backend/backend/src/services/skill/skill.service.d.ts +3 -0
  201. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  202. package/dist/backend/backend/src/services/skill/skill.service.js +17 -0
  203. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  204. package/dist/backend/backend/src/types/event-bus.types.d.ts +2 -2
  205. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  206. package/dist/backend/backend/src/types/event-bus.types.js +2 -0
  207. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  208. package/dist/backend/backend/src/types/index.d.ts +1 -0
  209. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  210. package/dist/backend/backend/src/types/index.js +2 -0
  211. package/dist/backend/backend/src/types/index.js.map +1 -1
  212. package/dist/backend/backend/src/types/marketplace.types.d.ts +37 -0
  213. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  214. package/dist/backend/backend/src/types/messaging.types.d.ts +9 -6
  215. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  216. package/dist/backend/backend/src/types/messaging.types.js +10 -3
  217. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  218. package/dist/backend/backend/src/types/task-output.types.d.ts +78 -0
  219. package/dist/backend/backend/src/types/task-output.types.d.ts.map +1 -0
  220. package/dist/backend/backend/src/types/task-output.types.js +27 -0
  221. package/dist/backend/backend/src/types/task-output.types.js.map +1 -0
  222. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +13 -0
  223. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  224. package/dist/backend/backend/src/websocket/terminal.gateway.js +12 -0
  225. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  226. package/dist/backend/config/constants.d.ts +41 -0
  227. package/dist/backend/config/constants.d.ts.map +1 -1
  228. package/dist/backend/config/constants.js +57 -0
  229. package/dist/backend/config/constants.js.map +1 -1
  230. package/dist/backend/config/index.d.ts +2 -2
  231. package/dist/backend/config/index.d.ts.map +1 -1
  232. package/dist/backend/config/index.js +2 -2
  233. package/dist/backend/config/index.js.map +1 -1
  234. package/dist/cli/backend/src/constants.d.ts +817 -0
  235. package/dist/cli/backend/src/constants.d.ts.map +1 -0
  236. package/dist/cli/backend/src/constants.js +603 -0
  237. package/dist/cli/backend/src/constants.js.map +1 -0
  238. package/dist/cli/backend/src/models/Project.d.ts +18 -0
  239. package/dist/cli/backend/src/models/Project.d.ts.map +1 -0
  240. package/dist/cli/backend/src/models/Project.js +70 -0
  241. package/dist/cli/backend/src/models/Project.js.map +1 -0
  242. package/dist/cli/backend/src/models/ScheduledMessage.d.ts +27 -0
  243. package/dist/cli/backend/src/models/ScheduledMessage.d.ts.map +1 -0
  244. package/dist/cli/backend/src/models/ScheduledMessage.js +50 -0
  245. package/dist/cli/backend/src/models/ScheduledMessage.js.map +1 -0
  246. package/dist/cli/backend/src/models/Team.d.ts +20 -0
  247. package/dist/cli/backend/src/models/Team.d.ts.map +1 -0
  248. package/dist/cli/backend/src/models/Team.js +120 -0
  249. package/dist/cli/backend/src/models/Team.js.map +1 -0
  250. package/dist/cli/backend/src/models/Ticket.d.ts +24 -0
  251. package/dist/cli/backend/src/models/Ticket.d.ts.map +1 -0
  252. package/dist/cli/backend/src/models/Ticket.js +102 -0
  253. package/dist/cli/backend/src/models/Ticket.js.map +1 -0
  254. package/dist/cli/backend/src/models/index.d.ts +5 -0
  255. package/dist/cli/backend/src/models/index.d.ts.map +1 -0
  256. package/dist/cli/backend/src/models/index.js +5 -0
  257. package/dist/cli/backend/src/models/index.js.map +1 -0
  258. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts +40 -0
  259. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -0
  260. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js +74 -0
  261. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -0
  262. package/dist/cli/backend/src/services/core/config.service.d.ts +91 -0
  263. package/dist/cli/backend/src/services/core/config.service.d.ts.map +1 -0
  264. package/dist/cli/backend/src/services/core/config.service.js +246 -0
  265. package/dist/cli/backend/src/services/core/config.service.js.map +1 -0
  266. package/dist/cli/backend/src/services/core/logger.service.d.ts +70 -0
  267. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -0
  268. package/dist/cli/backend/src/services/core/logger.service.js +350 -0
  269. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -0
  270. package/dist/cli/backend/src/services/core/storage.service.d.ts +269 -0
  271. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -0
  272. package/dist/cli/backend/src/services/core/storage.service.js +1406 -0
  273. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -0
  274. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +92 -0
  275. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -0
  276. package/dist/cli/backend/src/services/core/teams-backup.service.js +120 -0
  277. package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -0
  278. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +125 -0
  279. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -0
  280. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +247 -0
  281. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -0
  282. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts +153 -0
  283. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts.map +1 -0
  284. package/dist/cli/backend/src/services/knowledge/knowledge.service.js +409 -0
  285. package/dist/cli/backend/src/services/knowledge/knowledge.service.js.map +1 -0
  286. package/dist/cli/backend/src/services/mcp-server.d.ts +167 -0
  287. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -0
  288. package/dist/cli/backend/src/services/mcp-server.js +586 -0
  289. package/dist/cli/backend/src/services/mcp-server.js.map +1 -0
  290. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +259 -0
  291. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -0
  292. package/dist/cli/backend/src/services/memory/agent-memory.service.js +539 -0
  293. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -0
  294. package/dist/cli/backend/src/services/memory/memory.service.d.ts +306 -0
  295. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -0
  296. package/dist/cli/backend/src/services/memory/memory.service.js +517 -0
  297. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -0
  298. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +252 -0
  299. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -0
  300. package/dist/cli/backend/src/services/memory/project-memory.service.js +600 -0
  301. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -0
  302. package/dist/cli/backend/src/types/auto-assign.types.d.ts +271 -0
  303. package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +1 -0
  304. package/dist/cli/backend/src/types/auto-assign.types.js +136 -0
  305. package/dist/cli/backend/src/types/auto-assign.types.js.map +1 -0
  306. package/dist/cli/backend/src/types/budget.types.d.ts +217 -0
  307. package/dist/cli/backend/src/types/budget.types.d.ts.map +1 -0
  308. package/dist/cli/backend/src/types/budget.types.js +82 -0
  309. package/dist/cli/backend/src/types/budget.types.js.map +1 -0
  310. package/dist/cli/backend/src/types/chat.types.d.ts +550 -0
  311. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -0
  312. package/dist/cli/backend/src/types/chat.types.js +743 -0
  313. package/dist/cli/backend/src/types/chat.types.js.map +1 -0
  314. package/dist/cli/backend/src/types/continuation.types.d.ts +237 -0
  315. package/dist/cli/backend/src/types/continuation.types.d.ts.map +1 -0
  316. package/dist/cli/backend/src/types/continuation.types.js +10 -0
  317. package/dist/cli/backend/src/types/continuation.types.js.map +1 -0
  318. package/dist/cli/backend/src/types/index.d.ts +164 -0
  319. package/dist/cli/backend/src/types/index.d.ts.map +1 -0
  320. package/dist/cli/backend/src/types/index.js +25 -0
  321. package/dist/cli/backend/src/types/index.js.map +1 -0
  322. package/dist/cli/backend/src/types/knowledge.types.d.ts +195 -0
  323. package/dist/cli/backend/src/types/knowledge.types.d.ts.map +1 -0
  324. package/dist/cli/backend/src/types/knowledge.types.js +38 -0
  325. package/dist/cli/backend/src/types/knowledge.types.js.map +1 -0
  326. package/dist/cli/backend/src/types/memory.types.d.ts +587 -0
  327. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -0
  328. package/dist/cli/backend/src/types/memory.types.js +47 -0
  329. package/dist/cli/backend/src/types/memory.types.js.map +1 -0
  330. package/dist/cli/backend/src/types/quality-gate.types.d.ts +171 -0
  331. package/dist/cli/backend/src/types/quality-gate.types.d.ts.map +1 -0
  332. package/dist/cli/backend/src/types/quality-gate.types.js +42 -0
  333. package/dist/cli/backend/src/types/quality-gate.types.js.map +1 -0
  334. package/dist/cli/backend/src/types/role.types.d.ts +260 -0
  335. package/dist/cli/backend/src/types/role.types.d.ts.map +1 -0
  336. package/dist/cli/backend/src/types/role.types.js +238 -0
  337. package/dist/cli/backend/src/types/role.types.js.map +1 -0
  338. package/dist/cli/backend/src/types/scheduler.types.d.ts +254 -0
  339. package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -0
  340. package/dist/cli/backend/src/types/scheduler.types.js +32 -0
  341. package/dist/cli/backend/src/types/scheduler.types.js.map +1 -0
  342. package/dist/cli/backend/src/types/settings.types.d.ts +178 -0
  343. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -0
  344. package/dist/cli/backend/src/types/settings.types.js +206 -0
  345. package/dist/cli/backend/src/types/settings.types.js.map +1 -0
  346. package/dist/cli/backend/src/types/skill.types.d.ts +515 -0
  347. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -0
  348. package/dist/cli/backend/src/types/skill.types.js +481 -0
  349. package/dist/cli/backend/src/types/skill.types.js.map +1 -0
  350. package/dist/cli/backend/src/types/sop.types.d.ts +224 -0
  351. package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -0
  352. package/dist/cli/backend/src/types/sop.types.js +85 -0
  353. package/dist/cli/backend/src/types/sop.types.js.map +1 -0
  354. package/dist/cli/backend/src/types/task-output.types.d.ts +78 -0
  355. package/dist/cli/backend/src/types/task-output.types.d.ts.map +1 -0
  356. package/dist/cli/backend/src/types/task-output.types.js +27 -0
  357. package/dist/cli/backend/src/types/task-output.types.js.map +1 -0
  358. package/dist/cli/backend/src/utils/file-io.utils.d.ts +102 -0
  359. package/dist/cli/backend/src/utils/file-io.utils.d.ts.map +1 -0
  360. package/dist/cli/backend/src/utils/file-io.utils.js +214 -0
  361. package/dist/cli/backend/src/utils/file-io.utils.js.map +1 -0
  362. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts +54 -0
  363. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts.map +1 -0
  364. package/dist/cli/backend/src/utils/terminal-output.utils.js +97 -0
  365. package/dist/cli/backend/src/utils/terminal-output.utils.js.map +1 -0
  366. package/dist/cli/cli/src/commands/mcp-server.d.ts +38 -0
  367. package/dist/cli/cli/src/commands/mcp-server.d.ts.map +1 -0
  368. package/dist/cli/cli/src/commands/mcp-server.js +49 -0
  369. package/dist/cli/cli/src/commands/mcp-server.js.map +1 -0
  370. package/dist/cli/cli/src/commands/onboard.d.ts +72 -8
  371. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  372. package/dist/cli/cli/src/commands/onboard.js +306 -33
  373. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  374. package/dist/cli/cli/src/commands/publish.d.ts +35 -0
  375. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -0
  376. package/dist/cli/cli/src/commands/publish.js +93 -0
  377. package/dist/cli/cli/src/commands/publish.js.map +1 -0
  378. package/dist/cli/cli/src/commands/seed-marketplace.d.ts +28 -0
  379. package/dist/cli/cli/src/commands/seed-marketplace.d.ts.map +1 -0
  380. package/dist/cli/cli/src/commands/seed-marketplace.js +148 -0
  381. package/dist/cli/cli/src/commands/seed-marketplace.js.map +1 -0
  382. package/dist/cli/cli/src/index.js +23 -0
  383. package/dist/cli/cli/src/index.js.map +1 -1
  384. package/dist/cli/cli/src/utils/archive-creator.d.ts +82 -0
  385. package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -0
  386. package/dist/cli/cli/src/utils/archive-creator.js +105 -0
  387. package/dist/cli/cli/src/utils/archive-creator.js.map +1 -0
  388. package/dist/cli/cli/src/utils/marketplace.d.ts +17 -4
  389. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  390. package/dist/cli/cli/src/utils/marketplace.js +172 -58
  391. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  392. package/dist/cli/cli/src/utils/package-validator.d.ts +62 -0
  393. package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -0
  394. package/dist/cli/cli/src/utils/package-validator.js +122 -0
  395. package/dist/cli/cli/src/utils/package-validator.js.map +1 -0
  396. package/dist/cli/cli/src/utils/templates.d.ts +71 -0
  397. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -0
  398. package/dist/cli/cli/src/utils/templates.js +91 -0
  399. package/dist/cli/cli/src/utils/templates.js.map +1 -0
  400. package/dist/cli/config/constants.d.ts +41 -0
  401. package/dist/cli/config/constants.d.ts.map +1 -1
  402. package/dist/cli/config/constants.js +57 -0
  403. package/dist/cli/config/constants.js.map +1 -1
  404. package/dist/cli/config/index.d.ts +2 -2
  405. package/dist/cli/config/index.d.ts.map +1 -1
  406. package/dist/cli/config/index.js +2 -2
  407. package/dist/cli/config/index.js.map +1 -1
  408. package/frontend/dist/assets/{index-523c7fce.js → index-0a245b0d.js} +247 -247
  409. package/frontend/dist/assets/{index-4c050f52.css → index-6972eeee.css} +1 -1
  410. package/frontend/dist/assets/nunito-cyrillic-400-normal-e44e669f.woff2 +0 -0
  411. package/frontend/dist/assets/nunito-cyrillic-400-normal-ff8e8bdd.woff +0 -0
  412. package/frontend/dist/assets/nunito-cyrillic-500-normal-2159679b.woff +0 -0
  413. package/frontend/dist/assets/nunito-cyrillic-500-normal-61a3b80e.woff2 +0 -0
  414. package/frontend/dist/assets/nunito-cyrillic-600-normal-ac046097.woff +0 -0
  415. package/frontend/dist/assets/nunito-cyrillic-600-normal-e61eb97b.woff2 +0 -0
  416. package/frontend/dist/assets/nunito-cyrillic-700-normal-8fcefcc9.woff2 +0 -0
  417. package/frontend/dist/assets/nunito-cyrillic-700-normal-b9684104.woff +0 -0
  418. package/frontend/dist/assets/nunito-cyrillic-800-normal-40253beb.woff +0 -0
  419. package/frontend/dist/assets/nunito-cyrillic-800-normal-d80292de.woff2 +0 -0
  420. package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-20d73ae7.woff2 +0 -0
  421. package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-d48c37c9.woff +0 -0
  422. package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-16197abd.woff +0 -0
  423. package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-9dcfe9b5.woff2 +0 -0
  424. package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-d53e9851.woff2 +0 -0
  425. package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-e3d0201f.woff +0 -0
  426. package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-5936f6ac.woff2 +0 -0
  427. package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-c8c02775.woff +0 -0
  428. package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-217b8f51.woff +0 -0
  429. package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-796cf7bd.woff2 +0 -0
  430. package/frontend/dist/assets/nunito-latin-400-normal-a5906e15.woff2 +0 -0
  431. package/frontend/dist/assets/nunito-latin-400-normal-b51e7635.woff +0 -0
  432. package/frontend/dist/assets/nunito-latin-500-normal-23ae3083.woff2 +0 -0
  433. package/frontend/dist/assets/nunito-latin-500-normal-be14dbc6.woff +0 -0
  434. package/frontend/dist/assets/nunito-latin-600-normal-06a9c8b3.woff +0 -0
  435. package/frontend/dist/assets/nunito-latin-600-normal-45f437de.woff2 +0 -0
  436. package/frontend/dist/assets/nunito-latin-700-normal-ce9107dc.woff +0 -0
  437. package/frontend/dist/assets/nunito-latin-700-normal-fa89300b.woff2 +0 -0
  438. package/frontend/dist/assets/nunito-latin-800-normal-0ca02785.woff +0 -0
  439. package/frontend/dist/assets/nunito-latin-800-normal-2363d3ed.woff2 +0 -0
  440. package/frontend/dist/assets/nunito-latin-ext-400-normal-67250a41.woff2 +0 -0
  441. package/frontend/dist/assets/nunito-latin-ext-400-normal-d7e2415e.woff +0 -0
  442. package/frontend/dist/assets/nunito-latin-ext-500-normal-06f35d1c.woff +0 -0
  443. package/frontend/dist/assets/nunito-latin-ext-500-normal-343e7adc.woff2 +0 -0
  444. package/frontend/dist/assets/nunito-latin-ext-600-normal-5a8efd17.woff +0 -0
  445. package/frontend/dist/assets/nunito-latin-ext-600-normal-a7ba5f4f.woff2 +0 -0
  446. package/frontend/dist/assets/nunito-latin-ext-700-normal-0a4e4a02.woff2 +0 -0
  447. package/frontend/dist/assets/nunito-latin-ext-700-normal-0c607961.woff +0 -0
  448. package/frontend/dist/assets/nunito-latin-ext-800-normal-39f54b55.woff2 +0 -0
  449. package/frontend/dist/assets/nunito-latin-ext-800-normal-466d0211.woff +0 -0
  450. package/frontend/dist/assets/nunito-vietnamese-400-normal-2a755616.woff2 +0 -0
  451. package/frontend/dist/assets/nunito-vietnamese-400-normal-9c01ea9f.woff +0 -0
  452. package/frontend/dist/assets/nunito-vietnamese-500-normal-452e5e08.woff +0 -0
  453. package/frontend/dist/assets/nunito-vietnamese-500-normal-dc98d965.woff2 +0 -0
  454. package/frontend/dist/assets/nunito-vietnamese-600-normal-2ffbb85f.woff +0 -0
  455. package/frontend/dist/assets/nunito-vietnamese-600-normal-cf95b95d.woff2 +0 -0
  456. package/frontend/dist/assets/nunito-vietnamese-700-normal-0e29c28c.woff2 +0 -0
  457. package/frontend/dist/assets/nunito-vietnamese-700-normal-7793b75e.woff +0 -0
  458. package/frontend/dist/assets/nunito-vietnamese-800-normal-5baf507e.woff +0 -0
  459. package/frontend/dist/assets/nunito-vietnamese-800-normal-fac6740e.woff2 +0 -0
  460. package/frontend/dist/index.html +2 -2
  461. package/package.json +16 -6
  462. package/config/skills/chrome-browser/instructions.md +0 -42
  463. package/config/skills/chrome-browser/skill.json +0 -39
  464. package/config/skills/nano-banana-image/generate.sh +0 -73
  465. package/config/skills/nano-banana-image/instructions.md +0 -50
  466. package/config/skills/nano-banana-image/skill.json +0 -39
  467. package/config/skills/playwright-chrome-browser/instructions.md +0 -95
  468. package/config/skills/playwright-chrome-browser/skill.json +0 -44
@@ -25,7 +25,7 @@ import type { Request, Response } from 'express';
25
25
  * GET /api/marketplace?type=skill&search=deploy&sort=popular
26
26
  * ```
27
27
  */
28
- export declare function handleListItems(req: Request, res: Response): Promise<void>;
28
+ export declare const handleListItems: (req: Request, res: Response) => Promise<void>;
29
29
  /**
30
30
  * GET /api/marketplace/installed - List locally installed marketplace items.
31
31
  *
@@ -40,7 +40,7 @@ export declare function handleListItems(req: Request, res: Response): Promise<vo
40
40
  * GET /api/marketplace/installed
41
41
  * ```
42
42
  */
43
- export declare function handleListInstalled(_req: Request, res: Response): Promise<void>;
43
+ export declare const handleListInstalled: (req: Request, res: Response) => Promise<void>;
44
44
  /**
45
45
  * GET /api/marketplace/updates - List items with available updates.
46
46
  *
@@ -55,7 +55,7 @@ export declare function handleListInstalled(_req: Request, res: Response): Promi
55
55
  * GET /api/marketplace/updates
56
56
  * ```
57
57
  */
58
- export declare function handleListUpdates(_req: Request, res: Response): Promise<void>;
58
+ export declare const handleListUpdates: (req: Request, res: Response) => Promise<void>;
59
59
  /**
60
60
  * GET /api/marketplace/:id - Get a single marketplace item by ID.
61
61
  *
@@ -70,7 +70,7 @@ export declare function handleListUpdates(_req: Request, res: Response): Promise
70
70
  * GET /api/marketplace/skill-deploy-aws
71
71
  * ```
72
72
  */
73
- export declare function handleGetItem(req: Request, res: Response): Promise<void>;
73
+ export declare const handleGetItem: (req: Request, res: Response) => Promise<void>;
74
74
  /**
75
75
  * POST /api/marketplace/refresh - Force refresh the registry cache.
76
76
  *
@@ -85,7 +85,7 @@ export declare function handleGetItem(req: Request, res: Response): Promise<void
85
85
  * POST /api/marketplace/refresh
86
86
  * ```
87
87
  */
88
- export declare function handleRefresh(_req: Request, res: Response): Promise<void>;
88
+ export declare const handleRefresh: (req: Request, res: Response) => Promise<void>;
89
89
  /**
90
90
  * POST /api/marketplace/:id/install - Install a marketplace item.
91
91
  *
@@ -101,7 +101,7 @@ export declare function handleRefresh(_req: Request, res: Response): Promise<voi
101
101
  * POST /api/marketplace/skill-deploy-aws/install
102
102
  * ```
103
103
  */
104
- export declare function handleInstall(req: Request, res: Response): Promise<void>;
104
+ export declare const handleInstall: (req: Request, res: Response) => Promise<void>;
105
105
  /**
106
106
  * POST /api/marketplace/:id/uninstall - Uninstall a marketplace item.
107
107
  *
@@ -116,7 +116,7 @@ export declare function handleInstall(req: Request, res: Response): Promise<void
116
116
  * POST /api/marketplace/skill-deploy-aws/uninstall
117
117
  * ```
118
118
  */
119
- export declare function handleUninstall(req: Request, res: Response): Promise<void>;
119
+ export declare const handleUninstall: (req: Request, res: Response) => Promise<void>;
120
120
  /**
121
121
  * POST /api/marketplace/:id/update - Update a marketplace item.
122
122
  *
@@ -131,5 +131,61 @@ export declare function handleUninstall(req: Request, res: Response): Promise<vo
131
131
  * POST /api/marketplace/skill-deploy-aws/update
132
132
  * ```
133
133
  */
134
- export declare function handleUpdate(req: Request, res: Response): Promise<void>;
134
+ export declare const handleUpdate: (req: Request, res: Response) => Promise<void>;
135
+ /**
136
+ * POST /api/marketplace/submit - Submit a skill for marketplace review.
137
+ *
138
+ * Accepts a JSON body with `archivePath` pointing to a local tar.gz archive.
139
+ * Validates the archive contents, stores a copy, and creates a pending
140
+ * submission record.
141
+ *
142
+ * @param req - Express request with body: { archivePath: string }
143
+ * @param res - Express response returning submission result
144
+ *
145
+ * @example
146
+ * ```
147
+ * POST /api/marketplace/submit
148
+ * { "archivePath": "/path/to/my-skill-1.0.0.tar.gz" }
149
+ * ```
150
+ */
151
+ export declare const handleSubmit: (req: Request, res: Response) => Promise<void>;
152
+ /**
153
+ * GET /api/marketplace/submissions - List all submissions.
154
+ *
155
+ * Accepts an optional `status` query parameter to filter by submission status.
156
+ *
157
+ * @param req - Express request with optional query: status (pending|approved|rejected)
158
+ * @param res - Express response returning { success, data: MarketplaceSubmission[] }
159
+ *
160
+ * @example
161
+ * ```
162
+ * GET /api/marketplace/submissions?status=pending
163
+ * ```
164
+ */
165
+ export declare const handleListSubmissions: (req: Request, res: Response) => Promise<void>;
166
+ /**
167
+ * GET /api/marketplace/submissions/:id - Get a single submission.
168
+ *
169
+ * @param req - Express request with params.id
170
+ * @param res - Express response returning { success, data: MarketplaceSubmission } or 404
171
+ *
172
+ * @example
173
+ * ```
174
+ * GET /api/marketplace/submissions/abc-123
175
+ * ```
176
+ */
177
+ export declare const handleGetSubmission: (req: Request, res: Response) => Promise<void>;
178
+ /**
179
+ * POST /api/marketplace/submissions/:id/review - Approve or reject a submission.
180
+ *
181
+ * @param req - Express request with params.id and body: { action: 'approve'|'reject', notes?: string }
182
+ * @param res - Express response returning operation result
183
+ *
184
+ * @example
185
+ * ```
186
+ * POST /api/marketplace/submissions/abc-123/review
187
+ * { "action": "approve" }
188
+ * ```
189
+ */
190
+ export declare const handleReviewSubmission: (req: Request, res: Response) => Promise<void>;
135
191
  //# sourceMappingURL=marketplace.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAajD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7E"}
1
+ {"version":3,"file":"marketplace.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAyCjD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,QA1BP,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CA8CxD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,QA9DX,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAiExD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,QAjFT,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAoFxD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,QApGL,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CA2GxD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,QA3HL,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAiIxD,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,QAlJL,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CA0JxD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,QA1KP,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CA6KxD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,QA7LJ,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAqMxD,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,QAvNJ,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAmPxD,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,QAlQb,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CA6QxD,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,QA1RX,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAiSxD,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,QA/Sd,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CA2TxD,CAAC"}
@@ -8,7 +8,30 @@
8
8
  *
9
9
  * @module controllers/marketplace/marketplace.controller
10
10
  */
11
- import { listItems, getItem, getInstalledItems, getUpdatableItems, fetchRegistry, installItem, uninstallItem, updateItem, } from '../../services/marketplace/index.js';
11
+ import path from 'path';
12
+ import { homedir } from 'os';
13
+ import { listItems, getItem, getInstalledItems, getUpdatableItems, fetchRegistry, installItem, uninstallItem, updateItem, submitSkill, listSubmissions, getSubmission, reviewSubmission, } from '../../services/marketplace/index.js';
14
+ const VALID_TYPES = ['skill', 'model', 'role'];
15
+ const VALID_SORTS = ['popular', 'rating', 'newest'];
16
+ const VALID_SUBMISSION_STATUSES = ['pending', 'approved', 'rejected'];
17
+ /**
18
+ * Wraps an async route handler with a standard try/catch that returns
19
+ * a consistent JSON error response on unhandled exceptions.
20
+ *
21
+ * @param fn - The async handler function to wrap
22
+ * @returns A wrapped handler that catches errors and responds with 500
23
+ */
24
+ function asyncHandler(fn) {
25
+ return async (req, res) => {
26
+ try {
27
+ await fn(req, res);
28
+ }
29
+ catch (error) {
30
+ const msg = error instanceof Error ? error.message : String(error);
31
+ res.status(500).json({ success: false, error: msg });
32
+ }
33
+ };
34
+ }
12
35
  /**
13
36
  * GET /api/marketplace - List marketplace items with optional filters.
14
37
  *
@@ -25,20 +48,25 @@ import { listItems, getItem, getInstalledItems, getUpdatableItems, fetchRegistry
25
48
  * GET /api/marketplace?type=skill&search=deploy&sort=popular
26
49
  * ```
27
50
  */
28
- export async function handleListItems(req, res) {
29
- try {
30
- const items = await listItems({
31
- type: req.query.type,
32
- search: req.query.search,
33
- sortBy: req.query.sort || undefined,
34
- });
35
- res.json({ success: true, data: items });
51
+ export const handleListItems = asyncHandler(async (req, res) => {
52
+ const typeParam = req.query.type;
53
+ if (typeParam && !VALID_TYPES.includes(typeParam)) {
54
+ res.status(400).json({ success: false, error: `Invalid type "${typeParam}". Must be one of: ${VALID_TYPES.join(', ')}` });
55
+ return;
36
56
  }
37
- catch (error) {
38
- const msg = error instanceof Error ? error.message : String(error);
39
- res.status(500).json({ success: false, error: msg });
57
+ const sortParam = req.query.sort;
58
+ if (sortParam && !VALID_SORTS.includes(sortParam)) {
59
+ res.status(400).json({ success: false, error: `Invalid sort "${sortParam}". Must be one of: ${VALID_SORTS.join(', ')}` });
60
+ return;
40
61
  }
41
- }
62
+ const items = await listItems({
63
+ type: typeParam,
64
+ category: req.query.category,
65
+ search: req.query.search,
66
+ sortBy: sortParam,
67
+ });
68
+ res.json({ success: true, data: items });
69
+ });
42
70
  /**
43
71
  * GET /api/marketplace/installed - List locally installed marketplace items.
44
72
  *
@@ -53,16 +81,10 @@ export async function handleListItems(req, res) {
53
81
  * GET /api/marketplace/installed
54
82
  * ```
55
83
  */
56
- export async function handleListInstalled(_req, res) {
57
- try {
58
- const items = await getInstalledItems();
59
- res.json({ success: true, data: items });
60
- }
61
- catch (error) {
62
- const msg = error instanceof Error ? error.message : String(error);
63
- res.status(500).json({ success: false, error: msg });
64
- }
65
- }
84
+ export const handleListInstalled = asyncHandler(async (_req, res) => {
85
+ const items = await getInstalledItems();
86
+ res.json({ success: true, data: items });
87
+ });
66
88
  /**
67
89
  * GET /api/marketplace/updates - List items with available updates.
68
90
  *
@@ -77,16 +99,10 @@ export async function handleListInstalled(_req, res) {
77
99
  * GET /api/marketplace/updates
78
100
  * ```
79
101
  */
80
- export async function handleListUpdates(_req, res) {
81
- try {
82
- const items = await getUpdatableItems();
83
- res.json({ success: true, data: items });
84
- }
85
- catch (error) {
86
- const msg = error instanceof Error ? error.message : String(error);
87
- res.status(500).json({ success: false, error: msg });
88
- }
89
- }
102
+ export const handleListUpdates = asyncHandler(async (_req, res) => {
103
+ const items = await getUpdatableItems();
104
+ res.json({ success: true, data: items });
105
+ });
90
106
  /**
91
107
  * GET /api/marketplace/:id - Get a single marketplace item by ID.
92
108
  *
@@ -101,20 +117,14 @@ export async function handleListUpdates(_req, res) {
101
117
  * GET /api/marketplace/skill-deploy-aws
102
118
  * ```
103
119
  */
104
- export async function handleGetItem(req, res) {
105
- try {
106
- const item = await getItem(req.params.id);
107
- if (!item) {
108
- res.status(404).json({ success: false, error: 'Item not found' });
109
- return;
110
- }
111
- res.json({ success: true, data: item });
120
+ export const handleGetItem = asyncHandler(async (req, res) => {
121
+ const item = await getItem(req.params.id);
122
+ if (!item) {
123
+ res.status(404).json({ success: false, error: 'Item not found' });
124
+ return;
112
125
  }
113
- catch (error) {
114
- const msg = error instanceof Error ? error.message : String(error);
115
- res.status(500).json({ success: false, error: msg });
116
- }
117
- }
126
+ res.json({ success: true, data: item });
127
+ });
118
128
  /**
119
129
  * POST /api/marketplace/refresh - Force refresh the registry cache.
120
130
  *
@@ -129,19 +139,13 @@ export async function handleGetItem(req, res) {
129
139
  * POST /api/marketplace/refresh
130
140
  * ```
131
141
  */
132
- export async function handleRefresh(_req, res) {
133
- try {
134
- const registry = await fetchRegistry(true);
135
- res.json({
136
- success: true,
137
- data: { itemCount: registry.items.length, lastUpdated: registry.lastUpdated },
138
- });
139
- }
140
- catch (error) {
141
- const msg = error instanceof Error ? error.message : String(error);
142
- res.status(500).json({ success: false, error: msg });
143
- }
144
- }
142
+ export const handleRefresh = asyncHandler(async (_req, res) => {
143
+ const registry = await fetchRegistry(true);
144
+ res.json({
145
+ success: true,
146
+ data: { itemCount: registry.items.length, lastUpdated: registry.lastUpdated },
147
+ });
148
+ });
145
149
  /**
146
150
  * POST /api/marketplace/:id/install - Install a marketplace item.
147
151
  *
@@ -157,21 +161,15 @@ export async function handleRefresh(_req, res) {
157
161
  * POST /api/marketplace/skill-deploy-aws/install
158
162
  * ```
159
163
  */
160
- export async function handleInstall(req, res) {
161
- try {
162
- const item = await getItem(req.params.id);
163
- if (!item) {
164
- res.status(404).json({ success: false, error: 'Item not found' });
165
- return;
166
- }
167
- const result = await installItem(item);
168
- res.json(result);
164
+ export const handleInstall = asyncHandler(async (req, res) => {
165
+ const item = await getItem(req.params.id);
166
+ if (!item) {
167
+ res.status(404).json({ success: false, error: 'Item not found' });
168
+ return;
169
169
  }
170
- catch (error) {
171
- const msg = error instanceof Error ? error.message : String(error);
172
- res.status(500).json({ success: false, error: msg });
173
- }
174
- }
170
+ const result = await installItem(item);
171
+ res.json(result);
172
+ });
175
173
  /**
176
174
  * POST /api/marketplace/:id/uninstall - Uninstall a marketplace item.
177
175
  *
@@ -186,16 +184,10 @@ export async function handleInstall(req, res) {
186
184
  * POST /api/marketplace/skill-deploy-aws/uninstall
187
185
  * ```
188
186
  */
189
- export async function handleUninstall(req, res) {
190
- try {
191
- const result = await uninstallItem(req.params.id);
192
- res.json(result);
193
- }
194
- catch (error) {
195
- const msg = error instanceof Error ? error.message : String(error);
196
- res.status(500).json({ success: false, error: msg });
197
- }
198
- }
187
+ export const handleUninstall = asyncHandler(async (req, res) => {
188
+ const result = await uninstallItem(req.params.id);
189
+ res.json(result);
190
+ });
199
191
  /**
200
192
  * POST /api/marketplace/:id/update - Update a marketplace item.
201
193
  *
@@ -210,19 +202,125 @@ export async function handleUninstall(req, res) {
210
202
  * POST /api/marketplace/skill-deploy-aws/update
211
203
  * ```
212
204
  */
213
- export async function handleUpdate(req, res) {
214
- try {
215
- const item = await getItem(req.params.id);
216
- if (!item) {
217
- res.status(404).json({ success: false, error: 'Item not found' });
218
- return;
219
- }
220
- const result = await updateItem(item);
221
- res.json(result);
205
+ export const handleUpdate = asyncHandler(async (req, res) => {
206
+ const item = await getItem(req.params.id);
207
+ if (!item) {
208
+ res.status(404).json({ success: false, error: 'Item not found' });
209
+ return;
222
210
  }
223
- catch (error) {
224
- const msg = error instanceof Error ? error.message : String(error);
225
- res.status(500).json({ success: false, error: msg });
211
+ const result = await updateItem(item);
212
+ res.json(result);
213
+ });
214
+ /**
215
+ * POST /api/marketplace/submit - Submit a skill for marketplace review.
216
+ *
217
+ * Accepts a JSON body with `archivePath` pointing to a local tar.gz archive.
218
+ * Validates the archive contents, stores a copy, and creates a pending
219
+ * submission record.
220
+ *
221
+ * @param req - Express request with body: { archivePath: string }
222
+ * @param res - Express response returning submission result
223
+ *
224
+ * @example
225
+ * ```
226
+ * POST /api/marketplace/submit
227
+ * { "archivePath": "/path/to/my-skill-1.0.0.tar.gz" }
228
+ * ```
229
+ */
230
+ export const handleSubmit = asyncHandler(async (req, res) => {
231
+ const { archivePath } = req.body;
232
+ if (!archivePath) {
233
+ res.status(400).json({ success: false, error: 'archivePath is required' });
234
+ return;
226
235
  }
227
- }
236
+ // Validate archivePath is within allowed directories to prevent path traversal
237
+ const resolvedPath = path.resolve(archivePath);
238
+ const allowedDirs = [
239
+ path.resolve(homedir(), '.crewly'),
240
+ path.resolve(process.cwd()),
241
+ path.resolve('/tmp'),
242
+ ];
243
+ const isAllowed = allowedDirs.some((dir) => {
244
+ const normalizedDir = dir.endsWith(path.sep) ? dir : dir + path.sep;
245
+ return resolvedPath === dir || resolvedPath.startsWith(normalizedDir);
246
+ });
247
+ if (!isAllowed) {
248
+ res.status(400).json({
249
+ success: false,
250
+ error: 'archivePath must be within the project directory, ~/.crewly, or /tmp',
251
+ });
252
+ return;
253
+ }
254
+ const result = await submitSkill(archivePath);
255
+ res.json(result);
256
+ });
257
+ /**
258
+ * GET /api/marketplace/submissions - List all submissions.
259
+ *
260
+ * Accepts an optional `status` query parameter to filter by submission status.
261
+ *
262
+ * @param req - Express request with optional query: status (pending|approved|rejected)
263
+ * @param res - Express response returning { success, data: MarketplaceSubmission[] }
264
+ *
265
+ * @example
266
+ * ```
267
+ * GET /api/marketplace/submissions?status=pending
268
+ * ```
269
+ */
270
+ export const handleListSubmissions = asyncHandler(async (req, res) => {
271
+ const statusParam = req.query.status;
272
+ if (statusParam && !VALID_SUBMISSION_STATUSES.includes(statusParam)) {
273
+ res.status(400).json({
274
+ success: false,
275
+ error: `Invalid status "${statusParam}". Must be one of: ${VALID_SUBMISSION_STATUSES.join(', ')}`,
276
+ });
277
+ return;
278
+ }
279
+ const submissions = await listSubmissions(statusParam);
280
+ res.json({ success: true, data: submissions });
281
+ });
282
+ /**
283
+ * GET /api/marketplace/submissions/:id - Get a single submission.
284
+ *
285
+ * @param req - Express request with params.id
286
+ * @param res - Express response returning { success, data: MarketplaceSubmission } or 404
287
+ *
288
+ * @example
289
+ * ```
290
+ * GET /api/marketplace/submissions/abc-123
291
+ * ```
292
+ */
293
+ export const handleGetSubmission = asyncHandler(async (req, res) => {
294
+ const submission = await getSubmission(req.params.id);
295
+ if (!submission) {
296
+ res.status(404).json({ success: false, error: 'Submission not found' });
297
+ return;
298
+ }
299
+ res.json({ success: true, data: submission });
300
+ });
301
+ /**
302
+ * POST /api/marketplace/submissions/:id/review - Approve or reject a submission.
303
+ *
304
+ * @param req - Express request with params.id and body: { action: 'approve'|'reject', notes?: string }
305
+ * @param res - Express response returning operation result
306
+ *
307
+ * @example
308
+ * ```
309
+ * POST /api/marketplace/submissions/abc-123/review
310
+ * { "action": "approve" }
311
+ * ```
312
+ */
313
+ export const handleReviewSubmission = asyncHandler(async (req, res) => {
314
+ const { action, notes } = req.body;
315
+ if (action !== 'approve' && action !== 'reject') {
316
+ res.status(400).json({ success: false, error: 'action must be "approve" or "reject"' });
317
+ return;
318
+ }
319
+ const result = await reviewSubmission(req.params.id, action, notes);
320
+ if (!result.success && result.message.startsWith('Submission not found')) {
321
+ res.status(404).json(result);
322
+ return;
323
+ }
324
+ res.json(result);
325
+ });
228
326
  //# sourceMappingURL=marketplace.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketplace.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAYjC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAgBhD"}
1
+ {"version":3,"file":"marketplace.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAgBjC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAsBhD"}
@@ -8,7 +8,7 @@
8
8
  * @module controllers/marketplace/marketplace.routes
9
9
  */
10
10
  import { Router } from 'express';
11
- import { handleListItems, handleListInstalled, handleListUpdates, handleGetItem, handleRefresh, handleInstall, handleUninstall, handleUpdate, } from './marketplace.controller.js';
11
+ import { handleListItems, handleListInstalled, handleListUpdates, handleGetItem, handleRefresh, handleInstall, handleUninstall, handleUpdate, handleSubmit, handleListSubmissions, handleGetSubmission, handleReviewSubmission, } from './marketplace.controller.js';
12
12
  /**
13
13
  * Creates the marketplace router with all marketplace endpoints.
14
14
  *
@@ -29,11 +29,16 @@ import { handleListItems, handleListInstalled, handleListUpdates, handleGetItem,
29
29
  */
30
30
  export function createMarketplaceRouter() {
31
31
  const router = Router();
32
- // Static routes first to avoid /:id matching "installed", "updates", "refresh"
32
+ // Static routes first to avoid /:id matching "installed", "updates", "refresh", "submissions"
33
33
  router.get('/', handleListItems);
34
34
  router.get('/installed', handleListInstalled);
35
35
  router.get('/updates', handleListUpdates);
36
36
  router.post('/refresh', handleRefresh);
37
+ // Submission routes (static paths, must come before /:id)
38
+ router.post('/submit', handleSubmit);
39
+ router.get('/submissions', handleListSubmissions);
40
+ router.get('/submissions/:id', handleGetSubmission);
41
+ router.post('/submissions/:id/review', handleReviewSubmission);
37
42
  // Parameterized routes after static routes
38
43
  router.get('/:id', handleGetItem);
39
44
  router.post('/:id/install', handleInstall);
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,+EAA+E;IAC/E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"marketplace.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/marketplace/marketplace.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,8FAA8F;IAC9F,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEvC,0DAA0D;IAC1D,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC;IAE/D,2CAA2C;IAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -81,6 +81,13 @@ export declare function createTasksFromConfig(this: ApiContext, req: Request, re
81
81
  * @param res - Response with task file content
82
82
  */
83
83
  export declare function readTask(this: ApiController, req: Request, res: Response): Promise<void>;
84
+ /**
85
+ * Retrieves the stored output JSON for a completed task.
86
+ *
87
+ * @param req - Request containing taskPath (path to the .md file in done/)
88
+ * @param res - Response with the parsed output data
89
+ */
90
+ export declare function getTaskOutput(this: ApiController, req: Request, res: Response): Promise<void>;
84
91
  /**
85
92
  * POST /api/task-management/request-review
86
93
  *
@@ -1 +1 @@
1
- {"version":3,"file":"task-management.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/task-management/task-management.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAW9C;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FhG;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HhG;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D/F;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DjG;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA+Df;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4Ff;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA+Gf;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B3G;AAED,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAkIf;AAuID;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C9F;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoCf"}
1
+ {"version":3,"file":"task-management.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/task-management/task-management.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAa9C;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGhG;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HhG;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuNf;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D/F;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DjG;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA+Df;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4Ff;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA+Gf;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B3G;AAED,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAkIf;AA6ID;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C9F;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCnG;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoCf"}