crewly 1.6.3 → 1.6.5

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 (809) hide show
  1. package/config/roles/architect/prompt.md +68 -2
  2. package/config/roles/auditor/prompt.md +68 -0
  3. package/config/roles/backend-developer/prompt.md +68 -2
  4. package/config/roles/content-strategist/prompt.md +73 -5
  5. package/config/roles/designer/prompt.md +69 -4
  6. package/config/roles/developer/prompt.md +231 -4
  7. package/config/roles/frontend-developer/prompt.md +68 -2
  8. package/config/roles/fullstack-dev/prompt.md +68 -2
  9. package/config/roles/generalist/prompt.md +68 -2
  10. package/config/roles/ops/prompt.md +69 -3
  11. package/config/roles/orchestrator/fragments/communication.md +27 -0
  12. package/config/roles/orchestrator/fragments/role-boundary.md +1 -1
  13. package/config/roles/orchestrator/prompt.md +215 -72
  14. package/config/roles/product-manager/prompt.md +140 -7
  15. package/config/roles/qa/prompt.md +70 -5
  16. package/config/roles/qa-engineer/prompt.md +70 -5
  17. package/config/roles/researcher/prompt.md +68 -2
  18. package/config/roles/sales/prompt.md +70 -5
  19. package/config/roles/support/prompt.md +69 -4
  20. package/config/roles/team-leader/prompt.md +87 -6
  21. package/config/roles/team-leader/role-boundaries.md +26 -0
  22. package/config/roles/team-leader/tl-addon.md +153 -1
  23. package/config/roles/tpm/prompt.md +68 -2
  24. package/config/roles/ux-designer/prompt.md +70 -5
  25. package/config/skills/_common/complete-body-shape.test.sh +249 -0
  26. package/config/skills/agent/core/accept-task/execute.sh +18 -15
  27. package/config/skills/agent/core/block-task/execute.sh +27 -9
  28. package/config/skills/agent/core/cancel-followup/SKILL.md +18 -0
  29. package/config/skills/agent/core/complete-task/execute.sh +45 -7
  30. package/config/skills/agent/core/create-task/execute.sh +40 -12
  31. package/config/skills/agent/core/get-my-active-work/SKILL.md +3 -1
  32. package/config/skills/agent/core/get-my-tasks/execute.sh +7 -5
  33. package/config/skills/agent/core/handoff-task/execute.sh +34 -48
  34. package/config/skills/agent/core/list-my-followups/SKILL.md +18 -0
  35. package/config/skills/agent/core/read-task/execute.sh +21 -8
  36. package/config/skills/agent/core/recall/SKILL.md +7 -0
  37. package/config/skills/agent/core/remember/SKILL.md +17 -1
  38. package/config/skills/agent/core/remember/execute.sh +5 -1
  39. package/config/skills/agent/core/reply-channel/SKILL.md +19 -0
  40. package/config/skills/agent/core/report-progress/execute.sh +39 -16
  41. package/config/skills/agent/core/report-status/execute.sh +36 -12
  42. package/config/skills/agent/core/save-working-state/execute.sh +17 -6
  43. package/config/skills/agent/core/schedule-followup/SKILL.md +19 -0
  44. package/config/skills/agent/core/send-message/SKILL.md +6 -0
  45. package/config/skills/agent/core/supersede-memory/SKILL.md +76 -0
  46. package/config/skills/agent/core/supersede-memory/execute.sh +108 -0
  47. package/config/skills/agent/core/watch-for-event/SKILL.md +19 -0
  48. package/config/skills/agent/onboarding/materialize-team/SKILL.md +94 -0
  49. package/config/skills/agent/onboarding/materialize-team/execute.sh +98 -0
  50. package/config/skills/agent/onboarding/recommend-team/SKILL.md +90 -0
  51. package/config/skills/agent/onboarding/recommend-team/execute.sh +96 -0
  52. package/config/skills/agent/xhs-article-to-image/SKILL.md +20 -0
  53. package/config/skills/auditor/score-task/SKILL.md +15 -0
  54. package/config/skills/orchestrator/assign-task/execute.sh +28 -4
  55. package/config/skills/orchestrator/cancel-all-schedules/SKILL.md +15 -1
  56. package/config/skills/orchestrator/complete-task/execute.sh +45 -4
  57. package/config/skills/orchestrator/delegate-task/SKILL.md +1 -0
  58. package/config/skills/orchestrator/delegate-task/execute.sh +41 -2
  59. package/config/skills/orchestrator/get-tasks/execute.sh +22 -18
  60. package/config/skills/orchestrator/list-schedules/SKILL.md +15 -1
  61. package/config/skills/orchestrator/update-team-member/SKILL.md +20 -0
  62. package/config/skills/team-leader/decompose-goal/execute.sh +51 -20
  63. package/config/skills/team-leader/delegate-task/execute.sh +67 -26
  64. package/config/skills/team-leader/delegate-task/execute.test.sh +117 -0
  65. package/config/skills/team-leader/verify-output/execute.sh +19 -20
  66. package/config/sops/common/dev-process-tiers.md +181 -0
  67. package/config/sops/common/owner-facing-communication.md +131 -0
  68. package/config/souls/orchestrator.md +8 -0
  69. package/config/souls/team-leader.md +77 -0
  70. package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts.map +1 -1
  71. package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +4 -1
  72. package/dist/backend/backend/src/controllers/active-work/active-work.controller.js.map +1 -1
  73. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts +8 -1
  74. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts.map +1 -1
  75. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js +30 -26
  76. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -1
  77. package/dist/backend/backend/src/controllers/api.controller.d.ts +0 -9
  78. package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -1
  79. package/dist/backend/backend/src/controllers/api.controller.js +4 -32
  80. package/dist/backend/backend/src/controllers/api.controller.js.map +1 -1
  81. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  82. package/dist/backend/backend/src/controllers/chat/chat.controller.js +5 -2
  83. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  84. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  85. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +5 -2
  86. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  87. package/dist/backend/backend/src/controllers/checklist/checklist.controller.d.ts +45 -0
  88. package/dist/backend/backend/src/controllers/checklist/checklist.controller.d.ts.map +1 -0
  89. package/dist/backend/backend/src/controllers/checklist/checklist.controller.js +122 -0
  90. package/dist/backend/backend/src/controllers/checklist/checklist.controller.js.map +1 -0
  91. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts +24 -0
  92. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
  93. package/dist/backend/backend/src/controllers/memory/memory.controller.js +69 -1
  94. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  95. package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts +1 -0
  96. package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts.map +1 -1
  97. package/dist/backend/backend/src/controllers/memory/memory.routes.js +3 -1
  98. package/dist/backend/backend/src/controllers/memory/memory.routes.js.map +1 -1
  99. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  100. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +80 -5
  101. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  102. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +1 -0
  103. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -1
  104. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +30 -0
  105. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -1
  106. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts +41 -0
  107. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -0
  108. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +213 -0
  109. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -0
  110. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts +21 -0
  111. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts.map +1 -0
  112. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js +27 -0
  113. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js.map +1 -0
  114. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  115. package/dist/backend/backend/src/controllers/slack/slack.controller.js +97 -0
  116. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  117. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts +13 -3
  118. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts.map +1 -1
  119. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js +29 -24
  120. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js.map +1 -1
  121. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
  122. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +61 -13
  123. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  124. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +159 -7
  125. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  126. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +421 -37
  127. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  128. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
  129. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +15 -1
  130. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
  131. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  132. package/dist/backend/backend/src/controllers/team/team.controller.js +221 -10
  133. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  134. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts +22 -0
  135. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts.map +1 -1
  136. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js +92 -0
  137. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js.map +1 -1
  138. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.d.ts.map +1 -1
  139. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js +6 -2
  140. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js.map +1 -1
  141. package/dist/backend/backend/src/controllers/types.d.ts +1 -2
  142. package/dist/backend/backend/src/controllers/types.d.ts.map +1 -1
  143. package/dist/backend/backend/src/index.d.ts +4 -1
  144. package/dist/backend/backend/src/index.d.ts.map +1 -1
  145. package/dist/backend/backend/src/index.js +307 -64
  146. package/dist/backend/backend/src/index.js.map +1 -1
  147. package/dist/backend/backend/src/models/Project.d.ts +2 -0
  148. package/dist/backend/backend/src/models/Project.d.ts.map +1 -1
  149. package/dist/backend/backend/src/models/Project.js +10 -1
  150. package/dist/backend/backend/src/models/Project.js.map +1 -1
  151. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  152. package/dist/backend/backend/src/routes/api.routes.js +4 -1
  153. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  154. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts +15 -0
  155. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  156. package/dist/backend/backend/src/routes/modules/task-management.routes.js +23 -43
  157. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  158. package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.d.ts +87 -0
  159. package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.d.ts.map +1 -0
  160. package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.js +116 -0
  161. package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.js.map +1 -0
  162. package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +46 -6
  163. package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
  164. package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +56 -13
  165. package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
  166. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +9 -0
  167. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  168. package/dist/backend/backend/src/services/agent/agent-registration.service.js +58 -11
  169. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  170. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +31 -5
  171. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  172. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +69 -29
  173. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  174. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  175. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +113 -75
  176. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  177. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -1
  178. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +5 -3
  179. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -1
  180. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +35 -0
  181. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
  182. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +127 -3
  183. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
  184. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +79 -0
  185. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +1 -0
  186. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +145 -0
  187. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +1 -0
  188. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +91 -0
  189. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -0
  190. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +120 -0
  191. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -0
  192. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +64 -9
  193. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
  194. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +125 -15
  195. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
  196. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  197. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +101 -33
  198. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  199. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +76 -1
  200. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  201. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +73 -1
  202. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  203. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +5 -5
  204. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  205. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +22 -8
  206. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  207. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +10 -0
  208. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  209. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +160 -4
  210. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  211. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts +37 -0
  212. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  213. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +77 -3
  214. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  215. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
  216. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
  217. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
  218. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
  219. package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
  220. package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
  221. package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
  222. package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
  223. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +4 -0
  224. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  225. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +4 -0
  226. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  227. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
  228. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
  229. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
  230. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
  231. package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
  232. package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
  233. package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
  234. package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.js.map +1 -0
  235. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  236. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +45 -0
  237. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  238. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +16 -0
  239. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  240. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  241. package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.d.ts +106 -0
  242. package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
  243. package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
  244. package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
  245. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
  246. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +28 -0
  247. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
  248. package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.d.ts +38 -6
  249. package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -1
  250. package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.js +73 -10
  251. package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -1
  252. package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
  253. package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
  254. package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
  255. package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
  256. package/dist/backend/backend/src/services/autonomous/index.d.ts +7 -3
  257. package/dist/backend/backend/src/services/autonomous/index.d.ts.map +1 -1
  258. package/dist/backend/backend/src/services/autonomous/index.js +7 -3
  259. package/dist/backend/backend/src/services/autonomous/index.js.map +1 -1
  260. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  261. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +16 -22
  262. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  263. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +13 -0
  264. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  265. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +15 -0
  266. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  267. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +11 -0
  268. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -1
  269. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +51 -19
  270. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -1
  271. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +18 -0
  272. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  273. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +23 -0
  274. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  275. package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -1
  276. package/dist/backend/backend/src/services/core/config.service.js +8 -1
  277. package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
  278. package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts +51 -0
  279. package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts.map +1 -0
  280. package/dist/backend/backend/src/services/core/crewly-home.utils.js +59 -0
  281. package/dist/backend/backend/src/services/core/crewly-home.utils.js.map +1 -0
  282. package/dist/backend/backend/src/services/core/state-invariant.types.d.ts +53 -0
  283. package/dist/backend/backend/src/services/core/state-invariant.types.d.ts.map +1 -0
  284. package/dist/backend/backend/src/services/core/state-invariant.types.js +61 -0
  285. package/dist/backend/backend/src/services/core/state-invariant.types.js.map +1 -0
  286. package/dist/backend/backend/src/services/core/storage.service.d.ts +20 -0
  287. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  288. package/dist/backend/backend/src/services/core/storage.service.js +96 -8
  289. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  290. package/dist/backend/backend/src/services/core/teams-backup.service.d.ts +94 -4
  291. package/dist/backend/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
  292. package/dist/backend/backend/src/services/core/teams-backup.service.js +172 -10
  293. package/dist/backend/backend/src/services/core/teams-backup.service.js.map +1 -1
  294. package/dist/backend/backend/src/services/index.d.ts +0 -2
  295. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  296. package/dist/backend/backend/src/services/index.js +0 -2
  297. package/dist/backend/backend/src/services/index.js.map +1 -1
  298. package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.d.ts +78 -0
  299. package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.d.ts.map +1 -0
  300. package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.js +209 -0
  301. package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.js.map +1 -0
  302. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts +331 -0
  303. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
  304. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js +413 -0
  305. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
  306. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -1
  307. package/dist/backend/backend/src/services/intent-task/intent-task.service.js +13 -4
  308. package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -1
  309. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
  310. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +18 -13
  311. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
  312. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +102 -0
  313. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +1 -0
  314. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js +118 -0
  315. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js.map +1 -0
  316. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
  317. package/dist/backend/backend/src/services/knowledge/vector-store.service.js +11 -15
  318. package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
  319. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +20 -0
  320. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  321. package/dist/backend/backend/src/services/memory/agent-memory.service.js +27 -2
  322. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
  323. package/dist/backend/backend/src/services/memory/memory-supersession.service.d.ts +104 -0
  324. package/dist/backend/backend/src/services/memory/memory-supersession.service.d.ts.map +1 -0
  325. package/dist/backend/backend/src/services/memory/memory-supersession.service.js +127 -0
  326. package/dist/backend/backend/src/services/memory/memory-supersession.service.js.map +1 -0
  327. package/dist/backend/backend/src/services/memory/memory.service.d.ts +48 -17
  328. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  329. package/dist/backend/backend/src/services/memory/memory.service.js +65 -35
  330. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  331. package/dist/backend/backend/src/services/memory/mission-context.service.d.ts +168 -0
  332. package/dist/backend/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
  333. package/dist/backend/backend/src/services/memory/mission-context.service.js +365 -0
  334. package/dist/backend/backend/src/services/memory/mission-context.service.js.map +1 -0
  335. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts +138 -0
  336. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -0
  337. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js +183 -0
  338. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -0
  339. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -1
  340. package/dist/backend/backend/src/services/memory/vector-store.service.js +7 -11
  341. package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -1
  342. package/dist/backend/backend/src/services/memory/working-memory.service.d.ts +232 -0
  343. package/dist/backend/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
  344. package/dist/backend/backend/src/services/memory/working-memory.service.js +417 -0
  345. package/dist/backend/backend/src/services/memory/working-memory.service.js.map +1 -0
  346. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  347. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +23 -2
  348. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  349. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +2 -2
  350. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  351. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts +27 -7
  352. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts.map +1 -1
  353. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js +66 -27
  354. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js.map +1 -1
  355. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.d.ts.map +1 -1
  356. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js +2 -2
  357. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js.map +1 -1
  358. package/dist/backend/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
  359. package/dist/backend/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
  360. package/dist/backend/backend/src/services/observability/agent-behavior-log.service.js +284 -0
  361. package/dist/backend/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
  362. package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
  363. package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
  364. package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
  365. package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
  366. package/dist/backend/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
  367. package/dist/backend/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
  368. package/dist/backend/backend/src/services/observability/agent-behavior-log.types.js +48 -0
  369. package/dist/backend/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
  370. package/dist/backend/backend/src/services/observability/observability-db.d.ts +84 -0
  371. package/dist/backend/backend/src/services/observability/observability-db.d.ts.map +1 -0
  372. package/dist/backend/backend/src/services/observability/observability-db.js +165 -0
  373. package/dist/backend/backend/src/services/observability/observability-db.js.map +1 -0
  374. package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts +22 -0
  375. package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts.map +1 -1
  376. package/dist/backend/backend/src/services/onboarding/onboarding.service.js +36 -0
  377. package/dist/backend/backend/src/services/onboarding/onboarding.service.js.map +1 -1
  378. package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts +21 -2
  379. package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts.map +1 -1
  380. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -1
  381. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js +12 -3
  382. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -1
  383. package/dist/backend/backend/src/services/orchestrator/index.d.ts +1 -0
  384. package/dist/backend/backend/src/services/orchestrator/index.d.ts.map +1 -1
  385. package/dist/backend/backend/src/services/orchestrator/index.js +1 -0
  386. package/dist/backend/backend/src/services/orchestrator/index.js.map +1 -1
  387. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts +108 -0
  388. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -0
  389. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +165 -0
  390. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -0
  391. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +114 -0
  392. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -0
  393. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +299 -0
  394. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -0
  395. package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.d.ts +128 -0
  396. package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.d.ts.map +1 -0
  397. package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.js +195 -0
  398. package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.js.map +1 -0
  399. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts +66 -0
  400. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts.map +1 -0
  401. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js +145 -0
  402. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js.map +1 -0
  403. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts +59 -0
  404. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts.map +1 -0
  405. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js +68 -0
  406. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js.map +1 -0
  407. package/dist/backend/backend/src/services/orchestrator/orchestrator-setup.service.d.ts +114 -0
  408. package/dist/backend/backend/src/services/orchestrator/orchestrator-setup.service.d.ts.map +1 -0
  409. package/dist/backend/backend/src/services/orchestrator/orchestrator-setup.service.js +195 -0
  410. package/dist/backend/backend/src/services/orchestrator/orchestrator-setup.service.js.map +1 -0
  411. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  412. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +18 -6
  413. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  414. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts +67 -0
  415. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -0
  416. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +290 -0
  417. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -0
  418. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts +23 -1
  419. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -1
  420. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js +64 -1
  421. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js.map +1 -1
  422. package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
  423. package/dist/backend/backend/src/services/project/active-projects.service.js +2 -2
  424. package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
  425. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  426. package/dist/backend/backend/src/services/project/task-tracking.service.js +2 -2
  427. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  428. package/dist/backend/backend/src/services/prompt/prompt-generator.service.d.ts.map +1 -1
  429. package/dist/backend/backend/src/services/prompt/prompt-generator.service.js +2 -2
  430. package/dist/backend/backend/src/services/prompt/prompt-generator.service.js.map +1 -1
  431. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +51 -5
  432. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  433. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +162 -15
  434. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  435. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +15 -2
  436. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  437. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +153 -11
  438. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  439. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +31 -18
  440. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  441. package/dist/backend/backend/src/services/session/session-handoff.service.js +73 -80
  442. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  443. package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
  444. package/dist/backend/backend/src/services/session/session-state-persistence.js +15 -4
  445. package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -1
  446. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  447. package/dist/backend/backend/src/services/settings/settings.service.js +25 -0
  448. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  449. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +14 -3
  450. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  451. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +28 -3
  452. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  453. package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -1
  454. package/dist/backend/backend/src/services/slack/cross-machine-message.service.js +13 -18
  455. package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
  456. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +68 -0
  457. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  458. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +281 -21
  459. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  460. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  461. package/dist/backend/backend/src/services/slack/slack.service.js +21 -0
  462. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  463. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +15 -1
  464. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
  465. package/dist/backend/backend/src/services/task-pool/pool-storage.js +31 -8
  466. package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
  467. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +183 -0
  468. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  469. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +404 -8
  470. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  471. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +14 -1
  472. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  473. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +128 -17
  474. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  475. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts +95 -0
  476. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -0
  477. package/dist/backend/backend/src/services/v3/cascade-request-status.js +147 -0
  478. package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -0
  479. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
  480. package/dist/backend/backend/src/services/v3/escalation-router.service.js +42 -0
  481. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
  482. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
  483. package/dist/backend/backend/src/services/v3/mission-executor.service.js +16 -4
  484. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
  485. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts +87 -0
  486. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts.map +1 -0
  487. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js +152 -0
  488. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js.map +1 -0
  489. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts +253 -0
  490. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -0
  491. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +476 -0
  492. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -0
  493. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +55 -0
  494. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  495. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +257 -20
  496. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  497. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts +204 -0
  498. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -0
  499. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +575 -0
  500. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -0
  501. package/dist/backend/backend/src/services/v3/request.service.d.ts +107 -0
  502. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
  503. package/dist/backend/backend/src/services/v3/request.service.js +155 -2
  504. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
  505. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +69 -1
  506. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
  507. package/dist/backend/backend/src/services/v3/trigger-engine.service.js +157 -4
  508. package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
  509. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +50 -26
  510. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  511. package/dist/backend/backend/src/services/v3/v3-data.service.js +126 -161
  512. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  513. package/dist/backend/backend/src/services/v3/work-item-projection.d.ts +40 -0
  514. package/dist/backend/backend/src/services/v3/work-item-projection.d.ts.map +1 -0
  515. package/dist/backend/backend/src/services/v3/work-item-projection.js +115 -0
  516. package/dist/backend/backend/src/services/v3/work-item-projection.js.map +1 -0
  517. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +121 -0
  518. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -0
  519. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +268 -0
  520. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -0
  521. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -1
  522. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +11 -2
  523. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -1
  524. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  525. package/dist/backend/backend/src/services/workflow/scheduler.service.js +68 -14
  526. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  527. package/dist/backend/backend/src/types/event-bus.types.d.ts +1 -1
  528. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  529. package/dist/backend/backend/src/types/event-bus.types.js +12 -0
  530. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  531. package/dist/backend/backend/src/types/index.d.ts +11 -1
  532. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  533. package/dist/backend/backend/src/types/index.js +0 -2
  534. package/dist/backend/backend/src/types/index.js.map +1 -1
  535. package/dist/backend/backend/src/types/intent-task.types.d.ts +22 -3
  536. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
  537. package/dist/backend/backend/src/types/intent-task.types.js +201 -40
  538. package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
  539. package/dist/backend/backend/src/types/memory.types.d.ts +53 -0
  540. package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
  541. package/dist/backend/backend/src/types/memory.types.js.map +1 -1
  542. package/dist/backend/backend/src/types/orchestrator-state.types.d.ts +49 -0
  543. package/dist/backend/backend/src/types/orchestrator-state.types.d.ts.map +1 -1
  544. package/dist/backend/backend/src/types/orchestrator-state.types.js +27 -0
  545. package/dist/backend/backend/src/types/orchestrator-state.types.js.map +1 -1
  546. package/dist/backend/backend/src/types/settings.types.d.ts +38 -2
  547. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  548. package/dist/backend/backend/src/types/settings.types.js +16 -2
  549. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  550. package/dist/backend/backend/src/types/v2/request.types.d.ts +5 -1
  551. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
  552. package/dist/backend/backend/src/types/v2/request.types.js +2 -2
  553. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
  554. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +40 -1
  555. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  556. package/dist/backend/backend/src/types/v2/work-item.types.js +20 -0
  557. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  558. package/dist/backend/backend/src/utils/esm-require.utils.d.ts +111 -0
  559. package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +1 -0
  560. package/dist/backend/backend/src/utils/esm-require.utils.js +124 -0
  561. package/dist/backend/backend/src/utils/esm-require.utils.js.map +1 -0
  562. package/dist/backend/backend/src/utils/integrity-guarded-write.utils.d.ts +119 -0
  563. package/dist/backend/backend/src/utils/integrity-guarded-write.utils.d.ts.map +1 -0
  564. package/dist/backend/backend/src/utils/integrity-guarded-write.utils.js +212 -0
  565. package/dist/backend/backend/src/utils/integrity-guarded-write.utils.js.map +1 -0
  566. package/dist/backend/backend/src/utils/native-binding.utils.d.ts +128 -0
  567. package/dist/backend/backend/src/utils/native-binding.utils.d.ts.map +1 -0
  568. package/dist/backend/backend/src/utils/native-binding.utils.js +206 -0
  569. package/dist/backend/backend/src/utils/native-binding.utils.js.map +1 -0
  570. package/dist/backend/backend/src/utils/node-require.utils.d.ts +104 -0
  571. package/dist/backend/backend/src/utils/node-require.utils.d.ts.map +1 -0
  572. package/dist/backend/backend/src/utils/node-require.utils.js +111 -0
  573. package/dist/backend/backend/src/utils/node-require.utils.js.map +1 -0
  574. package/dist/cli/backend/src/models/Project.d.ts +2 -0
  575. package/dist/cli/backend/src/models/Project.d.ts.map +1 -1
  576. package/dist/cli/backend/src/models/Project.js +10 -1
  577. package/dist/cli/backend/src/models/Project.js.map +1 -1
  578. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +16 -0
  579. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  580. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  581. package/dist/cli/backend/src/services/core/config.service.d.ts.map +1 -1
  582. package/dist/cli/backend/src/services/core/config.service.js +8 -1
  583. package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
  584. package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts +51 -0
  585. package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts.map +1 -0
  586. package/dist/cli/backend/src/services/core/crewly-home.utils.js +59 -0
  587. package/dist/cli/backend/src/services/core/crewly-home.utils.js.map +1 -0
  588. package/dist/cli/backend/src/services/core/state-invariant.types.d.ts +53 -0
  589. package/dist/cli/backend/src/services/core/state-invariant.types.d.ts.map +1 -0
  590. package/dist/cli/backend/src/services/core/state-invariant.types.js +61 -0
  591. package/dist/cli/backend/src/services/core/state-invariant.types.js.map +1 -0
  592. package/dist/cli/backend/src/services/core/storage.service.d.ts +20 -0
  593. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  594. package/dist/cli/backend/src/services/core/storage.service.js +96 -8
  595. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  596. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +94 -4
  597. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
  598. package/dist/cli/backend/src/services/core/teams-backup.service.js +172 -10
  599. package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -1
  600. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts +245 -0
  601. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -0
  602. package/dist/cli/backend/src/services/event-bus/event-bus.service.js +639 -0
  603. package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -0
  604. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
  605. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +18 -13
  606. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
  607. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +102 -0
  608. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +1 -0
  609. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js +118 -0
  610. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js.map +1 -0
  611. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
  612. package/dist/cli/backend/src/services/knowledge/vector-store.service.js +11 -15
  613. package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
  614. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +20 -0
  615. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  616. package/dist/cli/backend/src/services/memory/agent-memory.service.js +27 -2
  617. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
  618. package/dist/cli/backend/src/services/memory/memory.service.d.ts +48 -17
  619. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  620. package/dist/cli/backend/src/services/memory/memory.service.js +65 -35
  621. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  622. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts +138 -0
  623. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -0
  624. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js +183 -0
  625. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -0
  626. package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts +236 -0
  627. package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts.map +1 -0
  628. package/dist/cli/backend/src/services/messaging/message-queue.service.js +581 -0
  629. package/dist/cli/backend/src/services/messaging/message-queue.service.js.map +1 -0
  630. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  631. package/dist/cli/backend/src/services/project/task-tracking.service.js +2 -2
  632. package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -1
  633. package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
  634. package/dist/cli/backend/src/services/settings/settings.service.js +25 -0
  635. package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
  636. package/dist/cli/backend/src/services/slack/slack-thread-store.service.d.ts +147 -0
  637. package/dist/cli/backend/src/services/slack/slack-thread-store.service.d.ts.map +1 -0
  638. package/dist/cli/backend/src/services/slack/slack-thread-store.service.js +258 -0
  639. package/dist/cli/backend/src/services/slack/slack-thread-store.service.js.map +1 -0
  640. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +15 -1
  641. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
  642. package/dist/cli/backend/src/services/task-pool/pool-storage.js +31 -8
  643. package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
  644. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +459 -9
  645. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  646. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +1050 -126
  647. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  648. package/dist/cli/backend/src/services/v3/work-item-projection.d.ts +40 -0
  649. package/dist/cli/backend/src/services/v3/work-item-projection.d.ts.map +1 -0
  650. package/dist/cli/backend/src/services/v3/work-item-projection.js +115 -0
  651. package/dist/cli/backend/src/services/v3/work-item-projection.js.map +1 -0
  652. package/dist/cli/backend/src/types/event-bus.types.d.ts +173 -0
  653. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -0
  654. package/dist/cli/backend/src/types/event-bus.types.js +218 -0
  655. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -0
  656. package/dist/cli/backend/src/types/index.d.ts +11 -1
  657. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  658. package/dist/cli/backend/src/types/index.js +0 -2
  659. package/dist/cli/backend/src/types/index.js.map +1 -1
  660. package/dist/cli/backend/src/types/memory.types.d.ts +53 -0
  661. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
  662. package/dist/cli/backend/src/types/memory.types.js.map +1 -1
  663. package/dist/cli/backend/src/types/messaging.types.d.ts +223 -0
  664. package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -0
  665. package/dist/cli/backend/src/types/messaging.types.js +231 -0
  666. package/dist/cli/backend/src/types/messaging.types.js.map +1 -0
  667. package/dist/cli/backend/src/types/settings.types.d.ts +38 -2
  668. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  669. package/dist/cli/backend/src/types/settings.types.js +16 -2
  670. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  671. package/dist/cli/backend/src/types/slack.types.d.ts +356 -0
  672. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -0
  673. package/dist/cli/backend/src/types/slack.types.js +66 -0
  674. package/dist/cli/backend/src/types/slack.types.js.map +1 -0
  675. package/dist/cli/backend/src/types/v2/claim.types.d.ts +2 -5
  676. package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -1
  677. package/dist/cli/backend/src/types/v2/claim.types.js +2 -5
  678. package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -1
  679. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +40 -1
  680. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  681. package/dist/cli/backend/src/types/v2/work-item.types.js +20 -0
  682. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  683. package/dist/cli/backend/src/utils/format-error.d.ts +8 -0
  684. package/dist/cli/backend/src/utils/format-error.d.ts.map +1 -0
  685. package/dist/cli/backend/src/utils/format-error.js +10 -0
  686. package/dist/cli/backend/src/utils/format-error.js.map +1 -0
  687. package/dist/cli/backend/src/utils/integrity-guarded-write.utils.d.ts +119 -0
  688. package/dist/cli/backend/src/utils/integrity-guarded-write.utils.d.ts.map +1 -0
  689. package/dist/cli/backend/src/utils/integrity-guarded-write.utils.js +212 -0
  690. package/dist/cli/backend/src/utils/integrity-guarded-write.utils.js.map +1 -0
  691. package/dist/cli/backend/src/utils/node-require.utils.d.ts +104 -0
  692. package/dist/cli/backend/src/utils/node-require.utils.d.ts.map +1 -0
  693. package/dist/cli/backend/src/utils/node-require.utils.js +111 -0
  694. package/dist/cli/backend/src/utils/node-require.utils.js.map +1 -0
  695. package/frontend/dist/assets/{index-7a4e7df5.js → index-698305f3.js} +337 -337
  696. package/frontend/dist/index.html +1 -1
  697. package/package.json +6 -2
  698. package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +0 -63
  699. package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +0 -1
  700. package/dist/backend/backend/src/controllers/eval/eval.controller.js +0 -228
  701. package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +0 -1
  702. package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +0 -23
  703. package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +0 -1
  704. package/dist/backend/backend/src/controllers/eval/eval.routes.js +0 -37
  705. package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +0 -1
  706. package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +0 -8
  707. package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +0 -1
  708. package/dist/backend/backend/src/controllers/knowledge-v3/index.js +0 -8
  709. package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +0 -1
  710. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +0 -63
  711. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +0 -1
  712. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +0 -179
  713. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +0 -1
  714. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +0 -22
  715. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +0 -1
  716. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +0 -34
  717. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +0 -1
  718. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +0 -130
  719. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +0 -1
  720. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +0 -406
  721. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +0 -1
  722. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +0 -68
  723. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +0 -1
  724. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +0 -206
  725. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +0 -1
  726. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +0 -32
  727. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +0 -1
  728. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +0 -46
  729. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +0 -1
  730. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +0 -87
  731. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +0 -1
  732. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +0 -299
  733. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +0 -1
  734. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +0 -59
  735. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +0 -1
  736. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +0 -218
  737. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +0 -1
  738. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +0 -203
  739. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +0 -1
  740. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +0 -467
  741. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +0 -1
  742. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +0 -313
  743. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +0 -1
  744. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +0 -45
  745. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +0 -1
  746. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +0 -21
  747. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +0 -1
  748. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +0 -21
  749. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +0 -1
  750. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +0 -15
  751. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +0 -1
  752. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +0 -349
  753. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +0 -1
  754. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +0 -97
  755. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +0 -1
  756. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +0 -414
  757. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +0 -1
  758. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +0 -42
  759. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +0 -1
  760. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +0 -403
  761. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +0 -1
  762. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +0 -41
  763. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +0 -1
  764. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +0 -58
  765. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +0 -1
  766. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +0 -15
  767. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +0 -1
  768. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +0 -396
  769. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +0 -1
  770. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +0 -14
  771. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +0 -1
  772. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +0 -564
  773. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +0 -1
  774. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +0 -13
  775. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +0 -1
  776. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +0 -634
  777. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +0 -1
  778. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +0 -21
  779. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +0 -1
  780. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +0 -1036
  781. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +0 -1
  782. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +0 -100
  783. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +0 -1
  784. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +0 -187
  785. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +0 -1
  786. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +0 -79
  787. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +0 -1
  788. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +0 -118
  789. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +0 -1
  790. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts +0 -113
  791. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts.map +0 -1
  792. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js +0 -179
  793. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js.map +0 -1
  794. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts +0 -131
  795. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts.map +0 -1
  796. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js +0 -227
  797. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js.map +0 -1
  798. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +0 -56
  799. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +0 -1
  800. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +0 -91
  801. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +0 -1
  802. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +0 -97
  803. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +0 -1
  804. package/dist/backend/backend/src/services/memory/learning-format.validator.js +0 -209
  805. package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +0 -1
  806. /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.d.ts +0 -0
  807. /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.d.ts.map +0 -0
  808. /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.js +0 -0
  809. /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.js.map +0 -0
