crewly 1.20.361 → 1.20.363

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 (370) hide show
  1. package/config/hooks/destructive-git-guard/guard.mjs +96 -0
  2. package/config/roles/team-leader/prompt.md +1 -1
  3. package/config/roles/team-leader/tl-addon.md +1 -1
  4. package/config/skills/agent/core/ask-owner/SKILL.md +31 -0
  5. package/config/skills/agent/core/ask-owner/execute.sh +14 -3
  6. package/config/skills/agent/core/ask-owner/execute.test.sh +8 -0
  7. package/config/skills/agent/core/gmail-read/SKILL.md +8 -0
  8. package/config/skills/agent/core/gmail-send/SKILL.md +10 -3
  9. package/config/skills/agent/core/gmail-send/execute.sh +2 -1
  10. package/config/skills/agent/core/gmail-watch-thread/SKILL.md +69 -0
  11. package/config/skills/agent/core/gmail-watch-thread/execute.sh +51 -0
  12. package/config/skills/agent/core/project-tickets/SKILL.md +12 -0
  13. package/config/skills/agent/core/project-tickets/execute.sh +13 -3
  14. package/config/skills/agent/core/project-tickets/execute.test.sh +4 -0
  15. package/config/skills/agent/core/watch-for-event/SKILL.md +22 -0
  16. package/config/skills/orchestrator/harness-login/SKILL.md +1 -1
  17. package/config/skills/team-leader/delegate-task/SKILL.md +21 -6
  18. package/config/skills/team-leader/delegate-task/execute.sh +12 -1
  19. package/dist/backend/backend/src/constants.d.ts +216 -8
  20. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  21. package/dist/backend/backend/src/constants.js +217 -9
  22. package/dist/backend/backend/src/constants.js.map +1 -1
  23. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +44 -0
  24. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/google/google.controller.js +121 -3
  26. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  27. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  28. package/dist/backend/backend/src/controllers/google/google.routes.js +5 -1
  29. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  30. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts +1 -1
  31. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +1 -1
  32. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +1 -1
  33. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +2 -1
  35. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
  36. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  37. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +7 -4
  38. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  39. package/dist/backend/backend/src/index.d.ts.map +1 -1
  40. package/dist/backend/backend/src/index.js +114 -1
  41. package/dist/backend/backend/src/index.js.map +1 -1
  42. package/dist/backend/backend/src/services/agent/follow-through.wiring.d.ts.map +1 -1
  43. package/dist/backend/backend/src/services/agent/follow-through.wiring.js +2 -0
  44. package/dist/backend/backend/src/services/agent/follow-through.wiring.js.map +1 -1
  45. package/dist/backend/backend/src/services/agent/handover-interrupted.d.ts +76 -0
  46. package/dist/backend/backend/src/services/agent/handover-interrupted.d.ts.map +1 -0
  47. package/dist/backend/backend/src/services/agent/handover-interrupted.js +139 -0
  48. package/dist/backend/backend/src/services/agent/handover-interrupted.js.map +1 -0
  49. package/dist/backend/backend/src/services/agent/handover-pointers.d.ts +4 -0
  50. package/dist/backend/backend/src/services/agent/handover-pointers.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/agent/handover-pointers.js +11 -4
  52. package/dist/backend/backend/src/services/agent/handover-pointers.js.map +1 -1
  53. package/dist/backend/backend/src/services/agent/idle-work-guard.d.ts +3 -1
  54. package/dist/backend/backend/src/services/agent/idle-work-guard.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/agent/idle-work-guard.js +2 -0
  56. package/dist/backend/backend/src/services/agent/idle-work-guard.js.map +1 -1
  57. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +5 -1
  58. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/agent/resource-mode-protection.js +6 -1
  60. package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
  61. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +7 -0
  62. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +18 -1
  64. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  65. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -1
  67. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  68. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts +8 -0
  69. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -1
  70. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js +10 -0
  71. package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -1
  72. package/dist/backend/backend/src/services/decisions/decision-card.d.ts +46 -13
  73. package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  74. package/dist/backend/backend/src/services/decisions/decision-card.js +100 -50
  75. package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
  76. package/dist/backend/backend/src/services/decisions/decision-contract.d.ts +23 -1
  77. package/dist/backend/backend/src/services/decisions/decision-contract.d.ts.map +1 -1
  78. package/dist/backend/backend/src/services/decisions/decision-contract.js +76 -4
  79. package/dist/backend/backend/src/services/decisions/decision-contract.js.map +1 -1
  80. package/dist/backend/backend/src/services/decisions/decision-wording.d.ts +167 -0
  81. package/dist/backend/backend/src/services/decisions/decision-wording.d.ts.map +1 -0
  82. package/dist/backend/backend/src/services/decisions/decision-wording.js +406 -0
  83. package/dist/backend/backend/src/services/decisions/decision-wording.js.map +1 -0
  84. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +30 -1
  85. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  86. package/dist/backend/backend/src/services/decisions/decision.service.js +44 -8
  87. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  88. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/decisions/decision.wiring.js +17 -0
  90. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  91. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +1 -0
  93. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  94. package/dist/backend/backend/src/services/google/gmail-reply-watch.service.d.ts +142 -0
  95. package/dist/backend/backend/src/services/google/gmail-reply-watch.service.d.ts.map +1 -0
  96. package/dist/backend/backend/src/services/google/gmail-reply-watch.service.js +304 -0
  97. package/dist/backend/backend/src/services/google/gmail-reply-watch.service.js.map +1 -0
  98. package/dist/backend/backend/src/services/google/gmail-send-approval.service.d.ts +130 -0
  99. package/dist/backend/backend/src/services/google/gmail-send-approval.service.d.ts.map +1 -0
  100. package/dist/backend/backend/src/services/google/gmail-send-approval.service.js +216 -0
  101. package/dist/backend/backend/src/services/google/gmail-send-approval.service.js.map +1 -0
  102. package/dist/backend/backend/src/services/google/gmail-send-gate.d.ts +28 -13
  103. package/dist/backend/backend/src/services/google/gmail-send-gate.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/google/gmail-send-gate.js +82 -29
  105. package/dist/backend/backend/src/services/google/gmail-send-gate.js.map +1 -1
  106. package/dist/backend/backend/src/services/google/gmail.service.d.ts +90 -0
  107. package/dist/backend/backend/src/services/google/gmail.service.d.ts.map +1 -1
  108. package/dist/backend/backend/src/services/google/gmail.service.js +122 -0
  109. package/dist/backend/backend/src/services/google/gmail.service.js.map +1 -1
  110. package/dist/backend/backend/src/services/harness/claude-accounts.d.ts +24 -14
  111. package/dist/backend/backend/src/services/harness/claude-accounts.d.ts.map +1 -1
  112. package/dist/backend/backend/src/services/harness/claude-accounts.js +35 -21
  113. package/dist/backend/backend/src/services/harness/claude-accounts.js.map +1 -1
  114. package/dist/backend/backend/src/services/harness/claude-native-login.d.ts +106 -0
  115. package/dist/backend/backend/src/services/harness/claude-native-login.d.ts.map +1 -0
  116. package/dist/backend/backend/src/services/harness/claude-native-login.js +174 -0
  117. package/dist/backend/backend/src/services/harness/claude-native-login.js.map +1 -0
  118. package/dist/backend/backend/src/services/harness/claude-token-migration.service.d.ts +158 -0
  119. package/dist/backend/backend/src/services/harness/claude-token-migration.service.d.ts.map +1 -0
  120. package/dist/backend/backend/src/services/harness/claude-token-migration.service.js +283 -0
  121. package/dist/backend/backend/src/services/harness/claude-token-migration.service.js.map +1 -0
  122. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts +44 -24
  123. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/harness/harness-credentials.store.js +96 -39
  125. package/dist/backend/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  126. package/dist/backend/backend/src/services/harness/harness-registry.js +1 -1
  127. package/dist/backend/backend/src/services/harness/harness-registry.js.map +1 -1
  128. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +2 -2
  129. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +2 -2
  130. package/dist/backend/backend/src/services/harness/harness.service.d.ts.map +1 -1
  131. package/dist/backend/backend/src/services/harness/harness.service.js +10 -1
  132. package/dist/backend/backend/src/services/harness/harness.service.js.map +1 -1
  133. package/dist/backend/backend/src/services/harness/login-broker.service.d.ts +24 -21
  134. package/dist/backend/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/harness/login-broker.service.js +50 -64
  136. package/dist/backend/backend/src/services/harness/login-broker.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/harness/login-rules.d.ts +17 -11
  138. package/dist/backend/backend/src/services/harness/login-rules.d.ts.map +1 -1
  139. package/dist/backend/backend/src/services/harness/login-rules.js +22 -25
  140. package/dist/backend/backend/src/services/harness/login-rules.js.map +1 -1
  141. package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts +79 -2
  142. package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -1
  143. package/dist/backend/backend/src/services/open-items/open-item-extractor.js +194 -13
  144. package/dist/backend/backend/src/services/open-items/open-item-extractor.js.map +1 -1
  145. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +65 -1
  146. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/open-items/open-items.service.js +140 -7
  148. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  149. package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts +8 -0
  150. package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts.map +1 -1
  151. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +19 -1
  152. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  153. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +35 -19
  154. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
  155. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +60 -63
  156. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
  157. package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts +86 -0
  158. package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -0
  159. package/dist/backend/backend/src/services/orc/owner-completion-report.text.js +170 -0
  160. package/dist/backend/backend/src/services/orc/owner-completion-report.text.js.map +1 -0
  161. package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts +24 -0
  162. package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts.map +1 -1
  163. package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js +38 -1
  164. package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js.map +1 -1
  165. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts +2 -0
  166. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
  167. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +8 -3
  168. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
  169. package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +76 -0
  170. package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
  171. package/dist/backend/backend/src/services/orc/work-item-destination.js +83 -3
  172. package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
  173. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +31 -2
  174. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
  175. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +38 -0
  176. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
  177. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +5 -0
  178. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  179. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +30 -6
  180. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  181. package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -1
  182. package/dist/backend/backend/src/services/project-tickets/ticket-file.js +6 -1
  183. package/dist/backend/backend/src/services/project-tickets/ticket-file.js.map +1 -1
  184. package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.d.ts +64 -0
  185. package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.d.ts.map +1 -0
  186. package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.js +93 -0
  187. package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.js.map +1 -0
  188. package/dist/backend/backend/src/services/project-tickets/ticket-hold.d.ts +176 -0
  189. package/dist/backend/backend/src/services/project-tickets/ticket-hold.d.ts.map +1 -0
  190. package/dist/backend/backend/src/services/project-tickets/ticket-hold.js +301 -0
  191. package/dist/backend/backend/src/services/project-tickets/ticket-hold.js.map +1 -0
  192. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +33 -3
  193. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  194. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +50 -4
  195. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  196. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +8 -1
  197. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  198. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +26 -0
  199. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  200. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +6 -1
  201. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  202. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +3 -2
  203. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  204. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  205. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +4 -1
  206. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  207. package/dist/backend/backend/src/services/stall/background-run-detector.d.ts +56 -0
  208. package/dist/backend/backend/src/services/stall/background-run-detector.d.ts.map +1 -0
  209. package/dist/backend/backend/src/services/stall/background-run-detector.js +93 -0
  210. package/dist/backend/backend/src/services/stall/background-run-detector.js.map +1 -0
  211. package/dist/backend/backend/src/services/stall/claim-check.d.ts +60 -0
  212. package/dist/backend/backend/src/services/stall/claim-check.d.ts.map +1 -0
  213. package/dist/backend/backend/src/services/stall/claim-check.js +98 -0
  214. package/dist/backend/backend/src/services/stall/claim-check.js.map +1 -0
  215. package/dist/backend/backend/src/services/stall/in-flight-runs.store.d.ts +110 -0
  216. package/dist/backend/backend/src/services/stall/in-flight-runs.store.d.ts.map +1 -0
  217. package/dist/backend/backend/src/services/stall/in-flight-runs.store.js +109 -0
  218. package/dist/backend/backend/src/services/stall/in-flight-runs.store.js.map +1 -0
  219. package/dist/backend/backend/src/services/stall/stall-watcher.service.d.ts +490 -0
  220. package/dist/backend/backend/src/services/stall/stall-watcher.service.d.ts.map +1 -0
  221. package/dist/backend/backend/src/services/stall/stall-watcher.service.js +922 -0
  222. package/dist/backend/backend/src/services/stall/stall-watcher.service.js.map +1 -0
  223. package/dist/backend/backend/src/services/stall/stall-watcher.wiring.d.ts +98 -0
  224. package/dist/backend/backend/src/services/stall/stall-watcher.wiring.d.ts.map +1 -0
  225. package/dist/backend/backend/src/services/stall/stall-watcher.wiring.js +217 -0
  226. package/dist/backend/backend/src/services/stall/stall-watcher.wiring.js.map +1 -0
  227. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +53 -0
  228. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  229. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +162 -15
  230. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  231. package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.js +1 -1
  232. package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.js.map +1 -1
  233. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +3 -0
  234. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
  235. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +5 -2
  236. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
  237. package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.d.ts +7 -2
  238. package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.d.ts.map +1 -1
  239. package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.js +11 -2
  240. package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.js.map +1 -1
  241. package/dist/backend/backend/src/types/decision.types.d.ts +53 -1
  242. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  243. package/dist/backend/backend/src/types/event-bus.types.d.ts +4 -2
  244. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  245. package/dist/backend/backend/src/types/event-bus.types.js +8 -0
  246. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  247. package/dist/backend/backend/src/types/project-ticket.types.d.ts +7 -0
  248. package/dist/backend/backend/src/types/project-ticket.types.d.ts.map +1 -1
  249. package/dist/backend/backend/src/types/project-ticket.types.js +1 -0
  250. package/dist/backend/backend/src/types/project-ticket.types.js.map +1 -1
  251. package/dist/backend/backend/src/types/v2/open-item.types.d.ts +10 -1
  252. package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  253. package/dist/backend/build-info.json +2 -2
  254. package/dist/cli/backend/src/constants.d.ts +216 -8
  255. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  256. package/dist/cli/backend/src/constants.js +217 -9
  257. package/dist/cli/backend/src/constants.js.map +1 -1
  258. package/dist/cli/backend/src/services/agent/handover-interrupted.d.ts +76 -0
  259. package/dist/cli/backend/src/services/agent/handover-interrupted.d.ts.map +1 -0
  260. package/dist/cli/backend/src/services/agent/handover-interrupted.js +139 -0
  261. package/dist/cli/backend/src/services/agent/handover-interrupted.js.map +1 -0
  262. package/dist/cli/backend/src/services/agent/handover-pointers.d.ts +4 -0
  263. package/dist/cli/backend/src/services/agent/handover-pointers.d.ts.map +1 -1
  264. package/dist/cli/backend/src/services/agent/handover-pointers.js +11 -4
  265. package/dist/cli/backend/src/services/agent/handover-pointers.js.map +1 -1
  266. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +7 -0
  267. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  268. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +18 -1
  269. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  270. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  271. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -1
  272. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  273. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts +8 -0
  274. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -1
  275. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js +10 -0
  276. package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -1
  277. package/dist/cli/backend/src/services/decisions/decision-card.d.ts +46 -13
  278. package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  279. package/dist/cli/backend/src/services/decisions/decision-card.js +100 -50
  280. package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -1
  281. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +23 -1
  282. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -1
  283. package/dist/cli/backend/src/services/decisions/decision-contract.js +76 -4
  284. package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -1
  285. package/dist/cli/backend/src/services/decisions/decision-wording.d.ts +167 -0
  286. package/dist/cli/backend/src/services/decisions/decision-wording.d.ts.map +1 -0
  287. package/dist/cli/backend/src/services/decisions/decision-wording.js +406 -0
  288. package/dist/cli/backend/src/services/decisions/decision-wording.js.map +1 -0
  289. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +30 -1
  290. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  291. package/dist/cli/backend/src/services/decisions/decision.service.js +44 -8
  292. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  293. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  294. package/dist/cli/backend/src/services/event-bus/event-bus.service.js +1 -0
  295. package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  296. package/dist/cli/backend/src/services/harness/claude-accounts.d.ts +24 -14
  297. package/dist/cli/backend/src/services/harness/claude-accounts.d.ts.map +1 -1
  298. package/dist/cli/backend/src/services/harness/claude-accounts.js +35 -21
  299. package/dist/cli/backend/src/services/harness/claude-accounts.js.map +1 -1
  300. package/dist/cli/backend/src/services/harness/claude-native-login.d.ts +106 -0
  301. package/dist/cli/backend/src/services/harness/claude-native-login.d.ts.map +1 -0
  302. package/dist/cli/backend/src/services/harness/claude-native-login.js +174 -0
  303. package/dist/cli/backend/src/services/harness/claude-native-login.js.map +1 -0
  304. package/dist/cli/backend/src/services/harness/claude-token-migration.service.d.ts +158 -0
  305. package/dist/cli/backend/src/services/harness/claude-token-migration.service.d.ts.map +1 -0
  306. package/dist/cli/backend/src/services/harness/claude-token-migration.service.js +283 -0
  307. package/dist/cli/backend/src/services/harness/claude-token-migration.service.js.map +1 -0
  308. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts +44 -24
  309. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  310. package/dist/cli/backend/src/services/harness/harness-credentials.store.js +96 -39
  311. package/dist/cli/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  312. package/dist/cli/backend/src/services/harness/harness-registry.js +1 -1
  313. package/dist/cli/backend/src/services/harness/harness-registry.js.map +1 -1
  314. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +2 -2
  315. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +2 -2
  316. package/dist/cli/backend/src/services/harness/harness.service.d.ts.map +1 -1
  317. package/dist/cli/backend/src/services/harness/harness.service.js +10 -1
  318. package/dist/cli/backend/src/services/harness/harness.service.js.map +1 -1
  319. package/dist/cli/backend/src/services/harness/login-broker.service.d.ts +24 -21
  320. package/dist/cli/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
  321. package/dist/cli/backend/src/services/harness/login-broker.service.js +50 -64
  322. package/dist/cli/backend/src/services/harness/login-broker.service.js.map +1 -1
  323. package/dist/cli/backend/src/services/harness/login-rules.d.ts +17 -11
  324. package/dist/cli/backend/src/services/harness/login-rules.d.ts.map +1 -1
  325. package/dist/cli/backend/src/services/harness/login-rules.js +22 -25
  326. package/dist/cli/backend/src/services/harness/login-rules.js.map +1 -1
  327. package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts +79 -2
  328. package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -1
  329. package/dist/cli/backend/src/services/open-items/open-item-extractor.js +194 -13
  330. package/dist/cli/backend/src/services/open-items/open-item-extractor.js.map +1 -1
  331. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +65 -1
  332. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  333. package/dist/cli/backend/src/services/open-items/open-items.service.js +140 -7
  334. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  335. package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts +86 -0
  336. package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -0
  337. package/dist/cli/backend/src/services/orc/owner-completion-report.text.js +170 -0
  338. package/dist/cli/backend/src/services/orc/owner-completion-report.text.js.map +1 -0
  339. package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +76 -0
  340. package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
  341. package/dist/cli/backend/src/services/orc/work-item-destination.js +83 -3
  342. package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
  343. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +5 -0
  344. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  345. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +30 -6
  346. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  347. package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -1
  348. package/dist/cli/backend/src/services/project-tickets/ticket-file.js +6 -1
  349. package/dist/cli/backend/src/services/project-tickets/ticket-file.js.map +1 -1
  350. package/dist/cli/backend/src/services/project-tickets/ticket-hold.d.ts +176 -0
  351. package/dist/cli/backend/src/services/project-tickets/ticket-hold.d.ts.map +1 -0
  352. package/dist/cli/backend/src/services/project-tickets/ticket-hold.js +301 -0
  353. package/dist/cli/backend/src/services/project-tickets/ticket-hold.js.map +1 -0
  354. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +53 -0
  355. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  356. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +162 -15
  357. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  358. package/dist/cli/backend/src/types/decision.types.d.ts +53 -1
  359. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
  360. package/dist/cli/backend/src/types/event-bus.types.d.ts +4 -2
  361. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  362. package/dist/cli/backend/src/types/event-bus.types.js +8 -0
  363. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  364. package/dist/cli/backend/src/types/project-ticket.types.d.ts +7 -0
  365. package/dist/cli/backend/src/types/project-ticket.types.d.ts.map +1 -1
  366. package/dist/cli/backend/src/types/project-ticket.types.js +1 -0
  367. package/dist/cli/backend/src/types/project-ticket.types.js.map +1 -1
  368. package/dist/cli/backend/src/types/v2/open-item.types.d.ts +10 -1
  369. package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  370. package/package.json +1 -1
