crewly 1.0.7 → 1.0.8

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 (303) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +50 -3
  3. package/config/roles/architect/prompt.md +11 -0
  4. package/config/roles/backend-developer/prompt.md +11 -0
  5. package/config/roles/designer/prompt.md +11 -0
  6. package/config/roles/developer/prompt.md +18 -4
  7. package/config/roles/frontend-developer/prompt.md +11 -0
  8. package/config/roles/fullstack-dev/prompt.md +11 -0
  9. package/config/roles/generalist/prompt.md +11 -0
  10. package/config/roles/orchestrator/prompt.md +27 -0
  11. package/config/roles/product-manager/prompt.md +18 -4
  12. package/config/roles/qa/prompt.md +11 -0
  13. package/config/roles/qa-engineer/prompt.md +11 -0
  14. package/config/roles/sales/prompt.md +11 -0
  15. package/config/roles/support/prompt.md +11 -0
  16. package/config/roles/tpm/prompt.md +11 -0
  17. package/config/skills/orchestrator/complete-task/execute.sh +1 -0
  18. package/config/templates/agent-claude-md.md +16 -0
  19. package/config/templates/research-team.json +22 -0
  20. package/config/templates/startup-team.json +22 -0
  21. package/config/templates/web-dev-team.json +22 -0
  22. package/dist/backend/backend/src/constants.d.ts +61 -1
  23. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  24. package/dist/backend/backend/src/constants.js +65 -7
  25. package/dist/backend/backend/src/constants.js.map +1 -1
  26. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +7 -0
  27. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  28. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +174 -4
  29. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  30. package/dist/backend/backend/src/index.d.ts.map +1 -1
  31. package/dist/backend/backend/src/index.js +34 -0
  32. package/dist/backend/backend/src/index.js.map +1 -1
  33. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  34. package/dist/backend/backend/src/routes/modules/task-management.routes.js +2 -0
  35. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  36. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +8 -0
  37. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/agent-registration.service.js +75 -17
  39. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +222 -0
  41. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
  42. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +621 -0
  43. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
  44. package/dist/backend/backend/src/services/index.d.ts +3 -0
  45. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/index.js +5 -0
  47. package/dist/backend/backend/src/services/index.js.map +1 -1
  48. package/dist/backend/backend/src/services/mcp-client.d.ts +233 -0
  49. package/dist/backend/backend/src/services/mcp-client.d.ts.map +1 -0
  50. package/dist/backend/backend/src/services/mcp-client.js +297 -0
  51. package/dist/backend/backend/src/services/mcp-client.js.map +1 -0
  52. package/dist/backend/backend/src/services/mcp-server.d.ts +167 -0
  53. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -0
  54. package/dist/backend/backend/src/services/mcp-server.js +586 -0
  55. package/dist/backend/backend/src/services/mcp-server.js.map +1 -0
  56. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +2 -0
  57. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/messaging/message-queue.service.js +6 -1
  59. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +10 -0
  61. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +94 -38
  63. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  64. package/dist/backend/backend/src/services/quality/index.d.ts +1 -0
  65. package/dist/backend/backend/src/services/quality/index.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/quality/index.js +1 -0
  67. package/dist/backend/backend/src/services/quality/index.js.map +1 -1
  68. package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts +84 -0
  69. package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/quality/task-output-validator.service.js +163 -0
  71. package/dist/backend/backend/src/services/quality/task-output-validator.service.js.map +1 -0
  72. package/dist/backend/backend/src/services/runtime-adapter.d.ts +234 -0
  73. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -0
  74. package/dist/backend/backend/src/services/runtime-adapter.js +180 -0
  75. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -0
  76. package/dist/backend/backend/src/types/event-bus.types.d.ts +2 -2
  77. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  78. package/dist/backend/backend/src/types/event-bus.types.js +2 -0
  79. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  80. package/dist/backend/backend/src/types/index.d.ts +1 -0
  81. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  82. package/dist/backend/backend/src/types/index.js +2 -0
  83. package/dist/backend/backend/src/types/index.js.map +1 -1
  84. package/dist/backend/backend/src/types/messaging.types.d.ts +9 -6
  85. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  86. package/dist/backend/backend/src/types/messaging.types.js +10 -3
  87. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  88. package/dist/backend/backend/src/types/task-output.types.d.ts +78 -0
  89. package/dist/backend/backend/src/types/task-output.types.d.ts.map +1 -0
  90. package/dist/backend/backend/src/types/task-output.types.js +27 -0
  91. package/dist/backend/backend/src/types/task-output.types.js.map +1 -0
  92. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +13 -0
  93. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  94. package/dist/backend/backend/src/websocket/terminal.gateway.js +12 -0
  95. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  96. package/dist/cli/backend/src/constants.d.ts +751 -0
  97. package/dist/cli/backend/src/constants.d.ts.map +1 -0
  98. package/dist/cli/backend/src/constants.js +550 -0
  99. package/dist/cli/backend/src/constants.js.map +1 -0
  100. package/dist/cli/backend/src/models/Project.d.ts +18 -0
  101. package/dist/cli/backend/src/models/Project.d.ts.map +1 -0
  102. package/dist/cli/backend/src/models/Project.js +70 -0
  103. package/dist/cli/backend/src/models/Project.js.map +1 -0
  104. package/dist/cli/backend/src/models/ScheduledMessage.d.ts +27 -0
  105. package/dist/cli/backend/src/models/ScheduledMessage.d.ts.map +1 -0
  106. package/dist/cli/backend/src/models/ScheduledMessage.js +50 -0
  107. package/dist/cli/backend/src/models/ScheduledMessage.js.map +1 -0
  108. package/dist/cli/backend/src/models/Team.d.ts +20 -0
  109. package/dist/cli/backend/src/models/Team.d.ts.map +1 -0
  110. package/dist/cli/backend/src/models/Team.js +120 -0
  111. package/dist/cli/backend/src/models/Team.js.map +1 -0
  112. package/dist/cli/backend/src/models/Ticket.d.ts +24 -0
  113. package/dist/cli/backend/src/models/Ticket.d.ts.map +1 -0
  114. package/dist/cli/backend/src/models/Ticket.js +102 -0
  115. package/dist/cli/backend/src/models/Ticket.js.map +1 -0
  116. package/dist/cli/backend/src/models/index.d.ts +5 -0
  117. package/dist/cli/backend/src/models/index.d.ts.map +1 -0
  118. package/dist/cli/backend/src/models/index.js +5 -0
  119. package/dist/cli/backend/src/models/index.js.map +1 -0
  120. package/dist/cli/backend/src/services/core/config.service.d.ts +91 -0
  121. package/dist/cli/backend/src/services/core/config.service.d.ts.map +1 -0
  122. package/dist/cli/backend/src/services/core/config.service.js +246 -0
  123. package/dist/cli/backend/src/services/core/config.service.js.map +1 -0
  124. package/dist/cli/backend/src/services/core/logger.service.d.ts +70 -0
  125. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -0
  126. package/dist/cli/backend/src/services/core/logger.service.js +350 -0
  127. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -0
  128. package/dist/cli/backend/src/services/core/storage.service.d.ts +269 -0
  129. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -0
  130. package/dist/cli/backend/src/services/core/storage.service.js +1406 -0
  131. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -0
  132. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +92 -0
  133. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -0
  134. package/dist/cli/backend/src/services/core/teams-backup.service.js +120 -0
  135. package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -0
  136. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +125 -0
  137. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -0
  138. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +247 -0
  139. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -0
  140. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts +153 -0
  141. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts.map +1 -0
  142. package/dist/cli/backend/src/services/knowledge/knowledge.service.js +409 -0
  143. package/dist/cli/backend/src/services/knowledge/knowledge.service.js.map +1 -0
  144. package/dist/cli/backend/src/services/mcp-server.d.ts +167 -0
  145. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -0
  146. package/dist/cli/backend/src/services/mcp-server.js +586 -0
  147. package/dist/cli/backend/src/services/mcp-server.js.map +1 -0
  148. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +259 -0
  149. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -0
  150. package/dist/cli/backend/src/services/memory/agent-memory.service.js +539 -0
  151. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -0
  152. package/dist/cli/backend/src/services/memory/memory.service.d.ts +306 -0
  153. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -0
  154. package/dist/cli/backend/src/services/memory/memory.service.js +517 -0
  155. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -0
  156. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +252 -0
  157. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -0
  158. package/dist/cli/backend/src/services/memory/project-memory.service.js +600 -0
  159. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -0
  160. package/dist/cli/backend/src/types/auto-assign.types.d.ts +271 -0
  161. package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +1 -0
  162. package/dist/cli/backend/src/types/auto-assign.types.js +136 -0
  163. package/dist/cli/backend/src/types/auto-assign.types.js.map +1 -0
  164. package/dist/cli/backend/src/types/budget.types.d.ts +217 -0
  165. package/dist/cli/backend/src/types/budget.types.d.ts.map +1 -0
  166. package/dist/cli/backend/src/types/budget.types.js +82 -0
  167. package/dist/cli/backend/src/types/budget.types.js.map +1 -0
  168. package/dist/cli/backend/src/types/chat.types.d.ts +550 -0
  169. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -0
  170. package/dist/cli/backend/src/types/chat.types.js +743 -0
  171. package/dist/cli/backend/src/types/chat.types.js.map +1 -0
  172. package/dist/cli/backend/src/types/continuation.types.d.ts +237 -0
  173. package/dist/cli/backend/src/types/continuation.types.d.ts.map +1 -0
  174. package/dist/cli/backend/src/types/continuation.types.js +10 -0
  175. package/dist/cli/backend/src/types/continuation.types.js.map +1 -0
  176. package/dist/cli/backend/src/types/index.d.ts +164 -0
  177. package/dist/cli/backend/src/types/index.d.ts.map +1 -0
  178. package/dist/cli/backend/src/types/index.js +25 -0
  179. package/dist/cli/backend/src/types/index.js.map +1 -0
  180. package/dist/cli/backend/src/types/knowledge.types.d.ts +195 -0
  181. package/dist/cli/backend/src/types/knowledge.types.d.ts.map +1 -0
  182. package/dist/cli/backend/src/types/knowledge.types.js +38 -0
  183. package/dist/cli/backend/src/types/knowledge.types.js.map +1 -0
  184. package/dist/cli/backend/src/types/memory.types.d.ts +587 -0
  185. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -0
  186. package/dist/cli/backend/src/types/memory.types.js +47 -0
  187. package/dist/cli/backend/src/types/memory.types.js.map +1 -0
  188. package/dist/cli/backend/src/types/quality-gate.types.d.ts +171 -0
  189. package/dist/cli/backend/src/types/quality-gate.types.d.ts.map +1 -0
  190. package/dist/cli/backend/src/types/quality-gate.types.js +42 -0
  191. package/dist/cli/backend/src/types/quality-gate.types.js.map +1 -0
  192. package/dist/cli/backend/src/types/role.types.d.ts +260 -0
  193. package/dist/cli/backend/src/types/role.types.d.ts.map +1 -0
  194. package/dist/cli/backend/src/types/role.types.js +238 -0
  195. package/dist/cli/backend/src/types/role.types.js.map +1 -0
  196. package/dist/cli/backend/src/types/scheduler.types.d.ts +254 -0
  197. package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -0
  198. package/dist/cli/backend/src/types/scheduler.types.js +32 -0
  199. package/dist/cli/backend/src/types/scheduler.types.js.map +1 -0
  200. package/dist/cli/backend/src/types/settings.types.d.ts +178 -0
  201. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -0
  202. package/dist/cli/backend/src/types/settings.types.js +206 -0
  203. package/dist/cli/backend/src/types/settings.types.js.map +1 -0
  204. package/dist/cli/backend/src/types/skill.types.d.ts +515 -0
  205. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -0
  206. package/dist/cli/backend/src/types/skill.types.js +481 -0
  207. package/dist/cli/backend/src/types/skill.types.js.map +1 -0
  208. package/dist/cli/backend/src/types/sop.types.d.ts +224 -0
  209. package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -0
  210. package/dist/cli/backend/src/types/sop.types.js +85 -0
  211. package/dist/cli/backend/src/types/sop.types.js.map +1 -0
  212. package/dist/cli/backend/src/types/task-output.types.d.ts +78 -0
  213. package/dist/cli/backend/src/types/task-output.types.d.ts.map +1 -0
  214. package/dist/cli/backend/src/types/task-output.types.js +27 -0
  215. package/dist/cli/backend/src/types/task-output.types.js.map +1 -0
  216. package/dist/cli/backend/src/utils/file-io.utils.d.ts +102 -0
  217. package/dist/cli/backend/src/utils/file-io.utils.d.ts.map +1 -0
  218. package/dist/cli/backend/src/utils/file-io.utils.js +214 -0
  219. package/dist/cli/backend/src/utils/file-io.utils.js.map +1 -0
  220. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts +54 -0
  221. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts.map +1 -0
  222. package/dist/cli/backend/src/utils/terminal-output.utils.js +97 -0
  223. package/dist/cli/backend/src/utils/terminal-output.utils.js.map +1 -0
  224. package/dist/cli/cli/src/commands/mcp-server.d.ts +38 -0
  225. package/dist/cli/cli/src/commands/mcp-server.d.ts.map +1 -0
  226. package/dist/cli/cli/src/commands/mcp-server.js +49 -0
  227. package/dist/cli/cli/src/commands/mcp-server.js.map +1 -0
  228. package/dist/cli/cli/src/commands/onboard.d.ts +61 -7
  229. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  230. package/dist/cli/cli/src/commands/onboard.js +192 -19
  231. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  232. package/dist/cli/cli/src/commands/publish.d.ts +27 -0
  233. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -0
  234. package/dist/cli/cli/src/commands/publish.js +69 -0
  235. package/dist/cli/cli/src/commands/publish.js.map +1 -0
  236. package/dist/cli/cli/src/index.js +14 -0
  237. package/dist/cli/cli/src/index.js.map +1 -1
  238. package/dist/cli/cli/src/utils/archive-creator.d.ts +82 -0
  239. package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -0
  240. package/dist/cli/cli/src/utils/archive-creator.js +105 -0
  241. package/dist/cli/cli/src/utils/archive-creator.js.map +1 -0
  242. package/dist/cli/cli/src/utils/package-validator.d.ts +62 -0
  243. package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -0
  244. package/dist/cli/cli/src/utils/package-validator.js +122 -0
  245. package/dist/cli/cli/src/utils/package-validator.js.map +1 -0
  246. package/dist/cli/cli/src/utils/templates.d.ts +71 -0
  247. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -0
  248. package/dist/cli/cli/src/utils/templates.js +91 -0
  249. package/dist/cli/cli/src/utils/templates.js.map +1 -0
  250. package/frontend/dist/assets/{index-523c7fce.js → index-68d1eb5a.js} +71 -71
  251. package/frontend/dist/assets/{index-4c050f52.css → index-c5043a83.css} +1 -1
  252. package/frontend/dist/assets/nunito-cyrillic-400-normal-e44e669f.woff2 +0 -0
  253. package/frontend/dist/assets/nunito-cyrillic-400-normal-ff8e8bdd.woff +0 -0
  254. package/frontend/dist/assets/nunito-cyrillic-500-normal-2159679b.woff +0 -0
  255. package/frontend/dist/assets/nunito-cyrillic-500-normal-61a3b80e.woff2 +0 -0
  256. package/frontend/dist/assets/nunito-cyrillic-600-normal-ac046097.woff +0 -0
  257. package/frontend/dist/assets/nunito-cyrillic-600-normal-e61eb97b.woff2 +0 -0
  258. package/frontend/dist/assets/nunito-cyrillic-700-normal-8fcefcc9.woff2 +0 -0
  259. package/frontend/dist/assets/nunito-cyrillic-700-normal-b9684104.woff +0 -0
  260. package/frontend/dist/assets/nunito-cyrillic-800-normal-40253beb.woff +0 -0
  261. package/frontend/dist/assets/nunito-cyrillic-800-normal-d80292de.woff2 +0 -0
  262. package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-20d73ae7.woff2 +0 -0
  263. package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-d48c37c9.woff +0 -0
  264. package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-16197abd.woff +0 -0
  265. package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-9dcfe9b5.woff2 +0 -0
  266. package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-d53e9851.woff2 +0 -0
  267. package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-e3d0201f.woff +0 -0
  268. package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-5936f6ac.woff2 +0 -0
  269. package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-c8c02775.woff +0 -0
  270. package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-217b8f51.woff +0 -0
  271. package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-796cf7bd.woff2 +0 -0
  272. package/frontend/dist/assets/nunito-latin-400-normal-a5906e15.woff2 +0 -0
  273. package/frontend/dist/assets/nunito-latin-400-normal-b51e7635.woff +0 -0
  274. package/frontend/dist/assets/nunito-latin-500-normal-23ae3083.woff2 +0 -0
  275. package/frontend/dist/assets/nunito-latin-500-normal-be14dbc6.woff +0 -0
  276. package/frontend/dist/assets/nunito-latin-600-normal-06a9c8b3.woff +0 -0
  277. package/frontend/dist/assets/nunito-latin-600-normal-45f437de.woff2 +0 -0
  278. package/frontend/dist/assets/nunito-latin-700-normal-ce9107dc.woff +0 -0
  279. package/frontend/dist/assets/nunito-latin-700-normal-fa89300b.woff2 +0 -0
  280. package/frontend/dist/assets/nunito-latin-800-normal-0ca02785.woff +0 -0
  281. package/frontend/dist/assets/nunito-latin-800-normal-2363d3ed.woff2 +0 -0
  282. package/frontend/dist/assets/nunito-latin-ext-400-normal-67250a41.woff2 +0 -0
  283. package/frontend/dist/assets/nunito-latin-ext-400-normal-d7e2415e.woff +0 -0
  284. package/frontend/dist/assets/nunito-latin-ext-500-normal-06f35d1c.woff +0 -0
  285. package/frontend/dist/assets/nunito-latin-ext-500-normal-343e7adc.woff2 +0 -0
  286. package/frontend/dist/assets/nunito-latin-ext-600-normal-5a8efd17.woff +0 -0
  287. package/frontend/dist/assets/nunito-latin-ext-600-normal-a7ba5f4f.woff2 +0 -0
  288. package/frontend/dist/assets/nunito-latin-ext-700-normal-0a4e4a02.woff2 +0 -0
  289. package/frontend/dist/assets/nunito-latin-ext-700-normal-0c607961.woff +0 -0
  290. package/frontend/dist/assets/nunito-latin-ext-800-normal-39f54b55.woff2 +0 -0
  291. package/frontend/dist/assets/nunito-latin-ext-800-normal-466d0211.woff +0 -0
  292. package/frontend/dist/assets/nunito-vietnamese-400-normal-2a755616.woff2 +0 -0
  293. package/frontend/dist/assets/nunito-vietnamese-400-normal-9c01ea9f.woff +0 -0
  294. package/frontend/dist/assets/nunito-vietnamese-500-normal-452e5e08.woff +0 -0
  295. package/frontend/dist/assets/nunito-vietnamese-500-normal-dc98d965.woff2 +0 -0
  296. package/frontend/dist/assets/nunito-vietnamese-600-normal-2ffbb85f.woff +0 -0
  297. package/frontend/dist/assets/nunito-vietnamese-600-normal-cf95b95d.woff2 +0 -0
  298. package/frontend/dist/assets/nunito-vietnamese-700-normal-0e29c28c.woff2 +0 -0
  299. package/frontend/dist/assets/nunito-vietnamese-700-normal-7793b75e.woff +0 -0
  300. package/frontend/dist/assets/nunito-vietnamese-800-normal-5baf507e.woff +0 -0
  301. package/frontend/dist/assets/nunito-vietnamese-800-normal-fac6740e.woff2 +0 -0
  302. package/frontend/dist/index.html +2 -2
  303. package/package.json +15 -5
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Steve Huang
3
+ Copyright (c) 2026 Steve Huang
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Crewly
2
2
 
