crewly 1.20.191 → 1.20.193

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 (541) hide show
  1. package/config/constants.ts +11 -0
  2. package/config/hooks/subagent-guard/subagent.sh +113 -0
  3. package/config/roles/architect/prompt.md +1 -1
  4. package/config/roles/auditor/prompt.md +1 -1
  5. package/config/roles/backend-developer/prompt.md +1 -1
  6. package/config/roles/content-strategist/prompt.md +2 -2
  7. package/config/roles/designer/prompt.md +1 -1
  8. package/config/roles/developer/prompt.md +2 -2
  9. package/config/roles/frontend-developer/prompt.md +1 -1
  10. package/config/roles/fullstack-dev/prompt.md +1 -1
  11. package/config/roles/generalist/prompt.md +1 -1
  12. package/config/roles/ops/prompt.md +1 -1
  13. package/config/roles/orchestrator/prompt.md +2 -2
  14. package/config/roles/product-manager/prompt.md +1 -1
  15. package/config/roles/qa/prompt.md +1 -1
  16. package/config/roles/qa-engineer/prompt.md +1 -1
  17. package/config/roles/researcher/prompt.md +1 -1
  18. package/config/roles/sales/prompt.md +1 -1
  19. package/config/roles/support/prompt.md +1 -1
  20. package/config/roles/team-leader/prompt.md +1 -1
  21. package/config/roles/tpm/prompt.md +1 -1
  22. package/config/roles/ux-designer/prompt.md +1 -1
  23. package/config/skills/_common/complete-body-shape.test.sh +17 -0
  24. package/config/skills/agent/core/complete-task/SKILL.md +27 -4
  25. package/config/skills/agent/core/complete-task/execute.sh +23 -3
  26. package/config/skills/agent/core/complete-task/execute.test.sh +34 -0
  27. package/config/skills/agent/core/handoff-task/execute.sh +1 -1
  28. package/config/skills/agent/core/report-status/SKILL.md +27 -4
  29. package/config/skills/agent/core/report-status/execute.sh +104 -4
  30. package/config/skills/agent/core/send-message/SKILL.md +6 -0
  31. package/config/skills/agent/core/send-message/execute.sh +17 -1
  32. package/config/skills/agent/core/send-message/execute.test.sh +81 -0
  33. package/config/skills/agent/core/todo-add/SKILL.md +16 -2
  34. package/config/skills/agent/core/todo-add/execute.sh +21 -5
  35. package/config/skills/agent/core/todo-add/execute.test.sh +14 -0
  36. package/config/skills/agent/core/todo-tasks/SKILL.md +4 -3
  37. package/config/skills/agent/core/todo-update/SKILL.md +13 -2
  38. package/config/skills/agent/core/todo-update/execute.sh +41 -3
  39. package/config/skills/agent/core/todo-update/execute.test.sh +7 -0
  40. package/config/skills/marketplace-registry.ts +4 -4
  41. package/config/skills/orchestrator/complete-task/SKILL.md +13 -6
  42. package/config/skills/orchestrator/complete-task/execute.sh +22 -3
  43. package/config/skills/orchestrator/delegate-task/execute.sh +2 -2
  44. package/config/skills/orchestrator/harness-login/SKILL.md +9 -1
  45. package/config/skills/orchestrator/harness-login/execute.sh +12 -4
  46. package/config/skills/orchestrator/harness-login/execute.test.sh +7 -0
  47. package/config/skills/team-leader/delegate-task/execute.sh +1 -1
  48. package/config/skills/team-leader/verify-output/SKILL.md +18 -1
  49. package/config/skills/team-leader/verify-output/execute.sh +28 -0
  50. package/config/skills/team-leader/verify-output/execute.test.sh +27 -0
  51. package/dist/backend/backend/src/constants.d.ts +181 -2
  52. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  53. package/dist/backend/backend/src/constants.js +183 -2
  54. package/dist/backend/backend/src/constants.js.map +1 -1
  55. package/dist/backend/backend/src/controllers/canva/canva.controller.d.ts +6 -0
  56. package/dist/backend/backend/src/controllers/canva/canva.controller.d.ts.map +1 -1
  57. package/dist/backend/backend/src/controllers/canva/canva.controller.js +15 -4
  58. package/dist/backend/backend/src/controllers/canva/canva.controller.js.map +1 -1
  59. package/dist/backend/backend/src/controllers/canva/canva.routes.d.ts.map +1 -1
  60. package/dist/backend/backend/src/controllers/canva/canva.routes.js +3 -1
  61. package/dist/backend/backend/src/controllers/canva/canva.routes.js.map +1 -1
  62. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.d.ts +1 -1
  63. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js +1 -1
  64. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  65. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +4 -1
  66. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  67. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts +4 -0
  68. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts.map +1 -1
  69. package/dist/backend/backend/src/controllers/connector/connector.controller.js +32 -3
  70. package/dist/backend/backend/src/controllers/connector/connector.controller.js.map +1 -1
  71. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts +41 -0
  72. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts.map +1 -0
  73. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js +75 -0
  74. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js.map +1 -0
  75. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +6 -0
  76. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  77. package/dist/backend/backend/src/controllers/google/google.controller.js +21 -2
  78. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  79. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  80. package/dist/backend/backend/src/controllers/google/google.routes.js +3 -1
  81. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  82. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts.map +1 -1
  83. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +22 -3
  84. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js.map +1 -1
  85. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.d.ts +19 -2
  86. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.d.ts.map +1 -1
  87. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js +39 -6
  88. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js.map +1 -1
  89. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts.map +1 -1
  90. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js +3 -1
  91. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js.map +1 -1
  92. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +9 -0
  93. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  94. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +71 -2
  95. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  96. package/dist/backend/backend/src/controllers/people/people.routes.d.ts +25 -0
  97. package/dist/backend/backend/src/controllers/people/people.routes.d.ts.map +1 -0
  98. package/dist/backend/backend/src/controllers/people/people.routes.js +90 -0
  99. package/dist/backend/backend/src/controllers/people/people.routes.js.map +1 -0
  100. package/dist/backend/backend/src/controllers/request-types.d.ts +2 -0
  101. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  102. package/dist/backend/backend/src/controllers/security/approvals.controller.d.ts +26 -0
  103. package/dist/backend/backend/src/controllers/security/approvals.controller.d.ts.map +1 -0
  104. package/dist/backend/backend/src/controllers/security/approvals.controller.js +73 -0
  105. package/dist/backend/backend/src/controllers/security/approvals.controller.js.map +1 -0
  106. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  107. package/dist/backend/backend/src/controllers/session/session.controller.js +9 -0
  108. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  109. package/dist/backend/backend/src/controllers/slack/slack.controller.js +1 -1
  110. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  111. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +22 -1
  112. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  113. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +143 -3
  114. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  115. package/dist/backend/backend/src/controllers/system/usage.controller.d.ts +3 -3
  116. package/dist/backend/backend/src/controllers/system/usage.controller.js +3 -3
  117. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +25 -3
  118. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  119. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +125 -19
  120. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  121. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  122. package/dist/backend/backend/src/controllers/team/team.controller.js +14 -0
  123. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  124. package/dist/backend/backend/src/index.d.ts.map +1 -1
  125. package/dist/backend/backend/src/index.js +44 -1
  126. package/dist/backend/backend/src/index.js.map +1 -1
  127. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  128. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  129. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  130. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  131. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  132. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  133. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +13 -0
  134. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/agent/agent-registration.service.js +28 -3
  136. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +3 -2
  138. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  139. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +14 -3
  140. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  141. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +28 -1
  142. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  143. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +48 -4
  144. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  145. package/dist/backend/backend/src/services/agent/idle-detection.service.js +1 -1
  146. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  147. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +2 -1
  148. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  149. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +17 -4
  150. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  151. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +14 -0
  152. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  153. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +38 -0
  154. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  155. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +34 -0
  156. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  157. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +49 -5
  158. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  159. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  160. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +8 -1
  161. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  162. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +1 -1
  163. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
  164. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts +8 -0
  165. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts.map +1 -1
  166. package/dist/backend/backend/src/services/browser/browser-approval.service.js +10 -0
  167. package/dist/backend/backend/src/services/browser/browser-approval.service.js.map +1 -1
  168. package/dist/backend/backend/src/services/canva/canva-token.service.d.ts +17 -4
  169. package/dist/backend/backend/src/services/canva/canva-token.service.d.ts.map +1 -1
  170. package/dist/backend/backend/src/services/canva/canva-token.service.js +49 -17
  171. package/dist/backend/backend/src/services/canva/canva-token.service.js.map +1 -1
  172. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +55 -0
  173. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +80 -0
  175. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  176. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.client.d.ts +1 -1
  177. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.client.js +1 -1
  178. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.service.d.ts +1 -1
  179. package/dist/backend/backend/src/services/cloud/cloud-device-pairing.service.js +1 -1
  180. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.d.ts +17 -2
  181. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.d.ts.map +1 -1
  182. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.js +30 -6
  183. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.js.map +1 -1
  184. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.d.ts +38 -2
  185. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.d.ts.map +1 -1
  186. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.js +63 -1
  187. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.js.map +1 -1
  188. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +74 -4
  189. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  190. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +204 -56
  191. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  192. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +19 -0
  193. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  194. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  195. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +9 -0
  196. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  197. package/dist/backend/backend/src/services/decisions/decision.service.js +11 -0
  198. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  199. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +3 -0
  201. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  202. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +25 -2
  203. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
  204. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +48 -7
  205. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
  206. package/dist/backend/backend/src/services/harness/claude-accounts.d.ts +207 -0
  207. package/dist/backend/backend/src/services/harness/claude-accounts.d.ts.map +1 -0
  208. package/dist/backend/backend/src/services/harness/claude-accounts.js +306 -0
  209. package/dist/backend/backend/src/services/harness/claude-accounts.js.map +1 -0
  210. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts +35 -0
  211. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  212. package/dist/backend/backend/src/services/harness/harness-credentials.store.js +48 -0
  213. package/dist/backend/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  214. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +70 -1
  215. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  216. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +156 -19
  217. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  218. package/dist/backend/backend/src/services/harness/harness.types.d.ts +2 -0
  219. package/dist/backend/backend/src/services/harness/harness.types.d.ts.map +1 -1
  220. package/dist/backend/backend/src/services/harness/harness.types.js.map +1 -1
  221. package/dist/backend/backend/src/services/harness/login-broker.service.d.ts +19 -4
  222. package/dist/backend/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
  223. package/dist/backend/backend/src/services/harness/login-broker.service.js +46 -7
  224. package/dist/backend/backend/src/services/harness/login-broker.service.js.map +1 -1
  225. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts +18 -2
  226. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts.map +1 -1
  227. package/dist/backend/backend/src/services/harness/owner-login-request.js +31 -7
  228. package/dist/backend/backend/src/services/harness/owner-login-request.js.map +1 -1
  229. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +21 -0
  230. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  231. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +39 -1
  232. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  233. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +11 -0
  234. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  235. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +29 -0
  236. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  237. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.d.ts +54 -0
  238. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.d.ts.map +1 -0
  239. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.js +65 -0
  240. package/dist/backend/backend/src/services/messaging/spend-capped-delivery.js.map +1 -0
  241. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +5 -0
  242. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  243. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +13 -0
  244. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  245. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.d.ts +87 -5
  246. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.d.ts.map +1 -1
  247. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.js +151 -12
  248. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.js.map +1 -1
  249. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts +17 -4
  250. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts.map +1 -1
  251. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js +45 -17
  252. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js.map +1 -1
  253. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +118 -2
  254. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -1
  255. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +213 -45
  256. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -1
  257. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts +53 -1
  258. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -1
  259. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +137 -60
  260. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -1
  261. package/dist/backend/backend/src/services/monitoring/model-pricing.d.ts +2 -1
  262. package/dist/backend/backend/src/services/monitoring/model-pricing.d.ts.map +1 -1
  263. package/dist/backend/backend/src/services/monitoring/model-pricing.js +13 -0
  264. package/dist/backend/backend/src/services/monitoring/model-pricing.js.map +1 -1
  265. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +9 -0
  266. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  267. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +32 -3
  268. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  269. package/dist/backend/backend/src/services/people/acting-for.service.d.ts +151 -0
  270. package/dist/backend/backend/src/services/people/acting-for.service.d.ts.map +1 -0
  271. package/dist/backend/backend/src/services/people/acting-for.service.js +224 -0
  272. package/dist/backend/backend/src/services/people/acting-for.service.js.map +1 -0
  273. package/dist/backend/backend/src/services/people/dedicated-agent.d.ts +89 -0
  274. package/dist/backend/backend/src/services/people/dedicated-agent.d.ts.map +1 -0
  275. package/dist/backend/backend/src/services/people/dedicated-agent.js +113 -0
  276. package/dist/backend/backend/src/services/people/dedicated-agent.js.map +1 -0
  277. package/dist/backend/backend/src/services/people/grant-sharing.d.ts +79 -0
  278. package/dist/backend/backend/src/services/people/grant-sharing.d.ts.map +1 -0
  279. package/dist/backend/backend/src/services/people/grant-sharing.js +135 -0
  280. package/dist/backend/backend/src/services/people/grant-sharing.js.map +1 -0
  281. package/dist/backend/backend/src/services/people/people-directory.service.d.ts +181 -0
  282. package/dist/backend/backend/src/services/people/people-directory.service.d.ts.map +1 -0
  283. package/dist/backend/backend/src/services/people/people-directory.service.js +317 -0
  284. package/dist/backend/backend/src/services/people/people-directory.service.js.map +1 -0
  285. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  286. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +29 -1
  287. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  288. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +40 -0
  289. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  290. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -1
  291. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
  292. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +16 -2
  293. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
  294. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +60 -1
  295. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  296. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +140 -8
  297. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  298. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js +1 -1
  299. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js.map +1 -1
  300. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +20 -7
  301. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  302. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js +24 -7
  303. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  304. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  305. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +12 -2
  306. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  307. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts +7 -1
  308. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts.map +1 -1
  309. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js +18 -3
  310. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js.map +1 -1
  311. package/dist/backend/backend/src/services/security/approval-activity.service.d.ts +203 -0
  312. package/dist/backend/backend/src/services/security/approval-activity.service.d.ts.map +1 -0
  313. package/dist/backend/backend/src/services/security/approval-activity.service.js +279 -0
  314. package/dist/backend/backend/src/services/security/approval-activity.service.js.map +1 -0
  315. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  316. package/dist/backend/backend/src/services/skill/skill.service.js +14 -3
  317. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  318. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  319. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +3 -0
  320. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  321. package/dist/backend/backend/src/services/slack/slack-mention-resolver.d.ts +22 -0
  322. package/dist/backend/backend/src/services/slack/slack-mention-resolver.d.ts.map +1 -1
  323. package/dist/backend/backend/src/services/slack/slack-mention-resolver.js +50 -0
  324. package/dist/backend/backend/src/services/slack/slack-mention-resolver.js.map +1 -1
  325. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +10 -0
  326. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  327. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +51 -0
  328. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  329. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +54 -1
  330. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  331. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +260 -20
  332. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  333. package/dist/backend/backend/src/services/spend/spend-cap-command.js +1 -1
  334. package/dist/backend/backend/src/services/spend/spend-cap-command.js.map +1 -1
  335. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts +48 -1
  336. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts.map +1 -1
  337. package/dist/backend/backend/src/services/spend/spend-cap.service.js +85 -2
  338. package/dist/backend/backend/src/services/spend/spend-cap.service.js.map +1 -1
  339. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts +105 -0
  340. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts.map +1 -0
  341. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js +238 -0
  342. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js.map +1 -0
  343. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  344. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +4 -0
  345. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  346. package/dist/backend/backend/src/services/usage/usage-stats.service.d.ts +101 -14
  347. package/dist/backend/backend/src/services/usage/usage-stats.service.d.ts.map +1 -1
  348. package/dist/backend/backend/src/services/usage/usage-stats.service.js +183 -61
  349. package/dist/backend/backend/src/services/usage/usage-stats.service.js.map +1 -1
  350. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -0
  351. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  352. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +9 -0
  353. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  354. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +10 -0
  355. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  356. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +45 -2
  357. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  358. package/dist/backend/backend/src/types/index.d.ts +12 -1
  359. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  360. package/dist/backend/backend/src/types/index.js.map +1 -1
  361. package/dist/backend/backend/src/types/messaging.types.d.ts +5 -0
  362. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  363. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  364. package/dist/backend/backend/src/types/v2/completion-evidence.types.d.ts +77 -0
  365. package/dist/backend/backend/src/types/v2/completion-evidence.types.d.ts.map +1 -0
  366. package/dist/backend/backend/src/types/v2/completion-evidence.types.js +119 -0
  367. package/dist/backend/backend/src/types/v2/completion-evidence.types.js.map +1 -0
  368. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +13 -0
  369. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  370. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  371. package/dist/backend/build-info.json +2 -2
  372. package/dist/backend/config/constants.d.ts +11 -0
  373. package/dist/backend/config/constants.d.ts.map +1 -1
  374. package/dist/backend/config/constants.js +11 -0
  375. package/dist/backend/config/constants.js.map +1 -1
  376. package/dist/cli/backend/src/constants.d.ts +181 -2
  377. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  378. package/dist/cli/backend/src/constants.js +183 -2
  379. package/dist/cli/backend/src/constants.js.map +1 -1
  380. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +13 -0
  381. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  382. package/dist/cli/backend/src/services/agent/agent-registration.service.js +28 -3
  383. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  384. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +3 -2
  385. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  386. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +14 -3
  387. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  388. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +28 -1
  389. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  390. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +48 -4
  391. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  392. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +2 -1
  393. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  394. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +17 -4
  395. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  396. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +14 -0
  397. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  398. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +38 -0
  399. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  400. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +34 -0
  401. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  402. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +49 -5
  403. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  404. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  405. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +8 -1
  406. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  407. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +1 -1
  408. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
  409. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +55 -0
  410. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  411. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +80 -0
  412. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  413. package/dist/cli/backend/src/services/cloud/cloud-device-pairing.client.d.ts +1 -1
  414. package/dist/cli/backend/src/services/cloud/cloud-device-pairing.client.js +1 -1
  415. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts +74 -4
  416. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  417. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js +204 -56
  418. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  419. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +19 -0
  420. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  421. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  422. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +9 -0
  423. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  424. package/dist/cli/backend/src/services/decisions/decision.service.js +11 -0
  425. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  426. package/dist/cli/backend/src/services/harness/claude-accounts.d.ts +207 -0
  427. package/dist/cli/backend/src/services/harness/claude-accounts.d.ts.map +1 -0
  428. package/dist/cli/backend/src/services/harness/claude-accounts.js +306 -0
  429. package/dist/cli/backend/src/services/harness/claude-accounts.js.map +1 -0
  430. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts +35 -0
  431. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  432. package/dist/cli/backend/src/services/harness/harness-credentials.store.js +48 -0
  433. package/dist/cli/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  434. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +70 -1
  435. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  436. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +156 -19
  437. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  438. package/dist/cli/backend/src/services/harness/harness.types.d.ts +2 -0
  439. package/dist/cli/backend/src/services/harness/harness.types.d.ts.map +1 -1
  440. package/dist/cli/backend/src/services/harness/harness.types.js.map +1 -1
  441. package/dist/cli/backend/src/services/harness/login-broker.service.d.ts +19 -4
  442. package/dist/cli/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
  443. package/dist/cli/backend/src/services/harness/login-broker.service.js +46 -7
  444. package/dist/cli/backend/src/services/harness/login-broker.service.js.map +1 -1
  445. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts +18 -2
  446. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts.map +1 -1
  447. package/dist/cli/backend/src/services/harness/owner-login-request.js +31 -7
  448. package/dist/cli/backend/src/services/harness/owner-login-request.js.map +1 -1
  449. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts +21 -0
  450. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  451. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js +39 -1
  452. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  453. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts +11 -0
  454. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  455. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +29 -0
  456. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  457. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +5 -0
  458. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  459. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +13 -0
  460. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  461. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.d.ts +197 -0
  462. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -0
  463. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.js +455 -0
  464. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -0
  465. package/dist/cli/backend/src/services/monitoring/model-pricing.d.ts +2 -1
  466. package/dist/cli/backend/src/services/monitoring/model-pricing.d.ts.map +1 -1
  467. package/dist/cli/backend/src/services/monitoring/model-pricing.js +13 -0
  468. package/dist/cli/backend/src/services/monitoring/model-pricing.js.map +1 -1
  469. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +9 -0
  470. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  471. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +32 -3
  472. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  473. package/dist/cli/backend/src/services/people/acting-for.service.d.ts +151 -0
  474. package/dist/cli/backend/src/services/people/acting-for.service.d.ts.map +1 -0
  475. package/dist/cli/backend/src/services/people/acting-for.service.js +224 -0
  476. package/dist/cli/backend/src/services/people/acting-for.service.js.map +1 -0
  477. package/dist/cli/backend/src/services/people/dedicated-agent.d.ts +89 -0
  478. package/dist/cli/backend/src/services/people/dedicated-agent.d.ts.map +1 -0
  479. package/dist/cli/backend/src/services/people/dedicated-agent.js +113 -0
  480. package/dist/cli/backend/src/services/people/dedicated-agent.js.map +1 -0
  481. package/dist/cli/backend/src/services/people/people-directory.service.d.ts +181 -0
  482. package/dist/cli/backend/src/services/people/people-directory.service.d.ts.map +1 -0
  483. package/dist/cli/backend/src/services/people/people-directory.service.js +317 -0
  484. package/dist/cli/backend/src/services/people/people-directory.service.js.map +1 -0
  485. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +29 -1
  486. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  487. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +40 -0
  488. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  489. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +20 -7
  490. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  491. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +24 -7
  492. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  493. package/dist/cli/backend/src/services/skill/skill.service.d.ts.map +1 -1
  494. package/dist/cli/backend/src/services/skill/skill.service.js +14 -3
  495. package/dist/cli/backend/src/services/skill/skill.service.js.map +1 -1
  496. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  497. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +3 -0
  498. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  499. package/dist/cli/backend/src/services/slack/slack-mention-resolver.d.ts +22 -0
  500. package/dist/cli/backend/src/services/slack/slack-mention-resolver.d.ts.map +1 -1
  501. package/dist/cli/backend/src/services/slack/slack-mention-resolver.js +50 -0
  502. package/dist/cli/backend/src/services/slack/slack-mention-resolver.js.map +1 -1
  503. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +10 -0
  504. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  505. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +51 -0
  506. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  507. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +54 -1
  508. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  509. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +260 -20
  510. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  511. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  512. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +4 -0
  513. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  514. package/dist/cli/backend/src/types/index.d.ts +12 -1
  515. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  516. package/dist/cli/backend/src/types/index.js.map +1 -1
  517. package/dist/cli/backend/src/types/messaging.types.d.ts +5 -0
  518. package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -1
  519. package/dist/cli/backend/src/types/messaging.types.js.map +1 -1
  520. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +13 -0
  521. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  522. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  523. package/dist/cli/cli/src/utils/marketplace.d.ts +21 -0
  524. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  525. package/dist/cli/cli/src/utils/marketplace.js +35 -1
  526. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  527. package/dist/cli/config/constants.d.ts +11 -0
  528. package/dist/cli/config/constants.d.ts.map +1 -1
  529. package/dist/cli/config/constants.js +11 -0
  530. package/dist/cli/config/constants.js.map +1 -1
  531. package/dist/cli/config/skills/marketplace-registry.d.ts +4 -4
  532. package/dist/cli/config/skills/marketplace-registry.js +4 -4
  533. package/frontend/dist/assets/index-465d1f8f.js +4955 -0
  534. package/frontend/dist/assets/index-5e967795.css +42 -0
  535. package/frontend/dist/index.html +2 -2
  536. package/package.json +1 -1
  537. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +45 -0
  538. package/packages/crewly-agent/src/runtime/tool-registry.ts +40 -5
  539. package/packages/crewly-agent/src/test/isolated-home.test.ts +24 -0
  540. package/frontend/dist/assets/index-20a67829.css +0 -42
  541. package/frontend/dist/assets/index-49f50b45.js +0 -4952