@@ -0,0 +1,575 @@
1
+ /**
2
+ * RequestStatusUpdateSubscriber — pushes progress updates back to the user's
3
+ * Slack thread while a Request is in flight.
4
+ *
5
+ * **Why this exists.** 2026-05-09 dogfood feedback: when a Slack message
6
+ * triggers a Request that decomposes into Plan/Execute/Review WIs and
7
+ * runs for an hour, the user has no visibility into progress. orc replied
8
+ * once at the start ("[Plan] received, will arrange"), then went silent
9
+ * until — sometimes — a final completion broadcast much later. Owner-Facing
10
+ * Communication Standard (P0-6, PR #493) covers tone + jargon for the
11
+ * messages we DO send, but says nothing about cadence. Sustained silence
12
+ * during long-running work is its own UX failure: it forces the owner
13
+ * to ping "?" or guess whether anything is happening.
14
+ *
15
+ * **What this does.** Subscribes to the canonical lifecycle events on
16
+ * the bus and posts a brief, plain-language status update to the
17
+ * originating Slack thread when:
18
+ * - a child WorkItem reaches done_by_worker / verified
19
+ * - a child WI is rejected / blocked / failed
20
+ * - the parent Request transitions to a terminal status
21
+ *
22
+ * Plus a heartbeat: if a Request has been in flight for longer than
23
+ * the heartbeat interval since the last status post, the subscriber
24
+ * emits a brief "still working" update. This catches the case where
25
+ * a single WI runs for hours without a milestone event firing.
26
+ *
27
+ * **What this is NOT.** This is not a replacement for orc's first reply
28
+ * (the SLA `respond_to_user` path handles that). It's a layer on top
29
+ * that fires only after the Request is past its initial ack and while
30
+ * downstream work is still moving.
31
+ *
32
+ * **Anti-spam.** The subscriber tracks `lastStatusPostedAt` per Request
33
+ * in memory. Non-milestone events within MIN_INTER_POST_MS of the last
34
+ * post are coalesced. Milestones (terminal Request status changes)
35
+ * always go through.
36
+ *
37
+ * @module services/v3/request-status-update.subscriber
38
+ */
39
+ import { LoggerService } from '../core/logger.service.js';
40
+ import { TERMINAL_WORK_ITEM_STATUSES } from '../../types/v2/work-item.types.js';
41
+ import { TERMINAL_REQUEST_STATUSES, isValidRequestTransition } from '../../types/v2/index.js';
42
+ /**
43
+ * WorkItem statuses that count as "terminal" for the heartbeat's
44
+ * is-this-Request-actually-still-in-flight check.
45
+ *
46
+ * Imported from `work-item.types.ts` so the closer agrees with the
47
+ * canonical contract (`{done, verified, cancelled}`) used by
48
+ * `RequestService.update`'s child-validation gate. The previous shape
49
+ * of this constant was wider — it also included `done_by_worker`,
50
+ * `failed`, and `rejected` — which produced a real bug:
51
+ *
52
+ * 2026-05-09 dogfood: a Request with one `done_by_worker` child (verify
53
+ * WI cancelled out-of-band) and two `cancelled` children was deemed
54
+ * "all terminal" by the closer, but `RequestService.update` then refused
55
+ * the close because `done_by_worker` is not in the canonical terminal
56
+ * set. The closer logged a confusing "stale Request close failed"
57
+ * warning every 30 minutes and the Request stayed wedged in `running`.
58
+ *
59
+ * Aligning the closer's set with the validation gate keeps both views
60
+ * consistent. Trade-off: Requests with stuck-but-recoverable children
61
+ * (`done_by_worker` awaiting verification, `failed` awaiting BRIDGE-1
62
+ * retry, `rejected` awaiting re-queue) are NOT auto-closed by the
63
+ * sweep — they stay in flight until the recovery path completes or a
64
+ * human cancels them. That's the right call: the closer's job is to
65
+ * mop up genuinely-finished Requests, not to short-circuit pipelines
66
+ * that are merely paused.
67
+ */
68
+ const TERMINAL_WORKITEM_STATUSES = TERMINAL_WORK_ITEM_STATUSES;
69
+ // ---------------------------------------------------------------------------
70
+ // Tunables
71
+ // ---------------------------------------------------------------------------
72
+ /**
73
+ * Default heartbeat interval. The subscriber only emits a heartbeat when
74
+ * the request has been quiet (no other status post) for at least this long
75
+ * AND the request is still in flight.
76
+ */
77
+ const DEFAULT_HEARTBEAT_MINUTES = 30;
78
+ /**
79
+ * Minimum time between any two posts on the same thread. Non-milestone
80
+ * events landing inside this window are coalesced. Milestones (terminal
81
+ * Request status) bypass this check — the user always sees the final
82
+ * verdict.
83
+ */
84
+ const MIN_INTER_POST_MS = 5 * 60 * 1000;
85
+ /**
86
+ * Events the subscriber listens to.
87
+ */
88
+ const SUBSCRIBED_EVENTS = [
89
+ 'task:done_by_worker',
90
+ 'task:verified',
91
+ 'task:rejected',
92
+ 'task:blocked',
93
+ 'task:failed',
94
+ ];
95
+ /**
96
+ * Parse the `sourceConversationItemId` of a Slack-originated Request into
97
+ * the `(channelId, threadTs)` pair needed to post back to the same thread.
98
+ *
99
+ * Format: `slack-{channelId}-{ts1}.{ts2}` OR `slack-{channelId}-{ts1}-{ts2}`
100
+ * (the bridge stamps both shapes — the second is the underscore-friendly
101
+ * variant). The threadTs we want is `{ts1}.{ts2}` (dot-joined).
102
+ *
103
+ * @param scid - The Request's `sourceConversationItemId`
104
+ * @returns Parsed context, or null if the id is not a Slack id we recognise
105
+ */
106
+ /**
107
+ * Compute a stable, content-only fingerprint of a Request's child-WI
108
+ * state. Two snapshots produce the same fingerprint iff every status
109
+ * count is equal — so a heartbeat that would say "still 3 blocked, 0
110
+ * done" matches the previous "still 3 blocked, 0 done" and gets
111
+ * suppressed by {@link RequestStatusUpdateSubscriber.runHeartbeat}.
112
+ *
113
+ * Uses status counts only — not WI ids or titles — so cosmetic
114
+ * re-decompositions of the same Request (different uuids, same shape)
115
+ * still match. WI churn that doesn't move the count needle isn't a
116
+ * progress signal.
117
+ *
118
+ * @param childWIs - All WIs whose `requestId` matches the parent
119
+ * @returns A short string fingerprint, e.g. `done=1,running=0,queued=0,blocked=3,failed=0,total=4`
120
+ */
121
+ export function computeStateFingerprint(childWIs) {
122
+ const counts = { done: 0, running: 0, queued: 0, blocked: 0, failed: 0 };
123
+ for (const wi of childWIs) {
124
+ const s = wi.status;
125
+ if (s === 'done' || s === 'verified' || s === 'done_by_worker')
126
+ counts.done++;
127
+ else if (s === 'running')
128
+ counts.running++;
129
+ else if (s === 'queued')
130
+ counts.queued++;
131
+ else if (s === 'blocked')
132
+ counts.blocked++;
133
+ else if (s === 'failed' || s === 'cancelled')
134
+ counts.failed++;
135
+ }
136
+ return (`done=${counts.done},running=${counts.running},queued=${counts.queued},` +
137
+ `blocked=${counts.blocked},failed=${counts.failed},total=${childWIs.length}`);
138
+ }
139
+ export function parseSlackThreadContext(scid) {
140
+ if (!scid || !scid.startsWith('slack-'))
141
+ return null;
142
+ // 2026-05-13 dogfood fix: Slack thread-reply Requests use the
143
+ // `slack-{channelId}-{threadRoot}-msg-{messageTs}` encoding so that
144
+ // the SLA threadIndex keys on the actual thread root (which is what
145
+ // orc replies to via reply-slack). Strip the trailing `-msg-{ts}`
146
+ // before extracting threadTs so both shapes parse to the thread root.
147
+ // Top-level messages (`slack-{channelId}-{ts}`) are unaffected — the
148
+ // strip is a no-op on those.
149
+ const stripped = scid.replace(/-msg-\d+\.\d+$/, '');
150
+ const m = stripped.match(/^slack-(.+)-(\d+)[.-](\d+)$/);
151
+ if (!m)
152
+ return null;
153
+ const [, channelId, ts1, ts2] = m;
154
+ return { channelId, threadTs: `${ts1}.${ts2}` };
155
+ }
156
+ export class RequestStatusUpdateSubscriber {
157
+ eventBus;
158
+ requestService;
159
+ taskPool;
160
+ slackPoster;
161
+ heartbeatMinutes;
162
+ logger;
163
+ scheduler;
164
+ unsubscribers = [];
165
+ heartbeatHandle = null;
166
+ started = false;
167
+ /** In-memory map: requestId → epoch ms of last status post. */
168
+ lastPostedAt = new Map();
169
+ /**
170
+ * In-memory map: requestId → state-fingerprint of the last heartbeat
171
+ * post. The heartbeat sweep skips a Request if its current fingerprint
172
+ * matches the last one — there's no point telling the user "still 3
173
+ * blocked" once an hour when nothing has changed since the previous
174
+ * "still 3 blocked" message.
175
+ *
176
+ * Bug shape (2026-05-09 dogfood): a Slack thread received 7+ identical
177
+ * "⏳ 还在做。已完成 0/4, 进行中 0, 排队 0, 卡住 3" messages over the
178
+ * day because the WI state genuinely hadn't moved (Plan WI was wedged
179
+ * blocked) but the heartbeat cadence faithfully kept firing. Plain-
180
+ * language UX rule: a "no change" heartbeat IS noise, not signal.
181
+ *
182
+ * Fingerprint is derived from the {done, running, queued, blocked,
183
+ * failed, total} counts (see {@link buildHeartbeatText}). Only counts —
184
+ * not WI ids or titles — so cosmetic re-decompositions don't trigger
185
+ * a fresh ping.
186
+ */
187
+ lastHeartbeatFingerprint = new Map();
188
+ /** In-flight async dispatch promises (test affordance). */
189
+ pendingDispatches = new Set();
190
+ constructor(deps) {
191
+ this.eventBus = deps.eventBus;
192
+ this.requestService = deps.requestService;
193
+ this.taskPool = deps.taskPool;
194
+ this.slackPoster = deps.slackPoster;
195
+ this.heartbeatMinutes = deps.heartbeatMinutes ?? DEFAULT_HEARTBEAT_MINUTES;
196
+ this.logger =
197
+ deps.logger ?? LoggerService.getInstance().createComponentLogger('RequestStatusUpdateSubscriber');
198
+ this.scheduler = deps.scheduler ?? {
199
+ setInterval: (fn, ms) => {
200
+ const t = setInterval(fn, ms);
201
+ // Don't keep the event loop alive just for the heartbeat sweep.
202
+ if (typeof t.unref === 'function') {
203
+ t.unref();
204
+ }
205
+ return t;
206
+ },
207
+ clearInterval: (h) => clearInterval(h),
208
+ };
209
+ }
210
+ /**
211
+ * Subscribe to bus events + start the heartbeat sweep. Idempotent.
212
+ */
213
+ start() {
214
+ if (this.started)
215
+ return;
216
+ this.started = true;
217
+ for (const eventType of SUBSCRIBED_EVENTS) {
218
+ this.unsubscribers.push(this.eventBus.onInProcess(eventType, (e) => this.safeDispatch(eventType, e)));
219
+ }
220
+ if (this.heartbeatMinutes > 0) {
221
+ const intervalMs = this.heartbeatMinutes * 60 * 1000;
222
+ this.heartbeatHandle = this.scheduler.setInterval(() => {
223
+ // Don't await — this runs at scheduler cadence; an overlapping
224
+ // sweep is best left to skip itself via the inter-post window.
225
+ this.runHeartbeat().catch((err) => {
226
+ this.logger.warn('Heartbeat sweep threw', {
227
+ error: err instanceof Error ? err.message : String(err),
228
+ });
229
+ });
230
+ }, intervalMs);
231
+ }
232
+ this.logger.info('RequestStatusUpdateSubscriber subscribed', {
233
+ eventTypes: SUBSCRIBED_EVENTS,
234
+ heartbeatMinutes: this.heartbeatMinutes,
235
+ });
236
+ }
237
+ /**
238
+ * Detach subscriptions + stop heartbeat. Safe to call repeatedly.
239
+ */
240
+ stop() {
241
+ for (const unsubscribe of this.unsubscribers) {
242
+ try {
243
+ unsubscribe();
244
+ }
245
+ catch (err) {
246
+ this.logger.warn('Status-update unsubscribe threw', {
247
+ error: err instanceof Error ? err.message : String(err),
248
+ });
249
+ }
250
+ }
251
+ this.unsubscribers = [];
252
+ if (this.heartbeatHandle !== null) {
253
+ this.scheduler.clearInterval(this.heartbeatHandle);
254
+ this.heartbeatHandle = null;
255
+ }
256
+ this.started = false;
257
+ }
258
+ /**
259
+ * Wait for in-flight async dispatches to settle. Test affordance.
260
+ */
261
+ async flushPending() {
262
+ while (this.pendingDispatches.size > 0) {
263
+ const inFlight = Array.from(this.pendingDispatches);
264
+ await Promise.allSettled(inFlight);
265
+ }
266
+ }
267
+ /**
268
+ * Manual trigger for the heartbeat sweep. Test affordance + ops button.
269
+ */
270
+ async runHeartbeat() {
271
+ let posted = 0;
272
+ let allRequests;
273
+ try {
274
+ allRequests = await this.requestService.listAll();
275
+ }
276
+ catch (err) {
277
+ this.logger.warn('Heartbeat: listAll failed', {
278
+ error: err instanceof Error ? err.message : String(err),
279
+ });
280
+ return 0;
281
+ }
282
+ const now = Date.now();
283
+ const stalenessMs = this.heartbeatMinutes * 60 * 1000;
284
+ for (const r of allRequests) {
285
+ // Only follow up on Slack-originated, non-terminal Requests.
286
+ if (TERMINAL_REQUEST_STATUSES.has(r.status))
287
+ continue;
288
+ const slackCtx = parseSlackThreadContext(r.sourceConversationItemId);
289
+ if (!slackCtx)
290
+ continue;
291
+ const last = this.lastPostedAt.get(r.id);
292
+ if (last !== undefined && now - last < stalenessMs)
293
+ continue;
294
+ // No status update has been emitted for this Request since the
295
+ // heartbeat window started. Post a heartbeat unless either:
296
+ // (a) there's genuinely nothing to report (zero in-flight WIs), or
297
+ // (b) the WI state-fingerprint matches the last heartbeat — i.e.
298
+ // nothing has changed since we last said "still 3 blocked",
299
+ // so saying it again is noise.
300
+ const items = await this.taskPool.getAllItems();
301
+ const childWIs = items.filter((wi) => wi.requestId === r.id);
302
+ if (childWIs.length === 0)
303
+ continue;
304
+ // All-terminal guard — when every child WI is terminal but the
305
+ // Request itself is still non-terminal, the cascade upstream got
306
+ // skipped (cascadeRequestStatus is wired to the retired
307
+ // `v3:task_*` events on V3DataService — see 2026-05-09 dogfood
308
+ // bug, Request 6d60a1cd had 4 cancelled WIs and the Request
309
+ // stayed in `ready` for hours, generating misleading
310
+ // "0/4, 进行中 0, 排队 0, 卡住 0" heartbeats every sweep).
311
+ // Close the Request instead of pinging the user with a
312
+ // confusing zero-everywhere line.
313
+ const allTerminal = childWIs.every((wi) => TERMINAL_WORKITEM_STATUSES.has(wi.status));
314
+ if (allTerminal) {
315
+ await this.closeStaleRequest(r, childWIs);
316
+ continue;
317
+ }
318
+ const fingerprint = computeStateFingerprint(childWIs);
319
+ const lastFp = this.lastHeartbeatFingerprint.get(r.id);
320
+ if (lastFp === fingerprint) {
321
+ this.logger.debug('Heartbeat skipped — state unchanged since last post', {
322
+ requestId: r.id,
323
+ fingerprint,
324
+ });
325
+ continue;
326
+ }
327
+ const text = this.buildHeartbeatText(r, childWIs);
328
+ try {
329
+ await this.slackPoster({ channelId: slackCtx.channelId, text, threadTs: slackCtx.threadTs });
330
+ this.lastPostedAt.set(r.id, now);
331
+ this.lastHeartbeatFingerprint.set(r.id, fingerprint);
332
+ posted++;
333
+ }
334
+ catch (err) {
335
+ this.logger.warn('Heartbeat post failed', {
336
+ requestId: r.id,
337
+ error: err instanceof Error ? err.message : String(err),
338
+ });
339
+ }
340
+ }
341
+ if (posted > 0) {
342
+ this.logger.info('Heartbeat sweep posted updates', { count: posted });
343
+ }
344
+ return posted;
345
+ }
346
+ // -------------------------------------------------------------------------
347
+ // Event handler
348
+ // -------------------------------------------------------------------------
349
+ async handleTaskEvent(eventType, event) {
350
+ const workItemId = event.workItemId ?? this.extractWorkItemId(event);
351
+ if (!workItemId)
352
+ return;
353
+ const wi = await this.taskPool.findWorkItem(workItemId);
354
+ if (!wi || !wi.requestId)
355
+ return;
356
+ const request = await this.requestService.getById(wi.requestId);
357
+ if (!request)
358
+ return;
359
+ const slackCtx = parseSlackThreadContext(request.sourceConversationItemId);
360
+ if (!slackCtx)
361
+ return;
362
+ // Spam guard: coalesce non-milestone events within the inter-post window.
363
+ // We treat all task lifecycle events as non-milestone here. The Request
364
+ // terminal cascade fires `request:status` events on the SlackBridge SLA
365
+ // path, where the existing `markResolvedByThread` handles user-facing
366
+ // closure separately.
367
+ const last = this.lastPostedAt.get(request.id);
368
+ if (last !== undefined && Date.now() - last < MIN_INTER_POST_MS) {
369
+ this.logger.debug('Coalesced status update (within MIN_INTER_POST_MS)', {
370
+ requestId: request.id,
371
+ eventType,
372
+ sinceLastMs: Date.now() - last,
373
+ });
374
+ return;
375
+ }
376
+ const text = this.buildEventText(eventType, wi, request);
377
+ try {
378
+ await this.slackPoster({ channelId: slackCtx.channelId, text, threadTs: slackCtx.threadTs });
379
+ this.lastPostedAt.set(request.id, Date.now());
380
+ }
381
+ catch (err) {
382
+ this.logger.warn('Status update post failed', {
383
+ requestId: request.id,
384
+ eventType,
385
+ error: err instanceof Error ? err.message : String(err),
386
+ });
387
+ }
388
+ }
389
+ /**
390
+ * Best-effort `workItemId` extraction from an event payload. Newer
391
+ * publishers set the canonical field; older ones encode it on
392
+ * `eventId` (`task:done_by_worker:{workItemId}` shape).
393
+ */
394
+ extractWorkItemId(event) {
395
+ if (event.workItemId)
396
+ return event.workItemId;
397
+ const eid = event.id ?? '';
398
+ const match = eid.match(/^task:[^:]+:(.+)$/);
399
+ if (match)
400
+ return match[1];
401
+ return undefined;
402
+ }
403
+ // -------------------------------------------------------------------------
404
+ // Message templates (plain language, per Owner-Facing Comm Standard P0-6)
405
+ // -------------------------------------------------------------------------
406
+ buildEventText(eventType, wi, _request) {
407
+ const titleShort = (wi.title ?? '').split('\n')[0].slice(0, 60);
408
+ const targetShort = humanizeAgentName(wi.target);
409
+ switch (eventType) {
410
+ case 'task:done_by_worker':
411
+ return `✅ ${targetShort} 完成了「${titleShort}」, 等下一步。`;
412
+ case 'task:verified':
413
+ return `🟢 「${titleShort}」已通过检查。`;
414
+ case 'task:rejected':
415
+ return `🔁 「${titleShort}」检查未通过, 让 ${targetShort} 重做。`;
416
+ case 'task:blocked':
417
+ return `⛔ 「${titleShort}」卡住了 (target=${targetShort})。我会跟进。`;
418
+ case 'task:failed':
419
+ return `❌ 「${titleShort}」失败 (target=${targetShort})。我会跟进或转交。`;
420
+ default:
421
+ return `更新: 「${titleShort}」状态变化 (${eventType})。`;
422
+ }
423
+ }
424
+ buildHeartbeatText(_request, childWIs) {
425
+ const counts = {
426
+ done: 0,
427
+ running: 0,
428
+ queued: 0,
429
+ blocked: 0,
430
+ failed: 0,
431
+ other: 0,
432
+ };
433
+ for (const wi of childWIs) {
434
+ const s = wi.status;
435
+ if (s === 'done' || s === 'verified' || s === 'done_by_worker')
436
+ counts.done++;
437
+ else if (s === 'running')
438
+ counts.running++;
439
+ else if (s === 'queued')
440
+ counts.queued++;
441
+ else if (s === 'blocked')
442
+ counts.blocked++;
443
+ else if (s === 'failed' || s === 'cancelled')
444
+ counts.failed++;
445
+ else
446
+ counts.other++;
447
+ }
448
+ // Only surface the failed/cancelled bucket when it's non-zero.
449
+ // Hiding it unconditionally (the original shape) was the bug —
450
+ // 4 cancelled WIs rendered as "0/4, 进行中 0, 排队 0, 卡住 0",
451
+ // which reads as "everything vanished" rather than "everything
452
+ // got cancelled". The all-terminal guard in runHeartbeat now
453
+ // intercepts the pure-cancelled case, but a mixed Request with
454
+ // some cancelled and some still in-flight would still hit this
455
+ // path, so include the count for honesty.
456
+ const tail = counts.failed > 0 ? `, 取消/失败 ${counts.failed}` : '';
457
+ return (`⏳ 还在做。已完成 ${counts.done}/${childWIs.length}, ` +
458
+ `进行中 ${counts.running}, 排队 ${counts.queued}, 卡住 ${counts.blocked}${tail}。` +
459
+ ` 我会在有变化时再更新。`);
460
+ }
461
+ /**
462
+ * Close a Request whose every child WI has reached a terminal status
463
+ * but whose own status hasn't been cascaded. Picks `done` if any
464
+ * child landed on a success-shaped terminal; otherwise `cancelled`.
465
+ *
466
+ * Honours `REQUEST_TRANSITIONS` — `ready → done` is illegal in the
467
+ * state machine, so for `ready` Requests we step through `running`
468
+ * first (a single `running` hop is harmless because the Request is
469
+ * about to land in a terminal state immediately after).
470
+ *
471
+ * Best-effort. Logs but does not throw on failure: the heartbeat
472
+ * sweep must keep moving across other Requests.
473
+ */
474
+ async closeStaleRequest(request, childWIs) {
475
+ // `done_by_worker` is filtered out by the all-terminal guard
476
+ // upstream (it's not in TERMINAL_WORKITEM_STATUSES anymore — see
477
+ // the constant definition for the rationale). So success only
478
+ // comes from `done` or `verified` here.
479
+ const hasSuccess = childWIs.some((wi) => wi.status === 'done' || wi.status === 'verified');
480
+ const target = hasSuccess ? 'done' : 'cancelled';
481
+ const log = (extra = {}) => ({
482
+ requestId: request.id,
483
+ previousStatus: request.status,
484
+ newStatus: target,
485
+ childCount: childWIs.length,
486
+ childStatuses: childWIs.map((wi) => wi.status),
487
+ ...extra,
488
+ });
489
+ try {
490
+ // Direct transition when allowed.
491
+ if (isValidRequestTransition(request.status, target)) {
492
+ await this.requestService.update(request.id, { status: target });
493
+ this.logger.info('Heartbeat closed stale Request (all children terminal)', log());
494
+ return;
495
+ }
496
+ // `ready → done` is invalid; step through `running` first.
497
+ // ready → running → done is the canonical path for Requests
498
+ // that bypassed the running stage entirely.
499
+ if (target === 'done' &&
500
+ isValidRequestTransition(request.status, 'running') &&
501
+ isValidRequestTransition('running', 'done')) {
502
+ await this.requestService.update(request.id, { status: 'running' });
503
+ await this.requestService.update(request.id, { status: 'done' });
504
+ this.logger.info('Heartbeat closed stale Request via running hop', log());
505
+ return;
506
+ }
507
+ this.logger.warn('Heartbeat: stale Request close blocked by state machine', log());
508
+ }
509
+ catch (err) {
510
+ this.logger.warn('Heartbeat: stale Request close failed', {
511
+ ...log(),
512
+ error: err instanceof Error ? err.message : String(err),
513
+ });
514
+ }
515
+ }
516
+ // -------------------------------------------------------------------------
517
+ // Plumbing
518
+ // -------------------------------------------------------------------------
519
+ safeDispatch(eventType, event) {
520
+ const dispatch = (async () => {
521
+ try {
522
+ await this.handleTaskEvent(eventType, event);
523
+ }
524
+ catch (err) {
525
+ this.logger.error('Status-update handler threw', {
526
+ eventType,
527
+ eventId: event.id,
528
+ error: err instanceof Error ? err.message : String(err),
529
+ });
530
+ }
531
+ })();
532
+ this.pendingDispatches.add(dispatch);
533
+ dispatch.finally(() => {
534
+ this.pendingDispatches.delete(dispatch);
535
+ });
536
+ return dispatch;
537
+ }
538
+ }
539
+ /**
540
+ * Translate an internal session name into something the owner recognises.
541
+ * Mirrors the spirit of P0-6 Owner-Facing Communication Standard rule 4
542
+ * ("Translate every internal term before sending"). The rule is a loose
543
+ * one — the goal is "less jargony", not "perfect human name lookup".
544
+ *
545
+ * @param sessionName - e.g. 'crewly-product-leo-21a5477e' or 'crewly-orc'
546
+ * @returns A short label suitable for Slack ('Leo', 'Orc', 'Sam', ...)
547
+ */
548
+ function humanizeAgentName(sessionName) {
549
+ if (!sessionName)
550
+ return '团队';
551
+ if (sessionName === 'crewly-orc')
552
+ return 'Orc';
553
+ // crewly-product-leo-21a5477e → 'Leo'
554
+ // crewly-marketing-luna-... → 'Luna'
555
+ // flopost-pia-... → 'Pia'
556
+ const parts = sessionName.split('-');
557
+ // Heuristic: pick the first segment that is a short alpha word and
558
+ // is neither the team prefix ('crewly', 'flopost', 'product', 'marketing',
559
+ // ...) nor an id segment.
560
+ const skip = new Set([
561
+ 'crewly', 'product', 'marketing', 'flopost', 'support',
562
+ 'auditor', 'team', 'pro', 'orc', 'agent',
563
+ ]);
564
+ for (const p of parts) {
565
+ if (!p)
566
+ continue;
567
+ if (skip.has(p))
568
+ continue;
569
+ if (/^[a-z]{2,12}$/.test(p)) {
570
+ return p.charAt(0).toUpperCase() + p.slice(1);
571
+ }
572
+ }
573
+ return sessionName;
574
+ }
575
+ //# sourceMappingURL=request-status-update.subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-status-update.subscriber.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-status-update.subscriber.ts"],"names":[],"mappings":"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"}