crewly 1.20.185 → 1.20.187

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 (279) hide show
  1. package/config/skills/agent/core/remember/SKILL.md +1 -0
  2. package/config/skills/agent/core/remember/execute.sh +12 -0
  3. package/config/skills/agent/core/report-status/SKILL.md +7 -1
  4. package/config/skills/agent/core/report-status/execute.sh +41 -0
  5. package/config/skills/agent/core/slack-post/SKILL.md +1 -0
  6. package/config/skills/agent/core/slack-post/execute.sh +9 -2
  7. package/config/skills/team-leader/_common/lib.sh +45 -0
  8. package/config/skills/team-leader/start-agent/SKILL.md +6 -6
  9. package/config/skills/team-leader/start-agent/execute.sh +3 -12
  10. package/config/skills/team-leader/stop-agent/SKILL.md +6 -6
  11. package/config/skills/team-leader/stop-agent/execute.sh +3 -12
  12. package/dist/backend/backend/src/constants.d.ts +64 -0
  13. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  14. package/dist/backend/backend/src/constants.js +64 -0
  15. package/dist/backend/backend/src/constants.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +62 -0
  18. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/request/open-items.controller.js +1 -1
  20. package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/slack/slack.controller.js +4 -1
  23. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts +18 -1
  25. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/standing/standing.controller.js +77 -4
  27. package/dist/backend/backend/src/controllers/standing/standing.controller.js.map +1 -1
  28. package/dist/backend/backend/src/controllers/system/spend.controller.d.ts +32 -0
  29. package/dist/backend/backend/src/controllers/system/spend.controller.d.ts.map +1 -0
  30. package/dist/backend/backend/src/controllers/system/spend.controller.js +100 -0
  31. package/dist/backend/backend/src/controllers/system/spend.controller.js.map +1 -0
  32. package/dist/backend/backend/src/controllers/system/system.controller.d.ts +12 -0
  33. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/system/system.controller.js +28 -3
  35. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  36. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +7 -0
  37. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  38. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +64 -1
  39. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  40. package/dist/backend/backend/src/index.d.ts.map +1 -1
  41. package/dist/backend/backend/src/index.js +59 -0
  42. package/dist/backend/backend/src/index.js.map +1 -1
  43. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  44. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  45. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  46. package/dist/backend/backend/src/scripts/open-items-stale-followups.d.ts +51 -0
  47. package/dist/backend/backend/src/scripts/open-items-stale-followups.d.ts.map +1 -0
  48. package/dist/backend/backend/src/scripts/open-items-stale-followups.js +142 -0
  49. package/dist/backend/backend/src/scripts/open-items-stale-followups.js.map +1 -0
  50. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/agent/agent-registration.service.js +32 -1
  52. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  53. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +9 -0
  54. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/decisions/decision.service.js +37 -1
  56. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  57. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +28 -0
  58. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +83 -2
  60. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/memory/memory.service.d.ts +14 -2
  62. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/memory/memory.service.js +12 -1
  64. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  65. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts +18 -1
  66. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/memory/project-memory.service.js +38 -1
  68. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
  69. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +11 -0
  70. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/memory/standing-answers.service.js +40 -2
  72. package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/messaging/offline-agent-message.d.ts +70 -0
  74. package/dist/backend/backend/src/services/messaging/offline-agent-message.d.ts.map +1 -0
  75. package/dist/backend/backend/src/services/messaging/offline-agent-message.js +92 -0
  76. package/dist/backend/backend/src/services/messaging/offline-agent-message.js.map +1 -0
  77. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.d.ts +5 -1
  78. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js +11 -2
  80. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
  81. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts.map +1 -1
  82. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +2 -0
  83. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
  84. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +9 -1
  86. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  87. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +41 -1
  88. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +87 -2
  90. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +30 -12
  92. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  93. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +83 -13
  94. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  95. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +25 -0
  96. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  97. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +45 -1
  98. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  99. package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts +10 -1
  100. package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -1
  101. package/dist/backend/backend/src/services/open-items/open-item-extractor.js +86 -5
  102. package/dist/backend/backend/src/services/open-items/open-item-extractor.js.map +1 -1
  103. package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts +2 -1
  104. package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts.map +1 -1
  105. package/dist/backend/backend/src/services/open-items/open-items-backfill.js +17 -6
  106. package/dist/backend/backend/src/services/open-items/open-items-backfill.js.map +1 -1
  107. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +62 -1
  108. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/open-items/open-items.service.js +203 -9
  110. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  111. package/dist/backend/backend/src/services/reconciler/idle-holder-surfacer.d.ts +40 -0
  112. package/dist/backend/backend/src/services/reconciler/idle-holder-surfacer.d.ts.map +1 -0
  113. package/dist/backend/backend/src/services/reconciler/idle-holder-surfacer.js +82 -0
  114. package/dist/backend/backend/src/services/reconciler/idle-holder-surfacer.js.map +1 -0
  115. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +29 -0
  116. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +49 -0
  118. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  119. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +6 -11
  121. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  122. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +23 -0
  123. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +55 -1
  125. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  126. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +10 -4
  128. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
  129. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +13 -2
  130. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  131. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +19 -5
  132. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  133. package/dist/backend/backend/src/services/spend/spend-cap-command.d.ts +99 -0
  134. package/dist/backend/backend/src/services/spend/spend-cap-command.d.ts.map +1 -0
  135. package/dist/backend/backend/src/services/spend/spend-cap-command.js +190 -0
  136. package/dist/backend/backend/src/services/spend/spend-cap-command.js.map +1 -0
  137. package/dist/backend/backend/src/services/spend/spend-cap.gate.d.ts +64 -0
  138. package/dist/backend/backend/src/services/spend/spend-cap.gate.d.ts.map +1 -0
  139. package/dist/backend/backend/src/services/spend/spend-cap.gate.js +71 -0
  140. package/dist/backend/backend/src/services/spend/spend-cap.gate.js.map +1 -0
  141. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts +225 -0
  142. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts.map +1 -0
  143. package/dist/backend/backend/src/services/spend/spend-cap.service.js +503 -0
  144. package/dist/backend/backend/src/services/spend/spend-cap.service.js.map +1 -0
  145. package/dist/backend/backend/src/services/spend/spend-cap.store.d.ts +85 -0
  146. package/dist/backend/backend/src/services/spend/spend-cap.store.d.ts.map +1 -0
  147. package/dist/backend/backend/src/services/spend/spend-cap.store.js +95 -0
  148. package/dist/backend/backend/src/services/spend/spend-cap.store.js.map +1 -0
  149. package/dist/backend/backend/src/services/spend/spend-cap.wiring.d.ts +50 -0
  150. package/dist/backend/backend/src/services/spend/spend-cap.wiring.d.ts.map +1 -0
  151. package/dist/backend/backend/src/services/spend/spend-cap.wiring.js +98 -0
  152. package/dist/backend/backend/src/services/spend/spend-cap.wiring.js.map +1 -0
  153. package/dist/backend/backend/src/services/spend/spend-ledger.service.d.ts +124 -0
  154. package/dist/backend/backend/src/services/spend/spend-ledger.service.d.ts.map +1 -0
  155. package/dist/backend/backend/src/services/spend/spend-ledger.service.js +189 -0
  156. package/dist/backend/backend/src/services/spend/spend-ledger.service.js.map +1 -0
  157. package/dist/backend/backend/src/services/task-pool/claim-target-waker.d.ts +51 -0
  158. package/dist/backend/backend/src/services/task-pool/claim-target-waker.d.ts.map +1 -0
  159. package/dist/backend/backend/src/services/task-pool/claim-target-waker.js +43 -0
  160. package/dist/backend/backend/src/services/task-pool/claim-target-waker.js.map +1 -0
  161. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +38 -0
  162. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  163. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +73 -1
  164. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  165. package/dist/backend/backend/src/services/task-pool/work-item-usage.d.ts +44 -0
  166. package/dist/backend/backend/src/services/task-pool/work-item-usage.d.ts.map +1 -0
  167. package/dist/backend/backend/src/services/task-pool/work-item-usage.js +37 -0
  168. package/dist/backend/backend/src/services/task-pool/work-item-usage.js.map +1 -0
  169. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  170. package/dist/backend/backend/src/services/v3/v3-data.service.js +11 -14
  171. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  172. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +25 -0
  173. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +50 -0
  175. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  176. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +9 -1
  177. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  178. package/dist/backend/backend/src/services/workflow/scheduler.service.js +16 -2
  179. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  180. package/dist/backend/backend/src/types/decision.types.d.ts +5 -1
  181. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  182. package/dist/backend/backend/src/types/event-bus.types.d.ts +9 -1
  183. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  184. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  185. package/dist/backend/backend/src/types/review-reason.types.d.ts +3 -1
  186. package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -1
  187. package/dist/backend/backend/src/types/review-reason.types.js +1 -0
  188. package/dist/backend/backend/src/types/review-reason.types.js.map +1 -1
  189. package/dist/backend/backend/src/types/v2/open-item.types.d.ts +5 -1
  190. package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  191. package/dist/backend/backend/src/types/v2/open-item.types.js +1 -1
  192. package/dist/backend/backend/src/types/v2/open-item.types.js.map +1 -1
  193. package/dist/backend/build-info.json +2 -2
  194. package/dist/cli/backend/src/constants.d.ts +64 -0
  195. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  196. package/dist/cli/backend/src/constants.js +64 -0
  197. package/dist/cli/backend/src/constants.js.map +1 -1
  198. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  199. package/dist/cli/backend/src/services/agent/agent-registration.service.js +32 -1
  200. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  201. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +9 -0
  202. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  203. package/dist/cli/backend/src/services/decisions/decision.service.js +37 -1
  204. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  205. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts +28 -0
  206. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  207. package/dist/cli/backend/src/services/event-bus/event-bus.service.js +83 -2
  208. package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  209. package/dist/cli/backend/src/services/memory/memory.service.d.ts +14 -2
  210. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  211. package/dist/cli/backend/src/services/memory/memory.service.js +12 -1
  212. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  213. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +18 -1
  214. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  215. package/dist/cli/backend/src/services/memory/project-memory.service.js +38 -1
  216. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
  217. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +11 -0
  218. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
  219. package/dist/cli/backend/src/services/memory/standing-answers.service.js +40 -2
  220. package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -1
  221. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.d.ts +5 -1
  222. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
  223. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js +11 -2
  224. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
  225. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  226. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +9 -1
  227. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  228. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +41 -1
  229. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  230. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +87 -2
  231. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  232. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +30 -12
  233. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  234. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +83 -13
  235. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  236. package/dist/cli/backend/src/services/monitoring/model-pricing.d.ts +97 -0
  237. package/dist/cli/backend/src/services/monitoring/model-pricing.d.ts.map +1 -0
  238. package/dist/cli/backend/src/services/monitoring/model-pricing.js +120 -0
  239. package/dist/cli/backend/src/services/monitoring/model-pricing.js.map +1 -0
  240. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +25 -0
  241. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  242. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +45 -1
  243. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  244. package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts +10 -1
  245. package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -1
  246. package/dist/cli/backend/src/services/open-items/open-item-extractor.js +86 -5
  247. package/dist/cli/backend/src/services/open-items/open-item-extractor.js.map +1 -1
  248. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +13 -2
  249. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  250. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +19 -5
  251. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  252. package/dist/cli/backend/src/services/spend/spend-cap.gate.d.ts +64 -0
  253. package/dist/cli/backend/src/services/spend/spend-cap.gate.d.ts.map +1 -0
  254. package/dist/cli/backend/src/services/spend/spend-cap.gate.js +71 -0
  255. package/dist/cli/backend/src/services/spend/spend-cap.gate.js.map +1 -0
  256. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +38 -0
  257. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  258. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +73 -1
  259. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  260. package/dist/cli/backend/src/services/task-pool/work-item-usage.d.ts +44 -0
  261. package/dist/cli/backend/src/services/task-pool/work-item-usage.d.ts.map +1 -0
  262. package/dist/cli/backend/src/services/task-pool/work-item-usage.js +37 -0
  263. package/dist/cli/backend/src/services/task-pool/work-item-usage.js.map +1 -0
  264. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  265. package/dist/cli/backend/src/services/v3/v3-data.service.js +11 -14
  266. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
  267. package/dist/cli/backend/src/types/decision.types.d.ts +5 -1
  268. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
  269. package/dist/cli/backend/src/types/event-bus.types.d.ts +9 -1
  270. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  271. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  272. package/dist/cli/backend/src/types/v2/open-item.types.d.ts +5 -1
  273. package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  274. package/dist/cli/backend/src/types/v2/open-item.types.js +1 -1
  275. package/dist/cli/backend/src/types/v2/open-item.types.js.map +1 -1
  276. package/frontend/dist/assets/{index-1ee8a9a2.js → index-15c2faf2.js} +279 -279
  277. package/frontend/dist/assets/{index-a79c7852.css → index-20a67829.css} +1 -1
  278. package/frontend/dist/index.html +2 -2
  279. package/package.json +1 -1
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Model Pricing Table
3
+ *
4
+ * List prices for the runtimes Crewly drives, used to turn raw token counts
5
+ * into a cost figure for the Usage dashboard.
6
+ *
7
+ * Two things to keep in mind when reading a cost produced from this table:
8
+ *
9
+ * 1. These are pay-as-you-go API list prices. An agent running under a Max
10
+ * subscription does not generate a bill at these rates — the number is an
11
+ * API-equivalent, useful for comparing agents against each other and for
12
+ * spotting runaway context, not for reconciling an invoice.
13
+ * 2. Cache reads are far cheaper than fresh input and cache writes are dearer,
14
+ * so a cost computed without splitting them out is wrong by an order of
15
+ * magnitude for a long-lived agent. Every rate here is cache-aware and
16
+ * {@link calculateCost} requires the split.
17
+ *
18
+ * When a model is not listed by name we fall back to its family (the `opus` /
19
+ * `sonnet` / `haiku` substring) and finally to the sonnet tier. The resolved
20
+ * rate carries a `source` so callers can mark an estimated cost as estimated
21
+ * rather than presenting a guess as a measurement.
22
+ *
23
+ * @module services/monitoring/model-pricing
24
+ */
25
+ /** Builds a per-token rate from the per-million-token list prices. */
26
+ function perMillion(input, output, cacheRead, cacheWrite) {
27
+ return {
28
+ input: input / 1_000_000,
29
+ output: output / 1_000_000,
30
+ cacheRead: cacheRead / 1_000_000,
31
+ cacheWrite: cacheWrite / 1_000_000,
32
+ };
33
+ }
34
+ /** Opus-class list price (USD per 1M tokens). */
35
+ export const OPUS_TIER = perMillion(15, 75, 1.5, 18.75);
36
+ /** Sonnet-class list price (USD per 1M tokens). */
37
+ export const SONNET_TIER = perMillion(3, 15, 0.3, 3.75);
38
+ /** Haiku-class list price (USD per 1M tokens), 4.5 generation. */
39
+ export const HAIKU_TIER = perMillion(1, 5, 0.1, 1.25);
40
+ /**
41
+ * Per-model rates, keyed by the exact model id the runtime reports.
42
+ *
43
+ * `fable` models are priced at the opus tier. That is an assumption, not a
44
+ * published figure — it is the closest tier by capability, and pricing a
45
+ * frontier model at the sonnet default understates it roughly fivefold, which
46
+ * is the more damaging error for a dashboard whose job is to surface runaway
47
+ * spend. Costs for these models resolve with `source: 'family'` so the UI can
48
+ * label them estimated.
49
+ */
50
+ const EXACT_RATES = {
51
+ 'claude-opus-5': OPUS_TIER,
52
+ 'claude-opus-4-8': OPUS_TIER,
53
+ 'claude-opus-4-6': OPUS_TIER,
54
+ 'claude-opus-4-20250514': OPUS_TIER,
55
+ 'claude-sonnet-5': SONNET_TIER,
56
+ 'claude-sonnet-4-6': SONNET_TIER,
57
+ 'claude-sonnet-4-20250514': SONNET_TIER,
58
+ 'claude-haiku-4-5-20251001': HAIKU_TIER,
59
+ 'claude-haiku-4-5': HAIKU_TIER,
60
+ // The 4.0 generation of Haiku was a quarter of the 4.5 price.
61
+ 'claude-haiku-4-20250506': perMillion(0.25, 1.25, 0.025, 0.3125),
62
+ // DeepSeek, used by the in-process crewly-agent runtime.
63
+ 'deepseek/deepseek-chat': perMillion(0.27, 1.1, 0.07, 0.27),
64
+ 'deepseek-chat': perMillion(0.27, 1.1, 0.07, 0.27),
65
+ };
66
+ /** Substring → tier, tried in order when no exact id matches. */
67
+ const FAMILY_RATES = [
68
+ ['opus', OPUS_TIER],
69
+ ['fable', OPUS_TIER],
70
+ ['sonnet', SONNET_TIER],
71
+ ['haiku', HAIKU_TIER],
72
+ ['deepseek', perMillion(0.27, 1.1, 0.07, 0.27)],
73
+ ];
74
+ /**
75
+ * Resolves the billing rate for a model id.
76
+ *
77
+ * @param model - Model id as the runtime reported it (e.g. `claude-opus-5`)
78
+ * @returns The rate plus how it was matched; never throws, never returns null
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const rate = resolveRate('claude-opus-5'); // source: 'exact'
83
+ * const guess = resolveRate('claude-fable-5-1'); // source: 'family'
84
+ * ```
85
+ */
86
+ export function resolveRate(model) {
87
+ const id = (model || '').toLowerCase();
88
+ const exact = EXACT_RATES[id];
89
+ if (exact)
90
+ return { ...exact, source: 'exact' };
91
+ for (const [needle, rate] of FAMILY_RATES) {
92
+ if (id.includes(needle))
93
+ return { ...rate, source: 'family' };
94
+ }
95
+ return { ...SONNET_TIER, source: 'default' };
96
+ }
97
+ /**
98
+ * Computes the cache-aware cost of one or more model round-trips.
99
+ *
100
+ * @param split - The four token counts; pass 0 for any the runtime omits
101
+ * @param model - Model id as the runtime reported it
102
+ * @returns Cost in USD, and whether the rate was an exact match
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const { cost, estimated } = calculateCost(
107
+ * { input: 500, output: 200, cacheRead: 690_000, cacheWrite: 0 },
108
+ * 'claude-opus-5',
109
+ * );
110
+ * ```
111
+ */
112
+ export function calculateCost(split, model) {
113
+ const rate = resolveRate(model);
114
+ const cost = split.input * rate.input +
115
+ split.output * rate.output +
116
+ split.cacheRead * rate.cacheRead +
117
+ split.cacheWrite * rate.cacheWrite;
118
+ return { cost, estimated: rate.source !== 'exact', rateSource: rate.source };
119
+ }
120
+ //# sourceMappingURL=model-pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/model-pricing.ts"],"names":[],"mappings":"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"}
@@ -137,6 +137,23 @@ export declare const TOKEN_COSTS: Record<string, {
137
137
  * @returns Cost in USD
138
138
  */
139
139
  export declare function calculateCost(inputTokens: number, outputTokens: number, model: string, cachedInputTokens?: number): number;
140
+ /**
141
+ * USD cost of one recorded usage event — the one cost computation every
142
+ * spend view uses (session windows, the team budget gate, the ticket
143
+ * autopilot budget, the per-agent spend cap).
144
+ *
145
+ * The ledger holds two shapes of event:
146
+ * - in-process runs (`provider/model`, e.g. DeepSeek): `cachedInput` is the
147
+ * cache-hit PART of `input`, priced with {@link TOKEN_COSTS};
148
+ * - Claude Code transcript turns: `input` is the fresh tokens only and
149
+ * `cachedInput` (cache reads + `cacheWrite`) comes on top, priced with the
150
+ * cache-aware model-pricing table. Pricing these with {@link TOKEN_COSTS}
151
+ * dropped every cached token and used sonnet rates for opus.
152
+ *
153
+ * @param event - The usage event
154
+ * @returns Cost in USD
155
+ */
156
+ export declare function eventCostUsd(event: Pick<TokenUsageEvent, 'input' | 'output' | 'model' | 'cachedInput' | 'cacheWrite'>): number;
140
157
  /**
141
158
  * Set a cost override for a session. When present, getSummary() uses this
142
159
  * instead of recalculating from events.
@@ -271,6 +288,14 @@ export declare class TokenUsageService {
271
288
  outputTokens: number;
272
289
  cost: number;
273
290
  };
291
+ /**
292
+ * Visit every recorded event at or after `since` (all events when omitted).
293
+ * Read-only; used by the spend ledger for per-day / per-agent views.
294
+ *
295
+ * @param visit - Called with the session name and the event
296
+ * @param since - Lower bound (inclusive)
297
+ */
298
+ forEachEvent(visit: (sessionName: string, event: TokenUsageEvent) => void, since?: Date): void;
274
299
  /**
275
300
  * Clear all tracked token usage data.
276
301
  */
@@ -1 +1 @@
1
- {"version":3,"file":"token-usage.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/token-usage.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-usage.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/token-usage.service.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { promises as fs } from 'fs';
10
10
  import * as path from 'path';
11
+ import { calculateCost as calculateCacheAwareCost, resolveRate } from './model-pricing.js';
11
12
  /** File name for persisting token usage data */
12
13
  const TOKEN_USAGE_FILE = 'token-usage.json';
13
14
  /** Interval in milliseconds between periodic flushes to disk (5 minutes) */
@@ -59,6 +60,33 @@ export function calculateCost(inputTokens, outputTokens, model, cachedInputToken
59
60
  const cached = rates.cachedInput !== undefined ? Math.min(Math.max(cachedInputTokens, 0), inputTokens) : 0;
60
61
  return (inputTokens - cached) * rates.input + cached * (rates.cachedInput ?? 0) + outputTokens * rates.output;
61
62
  }
63
+ /**
64
+ * USD cost of one recorded usage event — the one cost computation every
65
+ * spend view uses (session windows, the team budget gate, the ticket
66
+ * autopilot budget, the per-agent spend cap).
67
+ *
68
+ * The ledger holds two shapes of event:
69
+ * - in-process runs (`provider/model`, e.g. DeepSeek): `cachedInput` is the
70
+ * cache-hit PART of `input`, priced with {@link TOKEN_COSTS};
71
+ * - Claude Code transcript turns: `input` is the fresh tokens only and
72
+ * `cachedInput` (cache reads + `cacheWrite`) comes on top, priced with the
73
+ * cache-aware model-pricing table. Pricing these with {@link TOKEN_COSTS}
74
+ * dropped every cached token and used sonnet rates for opus.
75
+ *
76
+ * @param event - The usage event
77
+ * @returns Cost in USD
78
+ */
79
+ export function eventCostUsd(event) {
80
+ const model = event.model || '';
81
+ const unprefixed = model.includes('/') ? model.slice(model.indexOf('/') + 1) : model;
82
+ const legacyKey = TOKEN_COSTS[model] ? model : TOKEN_COSTS[unprefixed] ? unprefixed : null;
83
+ if (!model.includes('/') && resolveRate(model).source !== 'default') {
84
+ const write = Math.max(0, event.cacheWrite ?? 0);
85
+ const read = Math.max(0, (event.cachedInput ?? 0) - write);
86
+ return calculateCacheAwareCost({ input: event.input, output: event.output, cacheRead: read, cacheWrite: write }, model).cost;
87
+ }
88
+ return calculateCost(event.input, event.output, legacyKey ?? model, event.cachedInput ?? 0);
89
+ }
62
90
  /**
63
91
  * Stores a pre-calculated cost override for a session.
64
92
  * Used when the caller has more accurate cost data (e.g., cache-aware pricing
@@ -345,11 +373,27 @@ export class TokenUsageService {
345
373
  // Cache-aware: a cache hit is billed at a fraction of the miss rate,
346
374
  // and the team budget gate keys on this figure — pricing every input
347
375
  // token at the miss rate would trip monthly USD caps ~40x early.
348
- cost += calculateCost(event.input, event.output, event.model, event.cachedInput ?? 0);
376
+ cost += eventCostUsd(event);
349
377
  }
350
378
  }
351
379
  return { inputTokens, outputTokens, cost };
352
380
  }
381
+ /**
382
+ * Visit every recorded event at or after `since` (all events when omitted).
383
+ * Read-only; used by the spend ledger for per-day / per-agent views.
384
+ *
385
+ * @param visit - Called with the session name and the event
386
+ * @param since - Lower bound (inclusive)
387
+ */
388
+ forEachEvent(visit, since) {
389
+ const sinceMs = since ? since.getTime() : -Infinity;
390
+ for (const record of this.sessions.values()) {
391
+ for (const event of record.events) {
392
+ if (new Date(event.timestamp).getTime() >= sinceMs)
393
+ visit(record.sessionName, event);
394
+ }
395
+ }
396
+ }
353
397
  /**
354
398
  * Clear all tracked token usage data.
355
399
  */
@@ -1 +1 @@
1
- {"version":3,"file":"token-usage.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/token-usage.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-usage.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/token-usage.service.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export interface ExtractedCommitment {
27
27
  due: Date;
28
28
  /** `text` = a time was said; `default` = none was, so +24 h */
29
29
  dueSource: 'text' | 'default';
30
+ /** Conditional on the owner ("你点头后…"): no due time until they say yes */
31
+ waitsOnOwner?: boolean;
30
32
  }
31
33
  /** A question to the owner found in a reply. */
32
34
  export interface ExtractedQuestion {
@@ -65,6 +67,13 @@ interface Sentence {
65
67
  * @returns Sentences
66
68
  */
67
69
  export declare function splitSentences(text: string): Sentence[];
70
+ /**
71
+ * Whether a commitment sentence waits on the owner's say-so.
72
+ *
73
+ * @param s - A sentence {@link isCommitment} accepted
74
+ * @returns True when it is conditional on the owner ("你点头后…")
75
+ */
76
+ export declare function waitsOnOwner(s: string): boolean;
68
77
  /**
69
78
  * Whether a sentence is a commitment to the owner.
70
79
  *
@@ -75,7 +84,7 @@ export declare function isCommitment(s: string): boolean;
75
84
  /**
76
85
  * When a commitment is due.
77
86
  *
78
- * Rules (local time): an explicit day/part of day wins ("明天中午" → tomorrow
87
+ * Rules (local time): an explicit date (10/7, 10月7日, 2026-10-07) wins over everything; an explicit day/part of day wins ("明天中午" → tomorrow
79
88
  * 12:00, "tonight" → today 21:00, "by Friday" → Friday 12:00); "tomorrow"
80
89
  * alone → tomorrow {@link OPEN_ITEMS_CONSTANTS.DEFAULT_DUE_HOUR_LOCAL}:00;
81
90
  * "in 2 hours" → +2 h; nothing → +{@link OPEN_ITEMS_CONSTANTS.DEFAULT_DUE_MS}.
@@ -1 +1 @@
1
- {"version":3,"file":"open-item-extractor.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/open-items/open-item-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,qCAAqC;AACrC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,GAAG,EAAE,IAAI,CAAC;IACV,+DAA+D;IAC/D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,GAAG,EAAE,IAAI,CAAC;IACV,iGAAiG;IACjG,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,+CAA+C;AAC/C,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAgDD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAUvD;AAgGD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAa/C;AAuCD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAkDxF;AAuBD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAUlG;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,kBAAkB,CAqBvF"}
1
+ {"version":3,"file":"open-item-extractor.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/open-items/open-item-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,qCAAqC;AACrC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,GAAG,EAAE,IAAI,CAAC;IACV,+DAA+D;IAC/D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,GAAG,EAAE,IAAI,CAAC;IACV,iGAAiG;IACjG,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,+CAA+C;AAC/C,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAgDD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAUvD;AAmID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAgB/C;AAwED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAsDxF;AAuBD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAUlG;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,kBAAkB,CAqBvF"}
@@ -151,7 +151,7 @@ const ZH_DELIVER = /(?:发|给|交|传|带|拿|报|汇报|同步|告诉|通知|
151
151
  /** Future markers (Chinese). */
152
152
  const ZH_FUTURE = /明天|明早|明晚|今晚|今天|后天|下周|周[一二三四五六日天]|星期[一二三四五六日天]|礼拜[一二三四五六日天]|稍后|待会|一会儿|回头|晚点|之后|以后|再|会|先|小时|分钟|中午|下午|晚上|早上|上午|[好完](?:以后|之后|后)|出来[后以]|核过|过一遍|一起/u;
153
153
  /** Past / already-done markers (Chinese). */
154
- const ZH_PAST = /已经|已(?:发|放|附|写|改|存|同步|上传)|刚才|刚刚|附在|附上了|见下|如下|下面附|现在(?:先)?给(?:你|您)|这是|下面是|(?:你|您)了[,。!,.!]?$|(?:你|您)了[,,]/u;
154
+ const ZH_PAST = /之前说|刚才说|前面说|上面说|先前说|已经|已(?:发|放|附|写|改|存|同步|上传)|刚才|刚刚|附在|附上了|见下|如下|下面附|现在(?:先)?给(?:你|您)|这是|下面是|(?:你|您)了[,。!,.!]?$|(?:你|您)了[,,]/u;
155
155
  /** Standing habits, not one deliverable: "以后每章都给你发 PDF", "from now on". */
156
156
  const HABITUAL = /每(?:次|章|天|周|个|篇|期|回|晚|早)|以后都|今后|往后|所有|一律|都先|都按|照常|from now on|every (?:time|day|week|chapter)|each time/iu;
157
157
  /** Conditional offers (Chinese): "要的话我再…", "如果你想…". */
@@ -162,6 +162,33 @@ const EN_COMMIT = /\b(?:i'?ll|i will|i'm going to|i am going to|we'?ll|we will|i
162
162
  const EN_SKIP = /\b(?:if|unless|otherwise|whenever|in case|already|attached|below|above|have sent|sent you|i'?d)\b/i;
163
163
  /** Someone other than the agent's side does the delivering ("别人第二天白天回你"). */
164
164
  const ZH_THIRD_PARTY = /^(?:别人|他们|她们|他|她|它|对方|大家|有人|读者|用户|客户|网友|粉丝|对面)/u;
165
+ /** "给你体检的那位医生": 给你/发你 inside a modifier ending in 的 is not a deliverable. */
166
+ const ZH_DELIVER_MODIFIER = /(?:发|给|交|传|带|拿|报|告诉|通知|回复|回|写|做|出|帮)(?:你|您)[^,。;,;!?]{0,8}的/gu;
167
+ /** The promise waits on the owner's say-so ("你点头后…", "once you approve…"): not due until they answer. */
168
+ const OWNER_GATE = /(?:你|您)(?:点头|同意|批准|确认|拍板|说可以|说行|答应)(?:后|以后|之后)|等(?:你|您)(?:点头|同意|批准|确认|拍板)|once you (?:approve|confirm|agree|say)|after you (?:approve|confirm|agree|say)|when you (?:approve|confirm|agree|say)/iu;
169
+ /** The sentence asks the owner for a go-ahead ("先问你:可以就让 Vera 做"): nothing is owed, it is a question. */
170
+ const ASKS_OWNER = /先问(?:你|您)|可以就让|可以的话我就|行的话我就|ok的话我就/iu;
171
+ /** A sentence that opens as a caveat or note about the work, not a deliverable ("要说清楚的地方:…", "note: …"). */
172
+ const CAVEAT = /^(?:\**\s*)?(?:要说清楚的地方|需要说明|需要注意|注意|提醒|补充一句|另外说明|note|caveat|heads up|fyi)\b|^(?:\**\s*)?(?:要说清楚的地方|需要说明|需要注意|注意|提醒|补充一句|另外说明)[*::]/iu;
173
+ /**
174
+ * Hedge words. They cancel a promise only inside the clause that holds the
175
+ * deliverable ("可能需要明天再发你"); a hedge in another clause qualifies a
176
+ * real promise ("明天发你清单,不一定全") and must not drop it (#925).
177
+ */
178
+ const HEDGE = /不一定|不代表|可能需要|may need|might need/iu;
179
+ /** Clause boundaries: punctuation, and English contrast words. */
180
+ const CLAUSE_SPLIT = /[,,;;::]|\s(?:though|although|but|however)\s/iu;
181
+ /**
182
+ * Whether the clause that holds the deliverable is itself hedged.
183
+ *
184
+ * @param t - Sentence (quotes and asides removed)
185
+ * @param deliver - The pattern that finds the deliverable in a clause
186
+ * @returns True when a hedge word sits in that clause
187
+ */
188
+ function deliverableIsHedged(t, deliver) {
189
+ const clause = t.split(CLAUSE_SPLIT).find((c) => deliver.test(c));
190
+ return !!clause && HEDGE.test(clause);
191
+ }
165
192
  /**
166
193
  * Whether the clause holding the deliverable has a third party as subject.
167
194
  *
@@ -172,6 +199,15 @@ function thirdPartyDelivers(t) {
172
199
  const clause = t.split(/[,,;;::]/).find((c) => ZH_DELIVER.test(c));
173
200
  return !!clause && ZH_THIRD_PARTY.test(clause.trim());
174
201
  }
202
+ /**
203
+ * Whether a commitment sentence waits on the owner's say-so.
204
+ *
205
+ * @param s - A sentence {@link isCommitment} accepted
206
+ * @returns True when it is conditional on the owner ("你点头后…")
207
+ */
208
+ export function waitsOnOwner(s) {
209
+ return OWNER_GATE.test(s);
210
+ }
175
211
  /**
176
212
  * Whether a sentence is a commitment to the owner.
177
213
  *
@@ -188,13 +224,18 @@ export function isCommitment(s) {
188
224
  return false;
189
225
  if (HABITUAL.test(t))
190
226
  return false;
191
- if (/[一-鿿]/.test(t) && ZH_DELIVER.test(t)) {
227
+ if (ASKS_OWNER.test(t) || CAVEAT.test(t))
228
+ return false;
229
+ const unmodified = t.replace(ZH_DELIVER_MODIFIER, ' ');
230
+ if (/[一-鿿]/.test(t) && ZH_DELIVER.test(unmodified)) {
192
231
  if (ZH_PAST.test(t) || ZH_CONDITIONAL.test(t))
193
232
  return false;
233
+ if (deliverableIsHedged(unmodified, ZH_DELIVER))
234
+ return false;
194
235
  return ZH_FUTURE.test(t);
195
236
  }
196
237
  if (EN_COMMIT.test(t))
197
- return !EN_SKIP.test(t);
238
+ return !EN_SKIP.test(t) && !deliverableIsHedged(t, EN_COMMIT);
198
239
  return false;
199
240
  }
200
241
  // ---------------------------------------------------------------------------
@@ -235,10 +276,46 @@ function partOfDayHour(t) {
235
276
  return 10;
236
277
  return null;
237
278
  }
279
+ const MONTHS_EN = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
280
+ /**
281
+ * A date named in the text: 2026-10-07, 10/7, 10月7日/号, "Oct 7". Local time,
282
+ * the part of day named (default 18:00); a date already past rolls to next year.
283
+ *
284
+ * @param s - Sentence
285
+ * @param now - When it was said
286
+ * @returns The date, or null
287
+ */
288
+ function explicitDate(s, now) {
289
+ const t = s.toLowerCase();
290
+ let y;
291
+ let m;
292
+ let d;
293
+ let hit = /(?<![\d./])(20\d{2})[-/.](\d{1,2})[-/.](\d{1,2})(?![\d])/.exec(t);
294
+ if (hit)
295
+ [y, m, d] = [Number(hit[1]), Number(hit[2]), Number(hit[3])];
296
+ else if ((hit = /(\d{1,2})\s*月\s*(\d{1,2})\s*[日号號]?/.exec(t)))
297
+ [m, d] = [Number(hit[1]), Number(hit[2])];
298
+ else if ((hit = /(?<![\d./])(\d{1,2})\/(\d{1,2})(?![\d/])/.exec(t))) {
299
+ // "1/3" is as likely a ratio: take a slash date only when it falls in the coming months.
300
+ [m, d] = [Number(hit[1]), Number(hit[2])];
301
+ const ahead = new Date(now.getFullYear(), m - 1, d, 12).getTime() - now.getTime();
302
+ if (ahead < -24 * 3600_000 || ahead > 120 * 24 * 3600_000)
303
+ return null;
304
+ }
305
+ else if ((hit = new RegExp(`\\b(${MONTHS_EN.join('|')})[a-z]*\\.?\\s+(\\d{1,2})\\b`).exec(t)))
306
+ [m, d] = [MONTHS_EN.indexOf(hit[1]) + 1, Number(hit[2])];
307
+ if (!m || !d || m < 1 || m > 12 || d < 1 || d > 31)
308
+ return null;
309
+ const hour = partOfDayHour(t) ?? 18;
310
+ let due = new Date(y ?? now.getFullYear(), m - 1, d, hour, 0, 0, 0);
311
+ if (y === undefined && due.getTime() < now.getTime() - 24 * 3600_000)
312
+ due = new Date(now.getFullYear() + 1, m - 1, d, hour, 0, 0, 0);
313
+ return due;
314
+ }
238
315
  /**
239
316
  * When a commitment is due.
240
317
  *
241
- * Rules (local time): an explicit day/part of day wins ("明天中午" → tomorrow
318
+ * Rules (local time): an explicit date (10/7, 10月7日, 2026-10-07) wins over everything; an explicit day/part of day wins ("明天中午" → tomorrow
242
319
  * 12:00, "tonight" → today 21:00, "by Friday" → Friday 12:00); "tomorrow"
243
320
  * alone → tomorrow {@link OPEN_ITEMS_CONSTANTS.DEFAULT_DUE_HOUR_LOCAL}:00;
244
321
  * "in 2 hours" → +2 h; nothing → +{@link OPEN_ITEMS_CONSTANTS.DEFAULT_DUE_MS}.
@@ -251,6 +328,10 @@ export function parseDue(s, now) {
251
328
  const t = s.toLowerCase();
252
329
  const defaultHour = OPEN_ITEMS_CONSTANTS.DEFAULT_DUE_HOUR_LOCAL;
253
330
  const text = (due) => ({ due, source: 'text' });
331
+ // An explicit date wins over every relative cue and over now + default.
332
+ const dated = explicitDate(s, now);
333
+ if (dated)
334
+ return text(dated);
254
335
  const rel = /(\d+(?:\.\d+)?)\s*(?:个)?\s*(小时|hours?|hrs?|分钟|minutes?|mins?)/.exec(t);
255
336
  if (rel) {
256
337
  const n = Number(rel[1]);
@@ -386,7 +467,7 @@ export function extractOpenItems(text, opts) {
386
467
  }
387
468
  if (out.commitments.length < max && !addressedToColleague(s, opts) && isCommitment(s)) {
388
469
  const { due, source } = parseDue(s, opts.now);
389
- out.commitments.push({ type: 'commitment', text: clip(s, OPEN_ITEMS_CONSTANTS.TEXT_MAX_CHARS), due, dueSource: source });
470
+ out.commitments.push({ type: 'commitment', text: clip(s, OPEN_ITEMS_CONSTANTS.TEXT_MAX_CHARS), due, dueSource: source, ...(waitsOnOwner(s) ? { waitsOnOwner: true } : {}) });
390
471
  }
391
472
  }
392
473
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"open-item-extractor.js","sourceRoot":"","sources":["../../../../../../backend/src/services/open-items/open-item-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmD1D;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,0DAA0D;IAC1D,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,GAAG,IAAI,EAAE,CAAC;QACV,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aACpC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,KAAK,GAAG,CAAC;YAAE,SAAS;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrH,oEAAoE;QACpE,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,CAAC,IAAI,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;aAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;aACzD,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;IACtE,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,IAAI,CAAC,CAAS,EAAE,GAAW;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,CAAS,EAAE,IAAoB;IAC3D,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC;IAC5E,CAAC;IACD,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,UAAU,GACd,gKAAgK,CAAC;AAEnK,gCAAgC;AAChC,MAAM,SAAS,GACb,+IAA+I,CAAC;AAElJ,6CAA6C;AAC7C,MAAM,OAAO,GAAG,2GAA2G,CAAC;AAE5H,2EAA2E;AAC3E,MAAM,QAAQ,GAAG,2GAA2G,CAAC;AAE7H,uDAAuD;AACvD,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,iDAAiD;AACjD,MAAM,SAAS,GACb,qUAAqU,CAAC;AAExU,oCAAoC;AACpC,MAAM,OAAO,GAAG,oGAAoG,CAAC;AAErH,6EAA6E;AAC7E,MAAM,cAAc,GAAG,iDAAiD,CAAC;AAEzE;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,CAAS;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,yDAAyD;IACzD,iDAAiD;IACjD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,kBAAkB,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9F,MAAM,UAAU,GAA2B,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAEnI;;;;;;;GAOG;AACH,SAAS,KAAK,CAAC,GAAS,EAAE,IAAY,EAAE,IAAY;IAClD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAS;IAC9B,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3D,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,GAAS;IAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,oBAAoB,CAAC,sBAAsB,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,GAAS,EAAiC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAErF,MAAM,GAAG,GAAG,+DAA+D,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACjE,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEhF,0DAA0D;IAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IAC3E,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,0EAA0E,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,uEAAuE;YACvE,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,GAAG,YAAY,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,kDAAkD,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,6CAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACnG,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,MAAM,GAAG,gEAAgE,CAAC;AAEhF,0EAA0E;AAC1E,MAAM,MAAM,GACV,8KAA8K,CAAC;AAEjL,mDAAmD;AACnD,MAAM,eAAe,GAAG,mKAAmK,CAAC;AAE5L,sDAAsD;AACtD,MAAM,WAAW,GAAG,kFAAkF,CAAC;AAEvG;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,IAAwB,EAAE,IAAoB;IACvF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,gBAAgB,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,CAAqB;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,gJAAgJ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClK,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAoB;IACjE,MAAM,GAAG,GAAuB,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACnE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACtC,MAAM,GAAG,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;IACrD,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;gBACtD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAK,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3H,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"open-item-extractor.js","sourceRoot":"","sources":["../../../../../../backend/src/services/open-items/open-item-extractor.ts"],"names":[],"mappings":"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"}
@@ -238,11 +238,13 @@ export declare class SlackTypingPlaceholderService {
238
238
  * @param key - Agent + conversation (+ thread)
239
239
  * @param text - The reply
240
240
  * @param identity - The agent's bot token
241
- * @param opts - `reopen`: the reply is an interim note — put a fresh placeholder back under it, in the same step
241
+ * @param opts - `reopen`: the reply is an interim note — put a fresh placeholder back under it, in the same step;
242
+ * `onMessageTs`: called with the ts of the Slack message that now carries the reply (the edited placeholder, or the new post)
242
243
  * @returns 'edited' when a placeholder became the reply, 'replaced' when the reply was posted and a placeholder removed, 'posted' when there was none
243
244
  */
244
245
  resolve(key: TypingKeyParts, text: string, identity: TypingIdentity, opts?: {
245
246
  reopen?: TypingPhase;
247
+ onMessageTs?: (ts: string) => void;
246
248
  }): Promise<'replaced' | 'edited' | 'posted'>;
247
249
  /**
248
250
  * The agent answered in this thread some other way (a file, a post with
@@ -276,11 +278,20 @@ export declare class SlackTypingPlaceholderService {
276
278
  * in the order questions were asked: newest-first put the answer owed in
277
279
  * an earlier thread under the latest question (2026-09-28).
278
280
  *
281
+ * `maxAgeMs` limits this to placeholders posted that recently. An answer
282
+ * comes within its turn; a post hours later is a new topic, and capturing
283
+ * it into an old thread hid scheduled output there and returned no ts
284
+ * (#808: a 16:00 email triage landed in a 13:34 thread).
285
+ *
279
286
  * @param agentSession - The agent
280
287
  * @param slackChannelId - Channel or DM it is posting to
288
+ * @param opts - `maxAgeMs`: ignore placeholders posted longer ago; `now`: clock (tests)
281
289
  * @returns The key of the owed reply, or null
282
290
  */
283
- findOwed(agentSession: string, slackChannelId: string): TypingKeyParts | null;
291
+ findOwed(agentSession: string, slackChannelId: string, opts?: {
292
+ maxAgeMs?: number;
293
+ now?: number;
294
+ }): TypingKeyParts | null;
284
295
  /**
285
296
  * The agent finished its turn. Any placeholder it still owes (pending, or
286
297
  * timed out into "still working") and is older than SETTLE_MIN_AGE_MS