crewly 1.6.0 → 1.6.2

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 (448) hide show
  1. package/config/roles/orchestrator/fragments/role-boundary.md +4 -1
  2. package/config/roles/orchestrator/prompt.md +53 -0
  3. package/config/roles/orchestrator/soul.md +47 -10
  4. package/config/skills/_common/lib.sh +28 -0
  5. package/config/skills/agent/core/cancel-followup/execute.sh +0 -19
  6. package/config/skills/agent/core/get-my-active-work/SKILL.md +101 -0
  7. package/config/skills/agent/core/get-my-active-work/execute.sh +122 -0
  8. package/config/skills/agent/core/list-my-followups/execute.sh +0 -19
  9. package/config/skills/agent/core/record-learning/SKILL.md +29 -0
  10. package/config/skills/agent/core/reply-channel/SKILL.md +41 -0
  11. package/config/skills/agent/core/reply-channel/execute.sh +165 -0
  12. package/config/skills/agent/core/reply-channel/execute.test.sh +148 -0
  13. package/config/skills/agent/core/schedule-followup/execute.sh +0 -19
  14. package/config/skills/agent/core/watch-for-event/execute.sh +0 -19
  15. package/config/skills/agent/remote-browser/execute.sh +296 -14
  16. package/config/skills/agent/remote-browser/execute.test.sh +482 -0
  17. package/config/skills/orchestrator/credential-manager/execute.test.sh +88 -0
  18. package/config/skills/orchestrator/send-message/SKILL.md +30 -7
  19. package/config/skills/orchestrator/team-health-scan/SKILL.md +98 -0
  20. package/config/skills/orchestrator/team-health-scan/execute.sh +44 -0
  21. package/config/skills/registry.json +62 -1
  22. package/config/sops/developer/git-workflow.md +38 -3
  23. package/dist/backend/backend/src/config/oauth.config.d.ts +33 -0
  24. package/dist/backend/backend/src/config/oauth.config.d.ts.map +1 -0
  25. package/dist/backend/backend/src/config/oauth.config.js +45 -0
  26. package/dist/backend/backend/src/config/oauth.config.js.map +1 -0
  27. package/dist/backend/backend/src/constants.d.ts +69 -1
  28. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  29. package/dist/backend/backend/src/constants.js +69 -2
  30. package/dist/backend/backend/src/constants.js.map +1 -1
  31. package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts +53 -0
  32. package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts.map +1 -0
  33. package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +92 -0
  34. package/dist/backend/backend/src/controllers/active-work/active-work.controller.js.map +1 -0
  35. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts.map +1 -1
  36. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js +18 -1
  37. package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -1
  38. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +68 -0
  39. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  40. package/dist/backend/backend/src/controllers/browser/browser.controller.js +233 -5
  41. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  42. package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
  43. package/dist/backend/backend/src/controllers/browser/browser.routes.js +10 -1
  44. package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
  45. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  46. package/dist/backend/backend/src/controllers/chat/chat.controller.js +8 -3
  47. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  48. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +132 -0
  49. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -0
  50. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +401 -0
  51. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -0
  52. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +29 -0
  53. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -0
  54. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +39 -0
  55. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -0
  56. package/dist/backend/backend/src/controllers/chat-v2/index.d.ts +8 -0
  57. package/dist/backend/backend/src/controllers/chat-v2/index.d.ts.map +1 -0
  58. package/dist/backend/backend/src/controllers/chat-v2/index.js +8 -0
  59. package/dist/backend/backend/src/controllers/chat-v2/index.js.map +1 -0
  60. package/dist/backend/backend/src/controllers/credentials/credentials.controller.d.ts +0 -26
  61. package/dist/backend/backend/src/controllers/credentials/credentials.controller.d.ts.map +1 -1
  62. package/dist/backend/backend/src/controllers/credentials/credentials.controller.js +47 -184
  63. package/dist/backend/backend/src/controllers/credentials/credentials.controller.js.map +1 -1
  64. package/dist/backend/backend/src/controllers/credentials/credentials.routes.d.ts.map +1 -1
  65. package/dist/backend/backend/src/controllers/credentials/credentials.routes.js +2 -1
  66. package/dist/backend/backend/src/controllers/credentials/credentials.routes.js.map +1 -1
  67. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts +40 -0
  68. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts.map +1 -0
  69. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js +162 -0
  70. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js.map +1 -0
  71. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +13 -13
  72. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -1
  73. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +74 -234
  74. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -1
  75. package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -1
  76. package/dist/backend/backend/src/controllers/request/request.controller.js +4 -6
  77. package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -1
  78. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -1
  79. package/dist/backend/backend/src/controllers/skill/skill.controller.js +1 -0
  80. package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -1
  81. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts +43 -0
  82. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
  83. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +200 -72
  84. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  85. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  86. package/dist/backend/backend/src/controllers/team/team.controller.js +46 -0
  87. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  88. package/dist/backend/backend/src/controllers/team-health/team-health.controller.d.ts +59 -0
  89. package/dist/backend/backend/src/controllers/team-health/team-health.controller.d.ts.map +1 -0
  90. package/dist/backend/backend/src/controllers/team-health/team-health.controller.js +127 -0
  91. package/dist/backend/backend/src/controllers/team-health/team-health.controller.js.map +1 -0
  92. package/dist/backend/backend/src/controllers/team-health/team-health.routes.d.ts +13 -0
  93. package/dist/backend/backend/src/controllers/team-health/team-health.routes.d.ts.map +1 -0
  94. package/dist/backend/backend/src/controllers/team-health/team-health.routes.js +20 -0
  95. package/dist/backend/backend/src/controllers/team-health/team-health.routes.js.map +1 -0
  96. package/dist/backend/backend/src/index.d.ts +9 -0
  97. package/dist/backend/backend/src/index.d.ts.map +1 -1
  98. package/dist/backend/backend/src/index.js +256 -4
  99. package/dist/backend/backend/src/index.js.map +1 -1
  100. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  101. package/dist/backend/backend/src/routes/api.routes.js +43 -6
  102. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  103. package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +498 -0
  104. package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
  105. package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +759 -0
  106. package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
  107. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +25 -0
  108. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/agent/agent-registration.service.js +193 -57
  110. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  111. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +9 -2
  112. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +35 -2
  114. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
  115. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +8 -2
  116. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +1 -0
  118. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  119. package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/agent/tmux-command.service.js +2 -1
  121. package/dist/backend/backend/src/services/agent/tmux-command.service.js.map +1 -1
  122. package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -1
  123. package/dist/backend/backend/src/services/agent/tmux.service.js +2 -1
  124. package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
  125. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +148 -3
  126. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +241 -2
  128. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  129. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  130. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +13 -0
  131. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  132. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
  133. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +30 -2
  134. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
  135. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  136. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +17 -0
  137. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  138. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
  139. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
  140. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
  141. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
  142. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +161 -0
  143. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  144. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +382 -2
  145. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  146. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +105 -0
  147. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  148. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +232 -13
  149. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  150. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +178 -0
  151. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -0
  152. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +254 -0
  153. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -0
  154. package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts +134 -0
  155. package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts.map +1 -0
  156. package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.js +232 -0
  157. package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.js.map +1 -0
  158. package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.d.ts +25 -0
  159. package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.d.ts.map +1 -0
  160. package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.js +23 -0
  161. package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.js.map +1 -0
  162. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +254 -0
  163. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
  164. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +467 -0
  165. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
  166. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
  167. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
  168. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
  169. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
  170. package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.d.ts +43 -0
  171. package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.d.ts.map +1 -0
  172. package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.js +54 -0
  173. package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.js.map +1 -0
  174. package/dist/backend/backend/src/services/chat-v2/config.d.ts +100 -0
  175. package/dist/backend/backend/src/services/chat-v2/config.d.ts.map +1 -0
  176. package/dist/backend/backend/src/services/chat-v2/config.js +174 -0
  177. package/dist/backend/backend/src/services/chat-v2/config.js.map +1 -0
  178. package/dist/backend/backend/src/services/chat-v2/index.d.ts +11 -0
  179. package/dist/backend/backend/src/services/chat-v2/index.d.ts.map +1 -0
  180. package/dist/backend/backend/src/services/chat-v2/index.js +12 -0
  181. package/dist/backend/backend/src/services/chat-v2/index.js.map +1 -0
  182. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +114 -0
  183. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
  184. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +194 -0
  185. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
  186. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +100 -0
  187. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
  188. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +351 -0
  189. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
  190. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +132 -0
  191. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
  192. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +281 -0
  193. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
  194. package/dist/backend/backend/src/services/chat-v2/types.d.ts +295 -0
  195. package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -0
  196. package/dist/backend/backend/src/services/chat-v2/types.js +61 -0
  197. package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -0
  198. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts +113 -0
  199. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts.map +1 -0
  200. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js +179 -0
  201. package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js.map +1 -0
  202. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts +131 -0
  203. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts.map +1 -0
  204. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js +227 -0
  205. package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js.map +1 -0
  206. package/dist/backend/backend/src/services/core/config.service.js +3 -3
  207. package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
  208. package/dist/backend/backend/src/services/core/storage.service.d.ts +7 -0
  209. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  210. package/dist/backend/backend/src/services/core/storage.service.js +15 -0
  211. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  212. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts +4 -16
  213. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -1
  214. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +7 -28
  215. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -1
  216. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +69 -1
  217. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  218. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +118 -0
  219. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  220. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +275 -0
  221. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -0
  222. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +736 -0
  223. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -0
  224. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
  225. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +18 -2
  226. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
  227. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +49 -13
  228. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  229. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +123 -29
  230. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  231. package/dist/backend/backend/src/services/knowledge/learnings-index.service.d.ts +159 -0
  232. package/dist/backend/backend/src/services/knowledge/learnings-index.service.d.ts.map +1 -0
  233. package/dist/backend/backend/src/services/knowledge/learnings-index.service.js +304 -0
  234. package/dist/backend/backend/src/services/knowledge/learnings-index.service.js.map +1 -0
  235. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
  236. package/dist/backend/backend/src/services/knowledge/vector-store.service.js +24 -4
  237. package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
  238. package/dist/backend/backend/src/services/mcp-server.d.ts +46 -2
  239. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
  240. package/dist/backend/backend/src/services/mcp-server.js +216 -211
  241. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  242. package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +254 -0
  243. package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -0
  244. package/dist/backend/backend/src/services/mcp-tool-definitions.js +285 -0
  245. package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -0
  246. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +174 -0
  247. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -0
  248. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +375 -0
  249. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -0
  250. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +97 -0
  251. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +1 -0
  252. package/dist/backend/backend/src/services/memory/learning-format.validator.js +209 -0
  253. package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +1 -0
  254. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -1
  255. package/dist/backend/backend/src/services/memory/vector-store.service.js +19 -4
  256. package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -1
  257. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +16 -5
  258. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -1
  259. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +32 -5
  260. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -1
  261. package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts +157 -0
  262. package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts.map +1 -0
  263. package/dist/backend/backend/src/services/onboarding/onboarding.service.js +229 -0
  264. package/dist/backend/backend/src/services/onboarding/onboarding.service.js.map +1 -0
  265. package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts +141 -0
  266. package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts.map +1 -0
  267. package/dist/backend/backend/src/services/onboarding/onboarding.types.js +18 -0
  268. package/dist/backend/backend/src/services/onboarding/onboarding.types.js.map +1 -0
  269. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -1
  270. package/dist/backend/backend/src/services/pr-review/pr-review.service.js +1 -1
  271. package/dist/backend/backend/src/services/pr-review/pr-review.service.js.map +1 -1
  272. package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
  273. package/dist/backend/backend/src/services/project/task.service.js +5 -0
  274. package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
  275. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts +41 -0
  276. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  277. package/dist/backend/backend/src/services/skill/skill-executor.service.js +136 -7
  278. package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
  279. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  280. package/dist/backend/backend/src/services/skill/skill.service.js +1 -0
  281. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  282. package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -1
  283. package/dist/backend/backend/src/services/slack/cross-machine-message.service.js +17 -1
  284. package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
  285. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +39 -1
  286. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  287. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +158 -26
  288. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  289. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +248 -6
  290. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  291. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +531 -51
  292. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  293. package/dist/backend/backend/src/services/team-health/index.d.ts +16 -0
  294. package/dist/backend/backend/src/services/team-health/index.d.ts.map +1 -0
  295. package/dist/backend/backend/src/services/team-health/index.js +16 -0
  296. package/dist/backend/backend/src/services/team-health/index.js.map +1 -0
  297. package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts +52 -0
  298. package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts.map +1 -0
  299. package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js +161 -0
  300. package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js.map +1 -0
  301. package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.d.ts +53 -0
  302. package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.d.ts.map +1 -0
  303. package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.js +88 -0
  304. package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.js.map +1 -0
  305. package/dist/backend/backend/src/services/team-health/stale-trigger-detector.d.ts +44 -0
  306. package/dist/backend/backend/src/services/team-health/stale-trigger-detector.d.ts.map +1 -0
  307. package/dist/backend/backend/src/services/team-health/stale-trigger-detector.js +83 -0
  308. package/dist/backend/backend/src/services/team-health/stale-trigger-detector.js.map +1 -0
  309. package/dist/backend/backend/src/services/team-health/team-health-alert-router.d.ts +92 -0
  310. package/dist/backend/backend/src/services/team-health/team-health-alert-router.d.ts.map +1 -0
  311. package/dist/backend/backend/src/services/team-health/team-health-alert-router.js +328 -0
  312. package/dist/backend/backend/src/services/team-health/team-health-alert-router.js.map +1 -0
  313. package/dist/backend/backend/src/services/team-health/team-health-config.d.ts +41 -0
  314. package/dist/backend/backend/src/services/team-health/team-health-config.d.ts.map +1 -0
  315. package/dist/backend/backend/src/services/team-health/team-health-config.js +213 -0
  316. package/dist/backend/backend/src/services/team-health/team-health-config.js.map +1 -0
  317. package/dist/backend/backend/src/services/team-health/team-health-detector.d.ts +46 -0
  318. package/dist/backend/backend/src/services/team-health/team-health-detector.d.ts.map +1 -0
  319. package/dist/backend/backend/src/services/team-health/team-health-detector.js +347 -0
  320. package/dist/backend/backend/src/services/team-health/team-health-detector.js.map +1 -0
  321. package/dist/backend/backend/src/services/team-health/team-health-types.d.ts +154 -0
  322. package/dist/backend/backend/src/services/team-health/team-health-types.d.ts.map +1 -0
  323. package/dist/backend/backend/src/services/team-health/team-health-types.js +94 -0
  324. package/dist/backend/backend/src/services/team-health/team-health-types.js.map +1 -0
  325. package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.d.ts +111 -0
  326. package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.d.ts.map +1 -0
  327. package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.js +226 -0
  328. package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.js.map +1 -0
  329. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +148 -0
  330. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -0
  331. package/dist/backend/backend/src/services/v3/mission-reminder.service.js +545 -0
  332. package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -0
  333. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +499 -0
  334. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
  335. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +1105 -0
  336. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
  337. package/dist/backend/backend/src/services/v3/request.service.d.ts +22 -0
  338. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
  339. package/dist/backend/backend/src/services/v3/request.service.js +71 -0
  340. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
  341. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +1 -0
  342. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  343. package/dist/backend/backend/src/services/v3/v3-data.service.js +22 -6
  344. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  345. package/dist/backend/backend/src/types/event-bus.types.d.ts +19 -1
  346. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  347. package/dist/backend/backend/src/types/event-bus.types.js +43 -0
  348. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  349. package/dist/backend/backend/src/types/index.d.ts +22 -1
  350. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  351. package/dist/backend/backend/src/types/index.js.map +1 -1
  352. package/dist/backend/backend/src/types/review-reason.types.d.ts +63 -0
  353. package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -0
  354. package/dist/backend/backend/src/types/review-reason.types.js +50 -0
  355. package/dist/backend/backend/src/types/review-reason.types.js.map +1 -0
  356. package/dist/backend/backend/src/types/skill.types.d.ts +9 -0
  357. package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
  358. package/dist/backend/backend/src/types/skill.types.js.map +1 -1
  359. package/dist/backend/backend/src/types/slack.types.d.ts +4 -1
  360. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  361. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  362. package/dist/backend/backend/src/types/v2/mission.types.d.ts +18 -0
  363. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  364. package/dist/backend/backend/src/types/v2/mission.types.js +1 -0
  365. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  366. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  367. package/dist/backend/backend/src/types/v2/work-item.types.js +25 -1
  368. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  369. package/dist/backend/backend/src/utils/google-userinfo.utils.d.ts +41 -0
  370. package/dist/backend/backend/src/utils/google-userinfo.utils.d.ts.map +1 -0
  371. package/dist/backend/backend/src/utils/google-userinfo.utils.js +44 -0
  372. package/dist/backend/backend/src/utils/google-userinfo.utils.js.map +1 -0
  373. package/dist/backend/backend/src/utils/team.utils.d.ts +38 -0
  374. package/dist/backend/backend/src/utils/team.utils.d.ts.map +1 -0
  375. package/dist/backend/backend/src/utils/team.utils.js +45 -0
  376. package/dist/backend/backend/src/utils/team.utils.js.map +1 -0
  377. package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts +195 -0
  378. package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts.map +1 -0
  379. package/dist/backend/backend/src/websocket/chat-v2.gateway.js +401 -0
  380. package/dist/backend/backend/src/websocket/chat-v2.gateway.js.map +1 -0
  381. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +37 -2
  382. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  383. package/dist/backend/backend/src/websocket/terminal.gateway.js +106 -5
  384. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  385. package/dist/cli/backend/src/config/oauth.config.d.ts +33 -0
  386. package/dist/cli/backend/src/config/oauth.config.d.ts.map +1 -0
  387. package/dist/cli/backend/src/config/oauth.config.js +45 -0
  388. package/dist/cli/backend/src/config/oauth.config.js.map +1 -0
  389. package/dist/cli/backend/src/constants.d.ts +69 -1
  390. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  391. package/dist/cli/backend/src/constants.js +69 -2
  392. package/dist/cli/backend/src/constants.js.map +1 -1
  393. package/dist/cli/backend/src/services/core/config.service.js +3 -3
  394. package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
  395. package/dist/cli/backend/src/services/core/storage.service.d.ts +7 -0
  396. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  397. package/dist/cli/backend/src/services/core/storage.service.js +15 -0
  398. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  399. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts +4 -16
  400. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -1
  401. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +7 -28
  402. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -1
  403. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
  404. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +18 -2
  405. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
  406. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +49 -13
  407. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  408. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +123 -29
  409. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  410. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
  411. package/dist/cli/backend/src/services/knowledge/vector-store.service.js +24 -4
  412. package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
  413. package/dist/cli/backend/src/services/mcp-server.d.ts +46 -2
  414. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
  415. package/dist/cli/backend/src/services/mcp-server.js +216 -211
  416. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  417. package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +254 -0
  418. package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -0
  419. package/dist/cli/backend/src/services/mcp-tool-definitions.js +285 -0
  420. package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -0
  421. package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts +18 -0
  422. package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  423. package/dist/cli/backend/src/services/skill/skill-executor.service.js +7 -9
  424. package/dist/cli/backend/src/services/skill/skill-executor.service.js.map +1 -1
  425. package/dist/cli/backend/src/types/index.d.ts +22 -1
  426. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  427. package/dist/cli/backend/src/types/index.js.map +1 -1
  428. package/dist/cli/backend/src/types/skill.types.d.ts +9 -0
  429. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
  430. package/dist/cli/backend/src/types/skill.types.js.map +1 -1
  431. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  432. package/dist/cli/backend/src/types/v2/work-item.types.js +25 -1
  433. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  434. package/dist/cli/backend/src/utils/google-userinfo.utils.d.ts +41 -0
  435. package/dist/cli/backend/src/utils/google-userinfo.utils.d.ts.map +1 -0
  436. package/dist/cli/backend/src/utils/google-userinfo.utils.js +44 -0
  437. package/dist/cli/backend/src/utils/google-userinfo.utils.js.map +1 -0
  438. package/frontend/dist/assets/{index-9e6d97d1.js → index-7a4e7df5.js} +328 -326
  439. package/frontend/dist/assets/index-b7e59b2b.css +33 -0
  440. package/frontend/dist/index.html +2 -2
  441. package/package.json +2 -1
  442. package/config/skills/orchestrator/recall/SKILL.md +0 -47
  443. package/config/skills/orchestrator/recall/execute.sh +0 -13
  444. package/config/skills/orchestrator/record-learning/SKILL.md +0 -47
  445. package/config/skills/orchestrator/record-learning/execute.sh +0 -13
  446. package/config/skills/orchestrator/remember/SKILL.md +0 -55
  447. package/config/skills/orchestrator/remember/execute.sh +0 -15
  448. package/frontend/dist/assets/index-6aaa0630.css +0 -33
