crewly 1.5.18 → 1.5.20

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 (1158) hide show
  1. package/config/constants.ts +50 -0
  2. package/config/domain-sops/content-production-pipeline.sop.md +76 -0
  3. package/config/domain-sops/content-publishing-policy.sop.md +59 -0
  4. package/config/domain-sops/customer-onboarding.sop.md +74 -0
  5. package/config/domain-sops/expert-distillation.sop.md +70 -0
  6. package/config/domain-sops/innovation-strategy.sop.md +26 -0
  7. package/config/experts/EXAMPLE.json +11 -0
  8. package/config/experts/EXAMPLE.md +41 -0
  9. package/config/experts/empathetic-resolver/expert.json +11 -0
  10. package/config/experts/empathetic-resolver.md +32 -0
  11. package/config/experts/pragmatic-architect/expert.json +11 -0
  12. package/config/experts/pragmatic-architect.md +32 -0
  13. package/config/experts/viral-alchemist/expert.json +11 -0
  14. package/config/experts/viral-alchemist.md +32 -0
  15. package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +2 -2
  16. package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +57 -1
  17. package/config/risk-policies/no-local-browser.policy.md +43 -0
  18. package/config/roles/developer/prompt.md +43 -0
  19. package/config/roles/orchestrator/fragments/role-boundary.md +31 -0
  20. package/config/roles/orchestrator/prompt.md +104 -0
  21. package/config/skills/agent/computer-use/SKILL.md +144 -93
  22. package/config/skills/agent/computer-use/execute.sh +847 -211
  23. package/config/skills/agent/core/break-down-request/SKILL.md +128 -0
  24. package/config/skills/agent/core/break-down-request/execute.sh +200 -0
  25. package/config/skills/agent/core/claim-heartbeat/execute.sh +57 -0
  26. package/config/skills/agent/core/claim-heartbeat/execute.test.sh +130 -0
  27. package/config/skills/agent/core/create-intent-tasks/execute.sh +93 -0
  28. package/config/skills/agent/core/create-mission/SKILL.md +78 -0
  29. package/config/skills/agent/core/create-mission/execute.sh +141 -0
  30. package/config/skills/agent/core/create-request/SKILL.md +132 -0
  31. package/config/skills/agent/core/create-request/execute.sh +176 -0
  32. package/config/skills/agent/core/create-task/SKILL.md +76 -0
  33. package/config/skills/agent/core/create-task/execute.sh +134 -0
  34. package/config/skills/agent/core/decompose-intent/execute.sh +106 -0
  35. package/config/skills/agent/core/extend-lease/execute.sh +63 -0
  36. package/config/skills/agent/core/extend-lease/execute.test.sh +46 -0
  37. package/config/skills/agent/core/get-my-context/execute.sh +85 -8
  38. package/config/skills/agent/core/get-my-tasks/SKILL.md +58 -0
  39. package/config/skills/agent/core/get-my-tasks/execute.sh +77 -6
  40. package/config/skills/agent/core/handoff-task/execute.sh +139 -95
  41. package/config/skills/agent/core/handoff-task/execute.test.sh +348 -0
  42. package/config/skills/agent/core/poll-tasks/execute.sh +182 -0
  43. package/config/skills/agent/core/poll-tasks/execute.test.sh +215 -0
  44. package/config/skills/agent/core/register-self/execute.sh +102 -14
  45. package/config/skills/agent/core/release-claim/execute.sh +53 -0
  46. package/config/skills/agent/core/release-claim/execute.test.sh +46 -0
  47. package/config/skills/agent/core/report-status/execute.sh +44 -0
  48. package/config/skills/agent/core/update-intent-task/execute.sh +93 -0
  49. package/config/skills/agent/core/work-loop/execute.sh +130 -0
  50. package/config/skills/agent/core/work-loop/execute.test.sh +52 -0
  51. package/config/skills/agent/core/workspace/execute.sh +270 -0
  52. package/config/skills/agent/core/workspace/execute.test.sh +185 -0
  53. package/config/skills/agent/remote-browser/SOP-google-flow-video.md +202 -0
  54. package/config/skills/agent/remote-browser/execute.sh +287 -0
  55. package/config/skills/agent/v3/plan-request/SKILL.md +72 -0
  56. package/config/skills/agent/v3/plan-request/execute.sh +116 -0
  57. package/config/skills/orchestrator/decompose-mission/SKILL.md +78 -0
  58. package/config/skills/orchestrator/decompose-mission/execute.sh +138 -0
  59. package/config/skills/orchestrator/delegate-task/SKILL.md +4 -3
  60. package/config/skills/orchestrator/delegate-task/execute.sh +43 -97
  61. package/config/skills/orchestrator/design-team/SKILL.md +51 -0
  62. package/config/skills/orchestrator/design-team/execute.sh +145 -0
  63. package/config/skills/orchestrator/measure-kr/SKILL.md +47 -0
  64. package/config/skills/orchestrator/measure-kr/execute.sh +87 -0
  65. package/config/skills/orchestrator/review-mission/SKILL.md +61 -0
  66. package/config/skills/orchestrator/review-mission/execute.sh +127 -0
  67. package/config/skills/team-leader/aggregate-results/execute.sh +25 -74
  68. package/config/skills/team-leader/delegate-task/SKILL.md +10 -0
  69. package/config/skills/team-leader/delegate-task/execute.sh +42 -3
  70. package/config/skills/team-leader/design-checklist/SKILL.md +122 -0
  71. package/config/skills/team-leader/design-checklist/execute.sh +157 -0
  72. package/config/skills/team-leader/verify-output/execute.sh +42 -0
  73. package/config/sops/xhs-requirement-log.v1.md +238 -0
  74. package/config/templates/agent-gemini-md.md +3 -1
  75. package/config/templates/ai-video-social-team.json +22 -0
  76. package/config/templates/broker-squad-v1.json +22 -0
  77. package/config/templates/customer-loyalty-team.json +44 -0
  78. package/config/templates/customer-ops-team.json +22 -0
  79. package/config/templates/dtc-viral-content-team.json +58 -0
  80. package/config/templates/expert-innovation-team.json +60 -0
  81. package/config/templates/growth-marketing-team.json +22 -0
  82. package/config/templates/pragmatic-mvp-dev-team.json +58 -0
  83. package/config/templates/pro-sops/norms/content-production-pipeline.md +39 -0
  84. package/config/templates/pro-sops/norms/customer-onboarding-sop.md +40 -0
  85. package/config/templates/prop-manager-v1.json +22 -0
  86. package/dist/backend/backend/src/constants.d.ts +5 -0
  87. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  88. package/dist/backend/backend/src/constants.js +5 -0
  89. package/dist/backend/backend/src/constants.js.map +1 -1
  90. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +12 -2
  91. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  92. package/dist/backend/backend/src/controllers/browser/browser.controller.js +34 -20
  93. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  94. package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
  95. package/dist/backend/backend/src/controllers/browser/browser.routes.js +4 -2
  96. package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
  97. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  98. package/dist/backend/backend/src/controllers/chat/chat.controller.js +28 -0
  99. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  100. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  101. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +5 -2
  102. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  103. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts +72 -0
  104. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts.map +1 -0
  105. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js +202 -0
  106. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js.map +1 -0
  107. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts +16 -0
  108. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts.map +1 -0
  109. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js +32 -0
  110. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js.map +1 -0
  111. package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +63 -0
  112. package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +1 -0
  113. package/dist/backend/backend/src/controllers/eval/eval.controller.js +228 -0
  114. package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +1 -0
  115. package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +23 -0
  116. package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +1 -0
  117. package/dist/backend/backend/src/controllers/eval/eval.routes.js +37 -0
  118. package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +1 -0
  119. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +29 -0
  120. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -0
  121. package/dist/backend/backend/src/controllers/expert/expert.controller.js +79 -0
  122. package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -0
  123. package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts +15 -0
  124. package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts.map +1 -0
  125. package/dist/backend/backend/src/controllers/expert/expert.routes.js +21 -0
  126. package/dist/backend/backend/src/controllers/expert/expert.routes.js.map +1 -0
  127. package/dist/backend/backend/src/controllers/expert/index.d.ts +9 -0
  128. package/dist/backend/backend/src/controllers/expert/index.d.ts.map +1 -0
  129. package/dist/backend/backend/src/controllers/expert/index.js +9 -0
  130. package/dist/backend/backend/src/controllers/expert/index.js.map +1 -0
  131. package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts +80 -0
  132. package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts.map +1 -0
  133. package/dist/backend/backend/src/controllers/fission/fission.controller.js +264 -0
  134. package/dist/backend/backend/src/controllers/fission/fission.controller.js.map +1 -0
  135. package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts +15 -0
  136. package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts.map +1 -0
  137. package/dist/backend/backend/src/controllers/fission/fission.routes.js +29 -0
  138. package/dist/backend/backend/src/controllers/fission/fission.routes.js.map +1 -0
  139. package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts +29 -0
  140. package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts.map +1 -0
  141. package/dist/backend/backend/src/controllers/growth/growth.controller.js +74 -0
  142. package/dist/backend/backend/src/controllers/growth/growth.controller.js.map +1 -0
  143. package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts +20 -0
  144. package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts.map +1 -0
  145. package/dist/backend/backend/src/controllers/growth/growth.routes.js +26 -0
  146. package/dist/backend/backend/src/controllers/growth/growth.routes.js.map +1 -0
  147. package/dist/backend/backend/src/controllers/index.d.ts +5 -1
  148. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  149. package/dist/backend/backend/src/controllers/index.js +9 -1
  150. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  151. package/dist/backend/backend/src/controllers/intent-task/index.d.ts +9 -0
  152. package/dist/backend/backend/src/controllers/intent-task/index.d.ts.map +1 -0
  153. package/dist/backend/backend/src/controllers/intent-task/index.js +9 -0
  154. package/dist/backend/backend/src/controllers/intent-task/index.js.map +1 -0
  155. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts +85 -0
  156. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts.map +1 -0
  157. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js +356 -0
  158. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js.map +1 -0
  159. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts +19 -0
  160. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts.map +1 -0
  161. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js +43 -0
  162. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js.map +1 -0
  163. package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +8 -0
  164. package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +1 -0
  165. package/dist/backend/backend/src/controllers/knowledge-v3/index.js +8 -0
  166. package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +1 -0
  167. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +63 -0
  168. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +1 -0
  169. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +179 -0
  170. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +1 -0
  171. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +22 -0
  172. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +1 -0
  173. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +34 -0
  174. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +1 -0
  175. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  176. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +38 -1
  177. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  178. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  179. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +11 -0
  180. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  181. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +40 -0
  182. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -0
  183. package/dist/backend/backend/src/controllers/mission/kr.controller.js +131 -0
  184. package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -0
  185. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts +71 -0
  186. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts.map +1 -0
  187. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js +270 -0
  188. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js.map +1 -0
  189. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts +16 -0
  190. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -0
  191. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +327 -0
  192. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -0
  193. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -1
  194. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +5 -1
  195. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -1
  196. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts +19 -0
  197. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts.map +1 -1
  198. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js +36 -0
  199. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js.map +1 -1
  200. package/dist/backend/backend/src/controllers/onboarding/index.d.ts +7 -0
  201. package/dist/backend/backend/src/controllers/onboarding/index.d.ts.map +1 -0
  202. package/dist/backend/backend/src/controllers/onboarding/index.js +7 -0
  203. package/dist/backend/backend/src/controllers/onboarding/index.js.map +1 -0
  204. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +24 -0
  205. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -0
  206. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +340 -0
  207. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -0
  208. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts +21 -0
  209. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts.map +1 -0
  210. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js +181 -0
  211. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js.map +1 -0
  212. package/dist/backend/backend/src/controllers/payment/payment.controller.js +1 -1
  213. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
  214. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +1 -1
  215. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
  216. package/dist/backend/backend/src/controllers/payment/payment.types.js +1 -1
  217. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
  218. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  219. package/dist/backend/backend/src/controllers/project/project.controller.js +0 -2
  220. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  221. package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
  222. package/dist/backend/backend/src/controllers/project/project.routes.js +9 -5
  223. package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
  224. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts +84 -0
  225. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts.map +1 -0
  226. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js +189 -0
  227. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js.map +1 -0
  228. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts +16 -0
  229. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts.map +1 -0
  230. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js +29 -0
  231. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js.map +1 -0
  232. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts +51 -0
  233. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts.map +1 -0
  234. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js +106 -0
  235. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js.map +1 -0
  236. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts +15 -0
  237. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts.map +1 -0
  238. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js +25 -0
  239. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js.map +1 -0
  240. package/dist/backend/backend/src/controllers/request/request.controller.d.ts +55 -0
  241. package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -0
  242. package/dist/backend/backend/src/controllers/request/request.controller.js +168 -0
  243. package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -0
  244. package/dist/backend/backend/src/controllers/request/request.routes.d.ts +23 -0
  245. package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -0
  246. package/dist/backend/backend/src/controllers/request/request.routes.js +37 -0
  247. package/dist/backend/backend/src/controllers/request/request.routes.js.map +1 -0
  248. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  249. package/dist/backend/backend/src/controllers/slack/slack.controller.js +18 -1
  250. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  251. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +20 -57
  252. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  253. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +283 -385
  254. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  255. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +180 -0
  256. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -0
  257. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +737 -0
  258. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -0
  259. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts +15 -0
  260. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -0
  261. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +45 -0
  262. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -0
  263. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts +75 -0
  264. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts.map +1 -0
  265. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js +170 -0
  266. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js.map +1 -0
  267. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts +10 -0
  268. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts.map +1 -0
  269. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js +29 -0
  270. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js.map +1 -0
  271. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  272. package/dist/backend/backend/src/controllers/team/team.routes.js +16 -12
  273. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  274. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +4 -4
  275. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
  276. package/dist/backend/backend/src/controllers/template/template.controller.js +73 -31
  277. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
  278. package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts +50 -0
  279. package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts.map +1 -0
  280. package/dist/backend/backend/src/controllers/trigger/trigger.controller.js +125 -0
  281. package/dist/backend/backend/src/controllers/trigger/trigger.controller.js.map +1 -0
  282. package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts +26 -0
  283. package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts.map +1 -0
  284. package/dist/backend/backend/src/controllers/trigger/trigger.routes.js +38 -0
  285. package/dist/backend/backend/src/controllers/trigger/trigger.routes.js.map +1 -0
  286. package/dist/backend/backend/src/controllers/user/user-validation.d.ts +86 -0
  287. package/dist/backend/backend/src/controllers/user/user-validation.d.ts.map +1 -0
  288. package/dist/backend/backend/src/controllers/user/user-validation.js +165 -0
  289. package/dist/backend/backend/src/controllers/user/user-validation.js.map +1 -0
  290. package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -1
  291. package/dist/backend/backend/src/controllers/user/user.routes.js +7 -4
  292. package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -1
  293. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts +72 -0
  294. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts.map +1 -0
  295. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js +236 -0
  296. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js.map +1 -0
  297. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts +15 -0
  298. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts.map +1 -0
  299. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js +31 -0
  300. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js.map +1 -0
  301. package/dist/backend/backend/src/index.d.ts +18 -0
  302. package/dist/backend/backend/src/index.d.ts.map +1 -1
  303. package/dist/backend/backend/src/index.js +643 -11
  304. package/dist/backend/backend/src/index.js.map +1 -1
  305. package/dist/backend/backend/src/middleware/cache.middleware.d.ts +43 -0
  306. package/dist/backend/backend/src/middleware/cache.middleware.d.ts.map +1 -0
  307. package/dist/backend/backend/src/middleware/cache.middleware.js +103 -0
  308. package/dist/backend/backend/src/middleware/cache.middleware.js.map +1 -0
  309. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +49 -9
  310. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -1
  311. package/dist/backend/backend/src/middleware/require-auth.middleware.js +115 -9
  312. package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -1
  313. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  314. package/dist/backend/backend/src/routes/api.routes.js +77 -0
  315. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  316. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  317. package/dist/backend/backend/src/routes/modules/task-management.routes.js +4 -0
  318. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  319. package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts +43 -0
  320. package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts.map +1 -0
  321. package/dist/backend/backend/src/scripts/backfill-mission-priority.js +90 -0
  322. package/dist/backend/backend/src/scripts/backfill-mission-priority.js.map +1 -0
  323. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +6 -9
  324. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  325. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +43 -30
  326. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  327. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  328. package/dist/backend/backend/src/services/agent/agent-registration.service.js +14 -0
  329. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  330. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +66 -1
  331. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  332. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +282 -4
  333. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  334. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +60 -0
  335. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
  336. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +407 -0
  337. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
  338. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +130 -0
  339. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +1 -0
  340. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +406 -0
  341. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +1 -0
  342. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +68 -0
  343. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +1 -0
  344. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +206 -0
  345. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +1 -0
  346. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +32 -0
  347. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +1 -0
  348. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +46 -0
  349. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +1 -0
  350. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +87 -0
  351. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +1 -0
  352. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +299 -0
  353. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +1 -0
  354. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +59 -0
  355. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +1 -0
  356. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +218 -0
  357. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +1 -0
  358. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +203 -0
  359. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +1 -0
  360. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +467 -0
  361. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +1 -0
  362. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +313 -0
  363. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +1 -0
  364. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +45 -0
  365. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +1 -0
  366. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +21 -0
  367. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +1 -0
  368. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +21 -0
  369. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +1 -0
  370. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +15 -0
  371. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +1 -0
  372. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +349 -0
  373. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +1 -0
  374. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +97 -0
  375. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +1 -0
  376. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +414 -0
  377. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +1 -0
  378. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +42 -0
  379. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +1 -0
  380. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +403 -0
  381. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +1 -0
  382. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +41 -0
  383. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +1 -0
  384. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +58 -0
  385. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +1 -0
  386. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +15 -0
  387. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +1 -0
  388. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +396 -0
  389. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +1 -0
  390. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +14 -0
  391. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +1 -0
  392. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +564 -0
  393. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +1 -0
  394. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +13 -0
  395. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +1 -0
  396. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +634 -0
  397. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +1 -0
  398. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +21 -0
  399. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +1 -0
  400. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +1036 -0
  401. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +1 -0
  402. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +100 -0
  403. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +1 -0
  404. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +187 -0
  405. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +1 -0
  406. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  407. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +43 -6
  408. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  409. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +7 -0
  410. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  411. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  412. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +10 -0
  413. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  414. package/dist/backend/backend/src/services/agent/idle-detection.service.js +63 -0
  415. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  416. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
  417. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
  418. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
  419. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
  420. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  421. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +21 -0
  422. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  423. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
  424. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  425. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  426. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +26 -2
  427. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
  428. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +191 -8
  429. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
  430. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  431. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +4 -0
  432. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  433. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
  434. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
  435. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
  436. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
  437. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  438. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +3 -1
  439. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  440. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +11 -2
  441. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  442. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +59 -10
  443. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  444. package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts +115 -0
  445. package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts.map +1 -0
  446. package/dist/backend/backend/src/services/cache/redis-cache.service.js +316 -0
  447. package/dist/backend/backend/src/services/cache/redis-cache.service.js.map +1 -0
  448. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +8 -0
  449. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  450. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +55 -4
  451. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  452. package/dist/backend/backend/src/services/core/logger.service.js +1 -1
  453. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
  454. package/dist/backend/backend/src/services/core/storage.service.d.ts +33 -0
  455. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  456. package/dist/backend/backend/src/services/core/storage.service.js +54 -0
  457. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  458. package/dist/backend/backend/src/services/core/system-health.util.d.ts +23 -0
  459. package/dist/backend/backend/src/services/core/system-health.util.d.ts.map +1 -0
  460. package/dist/backend/backend/src/services/core/system-health.util.js +44 -0
  461. package/dist/backend/backend/src/services/core/system-health.util.js.map +1 -0
  462. package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts +188 -0
  463. package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts.map +1 -0
  464. package/dist/backend/backend/src/services/fission/fission-guard.service.js +372 -0
  465. package/dist/backend/backend/src/services/fission/fission-guard.service.js.map +1 -0
  466. package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts +137 -0
  467. package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts.map +1 -0
  468. package/dist/backend/backend/src/services/fission/fission-guard.types.js +133 -0
  469. package/dist/backend/backend/src/services/fission/fission-guard.types.js.map +1 -0
  470. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts +91 -0
  471. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts.map +1 -0
  472. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js +179 -0
  473. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js.map +1 -0
  474. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts +138 -0
  475. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts.map +1 -0
  476. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js +244 -0
  477. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js.map +1 -0
  478. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +333 -0
  479. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -0
  480. package/dist/backend/backend/src/services/intent-task/intent-task.service.js +843 -0
  481. package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -0
  482. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
  483. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
  484. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +220 -0
  485. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
  486. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
  487. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
  488. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
  489. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
  490. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
  491. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
  492. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
  493. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
  494. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts +34 -0
  495. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts.map +1 -0
  496. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js +128 -0
  497. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js.map +1 -0
  498. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +11 -0
  499. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  500. package/dist/backend/backend/src/services/memory/agent-memory.service.js +76 -11
  501. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
  502. package/dist/backend/backend/src/services/memory/embedding-provider.d.ts +78 -0
  503. package/dist/backend/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
  504. package/dist/backend/backend/src/services/memory/embedding-provider.js +185 -0
  505. package/dist/backend/backend/src/services/memory/embedding-provider.js.map +1 -0
  506. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts +331 -0
  507. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
  508. package/dist/backend/backend/src/services/memory/vector-store.service.js +814 -0
  509. package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -0
  510. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +15 -0
  511. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  512. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +42 -0
  513. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  514. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +8 -0
  515. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  516. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +20 -0
  517. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  518. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +17 -0
  519. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  520. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +62 -0
  521. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  522. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +81 -0
  523. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -0
  524. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +287 -0
  525. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -0
  526. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts +73 -0
  527. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts.map +1 -0
  528. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js +199 -0
  529. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js.map +1 -0
  530. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +7 -0
  531. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
  532. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +37 -6
  533. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
  534. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +56 -4
  535. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  536. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +102 -7
  537. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  538. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts +5 -1
  539. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts.map +1 -1
  540. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js +41 -0
  541. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js.map +1 -1
  542. package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts +36 -0
  543. package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts.map +1 -1
  544. package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.js.map +1 -1
  545. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +51 -0
  546. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -0
  547. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +136 -0
  548. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -0
  549. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts +178 -0
  550. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts.map +1 -0
  551. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js +163 -0
  552. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js.map +1 -0
  553. package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts +141 -0
  554. package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts.map +1 -0
  555. package/dist/backend/backend/src/services/onboarding/website-analysis.service.js +411 -0
  556. package/dist/backend/backend/src/services/onboarding/website-analysis.service.js.map +1 -0
  557. package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts +129 -0
  558. package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts.map +1 -0
  559. package/dist/backend/backend/src/services/onboarding/website-analysis.types.js +10 -0
  560. package/dist/backend/backend/src/services/onboarding/website-analysis.types.js.map +1 -0
  561. package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts +241 -0
  562. package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts.map +1 -0
  563. package/dist/backend/backend/src/services/onboarding/website-extractor.service.js +605 -0
  564. package/dist/backend/backend/src/services/onboarding/website-extractor.service.js.map +1 -0
  565. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
  566. package/dist/backend/backend/src/services/payment/stripe.service.js +17 -11
  567. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
  568. package/dist/backend/backend/src/services/policy/default-policies.d.ts +66 -0
  569. package/dist/backend/backend/src/services/policy/default-policies.d.ts.map +1 -0
  570. package/dist/backend/backend/src/services/policy/default-policies.js +120 -0
  571. package/dist/backend/backend/src/services/policy/default-policies.js.map +1 -0
  572. package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts +77 -0
  573. package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts.map +1 -0
  574. package/dist/backend/backend/src/services/policy/policy-enforcement.service.js +164 -0
  575. package/dist/backend/backend/src/services/policy/policy-enforcement.service.js.map +1 -0
  576. package/dist/backend/backend/src/services/project/active-projects.service.d.ts +0 -4
  577. package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
  578. package/dist/backend/backend/src/services/project/active-projects.service.js +1 -43
  579. package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
  580. package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
  581. package/dist/backend/backend/src/services/project/task.service.js +88 -48
  582. package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
  583. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts +137 -0
  584. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts.map +1 -0
  585. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js +410 -0
  586. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js.map +1 -0
  587. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts +182 -0
  588. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts.map +1 -0
  589. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js +84 -0
  590. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js.map +1 -0
  591. package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts +149 -0
  592. package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts.map +1 -0
  593. package/dist/backend/backend/src/services/provisioning/deployment-status.service.js +201 -0
  594. package/dist/backend/backend/src/services/provisioning/deployment-status.service.js.map +1 -0
  595. package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts +135 -0
  596. package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts.map +1 -0
  597. package/dist/backend/backend/src/services/provisioning/provisioning.service.js +261 -0
  598. package/dist/backend/backend/src/services/provisioning/provisioning.service.js.map +1 -0
  599. package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts +184 -0
  600. package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts.map +1 -0
  601. package/dist/backend/backend/src/services/provisioning/provisioning.types.js +119 -0
  602. package/dist/backend/backend/src/services/provisioning/provisioning.types.js.map +1 -0
  603. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +229 -0
  604. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -0
  605. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +666 -0
  606. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -0
  607. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +141 -0
  608. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -0
  609. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +470 -0
  610. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -0
  611. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +144 -0
  612. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -0
  613. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +360 -0
  614. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -0
  615. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  616. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +4 -3
  617. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  618. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  619. package/dist/backend/backend/src/services/session/session-handoff.service.js +13 -0
  620. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  621. package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts +59 -0
  622. package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts.map +1 -0
  623. package/dist/backend/backend/src/services/skill/skill-permission.service.js +141 -0
  624. package/dist/backend/backend/src/services/skill/skill-permission.service.js.map +1 -0
  625. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
  626. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  627. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +124 -0
  628. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  629. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  630. package/dist/backend/backend/src/services/slack/slack.service.js +78 -0
  631. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  632. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +190 -0
  633. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
  634. package/dist/backend/backend/src/services/task-pool/claim.service.js +354 -0
  635. package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -0
  636. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +146 -0
  637. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
  638. package/dist/backend/backend/src/services/task-pool/pool-storage.js +243 -0
  639. package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -0
  640. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +288 -0
  641. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
  642. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +653 -0
  643. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -0
  644. package/dist/backend/backend/src/services/template/template.service.d.ts +2 -0
  645. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  646. package/dist/backend/backend/src/services/template/template.service.js +17 -3
  647. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  648. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +90 -0
  649. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -0
  650. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +394 -0
  651. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -0
  652. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +100 -0
  653. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
  654. package/dist/backend/backend/src/services/v3/escalation-router.service.js +357 -0
  655. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -0
  656. package/dist/backend/backend/src/services/v3/escalation.service.d.ts +148 -0
  657. package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -0
  658. package/dist/backend/backend/src/services/v3/escalation.service.js +371 -0
  659. package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -0
  660. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +109 -0
  661. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
  662. package/dist/backend/backend/src/services/v3/kr-tracking.service.js +314 -0
  663. package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -0
  664. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts +117 -0
  665. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
  666. package/dist/backend/backend/src/services/v3/mission-executor.service.js +301 -0
  667. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -0
  668. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts +73 -0
  669. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -0
  670. package/dist/backend/backend/src/services/v3/mission-period.service.js +200 -0
  671. package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -0
  672. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +58 -0
  673. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -0
  674. package/dist/backend/backend/src/services/v3/okr-review.service.js +221 -0
  675. package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -0
  676. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +118 -0
  677. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +1 -0
  678. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +326 -0
  679. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +1 -0
  680. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +52 -0
  681. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +1 -0
  682. package/dist/backend/backend/src/services/v3/request-notification.service.js +161 -0
  683. package/dist/backend/backend/src/services/v3/request-notification.service.js.map +1 -0
  684. package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts +78 -0
  685. package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
  686. package/dist/backend/backend/src/services/v3/request-tracker.service.js +108 -0
  687. package/dist/backend/backend/src/services/v3/request-tracker.service.js.map +1 -0
  688. package/dist/backend/backend/src/services/v3/request.service.d.ts +166 -0
  689. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -0
  690. package/dist/backend/backend/src/services/v3/request.service.js +310 -0
  691. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -0
  692. package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts +88 -0
  693. package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts.map +1 -0
  694. package/dist/backend/backend/src/services/v3/service-contract-gate.service.js +138 -0
  695. package/dist/backend/backend/src/services/v3/service-contract-gate.service.js.map +1 -0
  696. package/dist/backend/backend/src/services/v3/task-projection.service.d.ts +128 -0
  697. package/dist/backend/backend/src/services/v3/task-projection.service.d.ts.map +1 -0
  698. package/dist/backend/backend/src/services/v3/task-projection.service.js +378 -0
  699. package/dist/backend/backend/src/services/v3/task-projection.service.js.map +1 -0
  700. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts +77 -0
  701. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts.map +1 -0
  702. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js +177 -0
  703. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js.map +1 -0
  704. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +63 -0
  705. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -0
  706. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +169 -0
  707. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -0
  708. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +263 -0
  709. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -0
  710. package/dist/backend/backend/src/services/v3/trigger-engine.service.js +632 -0
  711. package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -0
  712. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +298 -0
  713. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
  714. package/dist/backend/backend/src/services/v3/v3-data.service.js +1075 -0
  715. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -0
  716. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +5 -11
  717. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  718. package/dist/backend/backend/src/services/workflow/scheduler.service.js +34 -23
  719. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  720. package/dist/backend/backend/src/services/workspace/workspace.service.d.ts +120 -0
  721. package/dist/backend/backend/src/services/workspace/workspace.service.d.ts.map +1 -0
  722. package/dist/backend/backend/src/services/workspace/workspace.service.js +271 -0
  723. package/dist/backend/backend/src/services/workspace/workspace.service.js.map +1 -0
  724. package/dist/backend/backend/src/types/index.d.ts +42 -0
  725. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  726. package/dist/backend/backend/src/types/index.js.map +1 -1
  727. package/dist/backend/backend/src/types/intent-task.types.d.ts +386 -0
  728. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -0
  729. package/dist/backend/backend/src/types/intent-task.types.js +231 -0
  730. package/dist/backend/backend/src/types/intent-task.types.js.map +1 -0
  731. package/dist/backend/backend/src/types/memory.types.d.ts +19 -0
  732. package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
  733. package/dist/backend/backend/src/types/memory.types.js.map +1 -1
  734. package/dist/backend/backend/src/types/team-template.types.d.ts +54 -0
  735. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  736. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  737. package/dist/backend/backend/src/types/v2/claim.types.d.ts +140 -0
  738. package/dist/backend/backend/src/types/v2/claim.types.d.ts.map +1 -0
  739. package/dist/backend/backend/src/types/v2/claim.types.js +180 -0
  740. package/dist/backend/backend/src/types/v2/claim.types.js.map +1 -0
  741. package/dist/backend/backend/src/types/v2/index.d.ts +30 -0
  742. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -0
  743. package/dist/backend/backend/src/types/v2/index.js +22 -0
  744. package/dist/backend/backend/src/types/v2/index.js.map +1 -0
  745. package/dist/backend/backend/src/types/v2/key-result.types.d.ts +195 -0
  746. package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -0
  747. package/dist/backend/backend/src/types/v2/key-result.types.js +194 -0
  748. package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -0
  749. package/dist/backend/backend/src/types/v2/mission.types.d.ts +408 -0
  750. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -0
  751. package/dist/backend/backend/src/types/v2/mission.types.js +482 -0
  752. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -0
  753. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +199 -0
  754. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
  755. package/dist/backend/backend/src/types/v2/reconcile.types.js +121 -0
  756. package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -0
  757. package/dist/backend/backend/src/types/v2/request.types.d.ts +188 -0
  758. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -0
  759. package/dist/backend/backend/src/types/v2/request.types.js +178 -0
  760. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -0
  761. package/dist/backend/backend/src/types/v2/trigger.types.d.ts +201 -0
  762. package/dist/backend/backend/src/types/v2/trigger.types.d.ts.map +1 -0
  763. package/dist/backend/backend/src/types/v2/trigger.types.js +174 -0
  764. package/dist/backend/backend/src/types/v2/trigger.types.js.map +1 -0
  765. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +333 -0
  766. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -0
  767. package/dist/backend/backend/src/types/v2/work-item.types.js +274 -0
  768. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -0
  769. package/dist/backend/backend/src/types/v2/workspace.types.d.ts +157 -0
  770. package/dist/backend/backend/src/types/v2/workspace.types.d.ts.map +1 -0
  771. package/dist/backend/backend/src/types/v2/workspace.types.js +173 -0
  772. package/dist/backend/backend/src/types/v2/workspace.types.js.map +1 -0
  773. package/dist/backend/backend/src/types/v3/task-record.types.d.ts +98 -0
  774. package/dist/backend/backend/src/types/v3/task-record.types.d.ts.map +1 -0
  775. package/dist/backend/backend/src/types/v3/task-record.types.js +55 -0
  776. package/dist/backend/backend/src/types/v3/task-record.types.js.map +1 -0
  777. package/dist/backend/config/constants.d.ts +47 -0
  778. package/dist/backend/config/constants.d.ts.map +1 -1
  779. package/dist/backend/config/constants.js +49 -0
  780. package/dist/backend/config/constants.js.map +1 -1
  781. package/dist/cli/backend/src/constants.d.ts +5 -0
  782. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  783. package/dist/cli/backend/src/constants.js +5 -0
  784. package/dist/cli/backend/src/constants.js.map +1 -1
  785. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
  786. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  787. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  788. package/dist/cli/backend/src/services/core/logger.service.js +1 -1
  789. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
  790. package/dist/cli/backend/src/services/core/storage.service.d.ts +33 -0
  791. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  792. package/dist/cli/backend/src/services/core/storage.service.js +54 -0
  793. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  794. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
  795. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
  796. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +220 -0
  797. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
  798. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
  799. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
  800. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
  801. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
  802. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
  803. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
  804. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
  805. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
  806. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +11 -0
  807. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  808. package/dist/cli/backend/src/services/memory/agent-memory.service.js +76 -11
  809. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
  810. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +78 -0
  811. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
  812. package/dist/cli/backend/src/services/memory/embedding-provider.js +179 -0
  813. package/dist/cli/backend/src/services/memory/embedding-provider.js.map +1 -0
  814. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +331 -0
  815. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
  816. package/dist/cli/backend/src/services/memory/vector-store.service.js +814 -0
  817. package/dist/cli/backend/src/services/memory/vector-store.service.js.map +1 -0
  818. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +190 -0
  819. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
  820. package/dist/cli/backend/src/services/task-pool/claim.service.js +354 -0
  821. package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -0
  822. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +146 -0
  823. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
  824. package/dist/cli/backend/src/services/task-pool/pool-storage.js +243 -0
  825. package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -0
  826. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +263 -0
  827. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
  828. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +605 -0
  829. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -0
  830. package/dist/cli/backend/src/types/index.d.ts +42 -0
  831. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  832. package/dist/cli/backend/src/types/index.js.map +1 -1
  833. package/dist/cli/backend/src/types/memory.types.d.ts +19 -0
  834. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
  835. package/dist/cli/backend/src/types/memory.types.js.map +1 -1
  836. package/dist/cli/backend/src/types/team-template.types.d.ts +222 -0
  837. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -0
  838. package/dist/cli/backend/src/types/team-template.types.js +139 -0
  839. package/dist/cli/backend/src/types/team-template.types.js.map +1 -0
  840. package/dist/cli/backend/src/types/v2/claim.types.d.ts +143 -0
  841. package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -0
  842. package/dist/cli/backend/src/types/v2/claim.types.js +183 -0
  843. package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -0
  844. package/dist/cli/backend/src/types/v2/trigger.types.d.ts +201 -0
  845. package/dist/cli/backend/src/types/v2/trigger.types.d.ts.map +1 -0
  846. package/dist/cli/backend/src/types/v2/trigger.types.js +174 -0
  847. package/dist/cli/backend/src/types/v2/trigger.types.js.map +1 -0
  848. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +333 -0
  849. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -0
  850. package/dist/cli/backend/src/types/v2/work-item.types.js +274 -0
  851. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -0
  852. package/dist/cli/config/constants.d.ts +47 -0
  853. package/dist/cli/config/constants.d.ts.map +1 -1
  854. package/dist/cli/config/constants.js +49 -0
  855. package/dist/cli/config/constants.js.map +1 -1
  856. package/frontend/dist/assets/index-47564020.css +33 -0
  857. package/frontend/dist/assets/index-5e804749.js +5220 -0
  858. package/frontend/dist/index.html +2 -2
  859. package/package.json +3 -1
  860. package/config/skills/agent/computer-use/lib/accessibility.sh +0 -292
  861. package/config/skills/agent/computer-use/lib/applescript.sh +0 -117
  862. package/config/skills/agent/computer-use/lib/discover.sh +0 -122
  863. package/config/skills/agent/computer-use/lib/playwright.sh +0 -153
  864. package/config/skills/agent/computer-use/lib/screenshot.sh +0 -61
  865. package/config/templates/cloud-deploy.json +0 -119
  866. package/config/templates/code-review-team/README.md +0 -176
  867. package/config/templates/code-review-team/team-config.json +0 -23
  868. package/config/templates/code-review-team.json +0 -62
  869. package/config/templates/content-generation-team/README.md +0 -128
  870. package/config/templates/content-generation-team/norms/publish-checklist.md +0 -64
  871. package/config/templates/content-generation-team/team-config.json +0 -28
  872. package/config/templates/content-generation-team.json +0 -67
  873. package/config/templates/dev-fullstack/norms/docker-deploy-cleanup.md +0 -28
  874. package/config/templates/dev-fullstack/template.json +0 -178
  875. package/config/templates/education-smb/README.md +0 -27
  876. package/config/templates/education-smb/goals.md +0 -16
  877. package/config/templates/education-smb/knowledge/docs/content-standards.md +0 -24
  878. package/config/templates/education-smb/knowledge/docs/education-industry-context.md +0 -13
  879. package/config/templates/education-smb/knowledge/index.json +0 -24
  880. package/config/templates/education-smb/learned-patterns.json +0 -16
  881. package/config/templates/education-smb/quality-gates.yaml +0 -66
  882. package/config/templates/education-smb/roles/analytics-specialist.md +0 -6
  883. package/config/templates/education-smb/roles/content-creator.md +0 -6
  884. package/config/templates/education-smb/roles/curriculum-designer.md +0 -6
  885. package/config/templates/education-smb/roles/engagement-manager.md +0 -6
  886. package/config/templates/education-smb/team.json +0 -40
  887. package/config/templates/education-smb/template.json +0 -35
  888. package/config/templates/education-smb/workflows/course-content-generation.yaml +0 -44
  889. package/config/templates/education-smb/workflows/reporting.yaml +0 -31
  890. package/config/templates/education-smb/workflows/student-communication.yaml +0 -44
  891. package/config/templates/education-smb/workflows.yaml +0 -40
  892. package/config/templates/insurance-smb/README.md +0 -28
  893. package/config/templates/insurance-smb/goals.md +0 -21
  894. package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +0 -28
  895. package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +0 -23
  896. package/config/templates/insurance-smb/knowledge/index.json +0 -24
  897. package/config/templates/insurance-smb/learned-patterns.json +0 -16
  898. package/config/templates/insurance-smb/quality-gates.yaml +0 -54
  899. package/config/templates/insurance-smb/roles/claims-processor.md +0 -6
  900. package/config/templates/insurance-smb/roles/client-manager.md +0 -6
  901. package/config/templates/insurance-smb/roles/compliance-officer.md +0 -6
  902. package/config/templates/insurance-smb/roles/marketing-specialist.md +0 -6
  903. package/config/templates/insurance-smb/roles/policy-analyst.md +0 -6
  904. package/config/templates/insurance-smb/team.json +0 -48
  905. package/config/templates/insurance-smb/template.json +0 -35
  906. package/config/templates/insurance-smb/workflows/claims-processing.yaml +0 -48
  907. package/config/templates/insurance-smb/workflows.yaml +0 -43
  908. package/config/templates/marketing-team/README.md +0 -42
  909. package/config/templates/marketing-team/goals.md +0 -21
  910. package/config/templates/marketing-team/knowledge/docs/brand-voice-guide.md +0 -61
  911. package/config/templates/marketing-team/knowledge/docs/content-best-practices.md +0 -64
  912. package/config/templates/marketing-team/knowledge/index.json +0 -24
  913. package/config/templates/marketing-team/learned-patterns.json +0 -5
  914. package/config/templates/marketing-team/norms/brand-consistency.md +0 -40
  915. package/config/templates/marketing-team/norms/content-quality-checklist.md +0 -45
  916. package/config/templates/marketing-team/quality-gates.yaml +0 -47
  917. package/config/templates/marketing-team/roles/analyst.md +0 -63
  918. package/config/templates/marketing-team/roles/strategist.md +0 -26
  919. package/config/templates/marketing-team/roles/writer.md +0 -58
  920. package/config/templates/marketing-team/template.json +0 -90
  921. package/config/templates/marketing-team/workflows/weekly-content-cycle.yaml +0 -48
  922. package/config/templates/research-analysis/template.json +0 -133
  923. package/config/templates/security-audit-team.json +0 -67
  924. package/config/templates/social-media-ops/template.json +0 -129
  925. package/config/templates/social-media-ops-team/README.md +0 -145
  926. package/config/templates/social-media-ops-team/team-config.json +0 -21
  927. package/config/templates/social-media-ops-team.json +0 -67
  928. package/config/templates/video-production/template.json +0 -132
  929. package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts +0 -69
  930. package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts.map +0 -1
  931. package/dist/backend/backend/src/controllers/admin/admin.controller.js +0 -187
  932. package/dist/backend/backend/src/controllers/admin/admin.controller.js.map +0 -1
  933. package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts +0 -22
  934. package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts.map +0 -1
  935. package/dist/backend/backend/src/controllers/admin/admin.routes.js +0 -31
  936. package/dist/backend/backend/src/controllers/admin/admin.routes.js.map +0 -1
  937. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts +0 -23
  938. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts.map +0 -1
  939. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js +0 -42
  940. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js.map +0 -1
  941. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts +0 -56
  942. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts.map +0 -1
  943. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js +0 -173
  944. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js.map +0 -1
  945. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts +0 -22
  946. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts.map +0 -1
  947. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js +0 -33
  948. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js.map +0 -1
  949. package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts +0 -7
  950. package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts.map +0 -1
  951. package/dist/backend/backend/src/controllers/cloud/admin/index.js +0 -7
  952. package/dist/backend/backend/src/controllers/cloud/admin/index.js.map +0 -1
  953. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +0 -81
  954. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +0 -1
  955. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +0 -234
  956. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +0 -1
  957. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +0 -25
  958. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +0 -1
  959. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +0 -42
  960. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +0 -1
  961. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts +0 -40
  962. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts.map +0 -1
  963. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js +0 -161
  964. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js.map +0 -1
  965. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +0 -69
  966. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +0 -1
  967. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +0 -165
  968. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +0 -1
  969. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +0 -23
  970. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +0 -1
  971. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +0 -32
  972. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +0 -1
  973. package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts +0 -34
  974. package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts.map +0 -1
  975. package/dist/backend/backend/src/controllers/cloud/device.controller.js +0 -70
  976. package/dist/backend/backend/src/controllers/cloud/device.controller.js.map +0 -1
  977. package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts +0 -23
  978. package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts.map +0 -1
  979. package/dist/backend/backend/src/controllers/cloud/device.routes.js +0 -34
  980. package/dist/backend/backend/src/controllers/cloud/device.routes.js.map +0 -1
  981. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +0 -42
  982. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +0 -1
  983. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +0 -138
  984. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +0 -1
  985. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +0 -23
  986. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +0 -1
  987. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +0 -34
  988. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +0 -1
  989. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +0 -43
  990. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +0 -1
  991. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +0 -9
  992. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +0 -1
  993. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +0 -7
  994. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +0 -1
  995. package/dist/backend/backend/src/controllers/cloud/files/index.js +0 -7
  996. package/dist/backend/backend/src/controllers/cloud/files/index.js.map +0 -1
  997. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +0 -47
  998. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +0 -1
  999. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +0 -131
  1000. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +0 -1
  1001. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +0 -23
  1002. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +0 -1
  1003. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +0 -30
  1004. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +0 -1
  1005. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +0 -81
  1006. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +0 -1
  1007. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +0 -85
  1008. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +0 -1
  1009. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +0 -7
  1010. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +0 -1
  1011. package/dist/backend/backend/src/controllers/cloud/h5/index.js +0 -7
  1012. package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +0 -1
  1013. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +0 -7
  1014. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +0 -1
  1015. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +0 -7
  1016. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +0 -1
  1017. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +0 -45
  1018. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +0 -1
  1019. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +0 -155
  1020. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +0 -1
  1021. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +0 -25
  1022. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +0 -1
  1023. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +0 -32
  1024. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +0 -1
  1025. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +0 -97
  1026. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +0 -1
  1027. package/dist/backend/backend/src/controllers/cloud/relay.controller.js +0 -317
  1028. package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +0 -1
  1029. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +0 -25
  1030. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +0 -1
  1031. package/dist/backend/backend/src/controllers/cloud/relay.routes.js +0 -35
  1032. package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +0 -1
  1033. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +0 -49
  1034. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +0 -1
  1035. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +0 -152
  1036. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +0 -1
  1037. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +0 -24
  1038. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +0 -1
  1039. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +0 -34
  1040. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +0 -1
  1041. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +0 -90
  1042. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +0 -1
  1043. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +0 -48
  1044. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +0 -1
  1045. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +0 -10
  1046. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +0 -1
  1047. package/dist/backend/backend/src/controllers/cloud/tasks/index.js +0 -10
  1048. package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +0 -1
  1049. package/dist/backend/backend/src/controllers/payment/index.d.ts +0 -7
  1050. package/dist/backend/backend/src/controllers/payment/index.d.ts.map +0 -1
  1051. package/dist/backend/backend/src/controllers/payment/index.js +0 -7
  1052. package/dist/backend/backend/src/controllers/payment/index.js.map +0 -1
  1053. package/dist/backend/backend/src/scripts/run-log-rotation.d.ts +0 -3
  1054. package/dist/backend/backend/src/scripts/run-log-rotation.d.ts.map +0 -1
  1055. package/dist/backend/backend/src/scripts/run-log-rotation.js +0 -31
  1056. package/dist/backend/backend/src/scripts/run-log-rotation.js.map +0 -1
  1057. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +0 -70
  1058. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +0 -1
  1059. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +0 -131
  1060. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +0 -1
  1061. package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts +0 -18
  1062. package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts.map +0 -1
  1063. package/dist/backend/backend/src/services/cloud/admin-seed.service.js +0 -50
  1064. package/dist/backend/backend/src/services/cloud/admin-seed.service.js.map +0 -1
  1065. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +0 -203
  1066. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +0 -1
  1067. package/dist/backend/backend/src/services/cloud/auth/auth.service.js +0 -494
  1068. package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +0 -1
  1069. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +0 -110
  1070. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +0 -1
  1071. package/dist/backend/backend/src/services/cloud/auth/auth.types.js +0 -54
  1072. package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +0 -1
  1073. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +0 -47
  1074. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +0 -1
  1075. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +0 -116
  1076. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +0 -1
  1077. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts +0 -25
  1078. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts.map +0 -1
  1079. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js +0 -52
  1080. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js.map +0 -1
  1081. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +0 -61
  1082. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +0 -1
  1083. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +0 -203
  1084. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +0 -1
  1085. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +0 -136
  1086. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +0 -1
  1087. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +0 -204
  1088. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +0 -1
  1089. package/dist/backend/backend/src/services/cloud/cloud-features.d.ts +0 -19
  1090. package/dist/backend/backend/src/services/cloud/cloud-features.d.ts.map +0 -1
  1091. package/dist/backend/backend/src/services/cloud/cloud-features.js +0 -23
  1092. package/dist/backend/backend/src/services/cloud/cloud-features.js.map +0 -1
  1093. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +0 -97
  1094. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +0 -1
  1095. package/dist/backend/backend/src/services/cloud/cloud-file.service.js +0 -184
  1096. package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +0 -1
  1097. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +0 -114
  1098. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +0 -1
  1099. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +0 -196
  1100. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +0 -1
  1101. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +0 -118
  1102. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +0 -1
  1103. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +0 -326
  1104. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +0 -1
  1105. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +0 -115
  1106. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +0 -1
  1107. package/dist/backend/backend/src/services/cloud/cloud-task.service.js +0 -265
  1108. package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +0 -1
  1109. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts +0 -103
  1110. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts.map +0 -1
  1111. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js +0 -143
  1112. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js.map +0 -1
  1113. package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts +0 -45
  1114. package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts.map +0 -1
  1115. package/dist/backend/backend/src/services/cloud/mongodb.service.js +0 -76
  1116. package/dist/backend/backend/src/services/cloud/mongodb.service.js.map +0 -1
  1117. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +0 -245
  1118. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +0 -1
  1119. package/dist/backend/backend/src/services/cloud/relay-client.service.js +0 -586
  1120. package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +0 -1
  1121. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +0 -87
  1122. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +0 -1
  1123. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +0 -140
  1124. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +0 -1
  1125. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +0 -181
  1126. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +0 -1
  1127. package/dist/backend/backend/src/services/cloud/relay-server.service.js +0 -485
  1128. package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +0 -1
  1129. package/dist/backend/backend/src/services/cloud/relay.types.d.ts +0 -195
  1130. package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +0 -1
  1131. package/dist/backend/backend/src/services/cloud/relay.types.js +0 -69
  1132. package/dist/backend/backend/src/services/cloud/relay.types.js.map +0 -1
  1133. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts +0 -47
  1134. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts.map +0 -1
  1135. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js +0 -69
  1136. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js.map +0 -1
  1137. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +0 -69
  1138. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +0 -1
  1139. package/dist/backend/backend/src/services/payment/magic-moment.service.js +0 -158
  1140. package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +0 -1
  1141. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +0 -95
  1142. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +0 -1
  1143. package/dist/backend/backend/src/services/payment/magic-moment.types.js +0 -91
  1144. package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +0 -1
  1145. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts +0 -69
  1146. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts.map +0 -1
  1147. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js +0 -133
  1148. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js.map +0 -1
  1149. package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts +0 -51
  1150. package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts.map +0 -1
  1151. package/dist/backend/backend/src/services/wechat/wechat.controller.js +0 -104
  1152. package/dist/backend/backend/src/services/wechat/wechat.controller.js.map +0 -1
  1153. package/dist/backend/backend/src/services/wechat/wechat.service.d.ts +0 -171
  1154. package/dist/backend/backend/src/services/wechat/wechat.service.d.ts.map +0 -1
  1155. package/dist/backend/backend/src/services/wechat/wechat.service.js +0 -411
  1156. package/dist/backend/backend/src/services/wechat/wechat.service.js.map +0 -1
  1157. package/frontend/dist/assets/index-58e9f83b.js +0 -5215
  1158. package/frontend/dist/assets/index-a2db8a73.css +0 -33