@@ -114,6 +114,12 @@ export interface ChatV2DispatcherOptions {
114
114
  * logged and ignored.
115
115
  */
116
116
  onDispatched?: (channel: ChatChannelDTO, message: ChatMessageDTO, result: DispatchMessageResult) => void | Promise<void>;
117
+ /**
118
+ * Whether a message must not reach an agent at all (issue #968: an agent
119
+ * dedicated to one person never gets — or is woken by — anyone else's
120
+ * message). Checked before every delivery. Must not throw.
121
+ */
122
+ refuseDelivery?: (sessionName: string, message: ChatMessageDTO) => Promise<boolean>;
117
123
  /**
118
124
  * Override the prompt formatter for tests / future customization. The
119
125
  * default matches the `reply-chat` skill's parser exactly.
@@ -265,6 +271,23 @@ export interface FormatPromptArgs {
265
271
  * posted in the thread the owner wrote in last, bundled with another).
266
272
  */
267
273
  slackThreadKey?: string;
274
+ /** See {@link DispatchMessageOptions.peopleAddressing}. */
275
+ peopleAddressing?: PeopleAddressing;
276
+ }
277
+ /**
278
+ * Who a Slack room message was meant for, when people are involved — the
279
+ * prompt-level backstop to the routing rule that a message to people wakes
280
+ * no agent (specs/slack-room-presence.md "Prompt backstop").
281
+ */
282
+ export interface PeopleAddressing {
283
+ /**
284
+ * `named-in-message`: the message itself @'d these people.
285
+ * `recent-exchange`: it @'d nobody, and the conversation's recent human
286
+ * messages were these people being addressed.
287
+ */
288
+ kind: 'named-in-message' | 'recent-exchange';
289
+ /** How to name each person, e.g. `Info (<@U0AMU9APG9E>)`. */
290
+ people: readonly string[];
268
291
  }
