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
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Connector grant ownership and sharing (issue #968) — the shapes the
3
+ * backend exchanges with Cloud, their validation, and the message an agent
4
+ * gets when the person it acts for may not use a grant.
5
+ *
6
+ * Cloud holds each grant's `authorizedBy` (the person who connected it) and
7
+ * `sharing`, and decides on every credential request. A grant with neither is
8
+ * the owner's alone.
9
+ *
10
+ * specs/per-person-access.md
11
+ *
12
+ * @module services/people/grant-sharing
13
+ */
14
+ import type { Actor } from './acting-for.service.js';
15
+ /** Who may use a grant besides the person who authorized it. */
16
+ export interface GrantSharing {
17
+ /** `owner`: only the person who authorized it; `people`: also the named people; `members`: every member (not guests) */
18
+ mode: 'owner' | 'people' | 'members';
19
+ /** For `people`: person ids (Slack user ids) */
20
+ people?: string[];
21
+ }
22
+ /** A grant's ownership, as Cloud reports it. */
23
+ export interface GrantOwnership {
24
+ /** Person who authorized it (Slack user id, or `owner`); absent = the owner */
25
+ authorizedBy?: string;
26
+ /** Absent = owner only */
27
+ sharing?: GrantSharing;
28
+ }
29
+ /** A sharing/ownership edit is invalid. */
30
+ export declare class GrantSharingError extends Error {
31
+ }
32
+ /**
33
+ * Validate a sharing setting from the dashboard.
34
+ *
35
+ * @param raw - Candidate (untrusted)
36
+ * @returns Clean sharing
37
+ * @throws GrantSharingError when invalid
38
+ */
39
+ export declare function validateSharing(raw: unknown): GrantSharing;
40
+ /**
41
+ * Validate an owner change (a person id).
42
+ *
43
+ * @param raw - Candidate
44
+ * @returns The person id
45
+ * @throws GrantSharingError when invalid
46
+ */
47
+ export declare function validateAuthorizedBy(raw: unknown): string;
48
+ /**
49
+ * Whether a person may use a grant — the same rule Cloud applies (used for
50
+ * the dashboard's preview and tests).
51
+ *
52
+ * @param grant - Ownership (missing fields = the owner's alone)
53
+ * @param actor - The person
54
+ * @param isOwner - Whether a person id is the instance owner
55
+ * @returns True when allowed
56
+ */
57
+ export declare function mayUseGrant(grant: GrantOwnership, actor: Pick<Actor, 'id' | 'role'>, isOwner: (id: string) => boolean): boolean;
58
+ /**
59
+ * The message an agent gets when the person it acts for may not use a grant,
60
+ * e.g. "Info's Google Calendar isn't shared with you. Ask Info for what you
61
+ * need, or ask the Crewly owner to share it in Connections."
62
+ *
63
+ * @param what - What was asked for ("Google Calendar", "Canva")
64
+ * @param authorizedBy - Person who owns the grant, when Cloud said
65
+ * @returns English message
66
+ */
67
+ export declare function notPermittedMessage(what: string, authorizedBy?: string | null): string;
68
+ /** Display names of Google products, for refusals. */
69
+ export declare const GOOGLE_PRODUCT_LABELS: Readonly<Record<string, string>>;
70
+ /**
71
+ * Read Cloud's refusal from a failed response body.
72
+ *
73
+ * @param body - Parsed body (untrusted)
74
+ * @returns `{ authorizedBy }` when it is a `not_permitted` refusal, else null
75
+ */
76
+ export declare function readNotPermitted(body: unknown): {
77
+ authorizedBy?: string;
78
+ } | null;
79
+ //# sourceMappingURL=grant-sharing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant-sharing.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/people/grant-sharing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC5B,wHAAwH;IACxH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC9B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,2CAA2C;AAC3C,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAc1D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAQ/H;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAmBtF;AAED,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMhF"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Connector grant ownership and sharing (issue #968) — the shapes the
3
+ * backend exchanges with Cloud, their validation, and the message an agent
4
+ * gets when the person it acts for may not use a grant.
5
+ *
6
+ * Cloud holds each grant's `authorizedBy` (the person who connected it) and
7
+ * `sharing`, and decides on every credential request. A grant with neither is
8
+ * the owner's alone.
9
+ *
10
+ * specs/per-person-access.md
11
+ *
12
+ * @module services/people/grant-sharing
13
+ */
14
+ import { PEOPLE_CONSTANTS } from '../../constants.js';
15
+ import { getPeopleDirectory, isPersonId } from './people-directory.service.js';
16
+ /** A sharing/ownership edit is invalid. */
17
+ export class GrantSharingError extends Error {
18
+ }
19
+ /**
20
+ * Validate a sharing setting from the dashboard.
21
+ *
22
+ * @param raw - Candidate (untrusted)
23
+ * @returns Clean sharing
24
+ * @throws GrantSharingError when invalid
25
+ */
26
+ export function validateSharing(raw) {
27
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
28
+ throw new GrantSharingError('sharing must be an object');
29
+ const r = raw;
30
+ if (typeof r.mode !== 'string' || !PEOPLE_CONSTANTS.SHARING_MODES.includes(r.mode)) {
31
+ throw new GrantSharingError('sharing.mode must be owner, people or members');
32
+ }
33
+ if (r.mode !== 'people')
34
+ return { mode: r.mode };
35
+ if (!Array.isArray(r.people))
36
+ throw new GrantSharingError('sharing.people must be a list of people');
37
+ const people = [];
38
+ for (const id of r.people) {
39
+ if (!isPersonId(id))
40
+ throw new GrantSharingError(`Not a person: ${String(id)}`);
41
+ if (!people.includes(id))
42
+ people.push(id);
43
+ }
44
+ return { mode: 'people', people };
45
+ }
46
+ /**
47
+ * Validate an owner change (a person id).
48
+ *
49
+ * @param raw - Candidate
50
+ * @returns The person id
51
+ * @throws GrantSharingError when invalid
52
+ */
53
+ export function validateAuthorizedBy(raw) {
54
+ if (!isPersonId(raw))
55
+ throw new GrantSharingError('authorizedBy must be a person (a Slack user id, or owner)');
56
+ return raw;
57
+ }
58
+ /**
59
+ * Whether a person may use a grant — the same rule Cloud applies (used for
60
+ * the dashboard's preview and tests).
61
+ *
62
+ * @param grant - Ownership (missing fields = the owner's alone)
63
+ * @param actor - The person
64
+ * @param isOwner - Whether a person id is the instance owner
65
+ * @returns True when allowed
66
+ */
67
+ export function mayUseGrant(grant, actor, isOwner) {
68
+ const authorizedBy = grant.authorizedBy ?? PEOPLE_CONSTANTS.OWNER_ID;
69
+ if (actor.id === authorizedBy)
70
+ return true;
71
+ if (isOwner(authorizedBy) && (actor.role === 'owner' || isOwner(actor.id)))
72
+ return true;
73
+ const sharing = grant.sharing ?? { mode: 'owner' };
74
+ if (sharing.mode === 'members')
75
+ return actor.role === 'owner' || actor.role === 'member';
76
+ if (sharing.mode === 'people')
77
+ return (sharing.people ?? []).includes(actor.id);
78
+ return false;
79
+ }
80
+ /**
81
+ * The message an agent gets when the person it acts for may not use a grant,
82
+ * e.g. "Info's Google Calendar isn't shared with you. Ask Info for what you
83
+ * need, or ask the Crewly owner to share it in Connections."
84
+ *
85
+ * @param what - What was asked for ("Google Calendar", "Canva")
86
+ * @param authorizedBy - Person who owns the grant, when Cloud said
87
+ * @returns English message
88
+ */
89
+ export function notPermittedMessage(what, authorizedBy) {
90
+ let name = null;
91
+ let ownerGrant = false;
92
+ if (authorizedBy) {
93
+ try {
94
+ const people = getPeopleDirectory();
95
+ ownerGrant = people.isOwner(authorizedBy);
96
+ const display = people.displayName(authorizedBy);
97
+ name = display === 'the owner' ? null : display;
98
+ }
99
+ catch {
100
+ name = null;
101
+ }
102
+ }
103
+ if (ownerGrant) {
104
+ const who = name ?? 'the owner';
105
+ return `${name ? `${name}'s` : "The owner's"} ${what} isn't shared with you. Ask ${who} to share it in Connections.`;
106
+ }
107
+ if (name)
108
+ return `${name}'s ${what} isn't shared with you. Ask ${name} for what you need, or ask the Crewly owner to share it in Connections.`;
109
+ return `This ${what} isn't shared with you. Ask the Crewly owner to share it in Connections.`;
110
+ }
111
+ /** Display names of Google products, for refusals. */
112
+ export const GOOGLE_PRODUCT_LABELS = {
113
+ gmail: 'Gmail',
114
+ calendar: 'Google Calendar',
115
+ drive: 'Google Drive',
116
+ docs: 'Google Docs',
117
+ sheets: 'Google Sheets',
118
+ slides: 'Google Slides',
119
+ };
120
+ /**
121
+ * Read Cloud's refusal from a failed response body.
122
+ *
123
+ * @param body - Parsed body (untrusted)
124
+ * @returns `{ authorizedBy }` when it is a `not_permitted` refusal, else null
125
+ */
126
+ export function readNotPermitted(body) {
127
+ if (!body || typeof body !== 'object')
128
+ return null;
129
+ const b = body;
130
+ if (b.code !== PEOPLE_CONSTANTS.NOT_PERMITTED_CODE && b.error !== PEOPLE_CONSTANTS.NOT_PERMITTED_CODE)
131
+ return null;
132
+ const details = b.details && typeof b.details === 'object' ? b.details : {};
133
+ return typeof details.authorizedBy === 'string' ? { authorizedBy: details.authorizedBy } : {};
134
+ }
135
+ //# sourceMappingURL=grant-sharing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant-sharing.js","sourceRoot":"","sources":["../../../../../../backend/src/services/people/grant-sharing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * People directory — the humans who use this Crewly instance, keyed by their
3
+ * Slack user id, with a role (issue #968).
4
+ *
5
+ * - **owner**: the instance owner (the Slack user who installed Crewly's
6
+ * Slack app). Always shown, always `owner`, never removable. When their
7
+ * Slack id is not known the owner is the id `owner` (dashboard, terminal).
8
+ * - **member**: a person in the workspace. A Slack user who messages an agent
9
+ * is added as a member automatically.
10
+ * - **guest**: someone the owner marked as a guest. Guests are not included
11
+ * when a connector is shared with "all members".
12
+ *
13
+ * Stored in `<CREWLY_HOME>/people.json`. Writes are atomic.
14
+ *
15
+ * specs/per-person-access.md
16
+ *
17
+ * @module services/people/people-directory.service
18
+ */
19
+ /** A person's role on this instance. */
20
+ export type PersonRole = 'owner' | 'member' | 'guest';
21
+ /** One person. */
22
+ export interface Person {
23
+ /** Slack user id (`U0123…`), or `owner` for an owner whose Slack id is unknown */
24
+ id: string;
25
+ /** Display name */
26
+ name?: string;
27
+ role: PersonRole;
28
+ /** `auto`: added when they first messaged an agent; `owner`: added or edited by the owner */
29
+ source: 'auto' | 'owner';
30
+ createdAt: string;
31
+ updatedAt: string;
32
+ }
33
+ /** An invalid edit. */
34
+ export declare class PeopleDirectoryError extends Error {
35
+ }
36
+ /** Injectable dependencies. */
37
+ export interface PeopleDirectoryDeps {
38
+ /** Store file (default `<CREWLY_HOME>/people.json`) */
39
+ filePath?: string;
40
+ /** The instance owner's Slack user id, when known */
41
+ getOwnerSlackUserId?: () => string | null | undefined;
42
+ now?: () => number;
43
+ }
44
+ /**
45
+ * Whether a value is a valid role.
46
+ *
47
+ * @param value - Candidate
48
+ * @returns True for owner / member / guest
49
+ */
50
+ export declare function isPersonRole(value: unknown): value is PersonRole;
51
+ /**
52
+ * Whether a value is a person id this directory accepts: a Slack user id, or
53
+ * the owner placeholder.
54
+ *
55
+ * @param value - Candidate
56
+ * @returns True when valid
57
+ */
58
+ export declare function isPersonId(value: unknown): value is string;
59
+ /** The people directory. */
60
+ export declare class PeopleDirectoryService {
61
+ private readonly filePathOverride?;
62
+ private readonly ownerSlackUserId;
63
+ private readonly now;
64
+ /**
65
+ * @param deps - Store path, owner lookup, clock
66
+ */
67
+ constructor(deps?: PeopleDirectoryDeps);
68
+ /** @returns Store path (resolved per call so CREWLY_HOME changes apply) */
69
+ private filePath;
70
+ /**
71
+ * The owner's person id: their Slack user id when known, else `owner`.
72
+ *
73
+ * @returns Person id
74
+ */
75
+ ownerId(): string;
76
+ /**
77
+ * Whether a person id is the instance owner.
78
+ *
79
+ * @param id - Person id
80
+ * @returns True for the owner's Slack id or the `owner` placeholder
81
+ */
82
+ isOwner(id: string | null | undefined): boolean;
83
+ /**
84
+ * Everyone, owner first, then by name.
85
+ *
86
+ * @returns People (copies)
87
+ */
88
+ list(): Person[];
89
+ /**
90
+ * One person.
91
+ *
92
+ * @param id - Person id
93
+ * @returns The person, or null when unknown
94
+ */
95
+ get(id: string): Person | null;
96
+ /**
97
+ * A person's role. Unknown people are members (the default for a Slack
98
+ * user in the workspace).
99
+ *
100
+ * @param id - Person id
101
+ * @returns Role
102
+ */
103
+ roleOf(id: string): PersonRole;
104
+ /**
105
+ * How to name a person to others.
106
+ *
107
+ * @param id - Person id
108
+ * @returns Their name, "the owner" for an owner without one, else the id
109
+ */
110
+ displayName(id: string): string;
111
+ /**
112
+ * Record a Slack user who messaged an agent (added as a member the first
113
+ * time; a missing name is filled in). Never changes a role.
114
+ *
115
+ * @param id - Slack user id
116
+ * @param name - Their display name, when known
117
+ */
118
+ noteSeen(id: string, name?: string): void;
119
+ /**
120
+ * Add or edit a person (owner action).
121
+ *
122
+ * @param id - Slack user id
123
+ * @param patch - Name and/or role
124
+ * @returns The person
125
+ * @throws PeopleDirectoryError on an invalid id or role, or when changing the owner's role
126
+ */
127
+ upsert(id: string, patch: {
128
+ name?: unknown;
129
+ role?: unknown;
130
+ }): Person;
131
+ /**
132
+ * Remove a person (they come back as a member if they message an agent again).
133
+ *
134
+ * @param id - Person id
135
+ * @returns True when removed
136
+ * @throws PeopleDirectoryError for the owner
137
+ */
138
+ remove(id: string): boolean;
139
+ /** @returns The stored file (empty when missing or unreadable) */
140
+ private read;
141
+ /**
142
+ * Write atomically.
143
+ *
144
+ * @param file - Contents
145
+ */
146
+ private write;
147
+ }
148
+ /**
149
+ * Trim and bound a display name.
150
+ *
151
+ * @param name - Raw name
152
+ * @returns Clean name, or undefined when empty
153
+ */
154
+ export declare function cleanPersonName(name: string | null | undefined): string | undefined;
155
+ /**
156
+ * Record a Slack user who messaged an agent, with their name (best effort,
157
+ * never throws).
158
+ *
159
+ * @param slackUserId - Slack user id
160
+ * @param name - Display name, when known
161
+ */
162
+ export declare function notePerson(slackUserId: string, name?: string | null): void;
163
+ /**
164
+ * Tell the directory how to find the owner's Slack id (wired once Slack is up).
165
+ *
166
+ * @param lookup - Lookup, or null
167
+ */
168
+ export declare function setPeopleOwnerLookup(lookup: (() => string | null | undefined) | null): void;
169
+ /**
170
+ * The backend's people directory.
171
+ *
172
+ * @returns Singleton
173
+ */
174
+ export declare function getPeopleDirectory(): PeopleDirectoryService;
175
+ /**
176
+ * Replace the singleton (tests).
177
+ *
178
+ * @param service - Instance, or null to reset
179
+ */
180
+ export declare function setPeopleDirectoryForTesting(service: PeopleDirectoryService | null): void;
181
+ //# sourceMappingURL=people-directory.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people-directory.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/people/people-directory.service.ts"],"names":[],"mappings":"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"}