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
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Standard Operating Procedure (SOP) Type Definitions
3
+ *
4
+ * Types for defining, storing, and matching SOPs that guide
5
+ * agent behavior with standardized procedures.
6
+ *
7
+ * @module types/sop.types
8
+ */
9
+ /**
10
+ * Roles that can have associated SOPs
11
+ */
12
+ export type SOPRole = 'orchestrator' | 'pm' | 'tpm' | 'pgm' | 'developer' | 'frontend-developer' | 'backend-developer' | 'qa' | 'tester' | 'designer' | 'devops';
13
+ /**
14
+ * Categories of SOPs
15
+ */
16
+ export type SOPCategory = 'workflow' | 'quality' | 'communication' | 'escalation' | 'tools' | 'debugging' | 'testing' | 'git' | 'security';
17
+ /**
18
+ * Condition operator for SOP activation
19
+ */
20
+ export type SOPConditionOperator = 'equals' | 'contains' | 'matches';
21
+ /**
22
+ * Condition type for SOP activation
23
+ */
24
+ export type SOPConditionType = 'task-type' | 'file-pattern' | 'project-type' | 'custom';
25
+ /**
26
+ * Condition for SOP activation
27
+ */
28
+ export interface SOPCondition {
29
+ /** Type of condition */
30
+ type: SOPConditionType;
31
+ /** Value to check against */
32
+ value: string;
33
+ /** Comparison operator */
34
+ operator: SOPConditionOperator;
35
+ }
36
+ /**
37
+ * Example demonstrating correct SOP usage
38
+ */
39
+ export interface SOPExample {
40
+ /** Example title */
41
+ title: string;
42
+ /** Scenario description */
43
+ scenario: string;
44
+ /** How to correctly handle this scenario */
45
+ correctApproach: string;
46
+ /** How NOT to handle this scenario */
47
+ incorrectApproach?: string;
48
+ }
49
+ /**
50
+ * Complete SOP definition
51
+ */
52
+ export interface SOP {
53
+ /** Unique SOP identifier */
54
+ id: string;
55
+ /** Version number (increments on updates) */
56
+ version: number;
57
+ /** ISO timestamp of creation */
58
+ createdAt: string;
59
+ /** ISO timestamp of last update */
60
+ updatedAt: string;
61
+ /** Creator: 'system' or agentId */
62
+ createdBy: string;
63
+ /** Role this SOP applies to, or 'all' for universal */
64
+ role: SOPRole | 'all';
65
+ /** Category of the SOP */
66
+ category: SOPCategory;
67
+ /** Priority (higher = more important) */
68
+ priority: number;
69
+ /** Short title */
70
+ title: string;
71
+ /** Brief description */
72
+ description: string;
73
+ /** Full SOP content in Markdown */
74
+ content: string;
75
+ /** Keywords that trigger this SOP */
76
+ triggers: string[];
77
+ /** Optional conditions for activation */
78
+ conditions?: SOPCondition[];
79
+ /** Categorization tags */
80
+ tags: string[];
81
+ /** IDs of related SOPs */
82
+ relatedSOPs?: string[];
83
+ /** Usage examples */
84
+ examples?: SOPExample[];
85
+ }
86
+ /**
87
+ * Entry in the SOP index for fast lookup
88
+ */
89
+ export interface SOPIndexEntry {
90
+ /** SOP identifier */
91
+ id: string;
92
+ /** Relative path to the SOP file */
93
+ path: string;
94
+ /** Role this SOP applies to */
95
+ role: SOPRole | 'all';
96
+ /** Category of the SOP */
97
+ category: SOPCategory;
98
+ /** Priority (higher = more important) */
99
+ priority: number;
100
+ /** Keywords that trigger this SOP */
101
+ triggers: string[];
102
+ /** Short title */
103
+ title: string;
104
+ /** Whether this is a system SOP (true) or custom (false) */
105
+ isSystem: boolean;
106
+ }
107
+ /**
108
+ * Complete SOP index
109
+ */
110
+ export interface SOPIndex {
111
+ /** Index format version */
112
+ version: string;
113
+ /** ISO timestamp of last update */
114
+ lastUpdated: string;
115
+ /** All indexed SOPs */
116
+ sops: SOPIndexEntry[];
117
+ }
118
+ /**
119
+ * Parameters for finding relevant SOPs
120
+ */
121
+ export interface SOPMatchParams {
122
+ /** Agent role */
123
+ role: string;
124
+ /** Current task context */
125
+ taskContext: string;
126
+ /** Type of task being performed */
127
+ taskType?: string;
128
+ /** File patterns involved */
129
+ filePatterns?: string[];
130
+ /** Maximum number of SOPs to return */
131
+ limit?: number;
132
+ }
133
+ /**
134
+ * Interface for SOP matching logic
135
+ */
136
+ export interface ISOPMatcher {
137
+ /**
138
+ * Find SOPs relevant to the given context
139
+ *
140
+ * @param params - Match parameters
141
+ * @returns Array of matching SOPs, sorted by relevance
142
+ */
143
+ findRelevant(params: SOPMatchParams): Promise<SOP[]>;
144
+ /**
145
+ * Score how relevant an SOP is to the given context
146
+ *
147
+ * @param sop - SOP index entry to score
148
+ * @param context - Context string
149
+ * @returns Relevance score (0-1)
150
+ */
151
+ scoreRelevance(sop: SOPIndexEntry, context: string): number;
152
+ }
153
+ /**
154
+ * SOP file frontmatter (YAML header)
155
+ */
156
+ export interface SOPFrontmatter {
157
+ id: string;
158
+ version: number;
159
+ createdAt: string;
160
+ updatedAt: string;
161
+ createdBy: string;
162
+ role: SOPRole | 'all';
163
+ category: SOPCategory;
164
+ priority: number;
165
+ title: string;
166
+ description: string;
167
+ triggers: string[];
168
+ conditions?: SOPCondition[];
169
+ tags: string[];
170
+ relatedSOPs?: string[];
171
+ }
172
+ /**
173
+ * Result of parsing an SOP file
174
+ */
175
+ export interface ParsedSOP {
176
+ /** Parsed frontmatter */
177
+ frontmatter: SOPFrontmatter;
178
+ /** Markdown content (without frontmatter) */
179
+ content: string;
180
+ /** Parsed examples (if present) */
181
+ examples?: SOPExample[];
182
+ }
183
+ /**
184
+ * SOP constants
185
+ */
186
+ export declare const SOP_CONSTANTS: {
187
+ /** Directory names */
188
+ readonly PATHS: {
189
+ readonly SOP_DIR: "sops";
190
+ readonly SYSTEM_SOP_DIR: "system";
191
+ readonly CUSTOM_SOP_DIR: "custom";
192
+ readonly INDEX_FILE: "index.json";
193
+ };
194
+ /** Limits */
195
+ readonly LIMITS: {
196
+ readonly MAX_SOPS_IN_PROMPT: 5;
197
+ readonly MAX_SOP_CONTENT_LENGTH: 2000;
198
+ readonly MAX_TRIGGERS_PER_SOP: 20;
199
+ readonly MAX_CONDITIONS_PER_SOP: 10;
200
+ readonly MAX_EXAMPLES_PER_SOP: 5;
201
+ };
202
+ /** Matching configuration */
203
+ readonly MATCHING: {
204
+ readonly MIN_TRIGGER_MATCH_SCORE: 0.3;
205
+ readonly DEFAULT_PRIORITY: 5;
206
+ readonly ROLE_MATCH_BOOST: 0.3;
207
+ readonly CATEGORY_MATCH_BOOST: 0.2;
208
+ };
209
+ /** Index version */
210
+ readonly INDEX_VERSION: "1.0";
211
+ };
212
+ /**
213
+ * Default SOP categories organized by role
214
+ */
215
+ export declare const DEFAULT_SOP_CATEGORIES: Record<SOPRole | 'all', SOPCategory[]>;
216
+ /**
217
+ * All valid SOP roles
218
+ */
219
+ export declare const ALL_SOP_ROLES: SOPRole[];
220
+ /**
221
+ * All valid SOP categories
222
+ */
223
+ export declare const ALL_SOP_CATEGORIES: SOPCategory[];
224
+ //# sourceMappingURL=sop.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sop.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/sop.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Standard Operating Procedure (SOP) Type Definitions
3
+ *
4
+ * Types for defining, storing, and matching SOPs that guide
5
+ * agent behavior with standardized procedures.
6
+ *
7
+ * @module types/sop.types
8
+ */
9
+ /**
10
+ * SOP constants
11
+ */
12
+ export const SOP_CONSTANTS = {
13
+ /** Directory names */
14
+ PATHS: {
15
+ SOP_DIR: 'sops',
16
+ SYSTEM_SOP_DIR: 'system',
17
+ CUSTOM_SOP_DIR: 'custom',
18
+ INDEX_FILE: 'index.json',
19
+ },
20
+ /** Limits */
21
+ LIMITS: {
22
+ MAX_SOPS_IN_PROMPT: 5,
23
+ MAX_SOP_CONTENT_LENGTH: 2000,
24
+ MAX_TRIGGERS_PER_SOP: 20,
25
+ MAX_CONDITIONS_PER_SOP: 10,
26
+ MAX_EXAMPLES_PER_SOP: 5,
27
+ },
28
+ /** Matching configuration */
29
+ MATCHING: {
30
+ MIN_TRIGGER_MATCH_SCORE: 0.3,
31
+ DEFAULT_PRIORITY: 5,
32
+ ROLE_MATCH_BOOST: 0.3,
33
+ CATEGORY_MATCH_BOOST: 0.2,
34
+ },
35
+ /** Index version */
36
+ INDEX_VERSION: '1.0',
37
+ };
38
+ /**
39
+ * Default SOP categories organized by role
40
+ */
41
+ export const DEFAULT_SOP_CATEGORIES = {
42
+ all: ['communication', 'escalation', 'security'],
43
+ orchestrator: ['workflow', 'communication', 'escalation'],
44
+ pm: ['workflow', 'communication', 'quality'],
45
+ tpm: ['workflow', 'communication', 'quality'],
46
+ pgm: ['workflow', 'communication', 'quality'],
47
+ developer: ['workflow', 'quality', 'git', 'testing', 'debugging'],
48
+ 'frontend-developer': ['workflow', 'quality', 'git', 'testing', 'debugging'],
49
+ 'backend-developer': ['workflow', 'quality', 'git', 'testing', 'debugging', 'security'],
50
+ qa: ['testing', 'quality', 'debugging', 'communication'],
51
+ tester: ['testing', 'quality', 'debugging', 'communication'],
52
+ designer: ['workflow', 'communication', 'tools'],
53
+ devops: ['workflow', 'security', 'tools', 'debugging'],
54
+ };
55
+ /**
56
+ * All valid SOP roles
57
+ */
58
+ export const ALL_SOP_ROLES = [
59
+ 'orchestrator',
60
+ 'pm',
61
+ 'tpm',
62
+ 'pgm',
63
+ 'developer',
64
+ 'frontend-developer',
65
+ 'backend-developer',
66
+ 'qa',
67
+ 'tester',
68
+ 'designer',
69
+ 'devops',
70
+ ];
71
+ /**
72
+ * All valid SOP categories
73
+ */
74
+ export const ALL_SOP_CATEGORIES = [
75
+ 'workflow',
76
+ 'quality',
77
+ 'communication',
78
+ 'escalation',
79
+ 'tools',
80
+ 'debugging',
81
+ 'testing',
82
+ 'git',
83
+ 'security',
84
+ ];
85
+ //# sourceMappingURL=sop.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sop.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/sop.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2NH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,sBAAsB;IACtB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,YAAY;KACzB;IAED,aAAa;IACb,MAAM,EAAE;QACN,kBAAkB,EAAE,CAAC;QACrB,sBAAsB,EAAE,IAAI;QAC5B,oBAAoB,EAAE,EAAE;QACxB,sBAAsB,EAAE,EAAE;QAC1B,oBAAoB,EAAE,CAAC;KACxB;IAED,6BAA6B;IAC7B,QAAQ,EAAE;QACR,uBAAuB,EAAE,GAAG;QAC5B,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,GAAG;QACrB,oBAAoB,EAAE,GAAG;KAC1B;IAED,oBAAoB;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA2C;IAC5E,GAAG,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC;IAChD,YAAY,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,YAAY,CAAC;IACzD,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC;IAC5C,GAAG,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC;IAC7C,GAAG,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC;IAC7C,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC;IACjE,oBAAoB,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC;IAC5E,mBAAmB,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;IACvF,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;IACxD,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;IAC5D,QAAQ,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC;IAChD,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,cAAc;IACd,IAAI;IACJ,KAAK;IACL,KAAK;IACL,WAAW;IACX,oBAAoB;IACpB,mBAAmB;IACnB,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,QAAQ;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,UAAU;IACV,SAAS;IACT,eAAe;IACf,YAAY;IACZ,OAAO;IACP,WAAW;IACX,SAAS;IACT,KAAK;IACL,UAAU;CACX,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Task Output Type Definitions
3
+ *
4
+ * Types for structured task output with JSON Schema validation.
5
+ * Enables agents to produce validated, structured deliverables
6
+ * when completing tasks.
7
+ *
8
+ * @module types/task-output.types
9
+ */
10
+ /**
11
+ * JSON Schema definition for validating task output.
12
+ * Uses a subset of JSON Schema Draft 7 compatible with ajv.
13
+ */
14
+ export interface TaskOutputSchema {
15
+ /** JSON Schema type (typically 'object') */
16
+ type: string;
17
+ /** Property definitions for the output */
18
+ properties?: Record<string, Record<string, unknown>>;
19
+ /** List of required property names */
20
+ required?: string[];
21
+ /** Whether additional properties are allowed */
22
+ additionalProperties?: boolean;
23
+ /** Human-readable description of the expected output */
24
+ description?: string;
25
+ }
26
+ /**
27
+ * Result of validating task output against its schema
28
+ */
29
+ export interface TaskOutputValidationResult {
30
+ /** Whether the output passed validation */
31
+ valid: boolean;
32
+ /** Validation error messages (empty if valid) */
33
+ errors: string[];
34
+ /** The validated output data (only set if valid) */
35
+ data?: TaskOutputData;
36
+ }
37
+ /**
38
+ * Structured output data from a completed task
39
+ */
40
+ export interface TaskOutputData {
41
+ /** The validated output object */
42
+ output: Record<string, unknown>;
43
+ /** ISO timestamp of when the output was produced */
44
+ producedAt: string;
45
+ /** Session name of the agent that produced the output */
46
+ sessionName: string;
47
+ }
48
+ /**
49
+ * Retry tracking information embedded in task markdown
50
+ */
51
+ export interface TaskOutputRetryInfo {
52
+ /** Number of validation attempts so far */
53
+ retryCount: number;
54
+ /** Maximum allowed retries */
55
+ maxRetries: number;
56
+ /** Error messages from the last failed validation */
57
+ lastErrors: string[];
58
+ /** ISO timestamp of the last retry attempt */
59
+ lastAttemptAt: string;
60
+ }
61
+ /**
62
+ * Constants for task output validation
63
+ */
64
+ export declare const TASK_OUTPUT_CONSTANTS: {
65
+ /** Maximum number of validation retries before blocking the task */
66
+ readonly MAX_RETRIES: 2;
67
+ /** Maximum output size in bytes (1MB) */
68
+ readonly MAX_OUTPUT_SIZE_BYTES: 1048576;
69
+ /** Markdown section headers used in task files */
70
+ readonly SECTION_HEADERS: {
71
+ readonly OUTPUT_SCHEMA: "## Output Schema";
72
+ readonly RETRY_INFO: "## Output Validation Retry Info";
73
+ readonly VALIDATION_FAILURE: "## Validation Failure";
74
+ };
75
+ /** File extension for stored output files */
76
+ readonly OUTPUT_FILE_EXTENSION: ".output.json";
77
+ };
78
+ //# sourceMappingURL=task-output.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-output.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/task-output.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,oEAAoE;;IAEpE,yCAAyC;;IAEzC,kDAAkD;;;;;;IAMlD,6CAA6C;;CAErC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Task Output Type Definitions
3
+ *
4
+ * Types for structured task output with JSON Schema validation.
5
+ * Enables agents to produce validated, structured deliverables
6
+ * when completing tasks.
7
+ *
8
+ * @module types/task-output.types
9
+ */
10
+ /**
11
+ * Constants for task output validation
12
+ */
13
+ export const TASK_OUTPUT_CONSTANTS = {
14
+ /** Maximum number of validation retries before blocking the task */
15
+ MAX_RETRIES: 2,
16
+ /** Maximum output size in bytes (1MB) */
17
+ MAX_OUTPUT_SIZE_BYTES: 1_048_576,
18
+ /** Markdown section headers used in task files */
19
+ SECTION_HEADERS: {
20
+ OUTPUT_SCHEMA: '## Output Schema',
21
+ RETRY_INFO: '## Output Validation Retry Info',
22
+ VALIDATION_FAILURE: '## Validation Failure',
23
+ },
24
+ /** File extension for stored output files */
25
+ OUTPUT_FILE_EXTENSION: '.output.json',
26
+ };
27
+ //# sourceMappingURL=task-output.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-output.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/task-output.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyDH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,oEAAoE;IACpE,WAAW,EAAE,CAAC;IACd,yCAAyC;IACzC,qBAAqB,EAAE,SAAS;IAChC,kDAAkD;IAClD,eAAe,EAAE;QACf,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,iCAAiC;QAC7C,kBAAkB,EAAE,uBAAuB;KAC5C;IACD,6CAA6C;IAC7C,qBAAqB,EAAE,cAAc;CAC7B,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Centralized Atomic File I/O Utilities
3
+ *
4
+ * Provides safe, atomic file operations for all JSON persistence in Crewly.
5
+ * Uses temp-file + fsync + rename to prevent corruption on crash,
6
+ * and in-process locks to serialize concurrent writes to the same file.
7
+ *
8
+ * @module utils/file-io.utils
9
+ */
10
+ /**
11
+ * Minimal logger interface accepted by safeReadJson / modifyJsonFile.
12
+ * Compatible with ComponentLogger from LoggerService.
13
+ */
14
+ export interface FileIOLogger {
15
+ warn(message: string, meta?: Record<string, unknown>): void;
16
+ debug?(message: string, meta?: Record<string, unknown>): void;
17
+ }
18
+ /**
19
+ * Ensures a directory exists, creating it recursively if necessary.
20
+ *
21
+ * @param dirPath - Absolute path to the directory
22
+ */
23
+ export declare function ensureDir(dirPath: string): Promise<void>;
24
+ /**
25
+ * Serialize concurrent writes to the same file.
26
+ *
27
+ * @param lockKey - Unique key for the lock (typically the file path)
28
+ * @param operation - Async operation to run while holding the lock
29
+ * @returns The result of the operation
30
+ */
31
+ export declare function withFileLock<T>(lockKey: string, operation: () => Promise<T>): Promise<T>;
32
+ /**
33
+ * Serialize read-modify-write cycles on a logical resource.
34
+ *
35
+ * Uses a separate lock map from {@link withFileLock} so that callers
36
+ * can hold an operation lock across a read + write without deadlocking
37
+ * on the inner file lock.
38
+ *
39
+ * @param lockKey - Unique key for the lock
40
+ * @param operation - Async operation to run while holding the lock
41
+ * @returns The result of the operation
42
+ */
43
+ export declare function withOperationLock<T>(lockKey: string, operation: () => Promise<T>): Promise<T>;
44
+ /**
45
+ * Write a string to a file atomically (temp file → fsync → rename).
46
+ *
47
+ * Acquires a per-path file lock so concurrent callers targeting the
48
+ * same path are serialized.
49
+ *
50
+ * **Precondition:** The parent directory must already exist. This function
51
+ * does not create intermediate directories — use {@link ensureDir} first
52
+ * if the directory may not exist.
53
+ *
54
+ * @param filePath - Destination file path
55
+ * @param content - String content to write
56
+ */
57
+ export declare function atomicWriteFile(filePath: string, content: string): Promise<void>;
58
+ /**
59
+ * Serialize a JavaScript value to JSON and write it atomically.
60
+ *
61
+ * @param filePath - Destination file path
62
+ * @param data - Value to serialize (via `JSON.stringify`)
63
+ */
64
+ export declare function atomicWriteJson<T>(filePath: string, data: T): Promise<void>;
65
+ /**
66
+ * Read and parse a JSON file safely.
67
+ *
68
+ * - On `ENOENT` → returns `defaultValue` silently.
69
+ * - On parse error → backs up the corrupt file as `<path>.corrupt.<ts>`
70
+ * and returns `defaultValue`.
71
+ *
72
+ * @param filePath - Path to the JSON file
73
+ * @param defaultValue - Value to return when the file is missing or corrupt
74
+ * @param logger - Optional logger for warnings on corruption
75
+ * @returns Parsed value or `defaultValue`
76
+ */
77
+ export declare function safeReadJson<T>(filePath: string, defaultValue: T, logger?: FileIOLogger): Promise<T>;
78
+ /**
79
+ * Locked read → mutate → atomic write cycle.
80
+ *
81
+ * This is the most common persistence pattern: load a JSON file,
82
+ * apply a mutation, and write it back atomically — all while holding
83
+ * an operation lock to prevent concurrent read-modify-write races.
84
+ *
85
+ * **Important:** If the mutator returns `undefined` (void), the mutated
86
+ * `data` object is written back. If it returns any other value — including
87
+ * falsy values like `null`, `0`, or `false` — that value is written instead.
88
+ * Beware of methods like `Array.push()` which return a number: an accidental
89
+ * `return records.push(item)` will write the array length to the file.
90
+ *
91
+ * @param filePath - Path to the JSON file
92
+ * @param defaultValue - Value to use if the file is missing or corrupt
93
+ * @param mutator - Function that receives the current data and mutates it in place (or returns new data)
94
+ * @param logger - Optional logger
95
+ * @returns The value returned by `mutator` (or void)
96
+ */
97
+ export declare function modifyJsonFile<T, R = void>(filePath: string, defaultValue: T, mutator: (data: T) => R | Promise<R>, logger?: FileIOLogger): Promise<R>;
98
+ /**
99
+ * Reset all lock maps. **Test-only** — never call in production.
100
+ */
101
+ export declare function _clearAllLocks(): void;
102
+ //# sourceMappingURL=file-io.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-io.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/file-io.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/D;AAaD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAuCD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE9F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEnG;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtF;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAyB1G;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAC9C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACpC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAUZ;AAMD;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}