crewly 1.0.6 → 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 (321) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +146 -40
  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 +53 -10
  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/slack/slack.controller.d.ts.map +1 -1
  27. package/dist/backend/backend/src/controllers/slack/slack.controller.js +7 -0
  28. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  29. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +7 -0
  30. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  31. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +174 -4
  32. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  33. package/dist/backend/backend/src/index.d.ts.map +1 -1
  34. package/dist/backend/backend/src/index.js +34 -0
  35. package/dist/backend/backend/src/index.js.map +1 -1
  36. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  37. package/dist/backend/backend/src/routes/modules/task-management.routes.js +2 -0
  38. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  39. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +8 -0
  40. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/agent/agent-registration.service.js +75 -17
  42. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  43. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +222 -0
  44. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
  45. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +621 -0
  46. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
  47. package/dist/backend/backend/src/services/index.d.ts +3 -0
  48. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/index.js +5 -0
  50. package/dist/backend/backend/src/services/index.js.map +1 -1
  51. package/dist/backend/backend/src/services/mcp-client.d.ts +233 -0
  52. package/dist/backend/backend/src/services/mcp-client.d.ts.map +1 -0
  53. package/dist/backend/backend/src/services/mcp-client.js +297 -0
  54. package/dist/backend/backend/src/services/mcp-client.js.map +1 -0
  55. package/dist/backend/backend/src/services/mcp-server.d.ts +167 -0
  56. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -0
  57. package/dist/backend/backend/src/services/mcp-server.js +586 -0
  58. package/dist/backend/backend/src/services/mcp-server.js.map +1 -0
  59. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +2 -0
  60. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/messaging/message-queue.service.js +6 -1
  62. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +10 -0
  64. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +94 -38
  66. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  67. package/dist/backend/backend/src/services/quality/index.d.ts +1 -0
  68. package/dist/backend/backend/src/services/quality/index.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/quality/index.js +1 -0
  70. package/dist/backend/backend/src/services/quality/index.js.map +1 -1
  71. package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts +84 -0
  72. package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts.map +1 -0
  73. package/dist/backend/backend/src/services/quality/task-output-validator.service.js +163 -0
  74. package/dist/backend/backend/src/services/quality/task-output-validator.service.js.map +1 -0
  75. package/dist/backend/backend/src/services/runtime-adapter.d.ts +234 -0
  76. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -0
  77. package/dist/backend/backend/src/services/runtime-adapter.js +180 -0
  78. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -0
  79. package/dist/backend/backend/src/services/slack/slack-credentials.service.d.ts +33 -0
  80. package/dist/backend/backend/src/services/slack/slack-credentials.service.d.ts.map +1 -0
  81. package/dist/backend/backend/src/services/slack/slack-credentials.service.js +103 -0
  82. package/dist/backend/backend/src/services/slack/slack-credentials.service.js.map +1 -0
  83. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +9 -1
  84. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/slack/slack-initializer.js +31 -2
  86. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  87. package/dist/backend/backend/src/types/event-bus.types.d.ts +2 -2
  88. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  89. package/dist/backend/backend/src/types/event-bus.types.js +2 -0
  90. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  91. package/dist/backend/backend/src/types/index.d.ts +1 -0
  92. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  93. package/dist/backend/backend/src/types/index.js +2 -0
  94. package/dist/backend/backend/src/types/index.js.map +1 -1
  95. package/dist/backend/backend/src/types/messaging.types.d.ts +9 -6
  96. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  97. package/dist/backend/backend/src/types/messaging.types.js +10 -3
  98. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  99. package/dist/backend/backend/src/types/task-output.types.d.ts +78 -0
  100. package/dist/backend/backend/src/types/task-output.types.d.ts.map +1 -0
  101. package/dist/backend/backend/src/types/task-output.types.js +27 -0
  102. package/dist/backend/backend/src/types/task-output.types.js.map +1 -0
  103. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +13 -0
  104. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  105. package/dist/backend/backend/src/websocket/terminal.gateway.js +12 -0
  106. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  107. package/dist/cli/backend/src/constants.d.ts +751 -0
  108. package/dist/cli/backend/src/constants.d.ts.map +1 -0
  109. package/dist/cli/backend/src/constants.js +550 -0
  110. package/dist/cli/backend/src/constants.js.map +1 -0
  111. package/dist/cli/backend/src/models/Project.d.ts +18 -0
  112. package/dist/cli/backend/src/models/Project.d.ts.map +1 -0
  113. package/dist/cli/backend/src/models/Project.js +70 -0
  114. package/dist/cli/backend/src/models/Project.js.map +1 -0
  115. package/dist/cli/backend/src/models/ScheduledMessage.d.ts +27 -0
  116. package/dist/cli/backend/src/models/ScheduledMessage.d.ts.map +1 -0
  117. package/dist/cli/backend/src/models/ScheduledMessage.js +50 -0
  118. package/dist/cli/backend/src/models/ScheduledMessage.js.map +1 -0
  119. package/dist/cli/backend/src/models/Team.d.ts +20 -0
  120. package/dist/cli/backend/src/models/Team.d.ts.map +1 -0
  121. package/dist/cli/backend/src/models/Team.js +120 -0
  122. package/dist/cli/backend/src/models/Team.js.map +1 -0
  123. package/dist/cli/backend/src/models/Ticket.d.ts +24 -0
  124. package/dist/cli/backend/src/models/Ticket.d.ts.map +1 -0
  125. package/dist/cli/backend/src/models/Ticket.js +102 -0
  126. package/dist/cli/backend/src/models/Ticket.js.map +1 -0
  127. package/dist/cli/backend/src/models/index.d.ts +5 -0
  128. package/dist/cli/backend/src/models/index.d.ts.map +1 -0
  129. package/dist/cli/backend/src/models/index.js +5 -0
  130. package/dist/cli/backend/src/models/index.js.map +1 -0
  131. package/dist/cli/backend/src/services/core/config.service.d.ts +91 -0
  132. package/dist/cli/backend/src/services/core/config.service.d.ts.map +1 -0
  133. package/dist/cli/backend/src/services/core/config.service.js +246 -0
  134. package/dist/cli/backend/src/services/core/config.service.js.map +1 -0
  135. package/dist/cli/backend/src/services/core/logger.service.d.ts +70 -0
  136. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -0
  137. package/dist/cli/backend/src/services/core/logger.service.js +350 -0
  138. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -0
  139. package/dist/cli/backend/src/services/core/storage.service.d.ts +269 -0
  140. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -0
  141. package/dist/cli/backend/src/services/core/storage.service.js +1406 -0
  142. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -0
  143. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +92 -0
  144. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -0
  145. package/dist/cli/backend/src/services/core/teams-backup.service.js +120 -0
  146. package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -0
  147. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +125 -0
  148. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -0
  149. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +247 -0
  150. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -0
  151. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts +153 -0
  152. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts.map +1 -0
  153. package/dist/cli/backend/src/services/knowledge/knowledge.service.js +409 -0
  154. package/dist/cli/backend/src/services/knowledge/knowledge.service.js.map +1 -0
  155. package/dist/cli/backend/src/services/mcp-server.d.ts +167 -0
  156. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -0
  157. package/dist/cli/backend/src/services/mcp-server.js +586 -0
  158. package/dist/cli/backend/src/services/mcp-server.js.map +1 -0
  159. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +259 -0
  160. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -0
  161. package/dist/cli/backend/src/services/memory/agent-memory.service.js +539 -0
  162. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -0
  163. package/dist/cli/backend/src/services/memory/memory.service.d.ts +306 -0
  164. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -0
  165. package/dist/cli/backend/src/services/memory/memory.service.js +517 -0
  166. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -0
  167. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +252 -0
  168. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/memory/project-memory.service.js +600 -0
  170. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -0
  171. package/dist/cli/backend/src/types/auto-assign.types.d.ts +271 -0
  172. package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +1 -0
  173. package/dist/cli/backend/src/types/auto-assign.types.js +136 -0
  174. package/dist/cli/backend/src/types/auto-assign.types.js.map +1 -0
  175. package/dist/cli/backend/src/types/budget.types.d.ts +217 -0
  176. package/dist/cli/backend/src/types/budget.types.d.ts.map +1 -0
  177. package/dist/cli/backend/src/types/budget.types.js +82 -0
  178. package/dist/cli/backend/src/types/budget.types.js.map +1 -0
  179. package/dist/cli/backend/src/types/chat.types.d.ts +550 -0
  180. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -0
  181. package/dist/cli/backend/src/types/chat.types.js +743 -0
  182. package/dist/cli/backend/src/types/chat.types.js.map +1 -0
  183. package/dist/cli/backend/src/types/continuation.types.d.ts +237 -0
  184. package/dist/cli/backend/src/types/continuation.types.d.ts.map +1 -0
  185. package/dist/cli/backend/src/types/continuation.types.js +10 -0
  186. package/dist/cli/backend/src/types/continuation.types.js.map +1 -0
  187. package/dist/cli/backend/src/types/index.d.ts +164 -0
  188. package/dist/cli/backend/src/types/index.d.ts.map +1 -0
  189. package/dist/cli/backend/src/types/index.js +25 -0
  190. package/dist/cli/backend/src/types/index.js.map +1 -0
  191. package/dist/cli/backend/src/types/knowledge.types.d.ts +195 -0
  192. package/dist/cli/backend/src/types/knowledge.types.d.ts.map +1 -0
  193. package/dist/cli/backend/src/types/knowledge.types.js +38 -0
  194. package/dist/cli/backend/src/types/knowledge.types.js.map +1 -0
  195. package/dist/cli/backend/src/types/memory.types.d.ts +587 -0
  196. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -0
  197. package/dist/cli/backend/src/types/memory.types.js +47 -0
  198. package/dist/cli/backend/src/types/memory.types.js.map +1 -0
  199. package/dist/cli/backend/src/types/quality-gate.types.d.ts +171 -0
  200. package/dist/cli/backend/src/types/quality-gate.types.d.ts.map +1 -0
  201. package/dist/cli/backend/src/types/quality-gate.types.js +42 -0
  202. package/dist/cli/backend/src/types/quality-gate.types.js.map +1 -0
  203. package/dist/cli/backend/src/types/role.types.d.ts +260 -0
  204. package/dist/cli/backend/src/types/role.types.d.ts.map +1 -0
  205. package/dist/cli/backend/src/types/role.types.js +238 -0
  206. package/dist/cli/backend/src/types/role.types.js.map +1 -0
  207. package/dist/cli/backend/src/types/scheduler.types.d.ts +254 -0
  208. package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -0
  209. package/dist/cli/backend/src/types/scheduler.types.js +32 -0
  210. package/dist/cli/backend/src/types/scheduler.types.js.map +1 -0
  211. package/dist/cli/backend/src/types/settings.types.d.ts +178 -0
  212. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -0
  213. package/dist/cli/backend/src/types/settings.types.js +206 -0
  214. package/dist/cli/backend/src/types/settings.types.js.map +1 -0
  215. package/dist/cli/backend/src/types/skill.types.d.ts +515 -0
  216. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -0
  217. package/dist/cli/backend/src/types/skill.types.js +481 -0
  218. package/dist/cli/backend/src/types/skill.types.js.map +1 -0
  219. package/dist/cli/backend/src/types/sop.types.d.ts +224 -0
  220. package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -0
  221. package/dist/cli/backend/src/types/sop.types.js +85 -0
  222. package/dist/cli/backend/src/types/sop.types.js.map +1 -0
  223. package/dist/cli/backend/src/types/task-output.types.d.ts +78 -0
  224. package/dist/cli/backend/src/types/task-output.types.d.ts.map +1 -0
  225. package/dist/cli/backend/src/types/task-output.types.js +27 -0
  226. package/dist/cli/backend/src/types/task-output.types.js.map +1 -0
  227. package/dist/cli/backend/src/utils/file-io.utils.d.ts +102 -0
  228. package/dist/cli/backend/src/utils/file-io.utils.d.ts.map +1 -0
  229. package/dist/cli/backend/src/utils/file-io.utils.js +214 -0
  230. package/dist/cli/backend/src/utils/file-io.utils.js.map +1 -0
  231. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts +54 -0
  232. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts.map +1 -0
  233. package/dist/cli/backend/src/utils/terminal-output.utils.js +97 -0
  234. package/dist/cli/backend/src/utils/terminal-output.utils.js.map +1 -0
  235. package/dist/cli/cli/src/commands/mcp-server.d.ts +38 -0
  236. package/dist/cli/cli/src/commands/mcp-server.d.ts.map +1 -0
  237. package/dist/cli/cli/src/commands/mcp-server.js +49 -0
  238. package/dist/cli/cli/src/commands/mcp-server.js.map +1 -0
  239. package/dist/cli/cli/src/commands/onboard.d.ts +61 -7
  240. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  241. package/dist/cli/cli/src/commands/onboard.js +192 -19
  242. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  243. package/dist/cli/cli/src/commands/publish.d.ts +27 -0
  244. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -0
  245. package/dist/cli/cli/src/commands/publish.js +69 -0
  246. package/dist/cli/cli/src/commands/publish.js.map +1 -0
  247. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  248. package/dist/cli/cli/src/commands/start.js +12 -2
  249. package/dist/cli/cli/src/commands/start.js.map +1 -1
  250. package/dist/cli/cli/src/index.js +14 -0
  251. package/dist/cli/cli/src/index.js.map +1 -1
  252. package/dist/cli/cli/src/utils/archive-creator.d.ts +82 -0
  253. package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -0
  254. package/dist/cli/cli/src/utils/archive-creator.js +105 -0
  255. package/dist/cli/cli/src/utils/archive-creator.js.map +1 -0
  256. package/dist/cli/cli/src/utils/package-validator.d.ts +62 -0
  257. package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -0
  258. package/dist/cli/cli/src/utils/package-validator.js +122 -0
  259. package/dist/cli/cli/src/utils/package-validator.js.map +1 -0
  260. package/dist/cli/cli/src/utils/process-cleanup.d.ts +15 -0
  261. package/dist/cli/cli/src/utils/process-cleanup.d.ts.map +1 -0
  262. package/dist/cli/cli/src/utils/process-cleanup.js +76 -0
  263. package/dist/cli/cli/src/utils/process-cleanup.js.map +1 -0
  264. package/dist/cli/cli/src/utils/templates.d.ts +71 -0
  265. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -0
  266. package/dist/cli/cli/src/utils/templates.js +91 -0
  267. package/dist/cli/cli/src/utils/templates.js.map +1 -0
  268. package/frontend/dist/assets/{index-523c7fce.js → index-68d1eb5a.js} +71 -71
  269. package/frontend/dist/assets/{index-4c050f52.css → index-c5043a83.css} +1 -1
  270. package/frontend/dist/assets/nunito-cyrillic-400-normal-e44e669f.woff2 +0 -0
  271. package/frontend/dist/assets/nunito-cyrillic-400-normal-ff8e8bdd.woff +0 -0
  272. package/frontend/dist/assets/nunito-cyrillic-500-normal-2159679b.woff +0 -0
  273. package/frontend/dist/assets/nunito-cyrillic-500-normal-61a3b80e.woff2 +0 -0
  274. package/frontend/dist/assets/nunito-cyrillic-600-normal-ac046097.woff +0 -0
  275. package/frontend/dist/assets/nunito-cyrillic-600-normal-e61eb97b.woff2 +0 -0
  276. package/frontend/dist/assets/nunito-cyrillic-700-normal-8fcefcc9.woff2 +0 -0
  277. package/frontend/dist/assets/nunito-cyrillic-700-normal-b9684104.woff +0 -0
  278. package/frontend/dist/assets/nunito-cyrillic-800-normal-40253beb.woff +0 -0
  279. package/frontend/dist/assets/nunito-cyrillic-800-normal-d80292de.woff2 +0 -0
  280. package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-20d73ae7.woff2 +0 -0
  281. package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-d48c37c9.woff +0 -0
  282. package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-16197abd.woff +0 -0
  283. package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-9dcfe9b5.woff2 +0 -0
  284. package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-d53e9851.woff2 +0 -0
  285. package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-e3d0201f.woff +0 -0
  286. package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-5936f6ac.woff2 +0 -0
  287. package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-c8c02775.woff +0 -0
  288. package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-217b8f51.woff +0 -0
  289. package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-796cf7bd.woff2 +0 -0
  290. package/frontend/dist/assets/nunito-latin-400-normal-a5906e15.woff2 +0 -0
  291. package/frontend/dist/assets/nunito-latin-400-normal-b51e7635.woff +0 -0
  292. package/frontend/dist/assets/nunito-latin-500-normal-23ae3083.woff2 +0 -0
  293. package/frontend/dist/assets/nunito-latin-500-normal-be14dbc6.woff +0 -0
  294. package/frontend/dist/assets/nunito-latin-600-normal-06a9c8b3.woff +0 -0
  295. package/frontend/dist/assets/nunito-latin-600-normal-45f437de.woff2 +0 -0
  296. package/frontend/dist/assets/nunito-latin-700-normal-ce9107dc.woff +0 -0
  297. package/frontend/dist/assets/nunito-latin-700-normal-fa89300b.woff2 +0 -0
  298. package/frontend/dist/assets/nunito-latin-800-normal-0ca02785.woff +0 -0
  299. package/frontend/dist/assets/nunito-latin-800-normal-2363d3ed.woff2 +0 -0
  300. package/frontend/dist/assets/nunito-latin-ext-400-normal-67250a41.woff2 +0 -0
  301. package/frontend/dist/assets/nunito-latin-ext-400-normal-d7e2415e.woff +0 -0
  302. package/frontend/dist/assets/nunito-latin-ext-500-normal-06f35d1c.woff +0 -0
  303. package/frontend/dist/assets/nunito-latin-ext-500-normal-343e7adc.woff2 +0 -0
  304. package/frontend/dist/assets/nunito-latin-ext-600-normal-5a8efd17.woff +0 -0
  305. package/frontend/dist/assets/nunito-latin-ext-600-normal-a7ba5f4f.woff2 +0 -0
  306. package/frontend/dist/assets/nunito-latin-ext-700-normal-0a4e4a02.woff2 +0 -0
  307. package/frontend/dist/assets/nunito-latin-ext-700-normal-0c607961.woff +0 -0
  308. package/frontend/dist/assets/nunito-latin-ext-800-normal-39f54b55.woff2 +0 -0
  309. package/frontend/dist/assets/nunito-latin-ext-800-normal-466d0211.woff +0 -0
  310. package/frontend/dist/assets/nunito-vietnamese-400-normal-2a755616.woff2 +0 -0
  311. package/frontend/dist/assets/nunito-vietnamese-400-normal-9c01ea9f.woff +0 -0
  312. package/frontend/dist/assets/nunito-vietnamese-500-normal-452e5e08.woff +0 -0
  313. package/frontend/dist/assets/nunito-vietnamese-500-normal-dc98d965.woff2 +0 -0
  314. package/frontend/dist/assets/nunito-vietnamese-600-normal-2ffbb85f.woff +0 -0
  315. package/frontend/dist/assets/nunito-vietnamese-600-normal-cf95b95d.woff2 +0 -0
  316. package/frontend/dist/assets/nunito-vietnamese-700-normal-0e29c28c.woff2 +0 -0
  317. package/frontend/dist/assets/nunito-vietnamese-700-normal-7793b75e.woff +0 -0
  318. package/frontend/dist/assets/nunito-vietnamese-800-normal-5baf507e.woff +0 -0
  319. package/frontend/dist/assets/nunito-vietnamese-800-normal-fac6740e.woff2 +0 -0
  320. package/frontend/dist/index.html +2 -2
  321. package/package.json +15 -5
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Auto-Assignment Type Definitions
3
+ *
4
+ * Types for the automatic task assignment system.
5
+ *
6
+ * @module types/auto-assign.types
7
+ */
8
+ /**
9
+ * Prioritization strategy for task assignment
10
+ */
11
+ export type PrioritizationStrategy = 'fifo' | 'priority' | 'deadline' | 'custom';
12
+ /**
13
+ * Role matching rule for task assignment
14
+ */
15
+ export interface RoleMatchRule {
16
+ /** The agent role this rule applies to */
17
+ role: string;
18
+ /** Task types this role can handle */
19
+ taskTypes: string[];
20
+ /** Priority order (lower = higher priority) */
21
+ priority: number;
22
+ /** If true, only this role can handle these task types */
23
+ exclusive?: boolean;
24
+ }
25
+ /**
26
+ * Load balancing configuration
27
+ */
28
+ export interface LoadBalancingConfig {
29
+ /** Whether load balancing is enabled */
30
+ enabled: boolean;
31
+ /** Maximum tasks an agent can work on simultaneously */
32
+ maxConcurrentTasks: number;
33
+ /** Whether to prefer assigning to idle agents */
34
+ preferIdleAgents: boolean;
35
+ }
36
+ /**
37
+ * Dependency handling configuration
38
+ */
39
+ export interface DependencyConfig {
40
+ /** Whether to respect blocking dependencies */
41
+ respectBlocking: boolean;
42
+ /** Whether to wait for dependencies before assignment */
43
+ waitForDependencies: boolean;
44
+ }
45
+ /**
46
+ * Complete assignment strategy configuration
47
+ */
48
+ export interface AssignmentStrategy {
49
+ /** How tasks are prioritized */
50
+ prioritization: PrioritizationStrategy;
51
+ /** Role matching rules */
52
+ roleMatching: RoleMatchRule[];
53
+ /** Load balancing settings */
54
+ loadBalancing: LoadBalancingConfig;
55
+ /** Dependency handling settings */
56
+ dependencies: DependencyConfig;
57
+ }
58
+ /**
59
+ * Result of a task assignment operation
60
+ */
61
+ export interface TaskAssignmentResult {
62
+ /** Task ID that was assigned */
63
+ taskId: string;
64
+ /** Path to the task file */
65
+ taskPath: string;
66
+ /** Agent ID that received the task */
67
+ agentId: string;
68
+ /** Session name of the agent */
69
+ sessionName: string;
70
+ /** When the task was assigned */
71
+ assignedAt: string;
72
+ /** Estimated completion time (optional) */
73
+ estimatedCompletion?: string;
74
+ }
75
+ /**
76
+ * Task in the assignment queue
77
+ */
78
+ export interface QueuedTask {
79
+ /** Unique task identifier */
80
+ taskId: string;
81
+ /** Path to the task file */
82
+ taskPath: string;
83
+ /** Task title */
84
+ title: string;
85
+ /** Task priority (lower = higher priority) */
86
+ priority: number;
87
+ /** Type of task (feature, fix, test, etc.) */
88
+ taskType?: string;
89
+ /** Role required to complete this task */
90
+ requiredRole?: string;
91
+ /** Task IDs that must complete before this task */
92
+ dependencies: string[];
93
+ /** Task IDs currently blocking this task */
94
+ blockedBy: string[];
95
+ /** When the task was created */
96
+ createdAt: string;
97
+ /** Estimated hours to complete */
98
+ estimatedHours?: number;
99
+ /** Task labels/tags */
100
+ labels?: string[];
101
+ }
102
+ /**
103
+ * Assignment status
104
+ */
105
+ export type AssignmentStatus = 'active' | 'completed' | 'failed' | 'reassigned';
106
+ /**
107
+ * Record of a task assignment
108
+ */
109
+ export interface TaskAssignment {
110
+ /** Task ID */
111
+ taskId: string;
112
+ /** Agent ID assigned to the task */
113
+ agentId: string;
114
+ /** Session name of the agent */
115
+ sessionName: string;
116
+ /** When the task was assigned */
117
+ assignedAt: string;
118
+ /** Current status of the assignment */
119
+ status: AssignmentStatus;
120
+ /** When the task was completed (if applicable) */
121
+ completedAt?: string;
122
+ /** Number of continuation iterations */
123
+ iterations?: number;
124
+ }
125
+ /**
126
+ * Task queue for a project
127
+ */
128
+ export interface TaskQueue {
129
+ /** Project path */
130
+ projectPath: string;
131
+ /** All open tasks, sorted by priority */
132
+ tasks: QueuedTask[];
133
+ /** Assignment history */
134
+ assignments: TaskAssignment[];
135
+ /** Assignment strategy configuration */
136
+ config: AssignmentStrategy;
137
+ /** Last updated timestamp */
138
+ lastUpdated: string;
139
+ }
140
+ /**
141
+ * Types of assignment events
142
+ */
143
+ export type AssignmentEventType = 'task_assigned' | 'task_completed' | 'task_failed' | 'agent_idle' | 'no_tasks' | 'assignment_skipped';
144
+ /**
145
+ * Event emitted by the AutoAssignService
146
+ */
147
+ export interface AssignmentEvent {
148
+ /** Type of event */
149
+ type: AssignmentEventType;
150
+ /** Agent ID involved */
151
+ agentId: string;
152
+ /** Session name of the agent */
153
+ sessionName: string;
154
+ /** Task ID (if applicable) */
155
+ taskId?: string;
156
+ /** Timestamp of the event */
157
+ timestamp: string;
158
+ /** Additional metadata */
159
+ metadata?: Record<string, unknown>;
160
+ }
161
+ /**
162
+ * Notification configuration for auto-assignment
163
+ */
164
+ export interface NotificationConfig {
165
+ /** Notify when agent becomes idle */
166
+ notifyOnIdle: boolean;
167
+ /** Idle threshold in minutes before notification */
168
+ idleThresholdMinutes: number;
169
+ /** Notify when no tasks available */
170
+ notifyOnNoTasks: boolean;
171
+ }
172
+ /**
173
+ * Rate limits for auto-assignment
174
+ */
175
+ export interface AssignmentLimits {
176
+ /** Maximum assignments per day per agent */
177
+ maxAssignmentsPerDay: number;
178
+ /** Cooldown between task assignments in seconds */
179
+ cooldownBetweenTasks: number;
180
+ }
181
+ /**
182
+ * Complete auto-assignment configuration
183
+ */
184
+ export interface AutoAssignConfig {
185
+ /** Whether auto-assignment is enabled */
186
+ enabled: boolean;
187
+ /** Assignment strategy */
188
+ strategy: AssignmentStrategy;
189
+ /** Notification settings */
190
+ notifications: NotificationConfig;
191
+ /** Rate limits */
192
+ limits: AssignmentLimits;
193
+ }
194
+ /**
195
+ * Parameters for finding the next task
196
+ */
197
+ export interface FindNextTaskParams {
198
+ /** Session name of the agent */
199
+ sessionName: string;
200
+ /** Agent's role */
201
+ role: string;
202
+ /** Project path */
203
+ projectPath: string;
204
+ /** Preferred task types (optional) */
205
+ preferredTaskTypes?: string[];
206
+ }
207
+ /**
208
+ * Result of finding the next task
209
+ */
210
+ export interface FindNextTaskResult {
211
+ /** Whether a task was found */
212
+ found: boolean;
213
+ /** The task (if found) */
214
+ task?: QueuedTask;
215
+ /** Reason if no task found */
216
+ reason?: 'no_tasks' | 'all_blocked' | 'role_mismatch' | 'at_limit' | 'cooldown';
217
+ }
218
+ /**
219
+ * Auto-assignment related constants
220
+ */
221
+ export declare const AUTO_ASSIGN_CONSTANTS: {
222
+ /** Default configuration values */
223
+ readonly DEFAULTS: {
224
+ readonly MAX_CONCURRENT_TASKS: 1;
225
+ readonly MAX_ASSIGNMENTS_PER_DAY: 50;
226
+ readonly COOLDOWN_BETWEEN_TASKS: 60;
227
+ readonly IDLE_THRESHOLD_MINUTES: 5;
228
+ };
229
+ /** Task type categories */
230
+ readonly TASK_TYPES: {
231
+ readonly DEVELOPMENT: readonly ["feature", "fix", "refactor", "implement"];
232
+ readonly TESTING: readonly ["test", "verify", "qa"];
233
+ readonly FRONTEND: readonly ["ui", "component", "style", "frontend"];
234
+ readonly BACKEND: readonly ["api", "service", "database", "backend"];
235
+ readonly MANAGEMENT: readonly ["planning", "review", "coordination", "documentation"];
236
+ };
237
+ /** Priority levels */
238
+ readonly PRIORITY: {
239
+ readonly CRITICAL: 1;
240
+ readonly HIGH: 2;
241
+ readonly MEDIUM: 5;
242
+ readonly LOW: 10;
243
+ readonly BACKLOG: 20;
244
+ };
245
+ /** Configuration file paths */
246
+ readonly PATHS: {
247
+ readonly CONFIG_FILE: "auto-assign.yaml";
248
+ readonly CONFIG_DIR: ".crewly/config";
249
+ };
250
+ };
251
+ /**
252
+ * Default role matching rules
253
+ */
254
+ export declare const DEFAULT_ROLE_MATCHING: RoleMatchRule[];
255
+ /**
256
+ * Default assignment strategy
257
+ */
258
+ export declare const DEFAULT_ASSIGNMENT_STRATEGY: AssignmentStrategy;
259
+ /**
260
+ * Default notification configuration
261
+ */
262
+ export declare const DEFAULT_NOTIFICATION_CONFIG: NotificationConfig;
263
+ /**
264
+ * Default assignment limits
265
+ */
266
+ export declare const DEFAULT_ASSIGNMENT_LIMITS: AssignmentLimits;
267
+ /**
268
+ * Default complete auto-assignment configuration
269
+ */
270
+ export declare const DEFAULT_AUTO_ASSIGN_CONFIG: AutoAssignConfig;
271
+ //# sourceMappingURL=auto-assign.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-assign.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/auto-assign.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,eAAe,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,cAAc,EAAE,sBAAsB,CAAC;IACvC,0BAA0B;IAC1B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,8BAA8B;IAC9B,aAAa,EAAE,mBAAmB,CAAC;IACnC,mCAAmC;IACnC,YAAY,EAAE,gBAAgB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,gBAAgB,CAAC;IACzB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,yBAAyB;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,wCAAwC;IACxC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,UAAU,GACV,oBAAoB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,oDAAoD;IACpD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qCAAqC;IACrC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mDAAmD;IACnD,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,4BAA4B;IAC5B,aAAa,EAAE,kBAAkB,CAAC;IAClC,kBAAkB;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,CAAC;CACjF;AAMD;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,mCAAmC;;;;;;;IAQnC,2BAA2B;;;;;;;;IAS3B,sBAAsB;;;;;;;;IAStB,+BAA+B;;;;;CAKvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAgDhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAYzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAIzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAGvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Auto-Assignment Type Definitions
3
+ *
4
+ * Types for the automatic task assignment system.
5
+ *
6
+ * @module types/auto-assign.types
7
+ */
8
+ // ======================
9
+ // Constants
10
+ // ======================
11
+ /**
12
+ * Auto-assignment related constants
13
+ */
14
+ export const AUTO_ASSIGN_CONSTANTS = {
15
+ /** Default configuration values */
16
+ DEFAULTS: {
17
+ MAX_CONCURRENT_TASKS: 1,
18
+ MAX_ASSIGNMENTS_PER_DAY: 50,
19
+ COOLDOWN_BETWEEN_TASKS: 60, // seconds
20
+ IDLE_THRESHOLD_MINUTES: 5,
21
+ },
22
+ /** Task type categories */
23
+ TASK_TYPES: {
24
+ DEVELOPMENT: ['feature', 'fix', 'refactor', 'implement'],
25
+ TESTING: ['test', 'verify', 'qa'],
26
+ FRONTEND: ['ui', 'component', 'style', 'frontend'],
27
+ BACKEND: ['api', 'service', 'database', 'backend'],
28
+ MANAGEMENT: ['planning', 'review', 'coordination', 'documentation'],
29
+ },
30
+ /** Priority levels */
31
+ PRIORITY: {
32
+ CRITICAL: 1,
33
+ HIGH: 2,
34
+ MEDIUM: 5,
35
+ LOW: 10,
36
+ BACKLOG: 20,
37
+ },
38
+ /** Configuration file paths */
39
+ PATHS: {
40
+ CONFIG_FILE: 'auto-assign.yaml',
41
+ CONFIG_DIR: '.crewly/config',
42
+ },
43
+ };
44
+ /**
45
+ * Default role matching rules
46
+ */
47
+ export const DEFAULT_ROLE_MATCHING = [
48
+ {
49
+ role: 'developer',
50
+ taskTypes: ['feature', 'fix', 'refactor', 'test', 'implement'],
51
+ priority: 1,
52
+ },
53
+ {
54
+ role: 'frontend-developer',
55
+ taskTypes: ['feature', 'fix', 'ui', 'component', 'style', 'frontend'],
56
+ priority: 1,
57
+ },
58
+ {
59
+ role: 'backend-developer',
60
+ taskTypes: ['feature', 'fix', 'api', 'service', 'database', 'backend'],
61
+ priority: 1,
62
+ },
63
+ {
64
+ role: 'qa',
65
+ taskTypes: ['test', 'review', 'verify', 'qa'],
66
+ priority: 1,
67
+ exclusive: true,
68
+ },
69
+ {
70
+ role: 'tester',
71
+ taskTypes: ['test', 'review', 'verify'],
72
+ priority: 2,
73
+ },
74
+ {
75
+ role: 'pm',
76
+ taskTypes: ['planning', 'review', 'coordination', 'documentation'],
77
+ priority: 1,
78
+ },
79
+ {
80
+ role: 'tpm',
81
+ taskTypes: ['planning', 'coordination', 'tracking'],
82
+ priority: 1,
83
+ },
84
+ {
85
+ role: 'pgm',
86
+ taskTypes: ['planning', 'management', 'coordination'],
87
+ priority: 1,
88
+ },
89
+ {
90
+ role: 'designer',
91
+ taskTypes: ['design', 'ui', 'ux', 'mockup'],
92
+ priority: 1,
93
+ exclusive: true,
94
+ },
95
+ ];
96
+ /**
97
+ * Default assignment strategy
98
+ */
99
+ export const DEFAULT_ASSIGNMENT_STRATEGY = {
100
+ prioritization: 'priority',
101
+ roleMatching: DEFAULT_ROLE_MATCHING,
102
+ loadBalancing: {
103
+ enabled: true,
104
+ maxConcurrentTasks: AUTO_ASSIGN_CONSTANTS.DEFAULTS.MAX_CONCURRENT_TASKS,
105
+ preferIdleAgents: true,
106
+ },
107
+ dependencies: {
108
+ respectBlocking: true,
109
+ waitForDependencies: true,
110
+ },
111
+ };
112
+ /**
113
+ * Default notification configuration
114
+ */
115
+ export const DEFAULT_NOTIFICATION_CONFIG = {
116
+ notifyOnIdle: true,
117
+ idleThresholdMinutes: AUTO_ASSIGN_CONSTANTS.DEFAULTS.IDLE_THRESHOLD_MINUTES,
118
+ notifyOnNoTasks: true,
119
+ };
120
+ /**
121
+ * Default assignment limits
122
+ */
123
+ export const DEFAULT_ASSIGNMENT_LIMITS = {
124
+ maxAssignmentsPerDay: AUTO_ASSIGN_CONSTANTS.DEFAULTS.MAX_ASSIGNMENTS_PER_DAY,
125
+ cooldownBetweenTasks: AUTO_ASSIGN_CONSTANTS.DEFAULTS.COOLDOWN_BETWEEN_TASKS,
126
+ };
127
+ /**
128
+ * Default complete auto-assignment configuration
129
+ */
130
+ export const DEFAULT_AUTO_ASSIGN_CONFIG = {
131
+ enabled: true,
132
+ strategy: DEFAULT_ASSIGNMENT_STRATEGY,
133
+ notifications: DEFAULT_NOTIFICATION_CONFIG,
134
+ limits: DEFAULT_ASSIGNMENT_LIMITS,
135
+ };
136
+ //# sourceMappingURL=auto-assign.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-assign.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/auto-assign.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Budget Service Type Definitions
3
+ *
4
+ * Types for API usage tracking and budget management.
5
+ *
6
+ * @module types/budget.types
7
+ */
8
+ /**
9
+ * Record of API usage for a single operation
10
+ */
11
+ export interface UsageRecord {
12
+ /** Unique identifier for the agent */
13
+ agentId: string;
14
+ /** Session name of the agent */
15
+ sessionName: string;
16
+ /** Project path */
17
+ projectPath: string;
18
+ /** Timestamp of the usage */
19
+ timestamp: string;
20
+ /** Number of input tokens used */
21
+ inputTokens: number;
22
+ /** Number of output tokens generated */
23
+ outputTokens: number;
24
+ /** Model used for the operation */
25
+ model: string;
26
+ /** Type of operation (task, continuation, memory, etc.) */
27
+ operation: BudgetOperationType;
28
+ /** Associated task ID, if applicable */
29
+ taskId?: string;
30
+ /** Estimated cost in USD (calculated after recording) */
31
+ estimatedCost?: number;
32
+ }
33
+ /**
34
+ * Types of budget operations
35
+ */
36
+ export type BudgetOperationType = 'task' | 'continuation' | 'memory' | 'sop' | 'quality_gate' | 'prompt_building' | 'other';
37
+ /**
38
+ * Summary of usage over a period
39
+ */
40
+ export interface UsageSummary {
41
+ /** Total input tokens used */
42
+ totalInputTokens: number;
43
+ /** Total output tokens generated */
44
+ totalOutputTokens: number;
45
+ /** Total tokens (input + output) */
46
+ totalTokens: number;
47
+ /** Estimated cost in USD */
48
+ estimatedCost: number;
49
+ /** Breakdown by operation type */
50
+ operationBreakdown: Record<string, number>;
51
+ /** Breakdown by model */
52
+ modelBreakdown: Record<string, number>;
53
+ }
54
+ /**
55
+ * Scope of budget configuration
56
+ */
57
+ export type BudgetScope = 'global' | 'project' | 'agent';
58
+ /**
59
+ * Budget configuration
60
+ */
61
+ export interface BudgetConfig {
62
+ /** Scope of the budget (global, project, or agent) */
63
+ scope: BudgetScope;
64
+ /** Identifier for the scope (project path or agent ID) */
65
+ scopeId: string;
66
+ /** Daily spending limit in USD */
67
+ dailyLimit?: number;
68
+ /** Weekly spending limit in USD */
69
+ weeklyLimit?: number;
70
+ /** Monthly spending limit in USD */
71
+ monthlyLimit?: number;
72
+ /** Maximum tokens per task */
73
+ maxTokensPerTask?: number;
74
+ /** Percentage (0-1) at which to trigger warning */
75
+ warningThreshold: number;
76
+ }
77
+ /**
78
+ * Current budget status
79
+ */
80
+ export interface BudgetStatus {
81
+ /** Whether usage is within budget */
82
+ withinBudget: boolean;
83
+ /** Amount used today in USD */
84
+ dailyUsed: number;
85
+ /** Daily limit in USD */
86
+ dailyLimit: number;
87
+ /** Percentage of budget used (0-1) */
88
+ percentUsed: number;
89
+ /** Estimated remaining runway description */
90
+ estimatedRunway: string;
91
+ }
92
+ /**
93
+ * Budget alert types
94
+ */
95
+ export type BudgetAlertType = 'warning' | 'exceeded';
96
+ /**
97
+ * Budget alert event
98
+ */
99
+ export interface BudgetAlert {
100
+ /** Type of alert */
101
+ type: BudgetAlertType;
102
+ /** Scope of the budget */
103
+ scope: BudgetScope;
104
+ /** Scope identifier */
105
+ scopeId: string;
106
+ /** Current usage in USD */
107
+ currentUsage: number;
108
+ /** Budget limit in USD */
109
+ limit: number;
110
+ /** Timestamp of the alert */
111
+ timestamp: string;
112
+ }
113
+ /**
114
+ * Time period for reports
115
+ */
116
+ export type BudgetPeriod = 'day' | 'week' | 'month';
117
+ /**
118
+ * Parameters for generating a budget report
119
+ */
120
+ export interface ReportParams {
121
+ /** Time period to report on */
122
+ period: BudgetPeriod;
123
+ /** Optional project path to filter by */
124
+ projectPath?: string;
125
+ /** Optional agent ID to filter by */
126
+ agentId?: string;
127
+ }
128
+ /**
129
+ * Agent usage summary for reports
130
+ */
131
+ export interface AgentUsageSummary extends UsageSummary {
132
+ /** Agent identifier */
133
+ agentId: string;
134
+ }
135
+ /**
136
+ * Complete budget report
137
+ */
138
+ export interface BudgetReport {
139
+ /** Time period covered */
140
+ period: BudgetPeriod;
141
+ /** When the report was generated */
142
+ generatedAt: string;
143
+ /** Total cost in USD */
144
+ totalCost: number;
145
+ /** Total tokens used */
146
+ totalTokens: number;
147
+ /** Breakdown by agent */
148
+ agentBreakdown: AgentUsageSummary[];
149
+ }
150
+ /**
151
+ * Stored budget configuration file format
152
+ */
153
+ export interface BudgetConfigFile {
154
+ /** Global budget settings */
155
+ global?: Omit<BudgetConfig, 'scope' | 'scopeId'>;
156
+ /** Project-specific budgets */
157
+ projects?: Record<string, Omit<BudgetConfig, 'scope' | 'scopeId'>>;
158
+ /** Agent-specific budgets */
159
+ agents?: Record<string, Omit<BudgetConfig, 'scope' | 'scopeId'>>;
160
+ }
161
+ /**
162
+ * Token cost rates per model
163
+ */
164
+ export interface TokenCostRates {
165
+ /** Cost per input token in USD */
166
+ input: number;
167
+ /** Cost per output token in USD */
168
+ output: number;
169
+ }
170
+ /**
171
+ * Budget-related constants
172
+ */
173
+ export declare const BUDGET_CONSTANTS: {
174
+ /** Default configuration values */
175
+ readonly DEFAULTS: {
176
+ readonly DAILY_LIMIT: 50;
177
+ readonly WEEKLY_LIMIT: 200;
178
+ readonly MONTHLY_LIMIT: 500;
179
+ readonly WARNING_THRESHOLD: 0.8;
180
+ readonly MAX_TOKENS_PER_TASK: 100000;
181
+ };
182
+ /** Token cost rates by model (USD per token) */
183
+ readonly TOKEN_COSTS: Record<string, TokenCostRates>;
184
+ /** File paths */
185
+ readonly PATHS: {
186
+ readonly USAGE_DIR: "usage";
187
+ readonly BUDGETS_FILE: "budgets.json";
188
+ readonly BUDGETS_YAML_FILE: "budgets.yaml";
189
+ };
190
+ /** Operation types */
191
+ readonly OPERATIONS: {
192
+ readonly TASK: BudgetOperationType;
193
+ readonly CONTINUATION: BudgetOperationType;
194
+ readonly MEMORY: BudgetOperationType;
195
+ readonly SOP: BudgetOperationType;
196
+ readonly QUALITY_GATE: BudgetOperationType;
197
+ readonly PROMPT_BUILDING: BudgetOperationType;
198
+ readonly OTHER: BudgetOperationType;
199
+ };
200
+ };
201
+ /**
202
+ * Default global budget configuration
203
+ */
204
+ export declare const DEFAULT_BUDGET_CONFIG: BudgetConfig;
205
+ /**
206
+ * All budget operation types
207
+ */
208
+ export declare const ALL_BUDGET_OPERATIONS: BudgetOperationType[];
209
+ /**
210
+ * All budget scopes
211
+ */
212
+ export declare const ALL_BUDGET_SCOPES: BudgetScope[];
213
+ /**
214
+ * All budget periods
215
+ */
216
+ export declare const ALL_BUDGET_PERIODS: BudgetPeriod[];
217
+ //# sourceMappingURL=budget.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/budget.types.ts"],"names":[],"mappings":"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"}