269
292
  /**
270
293
  * Per-call routing options for {@link ChatV2DispatcherService.dispatchMessage}.
@@ -299,6 +322,8 @@ export interface DispatchMessageOptions {
299
322
  * recipient wrote itself are marked. Returns '' for no block.
300
323
  */
301
324
  slackContextFor?: (agentSession: string) => string;
325
+ /** People the message (or the exchange it may continue) was addressed to; rendered as an `Addressed to:` line. */
326
+ peopleAddressing?: PeopleAddressing;
302
327
  }
303
328
  /** What the Slack bridge knows about a room's presence, from this machine's point of view. */
304
329
  export interface HuddleRoomState {
@@ -352,6 +377,18 @@ export declare function slackThreadKeyOf(message: Pick<ChatMessageDTO, 'metadata
352
377
  * @returns The block, or an empty string when there is nothing to show
353
378
  */
354
379
  export declare function renderChatContext(turns: readonly ChatContextTurn[]): string;
380
+ /**
381
+ * The `Addressed to:` line: who a message was meant for when people are in
382
+ * the picture. Routing already keeps a message to people away from agents;
383
+ * this tells an agent that hears one anyway — @'d together with a person, or
384
+ * told about a follow-up in a conversation people were having — that the
385
+ * default is to stay out of it (2026-10-02, #personal-assistant-team).
386
+ *
387
+ * @param args - Prompt inputs
388
+ * @param mode - The effective response mode
389
+ * @returns The line, or null when there is nothing to say
390
+ */
391
+ export declare function peopleAddressingLine(args: FormatPromptArgs, mode: 'required' | 'optional'): string | null;
355
392
  export declare function defaultFormatPrompt(args: FormatPromptArgs): string;
356
393
  /**
357
394
  * Dispatches user-origin chat messages to the agent session bound to the
@@ -369,6 +406,7 @@ export declare class ChatV2DispatcherService {
369
406
  private readonly activateAgent?;
370
407
  private readonly recentTurnsFor?;
371
408
  private readonly onDispatched?;
409
+ private readonly refuseDelivery?;
372
410
  private readonly logger;
373
411
  constructor(options: ChatV2DispatcherOptions);
374
412
  /**
@@ -406,6 +444,23 @@ export declare class ChatV2DispatcherService {
406
444
  * @returns Aggregate result describing the strategy + outcomes.
407
445
  */
408
446
  dispatchMessage(channel: ChatChannelDTO, message: ChatMessageDTO, options?: DispatchMessageOptions): Promise<DispatchMessageResult>;
447
+ /**
448
+ * Whether a message must not reach an agent (dedicated to another person).
449
+ *
450
+ * @param sessionName - Recipient
451
+ * @param message - The message
452
+ * @returns True to skip it (never on an error)
453
+ */
454
+ private isRefused;
455
+ /**
456
+ * Record whom the agent now acts for (issue #968): the Slack sender, or the
457
+ * owner for a dashboard message. Done before delivery, so the agent's first
458
+ * connector call already carries the right person.
459
+ *
460
+ * @param sessionName - Recipient
461
+ * @param message - The human message being delivered
462
+ */
463
+ private noteActingFor;
409
464
  /**
410
465
  * Tell the reply router which chat thread an agent was just asked in, so
411
466
  * its `reply` lands there (specs/2026-09-30-owner-message-guarantee.md §B).
@@ -1 +1 @@
1
- {"version":3,"file":"chat-v2.dispatcher.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.dispatcher.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-v2.dispatcher.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.dispatcher.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EACV,qBAAqB,EAErB,aAAa,EACd,MAAM,+BAA+B,CAAC;AAYvC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,EAAE,aAAa,CAAC;IACtB,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,iEAAiE;IACjE,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,QAAQ,EAAE,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,CAAC;IAClE,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC1C;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzH;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAClD;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IAC5D;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IACnF,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC9E;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,SAAS,eAAe,EAAE,CAAC;CACvF;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;IAC1C,iFAAiF;IACjF,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;IAC1C;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;IAC7C,6DAA6D;IAC7D,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;IAC1C;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,kHAAkH;IAClH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,8FAA8F;AAC9F,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;CAC3F;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,GAAG,SAAS,CAK9F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,GAAG,SAAS,CAK9F;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAkB3E;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAWzG;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAiGlE;AAMD;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA2C;IAC7E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAA6D;IACpG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAyD;IAC/F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgD;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAuE;IACvG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA4C;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,OAAO,EAAE,uBAAuB;IAe5C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,UAAU;IAuBlB;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CACnB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC;;;;;;OAMG;YACW,SAAS;IASvB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;YAQV,KAAK;IAgCnB;;;;;;;;;;;;;;;;;;;OAmBG;YACW,uBAAuB;IAkCrC;;;;;;;;;;;;;;;;OAgBG;IACG,iBAAiB,CACrB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;IAOhD;;;;;;;;OAQG;YACW,oBAAoB;IAqFlC;;;;;;;;;;;OAWG;YACW,sBAAsB;IAqGpC;;;;;;;;;;;;OAYG;YACW,uBAAuB;IAuFrC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,eAAe,CACnB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAM,GAC5D,OAAO,CAAC,cAAc,CAAC;CA+F3B"}
@@ -23,6 +23,7 @@ import { LoggerService } from '../core/logger.service.js';
23
23
  import { AGENT_REPLY_CONSTANTS, CHAT_CONTEXT_CONSTANTS, CHAT_REPLY_PACING_HINT, SLACK_TEAM_CHANNEL_CONSTANTS } from '../../constants.js';
24
24
  import { ticketLineOf } from '../v3/ticket-channel-hooks.js';
25
25
  import { isSlackDm, OrcReplyRouteService } from '../orc/orc-reply-route.service.js';
26
+ import { getActingFor } from '../people/acting-for.service.js';
26
27
  import { formatSlackThreadKey, slackThreadOfMetadata, slackThreadTag, parseSlackThreadKey } from '../slack/slack-thread-key.js';
27
28
  // ---------------------------------------------------------------------------
28
29
  // Prompt formatter
@@ -109,6 +110,31 @@ function slackContextOf(options, agentSession) {
109
110
  return undefined;
110
111
  }
111
112
  }
113
+ /**
114
+ * The `Addressed to:` line: who a message was meant for when people are in
115
+ * the picture. Routing already keeps a message to people away from agents;
116
+ * this tells an agent that hears one anyway — @'d together with a person, or
117
+ * told about a follow-up in a conversation people were having — that the
118
+ * default is to stay out of it (2026-10-02, #personal-assistant-team).
119
+ *
120
+ * @param args - Prompt inputs
121
+ * @param mode - The effective response mode
122
+ * @returns The line, or null when there is nothing to say
123
+ */
124
+ export function peopleAddressingLine(args, mode) {
125
+ const addressing = args.peopleAddressing;
126
+ if (!addressing || addressing.people.length === 0)
127
+ return null;
128
+ const who = addressing.people.join(', ');
129
+ if (addressing.kind === 'named-in-message') {
130
+ return args.addressedDirectly
131
+ ? `Addressed to: you and ${who} (people, not agents). Answer only the part meant for you; leave the rest to them.`
132
+ : `Addressed to: ${who}, not you — this message was for a person. Reply only if asked. By default, stay silent.`;
133
+ }
134
+ if (args.addressedDirectly || (mode === 'required' && args.addressedDirectly === undefined))
135
+ return null;
136
+ return `Addressed to: nobody was @'d, and this conversation's recent messages were people talking to ${who}. This message may continue that person-to-person exchange, not a question for you. Reply only if asked. By default, stay silent.`;
137
+ }
112
138
  export function defaultFormatPrompt(args) {
113
139
  const { channelId, channelName, senderId, content, clientMessageId, responseMode, threadId, replyVia, channelRoster } = args;
114
140
  // Nobody named this agent, so it may be reading someone else's
@@ -189,6 +215,7 @@ export function defaultFormatPrompt(args) {
189
215
  : `reply-chat … --interim`;
190
216
  replyHint += ' ' + CHAT_REPLY_PACING_HINT.replace('{cmd}', interimCmd);
191
217
  }
218
+ const addressedTo = peopleAddressingLine(args, mode);
192
219
  const contextBlock = args.slackContext || renderChatContext(args.context ?? []);
193
220
  const threadParts = parseSlackThreadKey(args.slackThreadKey);
194
221
  return [
@@ -201,6 +228,7 @@ export function defaultFormatPrompt(args) {
201
228
  ``,
202
229
  `---`,
203
230
  replyHint + actionGuard,
231
+ ...(addressedTo ? [addressedTo] : []),
204
232
  ...(channelRoster ? [`本频道成员(可 @ 的同事): ${channelRoster}`] : []),
205
233
  ...(args.roomPresence ? [`此刻谁醒着: ${args.roomPresence}`] : []),
206
234
  ].join('\n');
@@ -224,6 +252,7 @@ export class ChatV2DispatcherService {
224
252
  activateAgent;
225
253
  recentTurnsFor;
226
254
  onDispatched;
255
+ refuseDelivery;
227
256
  logger;
228
257
  constructor(options) {
229
258
  this.agentSink = options.agentSink;
@@ -236,6 +265,7 @@ export class ChatV2DispatcherService {
236
265
  this.activateAgent = options.activateAgent;
237
266
  this.recentTurnsFor = options.recentTurnsFor;
238
267
  this.onDispatched = options.onDispatched;
268
+ this.refuseDelivery = options.refuseDelivery;
239
269
  this.logger = LoggerService.getInstance().createComponentLogger('ChatV2Dispatcher');
240
270
  }
241
271
  /**
@@ -311,6 +341,40 @@ export class ChatV2DispatcherService {
311
341
  }
312
342
  return result;
313
343
  }
344
+ /**
345
+ * Whether a message must not reach an agent (dedicated to another person).
346
+ *
347
+ * @param sessionName - Recipient
348
+ * @param message - The message
349
+ * @returns True to skip it (never on an error)
350
+ */
351
+ async isRefused(sessionName, message) {
352
+ if (!this.refuseDelivery)
353
+ return false;
354
+ try {
355
+ return await this.refuseDelivery(sessionName, message);
356
+ }
357
+ catch {
358
+ return false;
359
+ }
360
+ }
361
+ /**
362
+ * Record whom the agent now acts for (issue #968): the Slack sender, or the
363
+ * owner for a dashboard message. Done before delivery, so the agent's first
364
+ * connector call already carries the right person.
365
+ *
366
+ * @param sessionName - Recipient
367
+ * @param message - The human message being delivered
368
+ */
369
+ noteActingFor(sessionName, message) {
370
+ try {
371
+ const slackUserId = typeof message.metadata?.slackUserId === 'string' ? message.metadata.slackUserId : null;
372
+ getActingFor().recordHumanMessage(sessionName, slackUserId);
373
+ }
374
+ catch {
375
+ /* best effort: no record means the owner */
376
+ }
377
+ }
314
378
  /**
315
379
  * Tell the reply router which chat thread an agent was just asked in, so
316
380
  * its `reply` lands there (specs/2026-09-30-owner-message-guarantee.md §B).
@@ -392,6 +456,11 @@ export class ChatV2DispatcherService {
392
456
  };
393
457
  }
394
458
  const { targets, mentioned, wakeRoles } = await this.computeHuddleTargets(channel, message, options, members);
459
+ // Dedicated agents never get another person's message (issue #968).
460
+ for (const sessionName of [...targets.keys()]) {
461
+ if (await this.isRefused(sessionName, message))
462
+ targets.delete(sessionName);
463
+ }
395
464
  return this.deliverToHuddleTargets(channel, message, options, members, targets, mentioned, wakeRoles);
396
465
  }
397
466
  /**
@@ -554,10 +623,12 @@ export class ChatV2DispatcherService {
554
623
  context: this.contextFor(channel.id, options.threadId),
555
624
  slackContext: slackContextOf(options, sessionName),
556
625
  ticketLine: ticketLineOf(message),
626
+ ...(options.peopleAddressing ? { peopleAddressing: options.peopleAddressing } : {}),
557
627
  });
558
628
  /** One delivery attempt; false when the sink refused (typically: no session). */
559
629
  const attempt = async (sessionName, responseMode) => {
560
630
  try {
631
+ this.noteActingFor(sessionName, message);
561
632
  const result = await this.agentSink.sendMessageToAgent(sessionName, promptFor(sessionName, responseMode));
562
633
  return result.success ? { ok: true } : { ok: false, error: result.error ?? 'unknown sink failure' };
563
634
  }
@@ -647,6 +718,10 @@ export class ChatV2DispatcherService {
647
718
  const outcomes = [];
648
719
  let anyDispatched = false;
649
720
  for (const target of targets) {
721
+ if (await this.isRefused(target.sessionName, message)) {
722
+ outcomes.push({ target, dispatched: false, error: 'dedicated to another person' });
723
+ continue;
724
+ }
650
725
  const prompt = this.formatPrompt({
651
726
  channelId: channel.id,
652
727
  channelName: channel.name,
@@ -660,6 +735,7 @@ export class ChatV2DispatcherService {
660
735
  ticketLine: ticketLineOf(message),
661
736
  });
662
737
  try {
738
+ this.noteActingFor(target.sessionName, message);
663
739
  const result = await this.agentSink.sendMessageToAgent(target.sessionName, prompt);
664
740
  if (result.success) {
665
741
  outcomes.push({ target, dispatched: true });
@@ -729,6 +805,9 @@ export class ChatV2DispatcherService {
729
805
  });
730
806
  return { dispatched: false, error: 'channel has no bound agent' };
731
807
  }
808
+ if (await this.isRefused(channel.agentSession, message)) {
809
+ return { dispatched: false, error: 'dedicated to another person' };
810
+ }
732
811
  const prompt = this.formatPrompt({
733
812
  channelId: channel.id,
734
813
  channelName: channel.name,
@@ -745,6 +824,7 @@ export class ChatV2DispatcherService {
745
824
  slackThreadKey: slackThreadKeyOf(message),
746
825
  });
747
826
  let result;
827
+ this.noteActingFor(channel.agentSession, message);
748
828
  try {
749
829
  result = await this.agentSink.sendMessageToAgent(channel.agentSession, prompt);
750
830
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-v2.dispatcher.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.dispatcher.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-v2.dispatcher.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.dispatcher.service.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  * token pair exactly once.
14
14
  *
15
15
  * Shared by `crewly cloud login` (CLI) and {@link CloudDevicePairingService}
16
- * (backend, for `/setup` and Settings → Cloud). No state; the device code
16
+ * (backend, for `/setup` and Settings → Cloud & devices). No state; the device code
17
17
  * never leaves the caller's memory.
18
18
  *
19
19
  * @module services/cloud/cloud-device-pairing.client
@@ -13,7 +13,7 @@
13
13
  * token pair exactly once.
14
14
  *
15
15
  * Shared by `crewly cloud login` (CLI) and {@link CloudDevicePairingService}
16
- * (backend, for `/setup` and Settings → Cloud). No state; the device code
16
+ * (backend, for `/setup` and Settings → Cloud & devices). No state; the device code
17
17
  * never leaves the caller's memory.
18
18
  *
19
19
  * @module services/cloud/cloud-device-pairing.client
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Cloud device pairing (backend side).
3
3
  *
4
- * Lets the web UI (`/setup`'s Cloud step, Settings → Cloud) — often opened on
4
+ * Lets the web UI (`/setup`'s Cloud step, Settings → Cloud & devices) — often opened on
5
5
  * the owner's phone over the LAN or the relay — connect this machine to
6
6
  * Crewly Cloud with no token handling at all:
7
7
  *
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Cloud device pairing (backend side).
3
3
  *
4
- * Lets the web UI (`/setup`'s Cloud step, Settings → Cloud) — often opened on
4
+ * Lets the web UI (`/setup`'s Cloud step, Settings → Cloud & devices) — often opened on
5
5
  * the owner's phone over the LAN or the relay — connect this machine to
6
6
  * Crewly Cloud with no token handling at all:
7
7
  *
@@ -10,7 +10,9 @@
10
10
  *
11
11
  * What it does, once a minute:
12
12
  * 1. Detect ({@link evaluateDisconnect}): signed in (a Cloud config exists)
13
- * AND (sync is `auth_expired` OR Cloud has not answered for 15 min).
13
+ * AND (sync is `auth_expired` OR Cloud has not answered for 15 min OR the
14
+ * relay has refused this machine a message queue for 2 min — e.g. 429
15
+ * quota_exceeded, when heartbeats still succeed but nothing arrives).
14
16
  * 2. When the sign-in is the problem, run `crewly cloud login --no-browser`
15
17
  * in a PTY ({@link startCloudLogin}) — the same device pairing the owner
16
18
  * would run by hand — and take the approve link it prints.
@@ -22,7 +24,9 @@
22
24
  * the DM (`conversations.history`) — it cannot arrive through Cloud.
23
25
  *
24
26
  * Rate limit: one notice per disconnect episode, repeated at most every 6 h,
25
- * persisted under the Crewly home so a restart does not re-notify. An
27
+ * persisted under the Crewly home so a restart does not re-notify (relay
28
+ * queue failures: at most every 6 h across episodes too, so a flapping
29
+ * registration does not DM the owner each time). An
26
30
  * expired link is replaced by editing the same message (no new
27
31
  * notification); a failed login gets one brief note and waits for the next
28
32
  * window. Kill switch: `CREWLY_CLOUD_DISCONNECT_NOTICE=0`.
@@ -41,6 +45,13 @@ export interface DisconnectNoticeLogger {
41
45
  export interface CloudDisconnectNoticeDeps {
42
46
  /** State file (`<crewlyHome>/cloud/disconnect-notice.json`) */
43
47
  stateFile: string;
48
+ /**
49
+ * When the owner last heard about a relay-queue failure
50
+ * (`<crewlyHome>/cloud/relay-queue-notice.json`). Outlives the episode so a
51
+ * flapping registration is reported at most once per repeat interval.
52
+ * Omitted = per-episode limit only.
53
+ */
54
+ relayQueueNoticeFile?: string;
44
55
  /** A Cloud config exists (signed in, not logged out) */
45
56
  isSignedIn: () => Promise<boolean>;
46
57
  /** CloudSyncService health */
@@ -58,6 +69,8 @@ export interface CloudDisconnectNoticeDeps {
58
69
  schedule: (fn: () => void, ms: number) => unknown;
59
70
  cancel: (handle: unknown) => void;
60
71
  thresholdMs?: number;
72
+ /** Relay queue registration failing this long = disconnected (default 2 min) */
73
+ queueThresholdMs?: number;
61
74
  repeatMs?: number;
62
75
  checkIntervalMs?: number;
63
76
  linkWaitMs?: number;
@@ -69,6 +82,7 @@ export interface CloudDisconnectNoticeDeps {
69
82
  export declare class CloudDisconnectNoticeService {
70
83
  private readonly deps;
71
84
  private readonly thresholdMs;
85
+ private readonly queueThresholdMs;
72
86
  private readonly repeatMs;
73
87
  private readonly checkIntervalMs;
74
88
  private readonly linkWaitMs;
@@ -118,6 +132,7 @@ export declare class CloudDisconnectNoticeService {
118
132
  *
119
133
  * @param state - Episode state (updated in place)
120
134
  * @param reason - Why
135
+ * @param detail - Specific reason (relay_queue), e.g. `relay quota full`
121
136
  */
122
137
  private sendNotice;
123
138
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-disconnect-notice.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-disconnect-notice.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-disconnect-notice.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-disconnect-notice.service.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@
10
10
  *
11
11
  * What it does, once a minute:
12
12
  * 1. Detect ({@link evaluateDisconnect}): signed in (a Cloud config exists)
13
- * AND (sync is `auth_expired` OR Cloud has not answered for 15 min).
13
+ * AND (sync is `auth_expired` OR Cloud has not answered for 15 min OR the
14
+ * relay has refused this machine a message queue for 2 min — e.g. 429
15
+ * quota_exceeded, when heartbeats still succeed but nothing arrives).
14
16
  * 2. When the sign-in is the problem, run `crewly cloud login --no-browser`
15
17
  * in a PTY ({@link startCloudLogin}) — the same device pairing the owner
16
18
  * would run by hand — and take the approve link it prints.
@@ -22,7 +24,9 @@
22
24
  * the DM (`conversations.history`) — it cannot arrive through Cloud.
23
25
  *
24
26
  * Rate limit: one notice per disconnect episode, repeated at most every 6 h,
25
- * persisted under the Crewly home so a restart does not re-notify. An
27
+ * persisted under the Crewly home so a restart does not re-notify (relay
28
+ * queue failures: at most every 6 h across episodes too, so a flapping
29
+ * registration does not DM the owner each time). An
26
30
  * expired link is replaced by editing the same message (no new
27
31
  * notification); a failed login gets one brief note and waits for the next
28
32
  * window. Kill switch: `CREWLY_CLOUD_DISCONNECT_NOTICE=0`.
@@ -37,7 +41,7 @@ import { resolveRunningPackageRoot } from '../system/auto-update.utils.js';
37
41
  import { CloudClientService } from './cloud-client.service.js';
38
42
  import { CloudSyncService } from './cloud-sync.service.js';
39
43
  import { isCloudLoginFinished, startCloudLogin } from './cloud-login-runner.js';
40
- import { RECONNECTED_NOTICE, clearNoticeState, composeDisconnectNotice, composeLoginFailedNotice, evaluateDisconnect, readNoticeState, shouldNotify, writeNoticeState, } from './cloud-disconnect-notice.utils.js';
44
+ import { RECONNECTED_NOTICE, clearNoticeState, composeDisconnectNotice, composeLoginFailedNotice, evaluateDisconnect, readLastRelayQueueNotice, readNoticeState, shouldNotify, writeLastRelayQueueNotice, writeNoticeState, } from './cloud-disconnect-notice.utils.js';
41
45
  const C = CLOUD_DISCONNECT_NOTICE_CONSTANTS;
42
46
  /**
43
47
  * Owner-facing text for how a login run ended.
@@ -58,6 +62,7 @@ function loginFailureDetail(snapshot) {
58
62
  export class CloudDisconnectNoticeService {
59
63
  deps;
60
64
  thresholdMs;
65
+ queueThresholdMs;
61
66
  repeatMs;
62
67
  checkIntervalMs;
63
68
  linkWaitMs;
@@ -83,6 +88,7 @@ export class CloudDisconnectNoticeService {
83
88
  constructor(deps) {
84
89
  this.deps = deps;
85
90
  this.thresholdMs = deps.thresholdMs ?? C.DISCONNECT_THRESHOLD_MS;
91
+ this.queueThresholdMs = deps.queueThresholdMs ?? C.QUEUE_FAILURE_THRESHOLD_MS;
86
92
  this.repeatMs = deps.repeatMs ?? C.REPEAT_INTERVAL_MS;
87
93
  this.checkIntervalMs = deps.checkIntervalMs ?? C.CHECK_INTERVAL_MS;
88
94
  this.linkWaitMs = deps.linkWaitMs ?? C.LINK_WAIT_MS;
@@ -148,6 +154,7 @@ export class CloudDisconnectNoticeService {
148
154
  monitorStartedAt: this.monitorStartedAt || now,
149
155
  now,
150
156
  thresholdMs: this.thresholdMs,
157
+ queueThresholdMs: this.queueThresholdMs,
151
158
  });
152
159
  const state = readNoticeState(this.deps.stateFile);
153
160
  if (verdict.status === 'signed_out') {
@@ -172,7 +179,7 @@ export class CloudDisconnectNoticeService {
172
179
  if (current.channelId && current.messageTs)
173
180
  this.notice = { channelId: current.channelId, ts: current.messageTs };
174
181
  if (shouldNotify(state, now, this.repeatMs)) {
175
- await this.sendNotice(current, verdict.reason);
182
+ await this.sendNotice(current, verdict.reason, verdict.detail ?? null);
176
183
  }
177
184
  else if (this.shouldRefreshLink(current, now)) {
178
185
  await this.refreshLink(current);
@@ -184,9 +191,20 @@ export class CloudDisconnectNoticeService {
184
191
  *
185
192
  * @param state - Episode state (updated in place)
186
193
  * @param reason - Why
194
+ * @param detail - Specific reason (relay_queue), e.g. `relay quota full`
187
195
  */
188
- async sendNotice(state, reason) {
196
+ async sendNotice(state, reason, detail = null) {
189
197
  const now = this.deps.now();
198
+ if (reason === 'relay_queue' && this.deps.relayQueueNoticeFile) {
199
+ const last = readLastRelayQueueNotice(this.deps.relayQueueNoticeFile);
200
+ if (last !== null && now - last < this.repeatMs) {
201
+ // Told less than the repeat interval ago (an earlier episode):
202
+ // stay quiet until that window ends.
203
+ state.lastNotifiedAt = new Date(last).toISOString();
204
+ state.quiet = true;
205
+ return;
206
+ }
207
+ }
190
208
  const dm = this.deps.getDm();
191
209
  if (!dm) {
192
210
  this.deps.logger.warn('Disconnected from Crewly Cloud; Slack is not configured here, so the owner was not notified', { reason });
@@ -202,10 +220,15 @@ export class CloudDisconnectNoticeService {
202
220
  since: Date.parse(state.episodeStartedAt),
203
221
  loginUrl: link?.url ?? null,
204
222
  userCode: link?.userCode ?? null,
223
+ detail,
205
224
  });
206
225
  try {
207
226
  const posted = await dm.send(text);
208
227
  state.lastNotifiedAt = new Date(now).toISOString();
228
+ delete state.quiet;
229
+ if (reason === 'relay_queue' && this.deps.relayQueueNoticeFile) {
230
+ writeLastRelayQueueNotice(this.deps.relayQueueNoticeFile, now);
231
+ }
209
232
  state.channelId = posted.channelId;
210
233
  state.messageTs = posted.ts;
211
234
  state.hasLink = !!link?.url;
@@ -373,7 +396,7 @@ export class CloudDisconnectNoticeService {
373
396
  this.login.cancel();
374
397
  this.login = null;
375
398
  this.lastLoginAttemptAt = 0;
376
- if (!reconnected || !state?.lastNotifiedAt)
399
+ if (!reconnected || !state?.lastNotifiedAt || state.quiet)
377
400
  return;
378
401
  const dm = this.deps.getDm();
379
402
  if (!dm)
@@ -460,6 +483,7 @@ export function createCloudDisconnectNoticeService(wiring) {
460
483
  const logger = LoggerService.getInstance().createComponentLogger('CloudDisconnectNotice');
461
484
  return new CloudDisconnectNoticeService({
462
485
  stateFile: path.join(wiring.crewlyHome, C.STATE_FILE),
486
+ relayQueueNoticeFile: path.join(wiring.crewlyHome, C.RELAY_QUEUE_NOTICE_FILE),
463
487
  isSignedIn: async () => fs.existsSync(CloudClientService.getConfigPath()),
464
488
  getHealth: () => CloudSyncService.getInstance().getHealth(),
465
489
  getDeviceName: wiring.getDeviceName,