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,91 @@
1
+ export interface AppConfig {
2
+ server: {
3
+ port: number;
4
+ host: string;
5
+ nodeEnv: 'development' | 'production' | 'test';
6
+ corsOrigin: string[];
7
+ trustProxy: boolean;
8
+ };
9
+ mcp: {
10
+ port: number;
11
+ enabled: boolean;
12
+ maxConnections: number;
13
+ timeoutMs: number;
14
+ };
15
+ storage: {
16
+ dataPath: string;
17
+ backupEnabled: boolean;
18
+ backupInterval: number;
19
+ maxBackups: number;
20
+ };
21
+ git: {
22
+ autoCommitEnabled: boolean;
23
+ autoCommitInterval: number;
24
+ defaultBranch: string;
25
+ pushToRemote: boolean;
26
+ };
27
+ logging: {
28
+ level: 'error' | 'warn' | 'info' | 'debug';
29
+ format: 'json' | 'simple';
30
+ enableFileLogging: boolean;
31
+ logDir: string;
32
+ maxFiles: number;
33
+ maxSize: string;
34
+ };
35
+ monitoring: {
36
+ metricsEnabled: boolean;
37
+ healthCheckInterval: number;
38
+ performanceTrackingEnabled: boolean;
39
+ memoryThreshold: number;
40
+ cpuThreshold: number;
41
+ };
42
+ security: {
43
+ rateLimitEnabled: boolean;
44
+ rateLimitWindow: number;
45
+ rateLimitMax: number;
46
+ enableHelmet: boolean;
47
+ sessionSecret?: string;
48
+ };
49
+ websocket: {
50
+ enabled: boolean;
51
+ pingTimeout: number;
52
+ pingInterval: number;
53
+ maxConnections: number;
54
+ };
55
+ agents: {
56
+ maxConcurrentAgents: number;
57
+ defaultTimeout: number;
58
+ maxMemoryPerAgent: number;
59
+ contextRefreshInterval: number;
60
+ };
61
+ }
62
+ export declare class ConfigService {
63
+ private static instance;
64
+ private config;
65
+ private configPath;
66
+ private _logger;
67
+ /**
68
+ * Gets the component logger, lazily initializing it to avoid circular
69
+ * dependency with LoggerService (which depends on ConfigService).
70
+ */
71
+ private getLogger;
72
+ private constructor();
73
+ static getInstance(): ConfigService;
74
+ private resolveConfigPath;
75
+ private getDefaultConfig;
76
+ private loadConfig;
77
+ private mergeConfigs;
78
+ getConfig(): AppConfig;
79
+ get<K extends keyof AppConfig>(section: K): AppConfig[K];
80
+ updateConfig(updates: Partial<AppConfig>): Promise<void>;
81
+ createDefaultConfigFile(): Promise<void>;
82
+ validateConfig(): {
83
+ isValid: boolean;
84
+ errors: string[];
85
+ };
86
+ getEnvironmentInfo(): Record<string, any>;
87
+ isDevelopment(): boolean;
88
+ isProduction(): boolean;
89
+ isTest(): boolean;
90
+ }
91
+ //# sourceMappingURL=config.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/config.service.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IAEzB,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;QAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACpB,CAAC;IAGF,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,OAAO,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,GAAG,EAAE;QACJ,iBAAiB,EAAE,OAAO,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;KACtB,CAAC;IAGF,OAAO,EAAE;QACR,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3C,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAGF,UAAU,EAAE;QACX,cAAc,EAAE,OAAO,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,0BAA0B,EAAE,OAAO,CAAC;QACpC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC;IAGF,QAAQ,EAAE;QACT,gBAAgB,EAAE,OAAO,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAGF,SAAS,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACvB,CAAC;IAGF,MAAM,EAAE;QACP,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACF;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAgC;IAE/C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAOjB,OAAO;WAKO,WAAW,IAAI,aAAa;IAO1C,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,gBAAgB;IA2ExB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,YAAY;IAcb,SAAS,IAAI,SAAS;IAItB,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAIlD,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9C,cAAc,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA+CxD,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAgBzC,aAAa,IAAI,OAAO;IAIxB,YAAY,IAAI,OAAO;IAIvB,MAAM,IAAI,OAAO;CAGxB"}
@@ -0,0 +1,246 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { existsSync } from 'fs';
4
+ import { LoggerService } from './logger.service.js';
5
+ export class ConfigService {
6
+ static instance;
7
+ config;
8
+ configPath;
9
+ _logger = null;
10
+ /**
11
+ * Gets the component logger, lazily initializing it to avoid circular
12
+ * dependency with LoggerService (which depends on ConfigService).
13
+ */
14
+ getLogger() {
15
+ if (!this._logger) {
16
+ this._logger = LoggerService.getInstance().createComponentLogger('ConfigService');
17
+ }
18
+ return this._logger;
19
+ }
20
+ constructor() {
21
+ this.configPath = this.resolveConfigPath();
22
+ this.config = this.loadConfig();
23
+ }
24
+ static getInstance() {
25
+ if (!ConfigService.instance) {
26
+ ConfigService.instance = new ConfigService();
27
+ }
28
+ return ConfigService.instance;
29
+ }
30
+ resolveConfigPath() {
31
+ const possiblePaths = [
32
+ process.env.CONFIG_PATH,
33
+ path.join(process.cwd(), 'config.json'),
34
+ path.join(process.cwd(), 'config', 'app.json'),
35
+ path.join(process.cwd(), '.crewly', 'config.json'),
36
+ ].filter(Boolean);
37
+ for (const configPath of possiblePaths) {
38
+ if (existsSync(configPath)) {
39
+ return configPath;
40
+ }
41
+ }
42
+ // Return default path if no config file exists
43
+ return path.join(process.cwd(), 'config.json');
44
+ }
45
+ getDefaultConfig() {
46
+ return {
47
+ server: {
48
+ port: parseInt(process.env.PORT || '3000', 10),
49
+ host: process.env.HOST || 'localhost',
50
+ nodeEnv: process.env.NODE_ENV || 'development',
51
+ corsOrigin: process.env.CORS_ORIGIN?.split(',') || ['http://localhost:3000'],
52
+ trustProxy: process.env.TRUST_PROXY === 'true',
53
+ },
54
+ mcp: {
55
+ port: parseInt(process.env.CREWLY_MCP_PORT || '3001', 10),
56
+ enabled: process.env.MCP_ENABLED !== 'false',
57
+ maxConnections: parseInt(process.env.MCP_MAX_CONNECTIONS || '100', 10),
58
+ timeoutMs: parseInt(process.env.MCP_TIMEOUT || '30000', 10),
59
+ },
60
+ storage: {
61
+ dataPath: process.env.DATA_PATH || path.join(process.cwd(), 'data'),
62
+ backupEnabled: process.env.BACKUP_ENABLED === 'true',
63
+ backupInterval: parseInt(process.env.BACKUP_INTERVAL || '3600000', 10), // 1 hour
64
+ maxBackups: parseInt(process.env.MAX_BACKUPS || '10', 10),
65
+ },
66
+ git: {
67
+ autoCommitEnabled: process.env.GIT_AUTO_COMMIT !== 'false',
68
+ autoCommitInterval: parseInt(process.env.GIT_AUTO_COMMIT_INTERVAL || '30', 10),
69
+ defaultBranch: process.env.GIT_DEFAULT_BRANCH || 'main',
70
+ pushToRemote: process.env.GIT_PUSH_TO_REMOTE === 'true',
71
+ },
72
+ logging: {
73
+ level: process.env.LOG_LEVEL || 'info',
74
+ format: process.env.LOG_FORMAT || 'simple',
75
+ enableFileLogging: process.env.FILE_LOGGING === 'true',
76
+ logDir: process.env.LOG_DIR || path.join(process.cwd(), 'logs'),
77
+ maxFiles: parseInt(process.env.LOG_MAX_FILES || '5', 10),
78
+ maxSize: process.env.LOG_MAX_SIZE || '10m',
79
+ },
80
+ monitoring: {
81
+ metricsEnabled: process.env.METRICS_ENABLED === 'true',
82
+ healthCheckInterval: parseInt(process.env.HEALTH_CHECK_INTERVAL || '30000', 10),
83
+ performanceTrackingEnabled: process.env.PERF_TRACKING === 'true',
84
+ memoryThreshold: parseInt(process.env.MEMORY_THRESHOLD || '512', 10), // MB
85
+ cpuThreshold: parseInt(process.env.CPU_THRESHOLD || '80', 10), // %
86
+ },
87
+ security: {
88
+ rateLimitEnabled: process.env.RATE_LIMIT_ENABLED !== 'false',
89
+ rateLimitWindow: parseInt(process.env.RATE_LIMIT_WINDOW || '900000', 10), // 15 min
90
+ rateLimitMax: parseInt(process.env.RATE_LIMIT_MAX || '1000', 10),
91
+ enableHelmet: process.env.HELMET_ENABLED !== 'false',
92
+ sessionSecret: process.env.SESSION_SECRET,
93
+ },
94
+ websocket: {
95
+ enabled: process.env.WEBSOCKET_ENABLED !== 'false',
96
+ pingTimeout: parseInt(process.env.WS_PING_TIMEOUT || '60000', 10),
97
+ pingInterval: parseInt(process.env.WS_PING_INTERVAL || '25000', 10),
98
+ maxConnections: parseInt(process.env.WS_MAX_CONNECTIONS || '1000', 10),
99
+ },
100
+ agents: {
101
+ maxConcurrentAgents: parseInt(process.env.MAX_CONCURRENT_AGENTS || '50', 10),
102
+ defaultTimeout: parseInt(process.env.AGENT_DEFAULT_TIMEOUT || '300000', 10), // 5 min
103
+ maxMemoryPerAgent: parseInt(process.env.MAX_MEMORY_PER_AGENT || '256', 10), // MB
104
+ contextRefreshInterval: parseInt(process.env.CONTEXT_REFRESH_INTERVAL || '1800000', 10), // 30 min
105
+ },
106
+ };
107
+ }
108
+ loadConfig() {
109
+ // NOTE: This method is called from the constructor, before LoggerService
110
+ // is available. Using this.getLogger() here causes infinite recursion:
111
+ // LoggerService() → ConfigService.getInstance() → loadConfig() → getLogger() → LoggerService()
112
+ // Use console.log/console.error for constructor-time logging instead.
113
+ try {
114
+ const defaultConfig = this.getDefaultConfig();
115
+ if (!existsSync(this.configPath)) {
116
+ console.log(`No config file found at ${this.configPath}, using default configuration`);
117
+ return defaultConfig;
118
+ }
119
+ const fileContent = require('fs').readFileSync(this.configPath, 'utf-8');
120
+ const fileConfig = JSON.parse(fileContent);
121
+ // Deep merge with defaults
122
+ return this.mergeConfigs(defaultConfig, fileConfig);
123
+ }
124
+ catch (error) {
125
+ console.error('Error loading configuration, falling back to defaults:', error);
126
+ return this.getDefaultConfig();
127
+ }
128
+ }
129
+ mergeConfigs(defaultConfig, fileConfig) {
130
+ const merged = { ...defaultConfig };
131
+ for (const [key, value] of Object.entries(fileConfig)) {
132
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
133
+ merged[key] = { ...merged[key], ...value };
134
+ }
135
+ else {
136
+ merged[key] = value;
137
+ }
138
+ }
139
+ return merged;
140
+ }
141
+ getConfig() {
142
+ return this.config;
143
+ }
144
+ get(section) {
145
+ return this.config[section];
146
+ }
147
+ async updateConfig(updates) {
148
+ // Update in-memory config
149
+ this.config = this.mergeConfigs(this.config, updates);
150
+ // Write to file
151
+ try {
152
+ const configData = JSON.stringify(this.config, null, 2);
153
+ await fs.writeFile(this.configPath, configData, 'utf-8');
154
+ this.getLogger().info('Configuration updated and saved', { configPath: this.configPath });
155
+ }
156
+ catch (error) {
157
+ this.getLogger().error('Failed to save configuration', {
158
+ error: error instanceof Error ? error.message : String(error),
159
+ });
160
+ throw new Error('Failed to save configuration');
161
+ }
162
+ }
163
+ async createDefaultConfigFile() {
164
+ if (existsSync(this.configPath)) {
165
+ this.getLogger().info('Configuration file already exists', { configPath: this.configPath });
166
+ return;
167
+ }
168
+ try {
169
+ const defaultConfig = this.getDefaultConfig();
170
+ const configData = JSON.stringify(defaultConfig, null, 2);
171
+ // Ensure directory exists
172
+ const configDir = path.dirname(this.configPath);
173
+ await fs.mkdir(configDir, { recursive: true });
174
+ await fs.writeFile(this.configPath, configData, 'utf-8');
175
+ this.getLogger().info('Default configuration file created', { configPath: this.configPath });
176
+ }
177
+ catch (error) {
178
+ this.getLogger().error('Failed to create default configuration file', {
179
+ error: error instanceof Error ? error.message : String(error),
180
+ });
181
+ throw new Error('Failed to create configuration file');
182
+ }
183
+ }
184
+ validateConfig() {
185
+ const errors = [];
186
+ const config = this.config;
187
+ // Validate server config
188
+ if (config.server.port < 1 || config.server.port > 65535) {
189
+ errors.push('Server port must be between 1 and 65535');
190
+ }
191
+ if (!['development', 'production', 'test'].includes(config.server.nodeEnv)) {
192
+ errors.push('NODE_ENV must be development, production, or test');
193
+ }
194
+ // Validate MCP config
195
+ if (config.mcp.port < 1 || config.mcp.port > 65535) {
196
+ errors.push('MCP port must be between 1 and 65535');
197
+ }
198
+ if (config.mcp.port === config.server.port) {
199
+ errors.push('MCP port cannot be the same as server port');
200
+ }
201
+ // Validate logging config
202
+ if (!['error', 'warn', 'info', 'debug'].includes(config.logging.level)) {
203
+ errors.push('Log level must be error, warn, info, or debug');
204
+ }
205
+ // Validate monitoring thresholds
206
+ if (config.monitoring.memoryThreshold < 64) {
207
+ errors.push('Memory threshold should be at least 64MB');
208
+ }
209
+ if (config.monitoring.cpuThreshold < 1 || config.monitoring.cpuThreshold > 100) {
210
+ errors.push('CPU threshold must be between 1 and 100');
211
+ }
212
+ // Validate security config
213
+ if (config.server.nodeEnv === 'production' && !config.security.sessionSecret) {
214
+ errors.push('Session secret is required in production');
215
+ }
216
+ return {
217
+ isValid: errors.length === 0,
218
+ errors,
219
+ };
220
+ }
221
+ getEnvironmentInfo() {
222
+ return {
223
+ nodeVersion: process.version,
224
+ platform: process.platform,
225
+ architecture: process.arch,
226
+ nodeEnv: this.config.server.nodeEnv,
227
+ processId: process.pid,
228
+ uptime: process.uptime(),
229
+ memoryUsage: process.memoryUsage(),
230
+ configPath: this.configPath,
231
+ configLastModified: existsSync(this.configPath)
232
+ ? require('fs').statSync(this.configPath).mtime
233
+ : null,
234
+ };
235
+ }
236
+ isDevelopment() {
237
+ return this.config.server.nodeEnv === 'development';
238
+ }
239
+ isProduction() {
240
+ return this.config.server.nodeEnv === 'production';
241
+ }
242
+ isTest() {
243
+ return this.config.server.nodeEnv === 'test';
244
+ }
245
+ }
246
+ //# sourceMappingURL=config.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/core/config.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
2
+ export interface LogEntry {
3
+ timestamp: string;
4
+ level: LogLevel;
5
+ message: string;
6
+ context?: Record<string, any>;
7
+ stack?: string;
8
+ requestId?: string;
9
+ userId?: string;
10
+ component?: string;
11
+ }
12
+ export interface LoggerOptions {
13
+ component?: string;
14
+ requestId?: string;
15
+ userId?: string;
16
+ }
17
+ export declare class LoggerService {
18
+ private static instance;
19
+ private config;
20
+ private logQueue;
21
+ private flushTimer;
22
+ private isShuttingDown;
23
+ private readonly LOG_LEVELS;
24
+ private constructor();
25
+ static getInstance(): LoggerService;
26
+ private initializeLogDirectory;
27
+ private startLogFlusher;
28
+ private setupProcessHandlers;
29
+ private shouldLog;
30
+ private formatLogEntry;
31
+ private writeToFile;
32
+ private rotateLogs;
33
+ private log;
34
+ private writeToConsole;
35
+ private flushLogs;
36
+ error(message: string, context?: Record<string, any>, options?: LoggerOptions): void;
37
+ warn(message: string, context?: Record<string, any>, options?: LoggerOptions): void;
38
+ info(message: string, context?: Record<string, any>, options?: LoggerOptions): void;
39
+ debug(message: string, context?: Record<string, any>, options?: LoggerOptions): void;
40
+ logHttpRequest(method: string, url: string, statusCode: number, duration: number, options?: LoggerOptions): void;
41
+ logHttpError(method: string, url: string, statusCode: number, error: string, options?: LoggerOptions): void;
42
+ logAgentAction(agentId: string, action: string, success: boolean, details?: Record<string, any>, options?: LoggerOptions): void;
43
+ logSystemMetric(metric: string, value: number, unit: string, options?: LoggerOptions): void;
44
+ logSecurityEvent(event: string, details: Record<string, any>, options?: LoggerOptions): void;
45
+ logDatabaseOperation(operation: string, table: string, duration: number, success: boolean, options?: LoggerOptions): void;
46
+ createComponentLogger(component: string): ComponentLogger;
47
+ createRequestLogger(requestId: string, userId?: string): RequestLogger;
48
+ getRecentLogs(level?: LogLevel, limit?: number): Promise<LogEntry[]>;
49
+ shutdown(): void;
50
+ }
51
+ export declare class ComponentLogger {
52
+ private logger;
53
+ private component;
54
+ constructor(logger: LoggerService, component: string);
55
+ error(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'component'>): void;
56
+ warn(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'component'>): void;
57
+ info(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'component'>): void;
58
+ debug(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'component'>): void;
59
+ }
60
+ export declare class RequestLogger {
61
+ private logger;
62
+ private requestId;
63
+ private userId?;
64
+ constructor(logger: LoggerService, requestId: string, userId?: string | undefined);
65
+ error(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'requestId' | 'userId'>): void;
66
+ warn(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'requestId' | 'userId'>): void;
67
+ info(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'requestId' | 'userId'>): void;
68
+ debug(message: string, context?: Record<string, any>, options?: Omit<LoggerOptions, 'requestId' | 'userId'>): void;
69
+ }
70
+ //# sourceMappingURL=logger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/logger.service.ts"],"names":[],"mappings":"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"}