@@ -7,16 +7,21 @@
7
7
  import { DECISION_CONSTANTS } from '../../constants.js';
8
8
  import { isAudioOrVideo } from '../../utils/inbound-file-hint.utils.js';
9
9
  import { matchOption } from './decision-contract.js';
10
+ import { cardText, clipQuestion, contextSection, detailsLine, formatWhenZh } from './decision-wording.js';
10
11
  const DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
11
12
  const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
12
13
  /**
13
- * Short local time for the card: "14:05" today, "tomorrow 12:00", else "Thu Oct 2 12:00".
14
+ * Short local time for the card: "14:05" today, "tomorrow 12:00", else "Thu Oct 2 12:00"
15
+ * (Chinese for a Chinese owner: "明天 12:00").
14
16
  *
15
17
  * @param at - Moment
16
18
  * @param now - Clock
19
+ * @param lang - Owner language (absent = English)
17
20
  * @returns Text
18
21
  */
19
- export function formatWhen(at, now = new Date()) {
22
+ export function formatWhen(at, now = new Date(), lang) {
23
+ if (lang === 'zh')
24
+ return formatWhenZh(at, now);
20
25
  const hm = `${String(at.getHours()).padStart(2, '0')}:${String(at.getMinutes()).padStart(2, '0')}`;
21
26
  const day = (d) => `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;
22
27
  if (day(at) === day(now))
@@ -46,8 +51,12 @@ export function defaultLabel(d) {
46
51
  export function optionLabel(d, key) {
47
52
  return d.options.find((o) => o.key === key)?.label ?? String(key ?? '');
48
53
  }
54
+ /** Slack's header block limit (characters). */
55
+ const HEADER_MAX_CHARS = 150;
49
56
  /**
50
- * The card header: ticket id + title, else the asker's topic.
57
+ * The card header: a system decision's own title, else the question itself
58
+ * (crewly#1367: the card leads with the question in plain words — never a
59
+ * ticket id or a ticket title the owner has to decode).
51
60
  *
52
61
  * @param d - Decision
53
62
  * @returns Header text (≤ 150 characters, Slack's header limit)
@@ -55,12 +64,20 @@ export function optionLabel(d, key) {
55
64
  export function cardHeader(d) {
56
65
  const text = d.title
57
66
  ? d.title
58
- : d.ticket
59
- ? `${d.ticket.id} · ${d.ticket.title}`
60
- : d.browser
61
- ? `Browser · ${d.browser.agentName} is waiting for your OK`
62
- : `Decision ${d.id}`;
63
- return text.length > 150 ? `${text.slice(0, 149)}…` : text;
67
+ : d.browser
68
+ ? `Browser · ${d.browser.agentName} is waiting for your OK`
69
+ : d.question?.trim() || `Decision ${d.id}`;
70
+ return text.length > HEADER_MAX_CHARS ? `${text.slice(0, HEADER_MAX_CHARS - 1)}…` : text;
71
+ }
72
+ /**
73
+ * Whether the card shows the question again under the header: only when the
74
+ * header is something else (a system title) or had to be clipped.
75
+ *
76
+ * @param d - Decision
77
+ * @returns True when a question section is needed
78
+ */
79
+ export function showsQuestionSection(d) {
80
+ return cardHeader(d) !== d.question;
64
81
  }
65
82
  /**
66
83
  * The thread root for a ticket that has no thread yet.
@@ -110,26 +127,28 @@ export function parseButtonValue(raw) {
110
127
  * @returns mrkdwn text
111
128
  */
112
129
  export function pendingContextLine(d, now = new Date()) {
113
- const when = formatWhen(new Date(d.deadline), now);
130
+ const lang = d.ownerLanguage;
131
+ const t = cardText(lang);
132
+ const when = formatWhen(new Date(d.deadline), now, lang);
114
133
  const parts = [];
115
134
  if (d.remindAt && Date.parse(d.remindAt) > now.getTime()) {
116
- parts.push(`⏰ Reminding you ${formatWhen(new Date(d.remindAt), now)}.`);
135
+ parts.push(t.remindingAt(formatWhen(new Date(d.remindAt), now, lang)));
117
136
  }
118
137
  if (d.system?.defaultIsDecline) {
119
- parts.push(`Nothing is accepted until you answer. No answer by ${when}: ${defaultLabel(d)}.`);
138
+ parts.push(t.declineDefault(when, defaultLabel(d)));
120
139
  }
121
- else if (d.kind === 'browser_action') {
122
- parts.push(`Nothing happens without your OK. If no answer by ${when}, the answer is ${defaultLabel(d)}.`);
140
+ else if (d.kind === 'browser_action' || d.kind === 'gmail_send') {
141
+ parts.push(t.heldDefault(when, defaultLabel(d)));
123
142
  }
124
143
  else if (d.sensitive) {
125
- parts.push(`This needs your OK (${d.sensitive}); I won't go ahead without an answer.`);
144
+ parts.push(t.sensitive(d.sensitive));
126
145
  }
127
146
  else if (d.defaultKey === DECISION_CONSTANTS.WAIT_DEFAULT) {
128
147
  // Says what to do — not "wait for what?" (specs/2026-10-02-decision-card-thread-answers.md §2).
129
- parts.push(`Tap an answer or reply in this thread — I'll hold this until you do.`);
148
+ parts.push(t.waitHold);
130
149
  }
131
150
  else {
132
- parts.push(`If no answer by ${when}, I'll go with ${defaultLabel(d)}.`);
151
+ parts.push(t.goWithDefault(when, defaultLabel(d)));
133
152
  }
134
153
  parts.push(d.id);
135
154
  return parts.join(' · ');
@@ -154,13 +173,16 @@ function optionDetails(options) {
154
173
  * @returns Blocks
155
174
  */
156
175
  export function renderOpenCard(d, instanceId, now = new Date()) {
157
- const blocks = [
158
- { type: 'header', text: { type: 'plain_text', text: cardHeader(d), emoji: true } },
159
- { type: 'section', text: { type: 'mrkdwn', text: d.question } },
160
- ];
176
+ const t = cardText(d.ownerLanguage);
177
+ const blocks = [{ type: 'header', text: { type: 'plain_text', text: cardHeader(d), emoji: true } }];
178
+ if (showsQuestionSection(d))
179
+ blocks.push({ type: 'section', text: { type: 'mrkdwn', text: d.question } });
161
180
  for (const text of d.body ?? [])
162
181
  if (text.trim())
163
182
  blocks.push({ type: 'section', text: { type: 'mrkdwn', text } });
183
+ const context = contextSection(d.context, d.ownerLanguage, d.merge);
184
+ if (context)
185
+ blocks.push({ type: 'section', text: { type: 'mrkdwn', text: context } });
164
186
  const details = optionDetails(d.options);
165
187
  if (details)
166
188
  blocks.push({ type: 'section', text: { type: 'mrkdwn', text: details } });
@@ -182,7 +204,7 @@ export function renderOpenCard(d, instanceId, now = new Date()) {
182
204
  {
183
205
  type: 'button',
184
206
  action_id: DECISION_CONSTANTS.REMIND_ACTION_ID,
185
- text: { type: 'plain_text', text: 'Remind me tomorrow', emoji: true },
207
+ text: { type: 'plain_text', text: t.remindButton, emoji: true },
186
208
  value: buttonValue(d.id, 'remind', instanceId),
187
209
  },
188
210
  ]
@@ -194,13 +216,16 @@ export function renderOpenCard(d, instanceId, now = new Date()) {
194
216
  {
195
217
  type: 'button',
196
218
  action_id: DECISION_CONSTANTS.SKIP_ACTION_ID,
197
- text: { type: 'plain_text', text: 'Skip', emoji: true },
219
+ text: { type: 'plain_text', text: t.skipButton, emoji: true },
198
220
  value: buttonValue(d.id, DECISION_CONSTANTS.SKIP_OPTION, instanceId),
199
221
  },
200
222
  ]
201
223
  : []),
202
224
  ],
203
225
  });