3
+ [![GitHub stars](https://img.shields.io/github/stars/stevehuang0115/crewly.svg?style=social)](https://github.com/stevehuang0115/crewly)
3
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
4
5
  [![npm version](https://img.shields.io/npm/v/crewly.svg)](https://www.npmjs.com/package/crewly)
5
6
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org/)
@@ -21,10 +22,11 @@ Crewly is an open-source multi-agent orchestration platform that coordinates AI
21
22
  ## Quick Start
22
23
 
23
24
  ```bash
24
- # Install globally
25
- npm install -g crewly
25
+ # Try it instantly (no global install needed)
26
+ npx crewly onboard
26
27
 
27
- # Interactive setup (installs AI tools + agent skills)
28
+ # Or install globally
29
+ npm install -g crewly
28
30
  crewly onboard
29
31
 
30
32
  # Start the platform
@@ -128,6 +130,41 @@ LOG_LEVEL=info # debug, info, warn, error
128
130
  WEB_PORT=8787 # Dashboard port (default: 8787)
129
131
  ```
130
132
 
133
+ ## Docker
134
+
135
+ Run Crewly with a single command using Docker:
136
+
137
+ ```bash
138
+ # 1. Clone the repo
139
+ git clone https://github.com/stevehuang0115/crewly.git
140
+ cd crewly
141
+
142
+ # 2. Add your API keys to .env
143
+ cp .env.example .env
144
+ # Edit .env and add ANTHROPIC_API_KEY, GEMINI_API_KEY, etc.
145
+
146
+ # 3. Start Crewly
147
+ docker compose up
148
+
149
+ # Dashboard available at http://localhost:8787
150
+ ```
151
+
152
+ To mount a project directory for agents to work on, edit `docker-compose.yml` and uncomment the volume mount:
153
+
154
+ ```yaml
155
+ volumes:
156
+ - crewly_data:/home/node/.crewly
157
+ - /path/to/your/project:/home/node/project # <-- uncomment and edit
158
+ ```
159
+
160
+ Build the image manually:
161
+
162
+ ```bash
163
+ # On Apple Silicon, use --platform linux/amd64
164
+ docker build --platform linux/amd64 -t crewly .
165
+ docker run -p 8787:8787 --env-file .env crewly
166
+ ```
167
+
131
168
  ## Development
132
169
 
133
170
  ```bash
@@ -150,6 +187,16 @@ npm run test:unit
150
187
 
151
188
  See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed development guidelines.
152
189
 
190
+ ## Demo
191
+
192
+ > Screenshots and demo video coming soon. Star the repo to get notified!
193
+
194
+ ## Community
195
+
196
+ - **Bug reports & feature requests** — [GitHub Issues](https://github.com/stevehuang0115/crewly/issues)
197
+ - **Questions & discussions** — [GitHub Discussions](https://github.com/stevehuang0115/crewly/discussions)
198
+ - **Contributing** — See [CONTRIBUTING.md](CONTRIBUTING.md)
199
+
153
200
  ## License
154
201
 
155
202
  [MIT](LICENSE)
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with system architecture and technical design for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with backend development for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with design work for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with software development for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -31,10 +42,13 @@ All it does is update a local status flag so the web UI shows you as online - no
31
42
  ## How to approach tasks
32
43
 
33
44
  When I send you a task:
34
- 1. Ask clarifying questions if requirements are unclear
35
- 2. Write clean, tested code following project conventions
36
- 3. Report blockers and issues promptly
37
- 4. Let me know when done
45
+ 1. **Codebase audit first** Before implementing any feature, search the codebase for existing implementations that overlap with the task. Use `grep`, `find`, and read relevant service files. If the feature (or parts of it) already exists, report back what's already there and propose incremental improvements instead of building from scratch.
46
+ 2. Ask clarifying questions if requirements are unclear
47
+ 3. Write clean, tested code following project conventions
48
+ 4. Report blockers and issues promptly
49
+ 5. Let me know when done
50
+
51
+ **CRITICAL**: Never assume a feature doesn't exist. Always verify by reading the codebase first. Building duplicate code wastes time and creates maintenance burden.
38
52
 
39
53
  ## Memory Management — Build Your Knowledge Over Time
40
54
 
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with frontend development for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with full-stack development for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with a bunch of tasks for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -905,6 +905,33 @@ When wrapping up a session or when the user says goodbye:
905
905
  1. Call `record_learning` with a summary of what was accomplished
906
906
  2. Note any unfinished work so the next session can pick up where you left off
907
907
 
908
+ ## User Intent Detection
909
+
910
+ When a user asks you to do a concrete task (analysis, coding, research, writing, etc.):
911
+
912
+ 1. **NEVER say "that's not my capability"** — you ARE capable via your team of agents
913
+ 2. **Analyze the user's intent** and propose a complete plan:
914
+ - Suggest a project name and path
915
+ - Recommend team composition (roles and agent names)
916
+ - Outline what each agent will do
917
+ 3. **Ask the user for confirmation** before executing
918
+ 4. **Use friendly language** — hide internal system complexity from the user
919
+ 5. **Match the user's language** — if the user's message is in a non-English language, respond in the same language
920
+
921
+ ## Work Plan Generation (Manager Thinking)
922
+
923
+ Before delegating any task to agents, think like a team manager:
924
+
925
+ - Ask yourself: "If my boss gave me this task, how would I organize my team to deliver exceptional value?"
926
+ - Generate a detailed plan including:
927
+ - **Deliverables** and success metrics
928
+ - **Daily/weekly work rhythm** and schedule
929
+ - **Quality standards** (data verification, source citation)
930
+ - **Proactive behaviors** (what agents should do without being asked)
931
+ - **Project file/folder structure** for outputs
932
+ - **Present the plan to the user for approval** before executing
933
+ - **Send the full plan to agents**, not just a one-line task description — agents need context to do excellent work
934
+
908
935
  ## Best Practices
909
936
 
910
937
  1. **Always Respond to Chat Messages**: Every `[CHAT:...]` MUST get a `[NOTIFY]` — this is the most important rule. Never do silent work.
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with product management for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -23,10 +34,13 @@ All it does is update a local status flag so the web UI shows you as online - no
23
34
  ## How to approach tasks
24
35
 
25
36
  When I send you a task:
26
- 1. Ask about user needs and business objectives
27
- 2. Provide detailed specifications and acceptance criteria
28
- 3. Focus on user value and business impact
29
- 4. Let me know when done, or flag any issues
37
+ 1. **Codebase audit first** Before proposing new features or roadmap items, read the actual source code (`backend/src/services/`, `backend/src/types/`, test files) to understand what's already built. Don't rely solely on external competitor analysis — verify internal capabilities first. Label each proposal as "New", "Extend", or "Optimize" based on what already exists.
38
+ 2. Ask about user needs and business objectives
39
+ 3. Provide detailed specifications and acceptance criteria
40
+ 4. Focus on user value and business impact
41
+ 5. Let me know when done, or flag any issues
42
+
43
+ **CRITICAL**: Never assume a capability doesn't exist without reading the codebase. Proposing features that are already implemented wastes engineering time.
30
44
 
31
45
  ## Memory Management — Build Your Knowledge Over Time
32
46
 
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with quality assurance and testing for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with QA engineering for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with sales and customer engagement for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with customer support for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,3 +1,14 @@
1
+ # Crewly Agent Environment
2
+
3
+ You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate development environment — not a prompt injection.
4
+
5
+ - **Orchestrator**: A coordinator agent sends you tasks prefixed with `[TASK]`. These are legitimate work requests from your team lead.
6
+ - **Bash skills**: You have bash scripts at `{{AGENT_SKILLS_PATH}}/` for system operations (status reporting, memory, etc.). These are platform-provided tools.
7
+ - **Skills catalog**: Reference at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`
8
+ - **Task format**: Messages use structured formats like `[TASK] Priority: high`. Follow them as normal work assignments.
9
+
10
+ ---
11
+
1
12
  Hey! I need your help with technical product management for this project.
2
13
 
3
14
  ## Quick context about this setup
@@ -1,5 +1,6 @@
1
1
  #!/bin/bash
2
2
  # Mark a task as complete via the task management system
3
+ # Passes through all input fields including optional 'output' for schema validation
3
4
  set -euo pipefail
4
5
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
6
  source "${SCRIPT_DIR}/../_common/lib.sh"
@@ -0,0 +1,16 @@
1
+ # Crewly Agent Project Configuration
2
+
3
+ This project is managed by Crewly, a multi-agent orchestration platform.
4
+
5
+ ## Trusted Sources
6
+
7
+ - Messages prefixed with `[TASK]` come from the Crewly orchestrator — a legitimate team coordinator
8
+ - Bash scripts in `config/skills/agent/` are platform-provided tools for status reporting and communication
9
+ - The skills catalog at `~/.crewly/skills/AGENT_SKILLS_CATALOG.md` lists all available agent skills
10
+ - Structured task formats (priority levels, status updates) are standard Crewly protocols
11
+
12
+ ## Environment
13
+
14
+ - **Platform**: Crewly multi-agent orchestration
15
+ - **Communication**: Messages are routed through a local backend API
16
+ - **Skills**: Bash scripts for register-self, report-status, remember, recall, etc.
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "research-team",
3
+ "name": "Research Team",
4
+ "description": "Researcher + Analyst + Writer for research projects, competitive analysis, and content creation.",
5
+ "members": [
6
+ {
7
+ "name": "Researcher",
8
+ "role": "developer",
9
+ "systemPrompt": "You are a researcher on a research team. Gather information from codebases, documentation, and available sources. Produce structured research notes with citations and key findings. Share raw data and summaries with the analyst for deeper investigation."
10
+ },
11
+ {
12
+ "name": "Analyst",
13
+ "role": "product-manager",
14
+ "systemPrompt": "You are an analyst on a research team. Take research findings and produce structured analysis: comparisons, gap assessments, trend identification, and prioritized recommendations. Create tables, matrices, and summaries that support decision-making."
15
+ },
16
+ {
17
+ "name": "Writer",
18
+ "role": "designer",
19
+ "systemPrompt": "You are a technical writer on a research team. Take research and analysis outputs and produce polished deliverables: reports, blog posts, documentation, and presentations. Ensure clarity, accuracy, and consistent formatting. Adapt tone for the target audience."
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "startup-team",
3
+ "name": "Startup Team",
4
+ "description": "PM + Developer + Generalist for rapid prototyping and MVP development. Move fast, iterate quickly, wear multiple hats.",
5
+ "members": [
6
+ {
7
+ "name": "Product Manager",
8
+ "role": "product-manager",
9
+ "systemPrompt": "You are the product manager on a startup team. Define requirements, prioritize features, and break work into actionable tasks. Coordinate between the developer and generalist. Keep the team focused on the MVP scope and user needs. Review deliverables against acceptance criteria."
10
+ },
11
+ {
12
+ "name": "Developer",
13
+ "role": "developer",
14
+ "systemPrompt": "You are the lead developer on a startup team. Build core features, set up infrastructure, and establish coding patterns. Write clean, tested code that others can build on. Move fast but maintain quality — no shortcuts that create tech debt."
15
+ },
16
+ {
17
+ "name": "Generalist",
18
+ "role": "fullstack-dev",
19
+ "systemPrompt": "You are a generalist on a startup team. Pick up whatever needs doing: frontend, backend, DevOps, documentation, testing. Adapt to the team's current needs and fill gaps. Support the lead developer on implementation and help the PM with research when needed."
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "web-dev-team",
3
+ "name": "Web Dev Team",
4
+ "description": "Frontend + Backend + QA for building web applications. Agents collaborate on features, review each other's work, and run tests.",
5
+ "members": [
6
+ {
7
+ "name": "Frontend Dev",
8
+ "role": "frontend-developer",
9
+ "systemPrompt": "You are a frontend developer on a web dev team. Build responsive, accessible UI components using modern frameworks (React, Vue, etc.). Coordinate with the backend developer on API contracts and data formats. Write unit and integration tests for your components. Follow the project's design system and coding standards."
10
+ },
11
+ {
12
+ "name": "Backend Dev",
13
+ "role": "backend-developer",
14
+ "systemPrompt": "You are a backend developer on a web dev team. Build APIs, services, and data models. Coordinate with the frontend developer on API contracts. Write comprehensive tests and ensure proper error handling. Follow RESTful conventions and keep endpoints well-documented."
15
+ },
16
+ {
17
+ "name": "QA Tester",
18
+ "role": "qa",
19
+ "systemPrompt": "You are a QA engineer on a web dev team. Review code changes from the frontend and backend developers. Write and run end-to-end tests, identify edge cases, and verify acceptance criteria. Report bugs with clear reproduction steps and suggest improvements to test coverage."
20
+ }
21
+ ]
22
+ }
@@ -174,7 +174,7 @@ export declare const ORCHESTRATOR_HEARTBEAT_CONSTANTS: {
174
174
  readonly HEARTBEAT_REQUEST_MESSAGE: "Please run your heartbeat skill now: bash config/skills/orchestrator/heartbeat/execute.sh";
175
175
  readonly STARTUP_GRACE_PERIOD_MS: 30000;
176
176
  };
177
- export declare const ORCHESTRATOR_SESSION_NAME = "crewly-orc";
177
+ export declare const ORCHESTRATOR_SESSION_NAME: "crewly-orc";
178
178
  export declare const ORCHESTRATOR_ROLE = "orchestrator";
179
179
  export declare const ORCHESTRATOR_WINDOW_NAME = "Crewly Orchestrator";
180
180
  export declare const AGENT_INITIALIZATION_TIMEOUT = 90000;
@@ -357,8 +357,16 @@ export declare const EVENT_DELIVERY_CONSTANTS: {
357
357
  readonly MIN_BUFFER_FOR_PROCESSING_DETECTION: 50;
358
358
  /** Timeout for waiting for agent to return to prompt before delivery (ms) */
359
359
  readonly AGENT_READY_TIMEOUT: 120000;
360
+ /** Shorter timeout for user messages (Slack/web chat) to reduce delivery delay (ms) */
361
+ readonly USER_MESSAGE_TIMEOUT: 30000;
362
+ /** Whether to force-deliver user messages after timeout instead of re-queuing */
363
+ readonly USER_MESSAGE_FORCE_DELIVER: true;
360
364
  /** Interval for polling agent prompt readiness (ms) */
361
365
  readonly AGENT_READY_POLL_INTERVAL: 2000;
366
+ /** Interval for deep-scan polling with larger buffer when fast poll misses prompt (ms) */
367
+ readonly DEEP_SCAN_INTERVAL: 5000;
368
+ /** Number of lines to capture for deep-scan prompt detection */
369
+ readonly DEEP_SCAN_LINES: 500;
362
370
  };
363
371
  /**
364
372
  * Constants for terminal content formatting.
@@ -446,6 +454,9 @@ export declare const MESSAGE_QUEUE_CONSTANTS: {
446
454
  readonly INTER_MESSAGE_DELAY: 500;
447
455
  /** Maximum number of requeue retries before permanently failing a message */
448
456
  readonly MAX_REQUEUE_RETRIES: 5;
457
+ /** Early ACK check timeout — if no terminal output within this window after
458
+ * delivery, the orchestrator is likely context-exhausted (ms) */
459
+ readonly ACK_TIMEOUT: 15000;
449
460
  /** Queue persistence file name (stored under crewly home) */
450
461
  readonly PERSISTENCE_FILE: "message-queue.json";
451
462
  /** Queue persistence directory name */
@@ -576,6 +587,33 @@ export declare const RUNTIME_EXIT_CONSTANTS: {
576
587
  */
577
588
  readonly API_ACTIVITY_GRACE_PERIOD_MS: 120000;
578
589
  };
590
+ /**
591
+ * Constants for context window monitoring and auto-recovery.
592
+ * Used by ContextWindowMonitorService to detect when an agent's Claude Code
593
+ * session is running low on context and trigger proactive warnings or recovery.
594
+ */
595
+ export declare const CONTEXT_WINDOW_MONITOR_CONSTANTS: {
596
+ /** Interval for periodic stale detection and cleanup (ms) */
597
+ readonly CHECK_INTERVAL_MS: 30000;
598
+ /** Context usage threshold for yellow (warning) level (%) */
599
+ readonly YELLOW_THRESHOLD_PERCENT: 70;
600
+ /** Context usage threshold for red (danger) level (%) */
601
+ readonly RED_THRESHOLD_PERCENT: 85;
602
+ /** Context usage threshold for critical level (%) — triggers auto-recovery */
603
+ readonly CRITICAL_THRESHOLD_PERCENT: 95;
604
+ /** Whether auto-recovery is enabled at critical threshold */
605
+ readonly AUTO_RECOVERY_ENABLED: true;
606
+ /** Maximum recovery attempts within the cooldown window */
607
+ readonly MAX_RECOVERIES_PER_WINDOW: 2;
608
+ /** Cooldown window for recovery rate limiting (30 minutes) */
609
+ readonly COOLDOWN_WINDOW_MS: number;
610
+ /** Grace period after monitoring start to ignore early readings (ms) */
611
+ readonly STARTUP_GRACE_PERIOD_MS: 60000;
612
+ /** Maximum rolling buffer size for PTY output (bytes) */
613
+ readonly MAX_BUFFER_SIZE: 4096;
614
+ /** Threshold for considering a context state stale (5 minutes) */
615
+ readonly STALE_DETECTION_THRESHOLD_MS: number;
616
+ };
579
617
  /**
580
618
  * Constants for sub-agent message queue.
581
619
  * Used by SubAgentMessageQueue to buffer messages for agents that haven't
@@ -607,6 +645,17 @@ export declare const SYSTEM_RESOURCE_ALERT_CONSTANTS: {
607
645
  readonly CPU_CRITICAL: 95;
608
646
  };
609
647
  };
648
+ /**
649
+ * Shared Slack API limits used by both image and file upload services.
650
+ */
651
+ export declare const SLACK_API_LIMITS: {
652
+ /** Maximum allowed file size (20 MB — Slack limit) */
653
+ readonly MAX_FILE_SIZE: number;
654
+ /** Maximum number of retry attempts for Slack API 429 responses */
655
+ readonly UPLOAD_MAX_RETRIES: 3;
656
+ /** Default backoff delay (ms) when no Retry-After header is present */
657
+ readonly UPLOAD_DEFAULT_BACKOFF_MS: 5000;
658
+ };
610
659
  /**
611
660
  * Constants for Slack image download and temporary storage.
612
661
  * Used by SlackImageService to validate, download, and manage
@@ -684,6 +733,17 @@ export declare const EMBEDDING_CONSTANTS: {
684
733
  /** Expected embedding vector dimensions */
685
734
  readonly EMBEDDING_DIMENSIONS: 768;
686
735
  };
736
+ /**
737
+ * Message source identifiers for the queue processor.
738
+ * Determines delivery strategy (timeouts, retry behavior).
739
+ */
740
+ export declare const MESSAGE_SOURCES: {
741
+ readonly SLACK: "slack";
742
+ readonly WEB_CHAT: "web_chat";
743
+ readonly SYSTEM_EVENT: "system_event";
744
+ };
745
+ /** Typed message source value */
746
+ export type MessageSource = (typeof MESSAGE_SOURCES)[keyof typeof MESSAGE_SOURCES];
687
747
  export type AgentStatus = (typeof CREWLY_CONSTANTS.AGENT_STATUSES)[keyof typeof CREWLY_CONSTANTS.AGENT_STATUSES];
688
748
  export type WorkingStatus = (typeof CREWLY_CONSTANTS.WORKING_STATUSES)[keyof typeof CREWLY_CONSTANTS.WORKING_STATUSES];
689
749
  export type RuntimeType = (typeof RUNTIME_TYPES)[keyof typeof RUNTIME_TYPES];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,eAAO,MAAM,wBAAwB;;;;;;CAAkC,CAAC;AACxE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC;AACxD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC;AACxD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgC,CAAC;AACpE,eAAO,MAAM,8BAA8B;;;;CAAwC,CAAC;AACpF,eAAO,MAAM,uBAAuB;;;;;;CAAiC,CAAC;AACtE,eAAO,MAAM,uBAAuB;;;;;CAAiC,CAAC;AACtE,eAAO,MAAM,iCAAiC;;;;;;CAA2C,CAAC;AAC1F,eAAO,MAAM,gCAAgC;;;;;;CAA0C,CAAC;AAGxF,eAAO,MAAM,yBAAyB,cAAqD,CAAC;AAC5F,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAGnD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnB,CAAC;AAGX,eAAO,MAAM,aAAa;IACzB,sEAAsE;;;IAGtE,6EAA6E;;IAE7E,0DAA0D;;CAEjD,CAAC;AAGX,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAGX,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;;;;;IASzB,wEAAwE;;IAExE,8EAA8E;;CAErE,CAAC;AAGX,eAAO,MAAM,sBAAsB;IAClC,iFAAiF;;IAEjF,6DAA6D;;IAE7D,mEAAmE;;IAEnE,+CAA+C;;IAE/C,0DAA0D;;IAE1D,oDAAoD;;IAEpD,8EAA8E;;IAE9E;6EACyE;;CAEhE,CAAC;AAGX,eAAO,MAAM,6BAA6B;;;;CAIhC,CAAC;AAGX,eAAO,MAAM,cAAc;IAC1B,sEAAsE;;IAEtE,yEAAyE;;IAEzE,6CAA6C;;CAEpC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;IAC5B,qFAAqF;;IAErF,0CAA0C;;IAE1C,4BAA4B;;CAEnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,iGAAiG;;IAEjG,0CAA0C;;IAE1C,4BAA4B;;CAEnB,CAAC;AAGX,eAAO,MAAM,wBAAwB;IACpC,oDAAoD;;IAEpD,yDAAyD;;IAEzD,2DAA2D;;IAE3D,gDAAgD;;IAEhD,6DAA6D;;IAE7D,+DAA+D;;IAE/D,kDAAkD;;IAElD,iDAAiD;;IAEjD,wFAAwF;;IAExF,iEAAiE;;IAEjE,mEAAmE;;IAEnE,6EAA6E;;IAE7E,uFAAuF;;IAEvF,iFAAiF;;IAEjF,uDAAuD;;IAEvD,0FAA0F;;IAE1F,gEAAgE;;CAEvD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,6BAA6B;IACzC,sFAAsF;;CAE7E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC7B;;;OAGG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAQH;;OAEG;;CAEM,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IACnC,sDAAsD;;IAEtD,yDAAyD;;IAEzD,sEAAsE;;IAEtE,yDAAyD;;IAEzD,6EAA6E;;IAE7E;sEACkE;;IAElE,6DAA6D;;IAE7D,uCAAuC;;IAEvC,qDAAqD;;QAEpD,6CAA6C;;QAE7C,+CAA+C;;QAE/C,0CAA0C;;QAE1C,mCAAmC;;QAEnC,0CAA0C;;QAE1C,4CAA4C;;;CAGpC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC/B,mDAAmD;;IAEnD,6DAA6D;;IAE7D,mDAAmD;;IAEnD,sDAAsD;;IAEtD,0DAA0D;;IAE1D,uEAAuE;;CAE9D,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,wDAAwD;;IAExD,4DAA4D;;IAE5D,mDAAmD;;IAEnD,4DAA4D;;CAEnD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,6EAA6E;;CAEpE,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;IAC3C,uDAAuD;;IAEvD,wEAAwE;;IAExE,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IACnC,wEAAwE;;IAExE,6DAA6D;;CAEpD,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;IACvC;;;;OAIG;;IAKH,8DAA8D;;IAE9D,0CAA0C;;CAEjC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IAClC,8DAA8D;;IAE9D,qEAAqE;;IAErE;;;;;OAKG;;IAEH;;;;;;OAMG;;CAEM,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gCAAgC;IAC5C,6DAA6D;;IAE7D,6DAA6D;;IAE7D,yDAAyD;;IAEzD,8EAA8E;;IAE9E,6DAA6D;;IAE7D,2DAA2D;;IAE3D,8DAA8D;;IAE9D,wEAAwE;;IAExE,yDAAyD;;IAEzD,kEAAkE;;CAEzD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;IACrC,wDAAwD;;IAExD,0DAA0D;;CAEjD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;IAC3C,gDAAgD;;IAEhD,gEAAgE;;IAEhE,uCAAuC;;;;;;;;;CAS9B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC5B,sDAAsD;;IAEtD,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;IACjC,oEAAoE;;IAEpE,4DAA4D;;IAE5D,+FAA+F;;IAE/F;;;OAGG;;IAEH;;;;OAIG;;;;;;;;IAQH,2DAA2D;;IAE3D,2DAA2D;;IAE3D,qDAAqD;;IAErD,+DAA+D;;IAE/D,2DAA2D;;IAE3D,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;IACvC,iEAAiE;;IAEjE,kEAAkE;;IAElE,0CAA0C;;IAK1C,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC/B,wCAAwC;;IAExC,uDAAuD;;IAEvD,2CAA2C;;IAE3C,mDAAmD;;IAEnD,2CAA2C;;CAElC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAGnF,MAAM,MAAM,WAAW,GACtB,CAAC,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;AACxF,MAAM,MAAM,aAAa,GACxB,CAAC,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAC5F,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAC7E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC"}