@@ -0,0 +1,1075 @@
1
+ /**
2
+ * V3 Data Service — Automatic V3 entity creation via EventBus hooks
3
+ *
4
+ * Subscribes to existing backend events and automatically creates/updates
5
+ * V3 entities (WorkItem, Request, Mission). This service is fire-and-forget:
6
+ * errors are logged but never block the main flow.
7
+ *
8
+ * Design principle: Orchestrator has zero knowledge of V3 concepts.
9
+ * V3 data is produced as a side effect of normal operations.
10
+ *
11
+ * Events consumed:
12
+ * - task:delegated -> creates WorkItem in TaskPool
13
+ * - task:completed -> updates WorkItem status to 'done'
14
+ * - task:failed -> updates WorkItem status to 'failed'
15
+ * - goal:set -> creates Mission with conservative policy
16
+ * - message:user_work -> creates Request
17
+ *
18
+ * @module services/v3/v3-data.service
19
+ */
20
+ import { LoggerService } from '../core/logger.service.js';
21
+ import { TaskPoolService } from '../task-pool/task-pool.service.js';
22
+ import { RequestService } from './request.service.js';
23
+ import { RequestTracker } from './request-tracker.service.js';
24
+ import { createWorkItem } from '../../types/v2/work-item.types.js';
25
+ import { createMission } from '../../types/v2/mission.types.js';
26
+ import { isValidRequestTransition } from '../../types/v2/request.types.js';
27
+ import { ensureDir, atomicWriteJson } from '../../utils/file-io.utils.js';
28
+ import { ProjectTaskWatcherService } from './project-task-watcher.service.js';
29
+ import { TokenUsageService } from '../monitoring/token-usage.service.js';
30
+ import * as path from 'path';
31
+ import * as fs from 'fs/promises';
32
+ // ---------------------------------------------------------------------------
33
+ // Constants
34
+ // ---------------------------------------------------------------------------
35
+ /**
36
+ * Minimum content length for a user message to create a Request.
37
+ * P2-1: Relaxed from 5 → 2 to stop dropping legitimate short commands
38
+ * like "fix", "help", "go", "OK". Only truly empty or single-char
39
+ * messages (e.g., ".", "k") are filtered out.
40
+ */
41
+ export const MIN_REQUEST_CONTENT_LENGTH = 2;
42
+ /**
43
+ * Grace period (in ms) before an open Request with no WorkItems is
44
+ * auto-closed as dangling. P2-1: Added to prevent premature closure —
45
+ * the orchestrator may need time to process the request and delegate.
46
+ * Default: 5 minutes.
47
+ */
48
+ export const DANGLING_REQUEST_GRACE_MS = 5 * 60 * 1000;
49
+ // ---------------------------------------------------------------------------
50
+ // Service
51
+ // ---------------------------------------------------------------------------
52
+ /**
53
+ * V3DataService automatically creates V3 data entities by subscribing to
54
+ * backend EventBus events. It wraps every handler in try-catch to ensure
55
+ * failures never impact the main workflow.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const v3Data = new V3DataService(eventBus, '/path/to/project');
60
+ * // That's it — events are now being listened to.
61
+ * ```
62
+ */
63
+ export class V3DataService {
64
+ eventBus;
65
+ logger = LoggerService.getInstance().createComponentLogger('V3DataService');
66
+ projectPath;
67
+ missionsDir;
68
+ taskWatcher = null;
69
+ /**
70
+ * Creates and initializes the V3DataService.
71
+ *
72
+ * Subscribes to EventBus domain events and starts the ProjectTask file watcher
73
+ * to ensure every ProjectTask has a corresponding WorkItem.
74
+ *
75
+ * @param eventBus - The EventEmitter that publishes domain events
76
+ * @param projectPath - Absolute path to the project root
77
+ */
78
+ constructor(eventBus, projectPath) {
79
+ this.eventBus = eventBus;
80
+ this.projectPath = projectPath;
81
+ this.missionsDir = path.join(projectPath, '.crewly', 'missions');
82
+ // Subscribe to events — all handlers are fire-and-forget
83
+ this.eventBus.on('v3:task_delegated', this.onTaskDelegated.bind(this));
84
+ this.eventBus.on('v3:task_completed', this.onTaskCompleted.bind(this));
85
+ this.eventBus.on('v3:task_failed', this.onTaskFailed.bind(this));
86
+ this.eventBus.on('v3:task_blocked', this.onTaskBlocked.bind(this));
87
+ this.eventBus.on('v3:goal_set', this.onGoalSet.bind(this));
88
+ this.eventBus.on('v3:user_work_message', this.onUserWorkMessage.bind(this));
89
+ // Start ProjectTask file watcher (fire-and-forget)
90
+ this.startTaskWatcher();
91
+ this.logger.info('V3DataService initialized — listening for domain events');
92
+ }
93
+ /**
94
+ * Starts the ProjectTask file watcher that monitors `.crewly/tasks/` for
95
+ * new task files and auto-creates WorkItems. Fire-and-forget — errors
96
+ * are logged but never block initialization.
97
+ */
98
+ startTaskWatcher() {
99
+ try {
100
+ this.taskWatcher = new ProjectTaskWatcherService(this.projectPath);
101
+ this.taskWatcher.start().catch((err) => {
102
+ this.logger.warn('ProjectTaskWatcher start failed (non-fatal)', {
103
+ error: err instanceof Error ? err.message : String(err),
104
+ });
105
+ });
106
+ }
107
+ catch (err) {
108
+ this.logger.warn('ProjectTaskWatcher initialization failed (non-fatal)', {
109
+ error: err instanceof Error ? err.message : String(err),
110
+ });
111
+ }
112
+ }
113
+ // ---------------------------------------------------------------------------
114
+ // WorkItem Matching (shared by completed/failed/blocked handlers)
115
+ // ---------------------------------------------------------------------------
116
+ /**
117
+ * Finds the WorkItem matching a task event using a two-tier strategy:
118
+ * 1. Match by projectTaskId (most precise)
119
+ * 2. Fall back to sessionName + status (running first, then queued)
120
+ *
121
+ * If the matched WorkItem is 'queued', it is transitioned to 'running'
122
+ * since completeItem/failItem require 'running' status.
123
+ *
124
+ * @param taskId - The project task ID (may be undefined)
125
+ * @param sessionName - The agent session name
126
+ * @param logContext - Context string for debug logging
127
+ * @returns The matched WorkItem (with status fix applied), or null
128
+ */
129
+ async findMatchingWorkItem(taskId, sessionName, logContext) {
130
+ const taskPool = TaskPoolService.getInstance();
131
+ const items = await taskPool.getAllItems();
132
+ // Tier 1: precise match by projectTaskId
133
+ let match = taskId
134
+ ? items.find((wi) => wi.projectTaskId === taskId && wi.status !== 'done' && wi.status !== 'failed')
135
+ : undefined;
136
+ // Tier 2: match by sessionName + active status (running first, then queued)
137
+ if (!match) {
138
+ match = items.find((wi) => wi.target === sessionName && wi.status === 'running');
139
+ }
140
+ if (!match) {
141
+ match = items.find((wi) => wi.target === sessionName && wi.status === 'queued');
142
+ }
143
+ if (!match) {
144
+ this.logger.debug(`No matching WorkItem found for ${logContext}`, { sessionName, taskId });
145
+ return null;
146
+ }
147
+ // Bug 1 fix: completeItem/failItem require status === 'running', but WorkItems
148
+ // created via delegation start as 'queued' and may never be claimed.
149
+ if (match.status === 'queued') {
150
+ await taskPool.updateItemStatus(match.id, 'running');
151
+ }
152
+ return match;
153
+ }
154
+ // ---------------------------------------------------------------------------
155
+ // Event Handlers (all fire-and-forget)
156
+ // ---------------------------------------------------------------------------
157
+ /**
158
+ * Handles task:delegated — creates a WorkItem in the TaskPool.
159
+ *
160
+ * @param event - Task delegation event payload
161
+ */
162
+ async onTaskDelegated(event) {
163
+ try {
164
+ const taskPool = TaskPoolService.getInstance();
165
+ // Dedup: check if a WorkItem with this projectTaskId already exists
166
+ const existing = await taskPool.getAllItems();
167
+ if (existing.some((wi) => wi.projectTaskId === event.taskId)) {
168
+ this.logger.debug('WorkItem already exists for task, skipping', { taskId: event.taskId });
169
+ return;
170
+ }
171
+ // Resolve requestId: prefer explicit value from the event payload,
172
+ // fall back to RequestTracker time-window correlation for orchestrator
173
+ // skill-based delegations that don't pass requestId explicitly.
174
+ const resolvedRequestId = event.requestId
175
+ || RequestTracker.getInstance().getActiveRequestId()
176
+ || undefined;
177
+ const workItem = createWorkItem({
178
+ type: 'delegate',
179
+ owner: 'orchestrator',
180
+ target: event.assignedTo,
181
+ title: event.title,
182
+ description: event.description,
183
+ projectTaskId: event.taskId,
184
+ requestId: resolvedRequestId,
185
+ maxRetries: 2,
186
+ });
187
+ // Add to pool (createWorkItem already sets status to 'queued')
188
+ await taskPool.addToPool(workItem);
189
+ this.logger.info('WorkItem auto-created from task delegation', {
190
+ workItemId: workItem.id,
191
+ taskId: event.taskId,
192
+ target: event.assignedTo,
193
+ requestId: resolvedRequestId,
194
+ });
195
+ // Auto-claim for the target agent so WorkItem transitions queued → running
196
+ try {
197
+ await taskPool.claimFromPool(event.assignedTo, { types: ['delegate'] });
198
+ }
199
+ catch (claimErr) {
200
+ this.logger.debug('Auto-claim after delegation failed (non-fatal)', {
201
+ workItemId: workItem.id,
202
+ target: event.assignedTo,
203
+ error: claimErr instanceof Error ? claimErr.message : String(claimErr),
204
+ });
205
+ }
206
+ // Link WorkItem to Request for bidirectional tracking
207
+ if (resolvedRequestId) {
208
+ try {
209
+ const requestService = RequestService.getInstance(this.projectPath);
210
+ await requestService.linkWorkItem(resolvedRequestId, workItem.id);
211
+ // Transition Request: open → running (first WorkItem assigned)
212
+ const request = await requestService.getById(resolvedRequestId);
213
+ if (request && request.status === 'open') {
214
+ await requestService.update(resolvedRequestId, { status: 'running' });
215
+ }
216
+ }
217
+ catch (linkErr) {
218
+ this.logger.debug('Failed to link WorkItem to Request (non-fatal)', {
219
+ requestId: resolvedRequestId,
220
+ workItemId: workItem.id,
221
+ error: linkErr instanceof Error ? linkErr.message : String(linkErr),
222
+ });
223
+ }
224
+ }
225
+ }
226
+ catch (err) {
227
+ this.logger.warn('V3DataService.onTaskDelegated failed (non-fatal)', {
228
+ taskId: event.taskId,
229
+ error: err instanceof Error ? err.message : String(err),
230
+ });
231
+ }
232
+ }
233
+ /**
234
+ * Handles task:completed — updates the matching WorkItem to 'done'.
235
+ *
236
+ * Uses a two-tier matching strategy:
237
+ * 1. Match by projectTaskId (most precise — correlates to the .crewly/tasks/ file ID)
238
+ * 2. Fall back to sessionName + status (running or queued, since WorkItems
239
+ * created via delegation start as 'queued' and may never be claimed)
240
+ *
241
+ * @param event - Task completion event payload
242
+ */
243
+ async onTaskCompleted(event) {
244
+ try {
245
+ const match = await this.findMatchingWorkItem(event.taskId, event.sessionName, 'completed task');
246
+ if (!match)
247
+ return;
248
+ const taskPool = TaskPoolService.getInstance();
249
+ await taskPool.completeItem(match.id);
250
+ // Look up token usage for this work item
251
+ try {
252
+ const tokenUsageService = TokenUsageService.getInstance();
253
+ const sessionUsage = tokenUsageService.getUsageBySessions();
254
+ // Find usage for the agent session that completed this task
255
+ const sessionSummary = sessionUsage.find(s => s.sessionName === event.sessionName);
256
+ if (sessionSummary) {
257
+ const totalInput = sessionSummary.totalInput || 0;
258
+ const totalOutput = sessionSummary.totalOutput || 0;
259
+ const totalCost = sessionSummary.cost || 0;
260
+ if (totalInput > 0 || totalOutput > 0) {
261
+ await taskPool.updateTokenUsage(match.id, totalInput, totalOutput, totalCost);
262
+ this.logger.debug('Updated WorkItem token usage', {
263
+ workItemId: match.id,
264
+ inputTokens: totalInput,
265
+ outputTokens: totalOutput,
266
+ cost: totalCost,
267
+ });
268
+ }
269
+ }
270
+ }
271
+ catch (tokenErr) {
272
+ // Token usage update is non-fatal
273
+ this.logger.debug('Failed to update WorkItem token usage (non-fatal)', {
274
+ error: tokenErr instanceof Error ? tokenErr.message : String(tokenErr),
275
+ });
276
+ }
277
+ this.logger.info('WorkItem auto-completed', {
278
+ workItemId: match.id,
279
+ sessionName: event.sessionName,
280
+ taskId: event.taskId,
281
+ });
282
+ // Growth: extract growth areas from the task title/description (keyword-based, no LLM)
283
+ try {
284
+ const { GrowthAreasService } = await import('../ai/self-improvement/growth-areas.service.js');
285
+ const growthService = new GrowthAreasService();
286
+ const text = match.title + ' ' + (match.description || '');
287
+ const newAreas = await growthService.extractFromText(event.sessionName, text);
288
+ if (newAreas.length > 0) {
289
+ this.logger.info('Growth areas extracted from completed task', {
290
+ sessionName: event.sessionName,
291
+ areas: newAreas.map(a => a.area),
292
+ });
293
+ }
294
+ }
295
+ catch (err) {
296
+ this.logger.debug('Growth area extraction failed (non-fatal)', {
297
+ sessionName: event.sessionName,
298
+ error: err instanceof Error ? err.message : String(err),
299
+ });
300
+ }
301
+ // Cascade: update parent Request status
302
+ await this.cascadeRequestStatus(match.requestId);
303
+ // Unlock dependent WorkItems (task dependency resolution)
304
+ await this.unlockDependentWorkItems(match.id);
305
+ }
306
+ catch (err) {
307
+ this.logger.warn('V3DataService.onTaskCompleted failed (non-fatal)', {
308
+ sessionName: event.sessionName,
309
+ error: err instanceof Error ? err.message : String(err),
310
+ });
311
+ }
312
+ }
313
+ /**
314
+ * Handles task:failed — updates the matching WorkItem to 'failed'.
315
+ *
316
+ * Uses the same two-tier matching strategy as onTaskCompleted.
317
+ *
318
+ * @param event - Task failure event payload
319
+ */
320
+ async onTaskFailed(event) {
321
+ try {
322
+ const match = await this.findMatchingWorkItem(event.taskId, event.sessionName, 'failed task');
323
+ if (!match)
324
+ return;
325
+ const taskPool = TaskPoolService.getInstance();
326
+ await taskPool.failItem(match.id, `Task failed for session ${event.sessionName}`);
327
+ this.logger.info('WorkItem auto-failed', {
328
+ workItemId: match.id,
329
+ sessionName: event.sessionName,
330
+ taskId: event.taskId,
331
+ });
332
+ // Cascade: update parent Request status
333
+ await this.cascadeRequestStatus(match.requestId);
334
+ }
335
+ catch (err) {
336
+ this.logger.warn('V3DataService.onTaskFailed failed (non-fatal)', {
337
+ sessionName: event.sessionName,
338
+ error: err instanceof Error ? err.message : String(err),
339
+ });
340
+ }
341
+ }
342
+ /**
343
+ * Handles goal:set — creates a Mission with conservative policy.
344
+ *
345
+ * @param event - Goal set event payload
346
+ */
347
+ async onGoalSet(event) {
348
+ try {
349
+ // Dedup: check if an active Mission with the same objective already exists
350
+ const existingMissions = await this.listMissions();
351
+ const duplicate = existingMissions.find((m) => m.objective === event.goal &&
352
+ m.status !== 'completed' &&
353
+ m.status !== 'cancelled');
354
+ if (duplicate) {
355
+ this.logger.debug('Active Mission with same objective already exists, skipping', {
356
+ missionId: duplicate.id,
357
+ objective: event.goal,
358
+ });
359
+ return;
360
+ }
361
+ const mission = createMission({
362
+ objective: event.goal,
363
+ ownerTeamId: 'default',
364
+ successCriteria: [],
365
+ currentStrategy: '',
366
+ cadence: '0 9 * * 1', // Default: weekly Monday review
367
+ });
368
+ // Decompose the mission objective into initial ProjectTasks
369
+ const taskIds = await V3DataService.decomposeMissionToTasks(mission.id, event.goal, event.projectPath);
370
+ mission.activeProjectTaskIds = taskIds;
371
+ await ensureDir(this.missionsDir);
372
+ await atomicWriteJson(path.join(this.missionsDir, `${mission.id}.json`), mission);
373
+ this.logger.info('Mission auto-created from goal with tasks', {
374
+ missionId: mission.id,
375
+ objective: event.goal,
376
+ setBy: event.setBy,
377
+ taskCount: taskIds.length,
378
+ });
379
+ }
380
+ catch (err) {
381
+ this.logger.warn('V3DataService.onGoalSet failed (non-fatal)', {
382
+ goal: event.goal,
383
+ error: err instanceof Error ? err.message : String(err),
384
+ });
385
+ }
386
+ }
387
+ /**
388
+ * Handles message:user_work — creates a Request from a user message.
389
+ *
390
+ * @param event - User work message event payload
391
+ */
392
+ async onUserWorkMessage(event) {
393
+ try {
394
+ // Signal new user turn — clear stale request correlation
395
+ RequestTracker.getInstance().clearOnNewMessage();
396
+ const requestService = RequestService.getInstance(this.projectPath);
397
+ // Bug 3 fix: auto-close dangling Requests (open, no workItems).
398
+ // When a new user message arrives, any previous Request that is still
399
+ // 'open' with empty workItemIds was never delegated — the orchestrator
400
+ // handled it directly. Close these as 'done' so they don't linger.
401
+ //
402
+ // P2-1 improvement: only auto-close Requests older than DANGLING_GRACE_MS
403
+ // to avoid prematurely closing Requests before the orchestrator has time
404
+ // to process them and create WorkItems.
405
+ try {
406
+ const allRequests = await requestService.listAll();
407
+ const now = Date.now();
408
+ const danglingRequests = allRequests.filter((r) => {
409
+ if (r.status !== 'open' || r.workItemIds.length > 0)
410
+ return false;
411
+ // Grace period: only close if the Request has been open long enough
412
+ const age = now - new Date(r.createdAt).getTime();
413
+ return age > DANGLING_REQUEST_GRACE_MS;
414
+ });
415
+ for (const dangling of danglingRequests) {
416
+ await requestService.update(dangling.id, { status: 'done' });
417
+ this.logger.debug('Auto-closed dangling Request (no workItems, past grace period)', {
418
+ requestId: dangling.id,
419
+ });
420
+ }
421
+ }
422
+ catch (cleanupErr) {
423
+ this.logger.debug('Dangling Request cleanup failed (non-fatal)', {
424
+ error: cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr),
425
+ });
426
+ }
427
+ // Dedup: check if a Request with this messageId already exists.
428
+ // Previous: used conversationId (Slack thread), which blocked all
429
+ // subsequent messages in the same thread. Now uses messageId so each
430
+ // user message can independently create a Request.
431
+ const existing = await requestService.findBySourceConversationItemId(event.messageId);
432
+ if (existing) {
433
+ this.logger.debug('Request already exists for this message, skipping', {
434
+ messageId: event.messageId,
435
+ existingRequestId: existing.id,
436
+ });
437
+ return;
438
+ }
439
+ // Simple filter: skip empty/whitespace-only messages.
440
+ const content = event.content.trim();
441
+ if (content.length < MIN_REQUEST_CONTENT_LENGTH) {
442
+ this.logger.debug('Message too short to create Request', {
443
+ messageId: event.messageId,
444
+ contentLength: content.length,
445
+ minRequired: MIN_REQUEST_CONTENT_LENGTH,
446
+ });
447
+ return;
448
+ }
449
+ // -----------------------------------------------------------------------
450
+ // V3 Pipeline change: Semantic understanding moved to orchestrator skills.
451
+ // The orchestrator (which has Claude LLM) will decide when to create
452
+ // Requests via the 'create-request' skill and decompose them via the
453
+ // 'break-down-request' skill. This removes mechanical keyword-based
454
+ // intent classification from the data service.
455
+ //
456
+ // The helper functions (classifyIntent, isNonActionableMessage, etc.)
457
+ // are preserved at the bottom of this file as potential fallback.
458
+ // -----------------------------------------------------------------------
459
+ this.logger.info('User work message received — awaiting orchestrator classification via skills', {
460
+ messageId: event.messageId,
461
+ source: event.source,
462
+ contentLength: content.length,
463
+ });
464
+ }
465
+ catch (err) {
466
+ this.logger.warn('V3DataService.onUserWorkMessage failed (non-fatal)', {
467
+ messageId: event.messageId,
468
+ error: err instanceof Error ? err.message : String(err),
469
+ });
470
+ }
471
+ }
472
+ /**
473
+ * Handles task:blocked — updates the matching WorkItem to 'blocked'.
474
+ *
475
+ * Uses the same two-tier matching strategy as onTaskCompleted.
476
+ *
477
+ * @param event - Task blocked event payload
478
+ */
479
+ async onTaskBlocked(event) {
480
+ try {
481
+ const match = await this.findMatchingWorkItem(event.taskId, event.sessionName, 'blocked task');
482
+ if (!match)
483
+ return;
484
+ const taskPool = TaskPoolService.getInstance();
485
+ await taskPool.updateItemStatus(match.id, 'blocked');
486
+ this.logger.info('WorkItem auto-blocked', {
487
+ workItemId: match.id,
488
+ sessionName: event.sessionName,
489
+ reason: event.reason,
490
+ });
491
+ // Cascade: update parent Request status
492
+ await this.cascadeRequestStatus(match.requestId);
493
+ }
494
+ catch (err) {
495
+ this.logger.warn('V3DataService.onTaskBlocked failed (non-fatal)', {
496
+ sessionName: event.sessionName,
497
+ error: err instanceof Error ? err.message : String(err),
498
+ });
499
+ }
500
+ }
501
+ /**
502
+ * Unlocks WorkItems that were blocked by the completed WorkItem.
503
+ * Scans all blocked items in the pool for `metadata._blockedBy` arrays
504
+ * containing the completed item's ID. Removes it and transitions
505
+ * `blocked → queued` when no blockers remain.
506
+ *
507
+ * @param completedWorkItemId - The ID of the just-completed WorkItem
508
+ */
509
+ async unlockDependentWorkItems(completedWorkItemId) {
510
+ try {
511
+ const taskPool = TaskPoolService.getInstance();
512
+ const allItems = await taskPool.getAllItems();
513
+ for (const wi of allItems) {
514
+ if (wi.status !== 'blocked')
515
+ continue;
516
+ const blockedBy = wi.metadata?._blockedBy;
517
+ if (!Array.isArray(blockedBy))
518
+ continue;
519
+ if (!blockedBy.includes(completedWorkItemId))
520
+ continue;
521
+ const remaining = blockedBy.filter((id) => id !== completedWorkItemId);
522
+ // Update metadata and potentially unblock
523
+ if (remaining.length === 0) {
524
+ await taskPool.updateItemStatus(wi.id, 'queued');
525
+ this.logger.info('Dependency resolved — WorkItem unblocked', {
526
+ workItemId: wi.id,
527
+ resolvedBy: completedWorkItemId,
528
+ });
529
+ }
530
+ else {
531
+ this.logger.debug('Dependency partially resolved', {
532
+ workItemId: wi.id,
533
+ resolvedBy: completedWorkItemId,
534
+ remainingBlockers: remaining.length,
535
+ });
536
+ }
537
+ // Update the _blockedBy metadata
538
+ if (wi.metadata) {
539
+ wi.metadata._blockedBy = remaining;
540
+ }
541
+ }
542
+ }
543
+ catch (err) {
544
+ this.logger.debug('unlockDependentWorkItems failed (non-fatal)', {
545
+ completedWorkItemId,
546
+ error: err instanceof Error ? err.message : String(err),
547
+ });
548
+ }
549
+ }
550
+ /**
551
+ * Recomputes Request.status from the aggregate state of its child WorkItems.
552
+ *
553
+ * Rules:
554
+ * - All WorkItems done → Request = done
555
+ * - Any WorkItem running → Request = running
556
+ * - All WorkItems queued → no change (work delegated but not started)
557
+ * - Any WorkItem blocked, none running → Request = blocked
558
+ * - All WorkItems failed/cancelled → Request = cancelled
559
+ * - Some done + some queued (no running) → Request = running
560
+ *
561
+ * @param requestId - The parent Request ID (may be undefined for unlinked WorkItems)
562
+ */
563
+ async cascadeRequestStatus(requestId) {
564
+ if (!requestId)
565
+ return;
566
+ try {
567
+ const requestService = RequestService.getInstance(this.projectPath);
568
+ const request = await requestService.getById(requestId);
569
+ if (!request || request.status === 'done' || request.status === 'cancelled')
570
+ return;
571
+ const taskPool = TaskPoolService.getInstance();
572
+ const allItems = await taskPool.getAllItems();
573
+ const childItems = allItems.filter((wi) => wi.requestId === requestId);
574
+ if (childItems.length === 0)
575
+ return;
576
+ const statuses = childItems.map((wi) => wi.status);
577
+ let newStatus;
578
+ const allQueued = statuses.every((s) => s === 'queued' || s === 'scheduled');
579
+ if (statuses.every((s) => s === 'done')) {
580
+ newStatus = 'done';
581
+ }
582
+ else if (statuses.some((s) => s === 'running')) {
583
+ newStatus = 'running';
584
+ }
585
+ else if (allQueued) {
586
+ // All WorkItems still queued — work delegated but not started.
587
+ // Keep Request in its current status (no change needed).
588
+ return;
589
+ }
590
+ else if (statuses.some((s) => s === 'blocked') && !statuses.some((s) => s === 'running')) {
591
+ newStatus = 'blocked';
592
+ }
593
+ else if (statuses.every((s) => s === 'failed' || s === 'cancelled')) {
594
+ newStatus = 'cancelled';
595
+ }
596
+ else if (statuses.some((s) => s === 'done')) {
597
+ // Some work completed, some still queued — progress is being made
598
+ newStatus = 'running';
599
+ }
600
+ else {
601
+ // Mixed state — keep current status
602
+ return;
603
+ }
604
+ if (newStatus !== request.status && isValidRequestTransition(request.status, newStatus)) {
605
+ await requestService.update(requestId, { status: newStatus });
606
+ this.logger.info('Request status cascaded from WorkItems', {
607
+ requestId,
608
+ previousStatus: request.status,
609
+ newStatus,
610
+ childStatuses: statuses,
611
+ });
612
+ // Emit update event for notification services
613
+ this.eventBus.emit('v3:request_updated', {
614
+ requestId,
615
+ status: newStatus,
616
+ previousStatus: request.status,
617
+ });
618
+ }
619
+ }
620
+ catch (err) {
621
+ this.logger.debug('cascadeRequestStatus failed (non-fatal)', {
622
+ requestId,
623
+ error: err instanceof Error ? err.message : String(err),
624
+ });
625
+ }
626
+ }
627
+ // ---------------------------------------------------------------------------
628
+ // Mission → Task Decomposition
629
+ // ---------------------------------------------------------------------------
630
+ /**
631
+ * Decomposes a mission objective into initial ProjectTask files.
632
+ *
633
+ * Uses keyword-based planning to break the objective into 2-4 actionable
634
+ * sub-tasks, writes them as markdown files under `.crewly/tasks/delegated/open/`,
635
+ * and returns the task IDs (filenames without extension).
636
+ *
637
+ * @param missionId - The parent mission ID
638
+ * @param objective - The mission objective text
639
+ * @param projectPath - Absolute path to the project root
640
+ * @returns Array of created task IDs (file basenames without .md)
641
+ */
642
+ static async decomposeMissionToTasks(missionId, objective, projectPath) {
643
+ const tasksDir = path.join(projectPath, '.crewly', 'tasks', 'delegated', 'open');
644
+ await ensureDir(tasksDir);
645
+ const planned = planTasksFromObjective(objective);
646
+ const taskIds = [];
647
+ const now = new Date().toISOString();
648
+ const timestamp = Date.now();
649
+ for (let i = 0; i < planned.length; i++) {
650
+ const task = planned[i];
651
+ const sanitizedTitle = task.title
652
+ .toLowerCase()
653
+ .replace(/[^a-z0-9]+/g, '_')
654
+ .replace(/^_|_$/g, '')
655
+ .slice(0, 80);
656
+ const taskId = `${sanitizedTitle}_${timestamp + i}`;
657
+ const fileName = `${taskId}.md`;
658
+ const content = [
659
+ `# ${task.title}`,
660
+ '',
661
+ task.description,
662
+ '',
663
+ '## Acceptance Criteria',
664
+ ...task.acceptanceCriteria.map((c) => `- ${c}`),
665
+ '',
666
+ '## Context',
667
+ `Parent mission: ${missionId}`,
668
+ `Mission objective: ${objective}`,
669
+ `Required role: developer`,
670
+ '',
671
+ '## Task Information',
672
+ `- **Priority**: ${task.priority}`,
673
+ '- **Milestone**: delegated',
674
+ `- **Created at**: ${now}`,
675
+ '- **Status**: Open',
676
+ `- **Mission ID**: ${missionId}`,
677
+ ].join('\n');
678
+ await fs.writeFile(path.join(tasksDir, fileName), content, 'utf-8');
679
+ taskIds.push(taskId);
680
+ }
681
+ LoggerService.getInstance().createComponentLogger('V3DataService').debug('Decomposed mission into tasks', {
682
+ missionId,
683
+ taskCount: taskIds.length,
684
+ taskIds,
685
+ });
686
+ return taskIds;
687
+ }
688
+ // ---------------------------------------------------------------------------
689
+ // Helpers
690
+ // ---------------------------------------------------------------------------
691
+ /**
692
+ * Lists all missions from disk.
693
+ *
694
+ * @returns Array of Mission objects
695
+ */
696
+ async listMissions() {
697
+ try {
698
+ await ensureDir(this.missionsDir);
699
+ const files = await import('fs/promises').then((fs) => fs.readdir(this.missionsDir));
700
+ const missions = [];
701
+ for (const file of files) {
702
+ if (!file.endsWith('.json'))
703
+ continue;
704
+ try {
705
+ const filePath = path.join(this.missionsDir, file);
706
+ const { safeReadJson: readJson } = await import('../../utils/file-io.utils.js');
707
+ const data = await readJson(filePath, null);
708
+ if (data && data.id && data.objective) {
709
+ missions.push(data);
710
+ }
711
+ }
712
+ catch {
713
+ // Skip malformed files
714
+ }
715
+ }
716
+ return missions;
717
+ }
718
+ catch {
719
+ return [];
720
+ }
721
+ }
722
+ /**
723
+ * Stops listening to events. Used for cleanup/testing.
724
+ */
725
+ dispose() {
726
+ this.eventBus.removeAllListeners('v3:task_delegated');
727
+ this.eventBus.removeAllListeners('v3:task_completed');
728
+ this.eventBus.removeAllListeners('v3:task_failed');
729
+ this.eventBus.removeAllListeners('v3:task_blocked');
730
+ this.eventBus.removeAllListeners('v3:goal_set');
731
+ this.eventBus.removeAllListeners('v3:user_work_message');
732
+ if (this.taskWatcher) {
733
+ this.taskWatcher.dispose();
734
+ this.taskWatcher = null;
735
+ }
736
+ this.logger.info('V3DataService disposed');
737
+ }
738
+ }
739
+ // ---------------------------------------------------------------------------
740
+ // Intent Classification (keyword-based, no AI)
741
+ // ---------------------------------------------------------------------------
742
+ /**
743
+ * Patterns that identify non-actionable messages (confirmations, chit-chat,
744
+ * acknowledgements). These messages should NOT create Requests.
745
+ */
746
+ const NON_ACTIONABLE_PATTERNS = [
747
+ // Acknowledgements / confirmations (Chinese + English)
748
+ /^(好的|好|嗯|嗯嗯|行|行的|可以|没问题|收到|了解|知道了|明白|ok|okay|sure|yes|yep|yeah|yup|got it|sounds good|lgtm|ack|roger|copy|noted|thanks|thank you|thx|ty|np|no problem|alright|understood|fine|cool|nice|great|perfect|awesome|good|done|right|exactly|absolutely|definitely|indeed|correct|agreed|approved|confirmed|approve|accept|安排|好的安排|辛苦了|谢谢|不错|可以的|没事|随便|都行|好吧|对|对的|是的|嗯好|好嘞|好哒|okie|oki|kk|k)\s*[!.。!~~]*$/i,
749
+ // Greetings
750
+ /^(hi|hello|hey|yo|sup|morning|afternoon|evening|你好|早|早上好|下午好|晚上好|嗨|哈喽)\s*[!.。!~~]*$/i,
751
+ // Emoji-only messages
752
+ /^[\p{Emoji}\s]+$/u,
753
+ // Filler / single-word non-work
754
+ /^(hmm+|huh|ah|oh|lol|haha|hehe|wow|omg|idk|brb|ttyl|tbd|wip)\s*[!.。!~~]*$/i,
755
+ ];
756
+ /**
757
+ * Maximum word count for a message to be eligible for non-actionable check.
758
+ * Longer messages are unlikely to be simple acknowledgements.
759
+ */
760
+ const MAX_NON_ACTIONABLE_WORDS = 6;
761
+ /**
762
+ * Checks if a message is non-actionable (confirmation, chit-chat, greeting).
763
+ * These messages should not create Requests or WorkItems.
764
+ *
765
+ * @param content - The user message text (trimmed)
766
+ * @returns True if the message is non-actionable
767
+ */
768
+ export function isNonActionableMessage(content) {
769
+ // Long messages are likely actionable
770
+ const words = content.split(/\s+/).filter(Boolean);
771
+ if (words.length > MAX_NON_ACTIONABLE_WORDS)
772
+ return false;
773
+ return NON_ACTIONABLE_PATTERNS.some((pattern) => pattern.test(content.trim()));
774
+ }
775
+ /**
776
+ * Auto-classify request intent from message content.
777
+ * Runs synchronously — no AI call, just keyword matching.
778
+ *
779
+ * @param content - The user message text
780
+ * @returns Object with intentCategory and intentLevel
781
+ */
782
+ export function classifyIntent(content) {
783
+ const lower = content.toLowerCase();
784
+ // Non-actionable messages: acknowledgements, chit-chat, greetings
785
+ if (isNonActionableMessage(content)) {
786
+ return { intentCategory: 'other', intentLevel: 'L0' };
787
+ }
788
+ // Debugging — English + Chinese keywords
789
+ if (/\b(fix|bug|error|crash|broken|issue)\b/.test(lower) || /修复|修|bug|报错|崩溃|出错|故障|异常/.test(content)) {
790
+ return { intentCategory: 'debugging', intentLevel: 'L1' };
791
+ }
792
+ // Deployment
793
+ if (/\b(deploy|release|publish|ship)\b/.test(lower) || /部署|发布|上线|发版/.test(content)) {
794
+ return { intentCategory: 'deployment', intentLevel: 'L2' };
795
+ }
796
+ // Review
797
+ if (/\b(review|pr|pull request|code review)\b/.test(lower) || /审查|评审|review|代码审查/.test(content)) {
798
+ return { intentCategory: 'review', intentLevel: 'L1' };
799
+ }
800
+ // Planning
801
+ if (/\b(plan|design|architect|spec)\b/.test(lower) || /规划|设计|架构|方案|计划/.test(content)) {
802
+ return { intentCategory: 'planning', intentLevel: 'L2' };
803
+ }
804
+ // Research / analysis
805
+ if (/\b(research|investigate|analyze|look into|evaluate|assess|audit)\b/.test(lower) || /研究|调查|分析|评估|排查|审计|检查/.test(content)) {
806
+ return { intentCategory: 'research', intentLevel: 'L1' };
807
+ }
808
+ // Communication
809
+ if (/\b(tell|ask|message|notify|send)\b/.test(lower) || /告诉|问|通知|发消息|转告/.test(content)) {
810
+ return { intentCategory: 'communication', intentLevel: 'L0' };
811
+ }
812
+ // Code change
813
+ if (/\b(add|implement|create|build|feature|write)\b/.test(lower) || /添加|实现|创建|开发|编写|搭建|新增/.test(content)) {
814
+ return { intentCategory: 'code_change', intentLevel: 'L2' };
815
+ }
816
+ // Query / lookup (Chinese-specific, lightweight tasks)
817
+ if (/查一下|查看|查询|看看|有多少|列出|统计/.test(content)) {
818
+ return { intentCategory: 'research', intentLevel: 'L1' };
819
+ }
820
+ return { intentCategory: 'other', intentLevel: 'L1' };
821
+ }
822
+ /**
823
+ * Threshold for "complex" objectives that warrant multi-step decomposition.
824
+ * Below this word count, a single task is sufficient.
825
+ */
826
+ const COMPLEX_OBJECTIVE_WORD_THRESHOLD = 15;
827
+ /**
828
+ * Determines whether an objective is complex enough for multi-step decomposition.
829
+ * Complexity heuristics: word count, presence of conjunctions/lists, multiple
830
+ * action verbs, or explicit multi-step indicators.
831
+ *
832
+ * @param objective - The objective text
833
+ * @returns True if the objective warrants multiple tasks
834
+ */
835
+ export function isComplexObjective(objective) {
836
+ const words = objective.split(/\s+/).filter(Boolean);
837
+ if (words.length >= COMPLEX_OBJECTIVE_WORD_THRESHOLD)
838
+ return true;
839
+ // Chinese: character count heuristic (Chinese text has fewer spaces)
840
+ const cjkChars = objective.match(/[\u4e00-\u9fff]/g);
841
+ if (cjkChars && cjkChars.length >= 20)
842
+ return true;
843
+ const lower = objective.toLowerCase();
844
+ // Multiple action verbs suggest multi-step work (English)
845
+ const actionVerbs = lower.match(/\b(build|create|implement|add|fix|deploy|test|review|design|write|migrate|refactor|setup|configure|integrate)\b/g);
846
+ if (actionVerbs && actionVerbs.length >= 2)
847
+ return true;
848
+ // Chinese action verbs
849
+ const cnActionVerbs = objective.match(/创建|实现|添加|修复|部署|测试|审查|设计|编写|迁移|重构|配置|集成|评估|分析|检查|搭建|开发/g);
850
+ if (cnActionVerbs && cnActionVerbs.length >= 2)
851
+ return true;
852
+ // Conjunctions or list indicators (English)
853
+ if (/\b(and then|then|also|plus|as well as|followed by|after that)\b/.test(lower))
854
+ return true;
855
+ if (/[;,]\s*(and\s+)?(then\s+)?/.test(objective) && words.length > 8)
856
+ return true;
857
+ // Chinese list/compound indicators: "包括...方面", enumeration with 、or ,
858
+ if (/包括|以及|同时|另外|还有|并且|然后/.test(objective))
859
+ return true;
860
+ // Chinese comma-separated list (3+ items with 、)
861
+ const cnListItems = objective.split(/[、,]/).filter((s) => s.trim().length > 1);
862
+ if (cnListItems.length >= 3)
863
+ return true;
864
+ return false;
865
+ }
866
+ /**
867
+ * Decomposes a mission objective into actionable tasks using keyword matching.
868
+ *
869
+ * P0-1 fix: Uses intelligent decomposition instead of always producing 3 tasks.
870
+ * - Simple/direct objectives → 1 task
871
+ * - Complex/multi-step objectives → 2-3 tasks
872
+ *
873
+ * Recognises three broad categories:
874
+ * - **Build** (create/implement/build/add/feature) → single task or design+implement+test
875
+ * - **Fix** (fix/debug/resolve/repair/patch) → single task or investigate+fix+verify
876
+ * - **Default** (anything else) → single task or plan+execute+review
877
+ *
878
+ * @param objective - The mission objective text
879
+ * @returns Array of PlannedTask objects (1-3 items)
880
+ */
881
+ export function planTasksFromObjective(objective) {
882
+ const lower = objective.toLowerCase();
883
+ const complex = isComplexObjective(objective);
884
+ // Category: Build / Feature work (English + Chinese)
885
+ if (/\b(build|create|implement|add|feature|develop|write|ship)\b/.test(lower) || /创建|实现|添加|开发|编写|搭建|新增/.test(objective)) {
886
+ if (!complex) {
887
+ return [{
888
+ title: truncate(objective, 80),
889
+ description: `Implement: ${objective}. Follow project conventions, write tests, ensure build passes.`,
890
+ acceptanceCriteria: [
891
+ 'Functionality implemented and working',
892
+ 'Tests written and passing',
893
+ 'Build passes clean',
894
+ ],
895
+ priority: 'high',
896
+ }];
897
+ }
898
+ return [
899
+ {
900
+ title: `Design approach for: ${truncate(objective, 60)}`,
901
+ description: `Analyse requirements and design the technical approach for: ${objective}. Identify key components, interfaces, and dependencies.`,
902
+ acceptanceCriteria: [
903
+ 'Technical approach documented',
904
+ 'Key components and interfaces identified',
905
+ 'Dependencies and risks listed',
906
+ ],
907
+ priority: 'high',
908
+ },
909
+ {
910
+ title: `Implement: ${truncate(objective, 60)}`,
911
+ description: `Implement the core functionality described in: ${objective}. Follow the design approach from the previous task.`,
912
+ acceptanceCriteria: [
913
+ 'Core functionality implemented',
914
+ 'Code follows project conventions',
915
+ 'TypeScript compiles without errors',
916
+ ],
917
+ priority: 'high',
918
+ },
919
+ {
920
+ title: `Test and verify: ${truncate(objective, 60)}`,
921
+ description: `Write unit tests for the implementation of: ${objective}. Ensure minimum 80% coverage for new code.`,
922
+ acceptanceCriteria: [
923
+ 'Unit tests written and passing',
924
+ 'Edge cases covered',
925
+ 'Build passes clean',
926
+ ],
927
+ priority: 'medium',
928
+ },
929
+ ];
930
+ }
931
+ // Category: Bug fix / Debugging (English + Chinese)
932
+ if (/\b(fix|debug|resolve|repair|patch|broken|bug|error|crash)\b/.test(lower) || /修复|修|调试|解决|修补|bug|报错|崩溃/.test(objective)) {
933
+ if (!complex) {
934
+ return [{
935
+ title: truncate(objective, 80),
936
+ description: `Investigate and fix: ${objective}. Identify root cause, apply fix, verify with tests.`,
937
+ acceptanceCriteria: [
938
+ 'Root cause identified and fixed',
939
+ 'Tests pass, no regressions',
940
+ 'Build passes clean',
941
+ ],
942
+ priority: 'high',
943
+ }];
944
+ }
945
+ return [
946
+ {
947
+ title: `Investigate: ${truncate(objective, 60)}`,
948
+ description: `Investigate the root cause of: ${objective}. Reproduce the issue and identify the failing code path.`,
949
+ acceptanceCriteria: [
950
+ 'Root cause identified',
951
+ 'Issue reproduced reliably',
952
+ 'Affected code paths documented',
953
+ ],
954
+ priority: 'high',
955
+ },
956
+ {
957
+ title: `Fix: ${truncate(objective, 60)}`,
958
+ description: `Apply a fix for: ${objective}. Ensure the fix addresses the root cause, not just the symptoms.`,
959
+ acceptanceCriteria: [
960
+ 'Fix applied and tested locally',
961
+ 'Root cause addressed',
962
+ 'No regressions introduced',
963
+ ],
964
+ priority: 'high',
965
+ },
966
+ {
967
+ title: `Verify fix: ${truncate(objective, 60)}`,
968
+ description: `Verify the fix for: ${objective}. Run full test suite and confirm the issue no longer reproduces.`,
969
+ acceptanceCriteria: [
970
+ 'All existing tests pass',
971
+ 'Regression test added',
972
+ 'Issue confirmed resolved',
973
+ ],
974
+ priority: 'medium',
975
+ },
976
+ ];
977
+ }
978
+ // Default category
979
+ if (!complex) {
980
+ return [{
981
+ title: truncate(objective, 80),
982
+ description: `Execute: ${objective}. Complete the work and verify results.`,
983
+ acceptanceCriteria: [
984
+ 'Objective completed',
985
+ 'Deliverables produced',
986
+ 'Build passes',
987
+ ],
988
+ priority: 'high',
989
+ }];
990
+ }
991
+ return [
992
+ {
993
+ title: `Plan: ${truncate(objective, 60)}`,
994
+ description: `Create an execution plan for: ${objective}. Break down the work into concrete steps.`,
995
+ acceptanceCriteria: [
996
+ 'Execution plan created',
997
+ 'Steps are concrete and actionable',
998
+ 'Dependencies identified',
999
+ ],
1000
+ priority: 'high',
1001
+ },
1002
+ {
1003
+ title: `Execute: ${truncate(objective, 60)}`,
1004
+ description: `Execute the plan for: ${objective}. Complete all steps identified in the planning phase.`,
1005
+ acceptanceCriteria: [
1006
+ 'All planned steps completed',
1007
+ 'Deliverables produced',
1008
+ 'Build passes',
1009
+ ],
1010
+ priority: 'high',
1011
+ },
1012
+ {
1013
+ title: `Review: ${truncate(objective, 60)}`,
1014
+ description: `Review the completed work for: ${objective}. Verify quality, completeness, and alignment with the original objective.`,
1015
+ acceptanceCriteria: [
1016
+ 'Work reviewed for quality',
1017
+ 'Objective fully addressed',
1018
+ 'Documentation updated if needed',
1019
+ ],
1020
+ priority: 'low',
1021
+ },
1022
+ ];
1023
+ }
1024
+ /**
1025
+ * Truncates a string to a maximum length, appending ellipsis if needed.
1026
+ *
1027
+ * @param str - The string to truncate
1028
+ * @param maxLen - Maximum length
1029
+ * @returns Truncated string
1030
+ */
1031
+ function truncate(str, maxLen) {
1032
+ if (str.length <= maxLen)
1033
+ return str;
1034
+ return str.slice(0, maxLen - 3) + '...';
1035
+ }
1036
+ /**
1037
+ * Intent category labels for title prefixes.
1038
+ */
1039
+ const INTENT_TITLE_PREFIXES = {
1040
+ debugging: 'Fix',
1041
+ deployment: 'Deploy',
1042
+ review: 'Review',
1043
+ planning: 'Plan',
1044
+ research: 'Research',
1045
+ code_change: 'Implement',
1046
+ communication: 'Message',
1047
+ };
1048
+ /**
1049
+ * Generates a summarized title for a Request instead of copying raw content.
1050
+ *
1051
+ * For short messages (under 60 chars), uses the content directly with an
1052
+ * intent prefix. For longer messages, extracts the first sentence or clause
1053
+ * and prepends the intent prefix.
1054
+ *
1055
+ * @param content - The trimmed user message
1056
+ * @param intentCategory - The classified intent category
1057
+ * @returns A concise, informative title (max 80 chars)
1058
+ */
1059
+ export function generateRequestTitle(content, intentCategory) {
1060
+ const prefix = INTENT_TITLE_PREFIXES[intentCategory];
1061
+ // For short messages (under 60 chars), always add a prefix.
1062
+ // If no category-specific prefix, use a generic "Request" prefix
1063
+ // to ensure title ≠ description.
1064
+ if (content.length <= 60) {
1065
+ const label = prefix || 'Request';
1066
+ return truncate(`[${label}] ${content}`, 80);
1067
+ }
1068
+ // For longer messages, extract the first sentence or clause
1069
+ // and split on Chinese sentence-ending punctuation as well.
1070
+ const firstSentence = content.match(/^[^.!?\n。!?]+[.!?。!?]?/)?.[0] || content;
1071
+ const core = firstSentence.trim();
1072
+ const label = prefix || 'Request';
1073
+ return truncate(`[${label}] ${core}`, 80);
1074
+ }
1075
+ //# sourceMappingURL=v3-data.service.js.map