226
+ const refs = detailsLine(d, d.ownerLanguage);
227
+ if (refs)
228
+ blocks.push({ type: 'context', elements: [{ type: 'mrkdwn', text: refs }] });
204
229
  blocks.push({ type: 'context', elements: [{ type: 'mrkdwn', text: pendingContextLine(d, now) }] });
205
230
  return blocks;
206
231
  }
@@ -213,18 +238,22 @@ export function renderOpenCard(d, instanceId, now = new Date()) {
213
238
  * @returns True when snoozing is allowed
214
239
  */
215
240
  export function canRemind(d) {
216
- return d.kind !== 'browser_action' && !d.system;
241
+ return d.kind !== 'browser_action' && d.kind !== 'gmail_send' && !d.system;
217
242
  }
218
243
  /**
219
244
  * Whether the card offers "Skip": every card except sensitive asks, system
220
- * decisions and held browser actions — those already have a "No", which is
221
- * what skipping them means ({@link skipChoice}).
245
+ * decisions, held browser actions and merge cards with a "not now" — those
246
+ * already have a "No", which is what skipping them means ({@link skipChoice}).
247
+ * A merge card's way out is named by its outcome (先不合 / Not now), not
248
+ * "Skip" (crewly#1367).
222
249
  *
223
250
  * @param d - Decision
224
251
  * @returns True when the Skip button is shown
225
252
  */
226
253
  export function canSkip(d) {
227
- return d.kind !== 'browser_action' && !d.system && !d.sensitive;
254
+ if (d.merge && d.options && noOption(d.options))
255
+ return false;
256
+ return d.kind !== 'browser_action' && d.kind !== 'gmail_send' && !d.system && !d.sensitive;
228
257
  }
229
258
  /**
230
259
  * What "skip" means for a card: a real skip where {@link canSkip}; else the
@@ -253,7 +282,7 @@ export function skipChoice(d) {
253
282
  * @returns True when the default is safe to apply unanswered
254
283
  */
255
284
  export function defaultIsSafe(d) {
256
- return d.kind === 'browser_action' || d.system?.defaultIsDecline === true;
285
+ return d.kind === 'browser_action' || d.kind === 'gmail_send' || d.system?.defaultIsDecline === true;
257
286
  }
258
287
  /**
259
288
  * Blocks of a settled card (no buttons).
@@ -266,7 +295,7 @@ export function defaultIsSafe(d) {
266
295
  export function renderSettledCard(d, ownerName, now = new Date(), askerName) {
267
296
  return [
268
297
  { type: 'header', text: { type: 'plain_text', text: cardHeader(d), emoji: true } },
269
- { type: 'section', text: { type: 'mrkdwn', text: d.question } },
298
+ ...(showsQuestionSection(d) ? [{ type: 'section', text: { type: 'mrkdwn', text: d.question } }] : []),
270
299
  { type: 'context', elements: [{ type: 'mrkdwn', text: settledLine(d, ownerName, now, askerName) }] },
271
300
  ];
272
301
  }
@@ -279,27 +308,26 @@ export function renderSettledCard(d, ownerName, now = new Date(), askerName) {
279
308
  * @returns Text
280
309
  */
281
310
  export function settledLine(d, ownerName, now = new Date(), askerName) {
282
- const at = formatWhen(new Date(d.resolvedAt ?? d.updatedAt), now);
283
- const who = ownerName || (d.answeredBy ? `<@${d.answeredBy}>` : 'The owner');
311
+ const t = cardText(d.ownerLanguage);
312
+ const at = formatWhen(new Date(d.resolvedAt ?? d.updatedAt), now, d.ownerLanguage);
313
+ const who = ownerName || (d.answeredBy ? `<@${d.answeredBy}>` : t.theOwner);
284
314
  switch (d.status) {
285
315
  case 'resolved':
286
316
  if (d.answeredVia === 'thread')
287
- return `✔ Answered in thread · ${at}`;
288
- return d.chosenKey
289
- ? `✔ ${who} chose *${optionLabel(d, d.chosenKey)}* · ${at}`
290
- : `✔ ${who} answered: “${(d.answerText ?? '').slice(0, 200)}” · ${at}`;
317
+ return t.answeredInThread(at);
318
+ return d.chosenKey ? t.chose(who, optionLabel(d, d.chosenKey), at) : t.answered(who, (d.answerText ?? '').slice(0, 200), at);
291
319
  case 'defaulted':
292
320
  return deadlineDefaultLine(d, now, askerName, true);
293
321
  case 'parked':
294
- return `⏸ Parked — no answer, so I'm not going ahead. Answer from "Waiting on you" to reopen it. · ${d.id}`;
322
+ return t.parked(d.id);
295
323
  case 'cancelled':
296
- return `✓ Closed — ${closedReasonLabel(d.closedReason)} · ${at}`;
324
+ return t.closed(closedReasonLabel(d.closedReason), at);
297
325
  case 'expired':
298
326
  return d.browser
299
327
  ? `Expired — ${d.browser.agentName} will ask again · ${at}`
300
- : `✓ Closed — ${DECISION_CONSTANTS.CLOSED_REASONS.STALE} · ${at}`;
328
+ : t.closed(DECISION_CONSTANTS.CLOSED_REASONS.STALE, at);
301
329
  case 'skipped':
302
- return `⤼ ${who} skipped this · ${at}`;
330
+ return t.skipped(who, at);
303
331
  default:
304
332
  return pendingContextLine(d, now);
305
333
  }
@@ -318,17 +346,17 @@ export function settledLine(d, ownerName, now = new Date(), askerName) {
318
346
  * @returns Text
319
347
  */
320
348
  export function deadlineDefaultLine(d, now = new Date(), askerName, settled = false) {
321
- const when = formatWhen(new Date(d.deadline), now);
349
+ const t = cardText(d.ownerLanguage);
350
+ const when = formatWhen(new Date(d.deadline), now, d.ownerLanguage);
322
351
  if (d.defaultKey === DECISION_CONSTANTS.WAIT_DEFAULT)
323
- return `No answer by ${when} — still open.`;
324
- const name = askerName?.trim() || 'I';
325
- const verb = settled ? `${name} went with` : name === 'I' ? "I'll go with" : `${name} will go with`;
326
- return `No answer by ${when}, so ${verb} "${defaultLabel(d)}".`;
352
+ return t.defaultNoAnswerOpen(when);
353
+ return t.defaultNoAnswer(when, t.defaultVerb(askerName?.trim() || null, settled), defaultLabel(d));
327
354
  }
328
355
  /**
329
- * The one reminder of the `wait` cards nobody answered in a thread: what is
330
- * asked and how to answer (specs/2026-10-02-decision-card-thread-answers.md §2).
331
- * Several cards in one thread share one reminder that lists them.
356
+ * The one reminder of the `wait` cards nobody answered in a thread: ONE
357
+ * short line pointing at the card above, never the card repeated
358
+ * (crewly#1367; specs/2026-10-02-decision-card-thread-answers.md §2). Several
359
+ * cards in one thread share one reminder that counts them.
332
360
  *
333
361
  * @param ds - The thread's due cards (one or more)
334
362
  * @param ownerUserId - The owner's Slack id (mentioned), when known
@@ -337,9 +365,30 @@ export function deadlineDefaultLine(d, now = new Date(), askerName, settled = fa
337
365
  export function waitReminderLine(ds, ownerUserId) {
338
366
  const list = Array.isArray(ds) ? ds : [ds];
339
367
  const at = ownerUserId ? `<@${ownerUserId}> ` : '';
368
+ const t = cardText(list[list.length - 1]?.ownerLanguage);
340
369
  if (list.length === 1)
341
- return `${at}Still waiting on you: ${list[0].question} — tap an answer on the card above, or reply here.`;
342
- return `${at}Still waiting on you for ${list.length} questions in this thread:\n${list.map((d) => `• ${d.question}`).join('\n')}\nTap an answer on each card above, or reply here.`;
370
+ return t.waitReminder(at, clipQuestion(list[0].question));
371
+ return t.waitReminderMany(at, list.length);
372
+ }
373
+ /**
374
+ * The "Remind me tomorrow" reminder: one short line pointing at the card.
375
+ *
376
+ * @param d - The card
377
+ * @param ownerUserId - Owner's Slack id (mentioned), when known
378
+ * @returns Text
379
+ */
380
+ export function remindNowLine(d, ownerUserId) {
381
+ return cardText(d.ownerLanguage).remindNow(ownerUserId ? `<@${ownerUserId}> ` : '', clipQuestion(d.question));
382
+ }
383
+ /**
384
+ * The one re-ask of a sensitive card: one short line pointing at the card.
385
+ *
386
+ * @param d - The card
387
+ * @param ownerUserId - Owner's Slack id (mentioned), when known
388
+ * @returns Text
389
+ */
390
+ export function sensitiveReaskLine(d, ownerUserId) {
391
+ return cardText(d.ownerLanguage).sensitiveReask(ownerUserId ? `<@${ownerUserId}> ` : '', clipQuestion(d.question), String(d.sensitive ?? ''));
343
392
  }
344
393
  /**
345
394
  * How a withdrawn card names why it was closed ("ticket done",
@@ -371,7 +420,8 @@ export function cardFallbackText(d) {
371
420
  // The id is always in the text: every machine reads a reply's thread from
372
421
  // Slack and must recognise the card in it (specs/2026-10-03-one-responder-per-message.md §1 c).
373
422
  const id = header.includes(d.id) ? '' : ` [${d.id}]`;
374
- return `${header}${id}: ${d.question} (${d.options.map((o) => o.label).join(' / ')})`;
423
+ const options = `(${d.options.map((o) => o.label).join(' / ')})`;
424
+ return showsQuestionSection(d) ? `${header}${id}: ${d.question} ${options}` : `${d.question}${id} ${options}`;
375
425
  }
376
426
  /**
377
427
  * The option that reads as "no", when one does.
@@ -1 +1 @@
1
- {"version":3,"file":"decision-card.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-card.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,23 @@
7
7
  *
8
8
  * @module services/decisions/decision-contract
9
9
  */
10
- import type { AskOwnerInput, DecisionOption, DecisionSensitiveKind, ValidatedAsk } from '../../types/decision.types.js';
10
+ import type { AskOwnerInput, DecisionLanguage, DecisionOption, DecisionSensitiveKind, ValidatedAsk } from '../../types/decision.types.js';
11
11
  /** A rejected ask. */
12
12
  export declare class DecisionContractError extends Error {
13
13
  constructor(message: string);
14
14
  }
15
15
  /** The example appended to every contract error. */
16
16
  export declare const ASK_OWNER_EXAMPLE = "Example: ask-owner --question \"Send the partner email on Monday?\" --option \"Send Monday \u2014 after the review call\" --option \"Hold \u2014 wait for legal\" [--option \"Third choice\"] --default \"Hold\" [--deadline 2026-10-02T12:00] [--ticket APP-12 --project P] [--sensitive email]";
17
+ /** The example appended to a merge card's contract errors. */
18
+ export declare const MERGE_ASK_EXAMPLE: string;
19
+ /**
20
+ * The fix-it message for a question with nothing left once internal
21
+ * references are stripped (crewly#1367).
22
+ *
23
+ * @param raw - The question as asked
24
+ * @returns Error text
25
+ */
26
+ export declare function rewriteInPlainWordsMessage(raw: string): string;
17
27
  /**
18
28
  * The next day at {@link DECISION_CONSTANTS.DEFAULT_DEADLINE_HOUR_LOCAL}:00 local.
19
29
  *
@@ -114,4 +124,16 @@ export declare function eitherOrMessage(earlierId: string): string;
114
124
  * @returns The question the card shows (never longer than the maximum)
115
125
  */
116
126
  export declare function withTicketContext(question: string, title: string | undefined): string;
127
+ /**
128
+ * Fit a validated ask to the owner's language (crewly#1367): a Chinese owner
129
+ * gets a Chinese question (else the ask is refused with what to fix) and
130
+ * generic English option labels in Chinese ("Not now" → 先不, on a merge
131
+ * card "Yes, merge" → 合并). An English or unknown owner gets the ask as is.
132
+ *
133
+ * @param ask - The validated ask
134
+ * @param lang - The owner's language, when known
135
+ * @returns The ask with localized options
136
+ * @throws DecisionContractError when the question or a button is not in the owner's language
137
+ */
138
+ export declare function fitAskToOwnerLanguage(ask: ValidatedAsk, lang: DecisionLanguage | null | undefined): ValidatedAsk;
117
139
  //# sourceMappingURL=decision-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decision-contract.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAExH,sBAAsB;AACtB,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,qSACkP,CAAC;AAiBjR;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAK/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CA8C3D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAa9E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,IAAI,CAa1F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAQ3D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAO9E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,GAAE,IAAiB,GAAG,YAAY,CA+B3F;AAKD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAErF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAItE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMrF"}
1
+ {"version":3,"file":"decision-contract.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI1I,sBAAsB;AACtB,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,qSACkP,CAAC;AAEjR,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,QAG+G,CAAC;AAE9I;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO9D;AAiBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAK/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CA8C3D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAa9E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,IAAI,CAa1F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAQ3D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAO9E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,GAAE,IAAiB,GAAG,YAAY,CA0D3F;AAKD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAErF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAItE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMrF;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAgBhH"}
@@ -7,7 +7,9 @@
7
7
  *
8
8
  * @module services/decisions/decision-contract
9
9
  */
10
- import { DECISION_CONSTANTS } from '../../constants.js';
10
+ import { DECISION_CONSTANTS, DECISION_WORDING_CONSTANTS } from '../../constants.js';
11
+ import { isMergeAsk, letterCount, localizeOptions, parseDecisionContext, questionFitsOwnerLanguage, stripInternalRefs } from './decision-wording.js';
12
+ import { detectOwnerLanguage } from '../orc/owner-completion-report.text.js';
11
13
  /** A rejected ask. */
12
14
  export class DecisionContractError extends Error {
13
15
  constructor(message) {
@@ -17,6 +19,23 @@ export class DecisionContractError extends Error {
17
19
  }
18
20
  /** The example appended to every contract error. */
19
21
  export const ASK_OWNER_EXAMPLE = 'Example: ask-owner --question "Send the partner email on Monday?" --option "Send Monday — after the review call" --option "Hold — wait for legal" [--option "Third choice"] --default "Hold" [--deadline 2026-10-02T12:00] [--ticket APP-12 --project P] [--sensitive email]';
22
+ /** The example appended to a merge card's contract errors. */
23
+ export const MERGE_ASK_EXAMPLE = 'Example: ask-owner --question "Should agents\' Gmail emails go out only after you tap Approve on a card?" --option "Merge" --option "Not now" --default wait ' +
24
+ '--requested-by "Ella, Oct 6 (from your line about email safety)" --owner-last-said "我要的是视频 不是新增功能" ' +
25
+ '--runtime-changes "Starts a Gmail poller at boot (every 30 s) and adds the gmail.send scope" --link https://github.com/org/repo/pull/1138';
26
+ /**
27
+ * The fix-it message for a question with nothing left once internal
28
+ * references are stripped (crewly#1367).
29
+ *
30
+ * @param raw - The question as asked
31
+ * @returns Error text
32
+ */
33
+ export function rewriteInPlainWordsMessage(raw) {
34
+ return (`"${raw.slice(0, 120)}" is not a question the owner can answer: once ticket ids, PR numbers, branch / worktree names and "GOAL:" prefixes are taken out, nothing plain is left. ` +
35
+ 'The owner never sees tickets, PRs or worktrees. Rewrite the question in plain words, in the owner\'s language: what changes for them if they say yes ' +
36
+ '(e.g. "Should agents\' Gmail emails go out only after you approve them?"). Put the PR link in --link. ' +
37
+ ASK_OWNER_EXAMPLE);
38
+ }
20
39
  const OPTION_KEYS = ['a', 'b', 'c', 'd', 'e'];
21
40
  /** Separators accepted between an option's label and its detail in a string form. */
22
41
  const DETAIL_SEPARATOR = /\s+(?:—|–|--|-|:)\s+/;
@@ -196,12 +215,19 @@ export function validateAskOwner(input, now = new Date()) {
196
215
  if (/\n\s*\S/.test(rawQ.trim())) {
197
216
  throw new DecisionContractError('question must be ONE line. Put the context in the ticket, the choices in --option. ' + ASK_OWNER_EXAMPLE);
198
217
  }
199
- const question = oneLine(rawQ);
200
- if (!question)
218
+ const asked = oneLine(rawQ);
219
+ if (!asked)
201
220
  throw new DecisionContractError(`question is required. ${ASK_OWNER_EXAMPLE}`);
202
- if (question.length > DECISION_CONSTANTS.QUESTION_MAX_CHARS) {
221
+ if (asked.length > DECISION_CONSTANTS.QUESTION_MAX_CHARS) {
203
222
  throw new DecisionContractError(`question is too long (max ${DECISION_CONSTANTS.QUESTION_MAX_CHARS} characters) — one line the owner can answer with a tap.`);
204
223
  }
224
+ // Tickets, PRs, branches and worktrees are internal (crewly#1367): the
225
+ // owner sees the question in plain words; a PR link goes to the details line.
226
+ const stripped = stripInternalRefs(asked);
227
+ const question = stripped.text;
228
+ if (question !== asked && (letterCount(question) < DECISION_WORDING_CONSTANTS.QUESTION_MIN_LETTERS || question.length < DECISION_CONSTANTS.QUESTION_MIN_CHARS || isVagueQuestion(question))) {
229
+ throw new DecisionContractError(rewriteInPlainWordsMessage(asked));
230
+ }
205
231
  if (question.length < DECISION_CONSTANTS.QUESTION_MIN_CHARS || isVagueQuestion(question)) {
206
232
  throw new DecisionContractError(`"${question}" is too vague to answer from a phone. Name the concrete decision (what, and when), e.g. "Send the partner email on Monday?". ${ASK_OWNER_EXAMPLE}`);
207
233
  }
@@ -209,6 +235,22 @@ export function validateAskOwner(input, now = new Date()) {
209
235
  const defaultKey = resolveDefault(input.default, options);
210
236
  const deadline = parseDeadline(input.deadline, now);
211
237
  const sensitive = parseSensitive(input.sensitive);
238
+ let context;
239
+ try {
240
+ context = parseDecisionContext(input.context);
241
+ }
242
+ catch (err) {
243
+ throw new DecisionContractError(`${err instanceof Error ? err.message : String(err)} ${ASK_OWNER_EXAMPLE}`);
244
+ }
245
+ // A merge card says what merging changes at runtime (crewly#1369 §3:
246
+ // D-822 said "Sam reviewed it, tests pass" and the merge started a Gmail
247
+ // poller at boot).
248
+ const merge = isMergeAsk(asked, options);
249
+ if (merge && !context?.runtimeChanges) {
250
+ throw new DecisionContractError('this card asks the owner to merge: say what merging changes at runtime with --runtime-changes (new background jobs, polling, scopes, data written — or "nothing at runtime, only <what>"). ' +
251
+ 'Also say who asked for it and when (--requested-by) and what the owner said last about it (--owner-last-said) when you know. ' +
252
+ MERGE_ASK_EXAMPLE);
253
+ }
212
254
  const ticketId = typeof input.ticket === 'string' && input.ticket.trim() ? input.ticket.trim() : undefined;
213
255
  const project = typeof input.project === 'string' && input.project.trim() ? input.project.trim() : undefined;
214
256
  if (ticketId && !project)
@@ -221,6 +263,9 @@ export function validateAskOwner(input, now = new Date()) {
221
263
  ...(sensitive ? { sensitive } : {}),
222
264
  ...(ticketId ? { ticketId } : {}),
223
265
  ...(project ? { project } : {}),
266
+ ...(context ? { context } : {}),
267
+ ...(stripped.refs.length ? { details: stripped.refs } : {}),
268
+ ...(merge ? { merge: true } : {}),
224
269
  };
225
270
  }
226
271
  /** Option labels that make a card a plain yes/no. */
@@ -277,4 +322,31 @@ export function withTicketContext(question, title) {
277
322
  const max = DECISION_CONSTANTS.QUESTION_MAX_CHARS;
278
323
  return joined.length > max ? `${joined.slice(0, max - 1)}…` : joined;
279
324
  }
325
+ /** Latin words in a label (an English label has two or more). */
326
+ const LATIN_WORD_RE = /[A-Za-z]{2,}/g;
327
+ /**
328
+ * Fit a validated ask to the owner's language (crewly#1367): a Chinese owner
329
+ * gets a Chinese question (else the ask is refused with what to fix) and
330
+ * generic English option labels in Chinese ("Not now" → 先不, on a merge
331
+ * card "Yes, merge" → 合并). An English or unknown owner gets the ask as is.
332
+ *
333
+ * @param ask - The validated ask
334
+ * @param lang - The owner's language, when known
335
+ * @returns The ask with localized options
336
+ * @throws DecisionContractError when the question or a button is not in the owner's language
337
+ */
338
+ export function fitAskToOwnerLanguage(ask, lang) {
339
+ if (lang !== 'zh')
340
+ return ask;
341
+ if (!questionFitsOwnerLanguage(ask.question, lang)) {
342
+ throw new DecisionContractError(`the owner writes Chinese, so the card must be in Chinese: rewrite --question "${ask.question.slice(0, 80)}" in Chinese, in plain words (what changes for the owner if they say yes). ` +
343
+ 'Write the options and the context fields in Chinese too; generic buttons such as "Yes" / "Not now" are translated for you.');
344
+ }
345
+ const options = localizeOptions(ask.options, lang, ask.merge === true);
346
+ const english = options.find((o) => detectOwnerLanguage(o.label) === 'en' && (o.label.match(LATIN_WORD_RE)?.length ?? 0) >= 2);
347
+ if (english) {
348
+ throw new DecisionContractError(`the owner writes Chinese: the button "${english.label}" must be in Chinese too, named by its outcome. Rewrite that --option in Chinese.`);
349
+ }
350
+ return { ...ask, options };
351
+ }
280
352
  //# sourceMappingURL=decision-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decision-contract.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-contract.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-contract.ts"],"names":[],"mappings":"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"}