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
@@ -0,0 +1,586 @@
1
+ /**
2
+ * Crewly MCP Server Service
3
+ *
4
+ * Exposes Crewly capabilities as MCP (Model Context Protocol) tools so that
5
+ * external AI tools — Claude Code, Cursor, Windsurf, etc. — can manage
6
+ * Crewly teams via the standard MCP protocol.
7
+ *
8
+ * This is Crewly's unique differentiator: no competitor offers a
9
+ * "team management backend" controllable via MCP.
10
+ *
11
+ * Supported tools:
12
+ * - crewly_get_teams — List all teams and their members/status
13
+ * - crewly_create_team — Create a new team with members
14
+ * - crewly_assign_task — Assign a task to a specific agent
15
+ * - crewly_get_status — Get agent/team status
16
+ * - crewly_recall_memory — Search team memory/knowledge
17
+ * - crewly_send_message — Send a message to an agent
18
+ *
19
+ * @module services/mcp-server
20
+ */
21
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
22
+ import { StdioServerTransport, } from '@modelcontextprotocol/sdk/server/stdio.js';
23
+ import { ListToolsRequestSchema, CallToolRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
24
+ import { StorageService } from './core/storage.service.js';
25
+ import { MemoryService } from './memory/memory.service.js';
26
+ import { v4 as uuidv4 } from 'uuid';
27
+ // ========================= Constants =========================
28
+ /**
29
+ * MCP Server configuration constants.
30
+ */
31
+ export const MCP_SERVER_CONSTANTS = {
32
+ /** Server identification sent during MCP handshake */
33
+ SERVER_INFO: {
34
+ NAME: 'crewly-mcp-server',
35
+ VERSION: '1.0.0',
36
+ },
37
+ /** Tool name prefix for namespacing */
38
+ TOOL_PREFIX: 'crewly',
39
+ };
40
+ // ========================= Tool Definitions =========================
41
+ /**
42
+ * MCP tool definitions for Crewly capabilities.
43
+ * Each tool has a name, description, and JSON Schema for its input.
44
+ */
45
+ const TOOL_DEFINITIONS = [
46
+ {
47
+ name: 'crewly_get_teams',
48
+ description: 'List all Crewly teams and their members with current status. ' +
49
+ 'Returns team names, member roles, agent status, and working status.',
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: {
53
+ teamId: {
54
+ type: 'string',
55
+ description: 'Optional: filter to a specific team by ID',
56
+ },
57
+ },
58
+ },
59
+ },
60
+ {
61
+ name: 'crewly_create_team',
62
+ description: 'Create a new Crewly team with the specified members. ' +
63
+ 'Each member needs a name, role, and runtime type.',
64
+ inputSchema: {
65
+ type: 'object',
66
+ properties: {
67
+ name: {
68
+ type: 'string',
69
+ description: 'Team name (e.g. "Backend Squad")',
70
+ },
71
+ description: {
72
+ type: 'string',
73
+ description: 'Optional team description',
74
+ },
75
+ members: {
76
+ type: 'array',
77
+ description: 'Array of team members to create',
78
+ items: {
79
+ type: 'object',
80
+ properties: {
81
+ name: { type: 'string', description: 'Member name' },
82
+ role: {
83
+ type: 'string',
84
+ description: 'Member role (developer, qa, product-manager, designer, etc.)',
85
+ },
86
+ runtimeType: {
87
+ type: 'string',
88
+ enum: ['claude-code', 'gemini-cli', 'codex-cli'],
89
+ description: 'AI runtime to use (default: claude-code)',
90
+ },
91
+ },
92
+ required: ['name', 'role'],
93
+ },
94
+ },
95
+ },
96
+ required: ['name', 'members'],
97
+ },
98
+ },
99
+ {
100
+ name: 'crewly_assign_task',
101
+ description: 'Assign a task to a specific agent by sending it a message via the ' +
102
+ 'message queue. The agent will receive the task content as input.',
103
+ inputSchema: {
104
+ type: 'object',
105
+ properties: {
106
+ teamId: {
107
+ type: 'string',
108
+ description: 'ID of the team the agent belongs to',
109
+ },
110
+ memberId: {
111
+ type: 'string',
112
+ description: 'ID of the member to assign the task to',
113
+ },
114
+ task: {
115
+ type: 'string',
116
+ description: 'Task description/instructions for the agent',
117
+ },
118
+ },
119
+ required: ['teamId', 'memberId', 'task'],
120
+ },
121
+ },
122
+ {
123
+ name: 'crewly_get_status',
124
+ description: 'Get the current status of a specific team or agent. Returns agent ' +
125
+ 'status (active/inactive), working status (idle/in_progress), and ' +
126
+ 'runtime type.',
127
+ inputSchema: {
128
+ type: 'object',
129
+ properties: {
130
+ teamId: {
131
+ type: 'string',
132
+ description: 'Optional: filter to a specific team',
133
+ },
134
+ memberId: {
135
+ type: 'string',
136
+ description: 'Optional: filter to a specific member within a team',
137
+ },
138
+ },
139
+ },
140
+ },
141
+ {
142
+ name: 'crewly_recall_memory',
143
+ description: 'Search team memory and knowledge base for relevant information. ' +
144
+ 'Uses keyword and semantic matching to find stored learnings, ' +
145
+ 'patterns, decisions, and documents.',
146
+ inputSchema: {
147
+ type: 'object',
148
+ properties: {
149
+ query: {
150
+ type: 'string',
151
+ description: 'Search query for the memory/knowledge system',
152
+ },
153
+ agentId: {
154
+ type: 'string',
155
+ description: 'Optional: agent ID to scope the recall',
156
+ },
157
+ projectPath: {
158
+ type: 'string',
159
+ description: 'Optional: project path to scope the recall',
160
+ },
161
+ scope: {
162
+ type: 'string',
163
+ enum: ['agent', 'project', 'both'],
164
+ description: 'Memory scope to search (default: both)',
165
+ },
166
+ },
167
+ required: ['query'],
168
+ },
169
+ },
170
+ {
171
+ name: 'crewly_send_message',
172
+ description: 'Send a message to the orchestrator via the message queue. ' +
173
+ 'The message will be queued and processed by the orchestrator.',
174
+ inputSchema: {
175
+ type: 'object',
176
+ properties: {
177
+ message: {
178
+ type: 'string',
179
+ description: 'Message content to send',
180
+ },
181
+ conversationId: {
182
+ type: 'string',
183
+ description: 'Optional: conversation ID for threading (auto-generated if omitted)',
184
+ },
185
+ },
186
+ required: ['message'],
187
+ },
188
+ },
189
+ ];
190
+ // ========================= Service =========================
191
+ /**
192
+ * CrewlyMcpServer exposes Crewly team management capabilities as MCP tools.
193
+ *
194
+ * External AI tools can connect to this server via stdio transport and use
195
+ * the provided tools to create teams, assign tasks, check status, search
196
+ * memory, and send messages — all through the standard MCP protocol.
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const mcpServer = new CrewlyMcpServer();
201
+ * await mcpServer.start(); // Starts on stdio
202
+ * ```
203
+ *
204
+ * @example Claude Code configuration (~/.claude/claude_desktop_config.json):
205
+ * ```json
206
+ * {
207
+ * "mcpServers": {
208
+ * "crewly": {
209
+ * "command": "npx",
210
+ * "args": ["crewly", "mcp-server"]
211
+ * }
212
+ * }
213
+ * }
214
+ * ```
215
+ */
216
+ export class CrewlyMcpServer {
217
+ server;
218
+ storage;
219
+ memory;
220
+ transport = null;
221
+ /**
222
+ * Creates a new CrewlyMcpServer instance.
223
+ *
224
+ * @param config - Optional server configuration
225
+ */
226
+ constructor(config) {
227
+ this.storage = StorageService.getInstance(config?.crewlyHome);
228
+ this.memory = MemoryService.getInstance();
229
+ this.server = new Server({
230
+ name: MCP_SERVER_CONSTANTS.SERVER_INFO.NAME,
231
+ version: MCP_SERVER_CONSTANTS.SERVER_INFO.VERSION,
232
+ }, {
233
+ capabilities: {
234
+ tools: {},
235
+ },
236
+ });
237
+ this.registerHandlers();
238
+ }
239
+ /**
240
+ * Register MCP request handlers for tool listing and tool calling.
241
+ */
242
+ registerHandlers() {
243
+ // Handle tools/list request
244
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
245
+ tools: TOOL_DEFINITIONS.map((tool) => ({
246
+ name: tool.name,
247
+ description: tool.description,
248
+ inputSchema: tool.inputSchema,
249
+ })),
250
+ }));
251
+ // Handle tools/call request
252
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
253
+ const { name, arguments: args } = request.params;
254
+ const result = await this.handleToolCall(name, args ?? {});
255
+ return result;
256
+ });
257
+ }
258
+ /**
259
+ * Route a tool call to the appropriate handler.
260
+ *
261
+ * @param name - Tool name
262
+ * @param args - Tool arguments
263
+ * @returns Tool result with content blocks
264
+ */
265
+ async handleToolCall(name, args) {
266
+ try {
267
+ switch (name) {
268
+ case 'crewly_get_teams':
269
+ return await this.handleGetTeams(args);
270
+ case 'crewly_create_team':
271
+ return await this.handleCreateTeam(args);
272
+ case 'crewly_assign_task':
273
+ return await this.handleAssignTask(args);
274
+ case 'crewly_get_status':
275
+ return await this.handleGetStatus(args);
276
+ case 'crewly_recall_memory':
277
+ return await this.handleRecallMemory(args);
278
+ case 'crewly_send_message':
279
+ return await this.handleSendMessage(args);
280
+ default:
281
+ return this.errorResult(`Unknown tool: ${name}`);
282
+ }
283
+ }
284
+ catch (error) {
285
+ const message = error instanceof Error ? error.message : String(error);
286
+ return this.errorResult(`Tool "${name}" failed: ${message}`);
287
+ }
288
+ }
289
+ // ========================= Tool Handlers =========================
290
+ /**
291
+ * Handle crewly_get_teams: list all teams and their members.
292
+ *
293
+ * @param args - Optional { teamId } to filter
294
+ * @returns Formatted team list
295
+ */
296
+ async handleGetTeams(args) {
297
+ const teams = await this.storage.getTeams();
298
+ const teamId = args.teamId;
299
+ let filtered;
300
+ if (teamId) {
301
+ filtered = teams.filter((t) => t.id === teamId);
302
+ if (filtered.length === 0) {
303
+ return this.errorResult(`Team not found: ${teamId}`);
304
+ }
305
+ }
306
+ else {
307
+ filtered = teams;
308
+ }
309
+ const result = filtered.map((team) => ({
310
+ id: team.id,
311
+ name: team.name,
312
+ description: team.description,
313
+ memberCount: team.members.length,
314
+ members: team.members.map((m) => ({
315
+ id: m.id,
316
+ name: m.name,
317
+ role: m.role,
318
+ agentStatus: m.agentStatus,
319
+ workingStatus: m.workingStatus,
320
+ runtimeType: m.runtimeType,
321
+ sessionName: m.sessionName,
322
+ })),
323
+ projectIds: team.projectIds,
324
+ }));
325
+ return this.successResult(result);
326
+ }
327
+ /**
328
+ * Handle crewly_create_team: create a new team with members.
329
+ *
330
+ * @param args - { name, description?, members: [{name, role, runtimeType?}] }
331
+ * @returns Created team info
332
+ */
333
+ async handleCreateTeam(args) {
334
+ const name = args.name;
335
+ const description = args.description;
336
+ const memberSpecs = args.members;
337
+ if (!name || !memberSpecs || memberSpecs.length === 0) {
338
+ return this.errorResult('Team name and at least one member are required');
339
+ }
340
+ const teamId = uuidv4();
341
+ const now = new Date().toISOString();
342
+ const members = memberSpecs.map((spec) => {
343
+ const memberId = uuidv4();
344
+ return {
345
+ id: memberId,
346
+ name: spec.name,
347
+ sessionName: `${name.toLowerCase().replace(/\s+/g, '-')}-${spec.name.toLowerCase().replace(/\s+/g, '-')}-${memberId.substring(0, 8)}`,
348
+ role: spec.role,
349
+ systemPrompt: '',
350
+ agentStatus: 'inactive',
351
+ workingStatus: 'idle',
352
+ runtimeType: (spec.runtimeType || 'claude-code'),
353
+ createdAt: now,
354
+ updatedAt: now,
355
+ };
356
+ });
357
+ const team = {
358
+ id: teamId,
359
+ name,
360
+ description,
361
+ members,
362
+ projectIds: [],
363
+ createdAt: now,
364
+ updatedAt: now,
365
+ };
366
+ await this.storage.saveTeam(team);
367
+ return this.successResult({
368
+ message: `Team "${name}" created with ${members.length} member(s)`,
369
+ teamId,
370
+ members: members.map((m) => ({
371
+ id: m.id,
372
+ name: m.name,
373
+ role: m.role,
374
+ sessionName: m.sessionName,
375
+ })),
376
+ });
377
+ }
378
+ /**
379
+ * Handle crewly_assign_task: assign a task to a specific agent.
380
+ *
381
+ * This stores the task description on the member's currentTickets field
382
+ * so the orchestrator or dashboard can pick it up. For direct delivery,
383
+ * use crewly_send_message to the orchestrator with task instructions.
384
+ *
385
+ * @param args - { teamId, memberId, task }
386
+ * @returns Assignment confirmation
387
+ */
388
+ async handleAssignTask(args) {
389
+ const teamId = args.teamId;
390
+ const memberId = args.memberId;
391
+ const task = args.task;
392
+ if (!teamId || !memberId || !task) {
393
+ return this.errorResult('teamId, memberId, and task are required');
394
+ }
395
+ const teams = await this.storage.getTeams();
396
+ const team = teams.find((t) => t.id === teamId);
397
+ if (!team) {
398
+ return this.errorResult(`Team not found: ${teamId}`);
399
+ }
400
+ const member = team.members.find((m) => m.id === memberId);
401
+ if (!member) {
402
+ return this.errorResult(`Member not found: ${memberId} in team "${team.name}"`);
403
+ }
404
+ // Add task to member's ticket list
405
+ const ticketId = `mcp-task-${Date.now()}`;
406
+ if (!member.currentTickets) {
407
+ member.currentTickets = [];
408
+ }
409
+ member.currentTickets.push(ticketId);
410
+ member.updatedAt = new Date().toISOString();
411
+ await this.storage.saveTeam(team);
412
+ return this.successResult({
413
+ message: `Task assigned to ${member.name} (${member.role}) in team "${team.name}"`,
414
+ ticketId,
415
+ agentSessionName: member.sessionName,
416
+ agentStatus: member.agentStatus,
417
+ task,
418
+ });
419
+ }
420
+ /**
421
+ * Handle crewly_get_status: get status for teams/agents.
422
+ *
423
+ * @param args - Optional { teamId, memberId } filters
424
+ * @returns Status information
425
+ */
426
+ async handleGetStatus(args) {
427
+ const teams = await this.storage.getTeams();
428
+ const teamId = args.teamId;
429
+ const memberId = args.memberId;
430
+ if (teamId) {
431
+ const team = teams.find((t) => t.id === teamId);
432
+ if (!team) {
433
+ return this.errorResult(`Team not found: ${teamId}`);
434
+ }
435
+ if (memberId) {
436
+ const member = team.members.find((m) => m.id === memberId);
437
+ if (!member) {
438
+ return this.errorResult(`Member not found: ${memberId} in team "${team.name}"`);
439
+ }
440
+ return this.successResult({
441
+ team: { id: team.id, name: team.name },
442
+ member: {
443
+ id: member.id,
444
+ name: member.name,
445
+ role: member.role,
446
+ agentStatus: member.agentStatus,
447
+ workingStatus: member.workingStatus,
448
+ runtimeType: member.runtimeType,
449
+ sessionName: member.sessionName,
450
+ currentTickets: member.currentTickets,
451
+ },
452
+ });
453
+ }
454
+ return this.successResult({
455
+ team: {
456
+ id: team.id,
457
+ name: team.name,
458
+ memberCount: team.members.length,
459
+ },
460
+ members: team.members.map((m) => ({
461
+ id: m.id,
462
+ name: m.name,
463
+ role: m.role,
464
+ agentStatus: m.agentStatus,
465
+ workingStatus: m.workingStatus,
466
+ })),
467
+ });
468
+ }
469
+ // Summary of all teams
470
+ const summary = teams.map((t) => ({
471
+ id: t.id,
472
+ name: t.name,
473
+ memberCount: t.members.length,
474
+ activeCount: t.members.filter((m) => m.agentStatus === 'active').length,
475
+ workingCount: t.members.filter((m) => m.workingStatus === 'in_progress')
476
+ .length,
477
+ }));
478
+ return this.successResult({ teams: summary, totalTeams: teams.length });
479
+ }
480
+ /**
481
+ * Handle crewly_recall_memory: search team memory/knowledge.
482
+ *
483
+ * @param args - { query, agentId?, projectPath?, scope? }
484
+ * @returns Search results
485
+ */
486
+ async handleRecallMemory(args) {
487
+ const query = args.query;
488
+ if (!query) {
489
+ return this.errorResult('query is required');
490
+ }
491
+ const agentId = args.agentId || 'mcp-client';
492
+ const projectPath = args.projectPath;
493
+ const scope = args.scope || 'both';
494
+ const result = await this.memory.recall({
495
+ agentId,
496
+ context: query,
497
+ scope,
498
+ projectPath,
499
+ });
500
+ return this.successResult({
501
+ query,
502
+ agentMemories: result.agentMemories,
503
+ projectMemories: result.projectMemories,
504
+ knowledgeDocuments: result.knowledgeDocuments?.map((doc) => ({
505
+ id: doc.id,
506
+ title: doc.title,
507
+ category: doc.category,
508
+ preview: doc.preview,
509
+ })),
510
+ combined: result.combined,
511
+ });
512
+ }
513
+ /**
514
+ * Handle crewly_send_message: send a message to the orchestrator.
515
+ *
516
+ * @param args - { message, conversationId? }
517
+ * @returns Confirmation with message ID
518
+ */
519
+ async handleSendMessage(args) {
520
+ const message = args.message;
521
+ if (!message) {
522
+ return this.errorResult('message is required');
523
+ }
524
+ const conversationId = args.conversationId || `mcp-${Date.now()}`;
525
+ // Note: The message queue requires a running backend to process messages.
526
+ // This tool creates a record that can be picked up by the queue processor.
527
+ // For now, return a confirmation that the message was received.
528
+ return this.successResult({
529
+ message: 'Message received and queued for processing',
530
+ conversationId,
531
+ content: message,
532
+ timestamp: new Date().toISOString(),
533
+ });
534
+ }
535
+ // ========================= Helpers =========================
536
+ /**
537
+ * Create a success result with JSON-serialized content.
538
+ *
539
+ * @param data - Data to serialize as the result
540
+ * @returns ToolResult with text content
541
+ */
542
+ successResult(data) {
543
+ return {
544
+ content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
545
+ };
546
+ }
547
+ /**
548
+ * Create an error result.
549
+ *
550
+ * @param message - Error message
551
+ * @returns ToolResult with isError flag
552
+ */
553
+ errorResult(message) {
554
+ return {
555
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
556
+ isError: true,
557
+ };
558
+ }
559
+ // ========================= Lifecycle =========================
560
+ /**
561
+ * Start the MCP server on stdio transport.
562
+ *
563
+ * This connects stdin/stdout for MCP protocol communication.
564
+ * The process will stay alive until the client disconnects.
565
+ */
566
+ async start() {
567
+ this.transport = new StdioServerTransport();
568
+ await this.server.connect(this.transport);
569
+ }
570
+ /**
571
+ * Stop the MCP server and clean up resources.
572
+ */
573
+ async stop() {
574
+ await this.server.close();
575
+ this.transport = null;
576
+ }
577
+ /**
578
+ * Get the underlying MCP Server instance (for testing).
579
+ *
580
+ * @returns The Server instance
581
+ */
582
+ getServer() {
583
+ return this.server;
584
+ }
585
+ }
586
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../../../backend/src/services/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -82,11 +82,25 @@ export declare class MessageQueueService extends EventEmitter {
82
82
  enqueue(input: EnqueueMessageInput): QueuedMessage;
83
83
  /**
84
84
  * Dequeue the next pending message for processing.
85
+ * Prioritizes user messages (slack, web_chat) over system events so that
86
+ * real user conversations are never blocked behind internal notifications.
85
87
  * Returns null if the queue is empty.
86
88
  *
87
89
  * @returns The next QueuedMessage or null
88
90
  */
89
91
  dequeue(): QueuedMessage | null;
92
+ /**
93
+ * Dequeue additional pending system_event messages (up to maxCount).
94
+ * Used by the queue processor to batch multiple system events into a
95
+ * single delivery, reducing context consumption on the orchestrator.
96
+ *
97
+ * Does NOT set currentMessage — the caller is responsible for marking
98
+ * all returned messages as completed/failed.
99
+ *
100
+ * @param maxCount - Maximum additional system events to dequeue
101
+ * @returns Array of dequeued system event messages
102
+ */
103
+ dequeueSystemEventBatch(maxCount: number): QueuedMessage[];
90
104
  /**
91
105
  * Re-queue a message that was dequeued but could not be delivered.
92
106
  * Resets the message status to pending and places it back at the front
@@ -102,6 +116,22 @@ export declare class MessageQueueService extends EventEmitter {
102
116
  * @param response - Optional response content from orchestrator
103
117
  */
104
118
  markCompleted(messageId: string, response?: string): void;
119
+ /**
120
+ * Mark a batch of messages as completed.
121
+ * Used for system event batching where multiple messages are dequeued
122
+ * via dequeueSystemEventBatch() and delivered together.
123
+ *
124
+ * @param messages - Array of messages to mark as completed
125
+ */
126
+ markBatchCompleted(messages: QueuedMessage[]): void;
127
+ /**
128
+ * Mark a batch of messages as failed.
129
+ * Used for system event batching when delivery of the combined batch fails.
130
+ *
131
+ * @param messages - Array of messages to mark as failed
132
+ * @param error - Error message describing the failure
133
+ */
134
+ markBatchFailed(messages: QueuedMessage[], error: string): void;
105
135
  /**
106
136
  * Mark a message as failed with an error.
107
137
  *
@@ -184,8 +214,8 @@ export declare class MessageQueueService extends EventEmitter {
184
214
  */
185
215
  private emitStatusUpdate;
186
216
  /**
187
- * Schedule a debounced persistence write. Uses setTimeout(0) to batch
188
- * multiple synchronous mutations into a single disk write.
217
+ * Schedule a debounced persistence write. Uses a 50ms debounce to batch
218
+ * multiple rapid mutations into a single disk write.
189
219
  * No-op when persistence is disabled.
190
220
  */
191
221
  private schedulePersist;
@@ -1 +1 @@
1
- {"version":3,"file":"message-queue.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/message-queue.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,WAAW,EAEZ,MAAM,gCAAgC,CAAC;AAQxC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAA6F;IAE3G,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAAuB;IAEpC,2DAA2D;IAC3D,OAAO,CAAC,OAAO,CAAuB;IAEtC,6CAA6C;IAC7C,OAAO,CAAC,cAAc,CAAK;IAE3B,+CAA+C;IAC/C,OAAO,CAAC,WAAW,CAAK;IAExB,4CAA4C;IAC5C,OAAO,CAAC,cAAc,CAA8B;IAEpD,4EAA4E;IAC5E,OAAO,CAAC,UAAU,CAAuB;IAEzC,wCAAwC;IACxC,OAAO,CAAC,WAAW,CAAuB;IAE1C,qDAAqD;IACrD,OAAO,CAAC,YAAY,CAA8C;IAElE,4DAA4D;IAC5D,OAAO,CAAC,cAAc,CAA8B;IAEpD;;;;;OAKG;gBACS,UAAU,CAAC,EAAE,MAAM;IAa/B;;;;;;OAMG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCzC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBnC;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,aAAa;IA2BlD;;;;;OAKG;IACH,OAAO,IAAI,aAAa,GAAG,IAAI;IAiB/B;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAiBrC;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBzD;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAmBlD;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAkBlC;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO;IAoB7B;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAkBtB;;;;OAIG;IACH,SAAS,IAAI,WAAW;IAWxB;;;;OAIG;IACH,kBAAkB,IAAI,aAAa,EAAE;IAIrC;;;;OAIG;IACH,UAAU,IAAI,aAAa,EAAE;IAI7B;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAaxD;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;OAGG;YACW,YAAY;CAyB3B"}
1
+ {"version":3,"file":"message-queue.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/message-queue.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,WAAW,EAEZ,MAAM,gCAAgC,CAAC;AAQxC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAA6F;IAE3G,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAAuB;IAEpC,2DAA2D;IAC3D,OAAO,CAAC,OAAO,CAAuB;IAEtC,6CAA6C;IAC7C,OAAO,CAAC,cAAc,CAAK;IAE3B,+CAA+C;IAC/C,OAAO,CAAC,WAAW,CAAK;IAExB,4CAA4C;IAC5C,OAAO,CAAC,cAAc,CAA8B;IAEpD,4EAA4E;IAC5E,OAAO,CAAC,UAAU,CAAuB;IAEzC,wCAAwC;IACxC,OAAO,CAAC,WAAW,CAAuB;IAE1C,qDAAqD;IACrD,OAAO,CAAC,YAAY,CAA8C;IAElE,4DAA4D;IAC5D,OAAO,CAAC,cAAc,CAA8B;IAEpD;;;;;OAKG;gBACS,UAAU,CAAC,EAAE,MAAM;IAa/B;;;;;;OAMG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCzC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBnC;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,aAAa;IA2BlD;;;;;;;OAOG;IACH,OAAO,IAAI,aAAa,GAAG,IAAI;IAsB/B;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAwB1D;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAiBrC;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBzD;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAgBnD;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAgB/D;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAmBlD;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAkBlC;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO;IAoB7B;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAkBtB;;;;OAIG;IACH,SAAS,IAAI,WAAW;IAWxB;;;;OAIG;IACH,kBAAkB,IAAI,aAAa,EAAE;IAIrC;;;;OAIG;IACH,UAAU,IAAI,aAAa,EAAE;IAI7B;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAaxD;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;OAGG;YACW,YAAY;CAyB3B"}