@@ -0,0 +1,499 @@
1
+ /**
2
+ * RequestSlaSubscriber (INBOUND-1)
3
+ *
4
+ * Closes the user-facing reliability gap noted by Steve on 2026-04-27:
5
+ * inbound user messages on Slack/Chat-v2 land as Requests today
6
+ * (`slack-orchestrator-bridge.ts:377`), but no WorkItem is auto-created on
7
+ * the orchestrator's plate. The orc therefore has no SLA to track and can
8
+ * silently drop a user request when busy with other work.
9
+ *
10
+ * This subscriber listens to `request:created` and — when the Request was
11
+ * sourced from an inbound user channel (tags include `slack` or `chat-v2`)
12
+ * — auto-creates a `respond_to_user` WorkItem assigned to the orc with a
13
+ * 5-minute SLA deadline. If the orc has not transitioned the WI to a
14
+ * terminal status by 5 minutes, the subscriber emits `request:sla_breached`
15
+ * (CRITICAL — surfaces in the orc terminal). At 10 minutes the subscriber
16
+ * fires the *escalation* hook, which the production wiring uses to send a
17
+ * Slack DM nudge back to the user (so they're never blind to the miss).
18
+ *
19
+ * Auto-close paths:
20
+ * (a) {@link markResolvedByThread} — `slack-orchestrator-bridge` calls
21
+ * this when the orc replies in a thread, so the WI auto-transitions
22
+ * to `done` and the SLA timers no-op against a terminal status.
23
+ * (b) {@link handleWorkItemQueued} (INBOUND-1.f1) — when the orc decomposes
24
+ * a Request into other WorkItems via `taskPool.addToPool`, every new
25
+ * WI fires `workitem:queued`. The handler treats decomposition as
26
+ * "the orc has done the right thing" and resolves the tracked
27
+ * respond_to_user WI with reason `workitem_decompose`. Self-recursion
28
+ * is prevented by an id-shape guard
29
+ * (`request:${requestId}:respond_to_user`) — the respond_to_user WI's
30
+ * own enqueue cannot trigger its own resolution.
31
+ * (c) Timer self-check — every breach handler reads the WI status before
32
+ * publishing or escalating, so a manual orc completeItem() also
33
+ * silences the chain.
34
+ *
35
+ * Idempotency contract (Arch Veto V1):
36
+ * The respond_to_user WorkItem id is deterministic
37
+ * (`request:${requestId}:respond_to_user`); the underlying
38
+ * {@link TaskPoolService.addToPool} already short-circuits on duplicate
39
+ * id. A redelivered `request:created` event therefore fires the handler
40
+ * again, the bridge re-builds the same id, and addToPool no-ops — no
41
+ * separate idempotency store is needed.
42
+ *
43
+ * No new ingress event types (Arch Veto V7 spirit):
44
+ * The orc's revised framing on 2026-04-27 explicitly preferred reusing
45
+ * the existing Request creation path over adding new `inbound:*` event
46
+ * vocabulary. INBOUND-1 adds two events (`request:created`,
47
+ * `request:sla_breached`) that match the Request lifecycle the rest of
48
+ * the system already knows about — no parallel ingress entity.
49
+ *
50
+ * @module services/v3/request-sla.subscriber
51
+ */
52
+ import { type ComponentLogger } from '../core/logger.service.js';
53
+ import { type WorkItem, type WorkItemStatus } from '../../types/v2/work-item.types.js';
54
+ import { type Request, type RequestStatus } from '../../types/v2/request.types.js';
55
+ import type { EventType } from '../../types/event-bus.types.js';
56
+ import type { EventBusService } from '../event-bus/event-bus.service.js';
57
+ import type { TaskPoolService } from '../task-pool/task-pool.service.js';
58
+ import type { RequestService } from './request.service.js';
59
+ /**
60
+ * Wire the subscriber instance accessible via {@link getRequestSlaSubscriber}.
61
+ * Called once from boot before the slack listener can dispatch a reply.
62
+ *
63
+ * @param sub - The live subscriber, or null to clear (tests)
64
+ */
65
+ export declare function setRequestSlaSubscriber(sub: RequestSlaSubscriber | null): void;
66
+ /**
67
+ * Read the currently-wired subscriber, or null if boot has not finished yet.
68
+ * Returns null in test setups that don't wire one — callers must tolerate.
69
+ */
70
+ export declare function getRequestSlaSubscriber(): RequestSlaSubscriber | null;
71
+ /**
72
+ * Default SLA breach threshold — orc must respond within this window or
73
+ * `request:sla_breached` fires with breachLevel=5.
74
+ */
75
+ export declare const DEFAULT_SLA_MS: number;
76
+ /**
77
+ * Default escalation threshold — at this point the user-facing escalation
78
+ * hook fires (production: Slack DM back to user).
79
+ */
80
+ export declare const DEFAULT_ESCALATION_MS: number;
81
+ /**
82
+ * Tags we treat as "user-facing inbound channels" — Requests with any of
83
+ * these tags get an SLA-tracked respond_to_user WI. Slack is wired today;
84
+ * `chat-v2` is reserved for the channel-rail Phase E surface.
85
+ */
86
+ export declare const DEFAULT_INBOUND_TAGS: readonly string[];
87
+ /**
88
+ * Event types the subscriber listens to.
89
+ *
90
+ * - `request:created` (INBOUND-1) — seed a respond_to_user WI for inbound
91
+ * user messages.
92
+ * - `workitem:queued` (INBOUND-1.f1) — auto-close path b: when the orc
93
+ * decomposes a Request into other WorkItems, the respond_to_user WI for
94
+ * that Request resolves automatically.
95
+ *
96
+ * Future iterations may add `request:cancelled` etc. for cleanup.
97
+ */
98
+ export declare const REQUEST_SLA_SUBSCRIBED_EVENTS: readonly EventType[];
99
+ /**
100
+ * Build the deterministic respond_to_user WorkItem id for a Request. The
101
+ * SLA subscriber uses this both for creating the WI and as the id-shape
102
+ * guard against self-resolve recursion in {@link handleWorkItemQueued}.
103
+ *
104
+ * @param requestId - The Request id
105
+ * @returns The deterministic WI id
106
+ */
107
+ export declare function respondToUserWorkItemId(requestId: string): string;
108
+ /**
109
+ * Pick the legal terminal status for resolving an SLA-tracked WI. The V3
110
+ * `WORK_ITEM_TRANSITIONS` matrix (see `types/v2/work-item.types.ts`)
111
+ * forbids `queued → done`, so the previous `markResolved` always-`'done'`
112
+ * path was throwing in production while the test fake silently accepted it.
113
+ *
114
+ * Mapping:
115
+ * - `running` → `done` (someone explicitly claimed; close cleanly).
116
+ * - `done_by_worker` → `verified` (the only edge `done_by_worker` permits
117
+ * toward terminal-success; `done_by_worker → cancelled` is illegal).
118
+ * - `proposed` → `accepted` then handled separately — but in practice
119
+ * the SLA WI never lands here, so we route to `cancelled` (legal).
120
+ * - everything else → `cancelled` (the V3 matrix permits `* → cancelled`
121
+ * from all of `queued`/`scheduled`/`accepted`/`blocked`/`escalated`).
122
+ *
123
+ * @param current - The WI's current (non-terminal) status.
124
+ * @returns The legal terminal status to transition into.
125
+ */
126
+ export declare function pickResolveTarget(current: WorkItemStatus): WorkItemStatus;
127
+ /**
128
+ * Pick the legal terminal status for FAILING an SLA-tracked WI on
129
+ * escalation timeout (10-minute miss).
130
+ *
131
+ * Mapping:
132
+ * - `running` → `failed` (canonical fail edge).
133
+ * - `done_by_worker` → `rejected` (the only fail-shaped edge from
134
+ * `done_by_worker`; `done_by_worker → failed` is illegal).
135
+ * - everything else → `cancelled` (queued/scheduled/etc. cannot reach
136
+ * `failed` directly, so we route them to `cancelled` — matches the
137
+ * "we gave up tracking, nothing actually failed" semantic).
138
+ *
139
+ * @param current - The WI's current (non-terminal) status.
140
+ * @returns The legal terminal status to transition into.
141
+ */
142
+ export declare function pickFailTarget(current: WorkItemStatus): WorkItemStatus;
143
+ /**
144
+ * Compute the legal Request status path from the current state to `done`.
145
+ * Returns an empty array if the Request is already terminal (no work to
146
+ * do) — the call site is expected to guard for this.
147
+ *
148
+ * Per `REQUEST_TRANSITIONS` in `types/v2/request.types.ts`:
149
+ * - `open` → `done` (direct)
150
+ * - `running` → `done` (direct)
151
+ * - `waiting_confirmation` → `done` (direct)
152
+ * - `ready` → `running` → `done` (two-step; ready→done illegal)
153
+ * - `blocked` → `running` → `done` (two-step; blocked→done illegal)
154
+ *
155
+ * @param from - Current Request status (must be non-terminal).
156
+ * @returns Ordered array of statuses to transition through (excluding `from`).
157
+ */
158
+ export declare function closeRequestPath(from: RequestStatus): RequestStatus[];
159
+ /**
160
+ * Reason tags that represent a VERIFIED actual reply / decomposition by an
161
+ * agent and therefore permit the parent Request to cascade-close to `done`.
162
+ *
163
+ * Defense-in-depth gate for {@link RequestSlaSubscriber.maybeCloseRequest}
164
+ * (Steve 2026-04-30 incident): even if an upstream caller somehow invokes
165
+ * `markResolved` with a non-reply reason, the Request must NOT be flipped
166
+ * to `done` unless the reason is one of these verified paths.
167
+ *
168
+ * - `orc_reply` — slackResolve callback fired (real orc reply via
169
+ * reply-slack skill). Gated by the `fromOrcReply`
170
+ * flag on the orchestrator bridge so timeout
171
+ * placeholders cannot reach this branch.
172
+ * - `chatv2_reply` — chat-v2 controller persisted an agent-typed
173
+ * reply to the channel (real agent reply).
174
+ * - `workitem_decompose` — the orc decomposed the Request into other WIs;
175
+ * those WIs carry the actual work, so the
176
+ * respond_to_user tracker is silenced and the
177
+ * Request close is gated separately by the
178
+ * sibling-count check.
179
+ *
180
+ * Any other reason ({@link RequestSlaSubscriber.failOrphanRespondWi} fires
181
+ * `escalation_timeout`, callers MAY pass arbitrary diagnostic strings) is
182
+ * treated as "do NOT auto-close the parent Request".
183
+ */
184
+ export declare const VERIFIED_REPLY_REASONS: ReadonlySet<string>;
185
+ /**
186
+ * Extract the Slack thread timestamp from a Request's
187
+ * `sourceConversationItemId`. The slack-orchestrator-bridge stamps these
188
+ * as `slack-${channelId}-${ts}` (see slack-orchestrator-bridge.ts:372),
189
+ * so the trailing dotted-decimal segment is the threadTs.
190
+ *
191
+ * @param sourceId - The Request's sourceConversationItemId
192
+ * @returns The threadTs, or null if the id doesn't match the Slack shape
193
+ */
194
+ export declare function extractSlackThreadTs(sourceId: string | undefined): string | null;
195
+ /**
196
+ * Extract the Slack channel id from a sourceConversationItemId.
197
+ *
198
+ * @param sourceId - The Request's sourceConversationItemId
199
+ * @returns The channelId, or null if the id doesn't match the Slack shape
200
+ */
201
+ export declare function extractSlackChannelId(sourceId: string | undefined): string | null;
202
+ /**
203
+ * Extract the chat-v2 channel id from a Request's
204
+ * `sourceConversationItemId`. The chat-v2 controller (INBOUND-2) stamps
205
+ * these as `chatv2-${channelId}__${messageId}` — UUID-safe delimiter.
206
+ *
207
+ * @param sourceId - The Request's sourceConversationItemId
208
+ * @returns The channelId, or null if the id doesn't match the chat-v2 shape
209
+ */
210
+ export declare function extractChatV2ChannelId(sourceId: string | undefined): string | null;
211
+ /**
212
+ * Extract the chat-v2 message id from a `chatv2-${channelId}__${messageId}`
213
+ * sourceConversationItemId. The messageId acts as the auto-close lookup
214
+ * key analog to a Slack threadTs.
215
+ *
216
+ * @param sourceId - The Request's sourceConversationItemId
217
+ * @returns The messageId, or null if the id doesn't match the chat-v2 shape
218
+ */
219
+ export declare function extractChatV2MessageId(sourceId: string | undefined): string | null;
220
+ /**
221
+ * Thrown when the subscriber cannot resolve a Request for an event. The
222
+ * Request was deleted between publish and dispatch — rare, but observable
223
+ * in tests, so we encode the case as a typed error.
224
+ */
225
+ export declare class RequestNotFoundError extends Error {
226
+ constructor(message: string);
227
+ }
228
+ /**
229
+ * Pluggable callback that performs the user-facing 10-minute escalation —
230
+ * production wires this to {@link SlackService.sendMessage} so we DM the
231
+ * user back. Tests can fake.
232
+ */
233
+ export type EscalationSlackCallback = (args: {
234
+ channelId: string;
235
+ threadTs: string;
236
+ messageText: string;
237
+ request: Request;
238
+ workItem: WorkItem | null;
239
+ }) => Promise<void>;
240
+ /**
241
+ * Optional dependency container. Production wiring uses
242
+ * {@link RequestSlaSubscriber.boot}; tests construct directly with fakes.
243
+ */
244
+ export interface RequestSlaSubscriberDependencies {
245
+ /** Live event bus. */
246
+ eventBus: EventBusService;
247
+ /** TaskPool for addToPool + transitionStatus + findWorkItem. */
248
+ taskPool: TaskPoolService;
249
+ /** RequestService for tag/source lookups by id. */
250
+ requestService: RequestService;
251
+ /** Slack DM hook — fires at 10min escalation. Optional; subscriber
252
+ * no-ops if missing (logs at warn level instead). */
253
+ sendEscalationDm?: EscalationSlackCallback;
254
+ /** Override the orchestrator session (testing). */
255
+ orchestratorSession?: string;
256
+ /** Override the SLA window (testing). */
257
+ slaMs?: number;
258
+ /** Override the escalation window (testing). */
259
+ escalationMs?: number;
260
+ /** Override the inbound tag list (testing / future channel sources). */
261
+ inboundTags?: readonly string[];
262
+ /** Optional logger. */
263
+ logger?: ComponentLogger;
264
+ }
265
+ /**
266
+ * RequestSlaSubscriber — the INBOUND-1 deliverable.
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * const sub = RequestSlaSubscriber.boot(eventBus, slackEscalationFn);
271
+ * sub.start();
272
+ * // … on shutdown:
273
+ * sub.stop();
274
+ * ```
275
+ */
276
+ export declare class RequestSlaSubscriber {
277
+ private readonly eventBus;
278
+ private readonly taskPool;
279
+ private readonly requestService;
280
+ private readonly sendEscalationDm?;
281
+ private readonly orchestratorSession;
282
+ private readonly slaMs;
283
+ private readonly escalationMs;
284
+ private readonly inboundTags;
285
+ private readonly logger;
286
+ private unsubscribers;
287
+ private started;
288
+ /** requestId → tracked record; primary index for breach handlers. */
289
+ private trackedByRequest;
290
+ /** Slack threadTs → requestId; secondary index for {@link markResolvedByThread}. */
291
+ private threadIndex;
292
+ /**
293
+ * chat-v2 channelId → requestId. INBOUND-2 secondary index used by
294
+ * {@link markResolvedByChatV2}. Last-write-wins when multiple inbound
295
+ * Requests pile up in the same channel — v1 polish accepts the simpler
296
+ * 1:1 semantics; the orphan handler still cleans the WI on escalation.
297
+ */
298
+ private chatV2Index;
299
+ /** In-flight async dispatch promises (test affordance). */
300
+ private pendingDispatches;
301
+ constructor(deps: RequestSlaSubscriberDependencies);
302
+ /**
303
+ * Production wiring helper. Tests should use the constructor directly.
304
+ *
305
+ * @param eventBus - Live event bus
306
+ * @param requestService - Live RequestService
307
+ * @param taskPool - Live TaskPoolService
308
+ * @param sendEscalationDm - Slack DM callback for the 10-minute escalation
309
+ * @returns A subscriber ready to `start()`
310
+ */
311
+ static boot(eventBus: EventBusService, requestService: RequestService, taskPool: TaskPoolService, sendEscalationDm?: EscalationSlackCallback): RequestSlaSubscriber;
312
+ /**
313
+ * Subscribe + register the in-process handlers. Idempotent.
314
+ */
315
+ start(): void;
316
+ /**
317
+ * Wait for in-flight async dispatches to settle. Test affordance.
318
+ */
319
+ flushPending(): Promise<void>;
320
+ /**
321
+ * Detach subscriptions + clear all SLA timers. Safe to call repeatedly.
322
+ */
323
+ stop(): void;
324
+ /**
325
+ * Mark an in-flight respond_to_user WI as done because the orchestrator
326
+ * just replied to the matching Slack thread. Called by
327
+ * {@link slack-orchestrator-bridge.sendSlackResponse}.
328
+ *
329
+ * Best-effort: a non-Slack-shaped or unknown threadTs is a no-op.
330
+ *
331
+ * @param threadTs - The Slack message timestamp the orc replied to
332
+ */
333
+ markResolvedByThread(threadTs: string): Promise<void>;
334
+ /**
335
+ * INBOUND-2: mark the in-flight respond_to_user WI as done because an
336
+ * agent replied in the chat-v2 channel where the user's message arrived.
337
+ * Called by `chat-v2.controller.sendMessage` after a `senderType=agent`
338
+ * message persists to the channel.
339
+ *
340
+ * Best-effort: a non-tracked or unknown channelId is a no-op.
341
+ *
342
+ * @param channelId - The chat-v2 channel where the agent just replied
343
+ */
344
+ markResolvedByChatV2(channelId: string): Promise<void>;
345
+ /**
346
+ * Mark an in-flight respond_to_user WI as resolved by Request id (e.g. the
347
+ * orc replied on Slack, or decomposed the Request into other WorkItems and
348
+ * we want to silence the SLA chain). After the WI transitions, we also
349
+ * cascade the close to the parent Request when this was the last
350
+ * non-terminal WI for it (Steve 2026-04-29: Requests stuck on "Active" in
351
+ * /tasks UI even after the team replied).
352
+ *
353
+ * Transition path is selected from the WI's current status to satisfy the
354
+ * V3 state machine — `transitionStatus` enforces `WORK_ITEM_TRANSITIONS`
355
+ * and `queued → done` is NOT a legal edge:
356
+ * - `queued` → `cancelled`: SLA tracker was a placeholder, never claimed.
357
+ * Semantic: "no longer needed because the orc handled this directly".
358
+ * - `running` → `done`: Someone explicitly claimed the SLA WI; close
359
+ * it as a normal completion.
360
+ * - terminal status: no-op (already settled).
361
+ *
362
+ * Before this fix, `markResolved` always called `transitionStatus(_, 'done')`
363
+ * which threw on the queued case, the catch swallowed it at warn level, the
364
+ * WI stayed `queued` forever, and the Request never closed — the
365
+ * user-reported "Active count never goes down" bug.
366
+ *
367
+ * @param requestId - The Request whose SLA chain should be silenced
368
+ * @param reason - Diagnostic tag (`orc_reply` / `chatv2_reply` /
369
+ * `workitem_decompose`) recorded in WI metadata + Request `result`.
370
+ */
371
+ markResolved(requestId: string, reason: string): Promise<void>;
372
+ /**
373
+ * Cascade close the parent Request after an SLA-tracked WI resolves.
374
+ *
375
+ * The Request is moved to `done` only when ALL of:
376
+ * 1. `reason` is in {@link VERIFIED_REPLY_REASONS} (defense-in-depth
377
+ * against false-resolve paths — see Steve 2026-04-30 incident,
378
+ * where a `responseTimeoutMs` placeholder fired
379
+ * `markResolvedByThread` and cascaded the Request to `done`
380
+ * without an actual orc reply).
381
+ * 2. it exists and is not already terminal (`done`/`cancelled`), AND
382
+ * 3. no other non-terminal WIs remain for it (the orc may have
383
+ * decomposed the Request into other WIs that are still in flight —
384
+ * in that case we leave the Request alone and let the existing
385
+ * `cascadeRequestStatus` machinery in v3-data.service close it
386
+ * when those WIs finish).
387
+ *
388
+ * Picks the shortest legal transition path per `REQUEST_TRANSITIONS`:
389
+ * - `open` / `running` / `waiting_confirmation` → `done` (direct)
390
+ * - `ready` / `blocked` → `running` → `done`
391
+ *
392
+ * Errors are caught at the call site (markResolved); this method must
393
+ * never propagate, so a Request-update failure does not leak into the
394
+ * Slack-reply flow.
395
+ *
396
+ * @param requestId - The Request to close.
397
+ * @param reason - The same reason tag recorded on the WI; passed
398
+ * through to `Request.result` so the UI shows why it auto-closed.
399
+ */
400
+ private maybeCloseRequest;
401
+ /**
402
+ * Count WorkItems linked to the given Request that are NOT the SLA tracker
403
+ * AND are still non-terminal. Returns 0 when only the SLA tracker existed.
404
+ *
405
+ * @param requestId - The Request id to scan.
406
+ * @returns Count of other in-flight WorkItems.
407
+ */
408
+ private countOtherActiveWorkItems;
409
+ /**
410
+ * Snapshot of the tracked-WI count. Test affordance.
411
+ */
412
+ get trackedCount(): number;
413
+ /**
414
+ * `request:created` handler. Filters by inbound tag, creates the
415
+ * respond_to_user WI, and schedules the breach + escalation timers.
416
+ */
417
+ private handleRequestCreated;
418
+ /**
419
+ * `workitem:queued` handler (INBOUND-1.f1, auto-close path b).
420
+ *
421
+ * Treats decomposition of a Request into other WorkItems as "the orc has
422
+ * done the right thing" and resolves the tracked respond_to_user WI for
423
+ * that Request.
424
+ *
425
+ * Self-recursion guard: the respond_to_user WI itself fires
426
+ * `workitem:queued` from {@link handleRequestCreated}'s `addToPool` call.
427
+ * Without a guard this handler would call markResolved against its own
428
+ * enqueue and prematurely close the SLA chain. The id-shape check
429
+ * (`incomingId === respondToUserWorkItemId(requestId)`) is more reliable
430
+ * than reading `wi.metadata.slaSource` — the metadata can in principle
431
+ * be mutated, the id cannot.
432
+ *
433
+ * No-ops:
434
+ * - event missing `requestId` (orphan WI, can't correlate)
435
+ * - event missing `workItemId` (malformed publisher)
436
+ * - the respond_to_user WI's own enqueue (id-shape match)
437
+ * - no tracked respond_to_user WI for the requestId (already resolved
438
+ * or never tracked because the source Request wasn't inbound-tagged)
439
+ *
440
+ * @param event - The `workitem:queued` event from TaskPoolService.addToPool
441
+ */
442
+ private handleWorkItemQueued;
443
+ /**
444
+ * 5-minute breach handler. Re-checks the WI status and emits
445
+ * `request:sla_breached` if the WI is still non-terminal.
446
+ *
447
+ * @param requestId - The Request whose breach is firing
448
+ * @param level - Breach level: 5 (first SLA) or 10 (escalation)
449
+ */
450
+ private handleBreach;
451
+ /**
452
+ * 10-minute escalation handler. Emits the level-10 breach event and —
453
+ * if a Slack DM callback is wired — sends the user a "still working on
454
+ * it" nudge so they're never blind to the miss. After the DM (or DM-skip),
455
+ * transitions the orphaned respond_to_user WI to `'failed'` with
456
+ * `slaResolvedReason: 'escalation_timeout'` so the orc queue does not keep
457
+ * a stale `queued` WI forever (Arch N3 on PR #357).
458
+ */
459
+ private handleEscalation;
460
+ /**
461
+ * Transition an escalated respond_to_user WI to `'failed'` with
462
+ * `slaResolvedReason: 'escalation_timeout'` so the orc queue does not
463
+ * keep a stale `queued` WI forever after a 10-min escalation. No-op if
464
+ * the WI is already terminal (e.g. user gave up + an out-of-band cleanup
465
+ * already closed it).
466
+ *
467
+ * Mirrors {@link markResolved}'s terminal-status guard. Errors are
468
+ * logged but never propagated — the SLA chain is already terminal at
469
+ * this point and we do not want to mask the original DM-path outcome.
470
+ *
471
+ * @param workItemId - The respond_to_user WI id to close.
472
+ * @param requestId - The originating Request id (logging context only).
473
+ */
474
+ private failOrphanRespondWi;
475
+ /**
476
+ * Drop tracking + clear timers for a Request. Used both on auto-resolve
477
+ * and on terminal escalation — once we reach 10min the SLA chain is done.
478
+ */
479
+ private cleanupTracked;
480
+ /**
481
+ * Check whether a Request's tags include any of the configured inbound
482
+ * channel tags.
483
+ */
484
+ private matchesInboundTag;
485
+ /**
486
+ * Build the respond_to_user WorkItem with the standard metadata invariants.
487
+ *
488
+ * INBOUND-2: metadata embeds slack-* OR chatV2-* fields based on the
489
+ * source surface so downstream consumers (status panes, escalation
490
+ * hooks) can branch without re-parsing `sourceConversationItemId`.
491
+ */
492
+ private buildRespondWorkItem;
493
+ /**
494
+ * Wrap a dispatch so a thrown handler is logged and isolated. Mirrors
495
+ * EventToWorkItemBridge.safeDispatch.
496
+ */
497
+ private safeDispatch;
498
+ }
499
+ //# sourceMappingURL=request-sla.subscriber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-sla.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-sla.subscriber.ts"],"names":[],"mappings":"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"}