crewly 1.20.355 → 1.20.358

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 (393) hide show
  1. package/config/constants.ts +11 -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/team-leader/delegate-task/SKILL.md +23 -1
  5. package/config/skills/team-leader/delegate-task/execute.sh +44 -1
  6. package/config/skills/team-leader/delegate-task/execute.test.sh +95 -1
  7. package/dist/backend/backend/src/constants.d.ts +319 -17
  8. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  9. package/dist/backend/backend/src/constants.js +322 -17
  10. package/dist/backend/backend/src/constants.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +10 -0
  13. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  15. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +7 -0
  16. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/team/team.controller.js +5 -0
  19. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  20. package/dist/backend/backend/src/index.d.ts +15 -0
  21. package/dist/backend/backend/src/index.d.ts.map +1 -1
  22. package/dist/backend/backend/src/index.js +138 -15
  23. package/dist/backend/backend/src/index.js.map +1 -1
  24. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +21 -2
  25. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/agent/agent-registration.service.js +100 -3
  27. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
  29. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
  31. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +8 -0
  33. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/agent/idle-detection.service.js +26 -2
  35. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  37. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  39. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +22 -0
  41. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/agent/resource-mode-protection.js +33 -0
  43. package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
  44. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +59 -3
  45. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/agent/resource-mode.service.js +108 -10
  47. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
  49. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +126 -11
  51. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  52. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
  53. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
  55. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  56. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  57. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +47 -6
  59. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts +150 -0
  61. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts.map +1 -0
  62. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js +319 -0
  63. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js.map +1 -0
  64. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +9 -7
  65. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +19 -17
  67. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -1
  68. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/memory/memory.service.js +11 -0
  70. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  71. package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
  72. package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
  73. package/dist/backend/backend/src/services/memory/startup-briefing.service.js +302 -0
  74. package/dist/backend/backend/src/services/memory/startup-briefing.service.js.map +1 -0
  75. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts +14 -2
  76. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js +21 -4
  78. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js.map +1 -1
  79. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
  80. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
  82. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts +24 -1
  84. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js +54 -3
  86. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js.map +1 -1
  87. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +10 -1
  89. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  90. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +8 -0
  91. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/open-items/open-items.service.js +33 -0
  93. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  94. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +2 -2
  95. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  96. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  97. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  98. package/dist/backend/backend/src/services/open-items/question-card-gate.js +77 -0
  99. package/dist/backend/backend/src/services/open-items/question-card-gate.js.map +1 -0
  100. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +9 -0
  101. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +16 -2
  103. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
  104. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  105. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +10 -0
  106. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  107. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  108. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  110. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  111. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  112. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  114. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  115. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts +30 -0
  116. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts.map +1 -0
  117. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js +48 -0
  118. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js.map +1 -0
  119. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +8 -0
  120. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +29 -8
  122. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  123. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  124. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  125. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  126. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  127. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  128. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  129. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +3 -2
  130. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  131. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +128 -5
  132. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  133. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +320 -38
  134. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  135. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +23 -0
  136. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  137. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +48 -3
  138. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  139. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  140. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  141. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  142. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  143. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  144. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  145. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  146. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  147. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  148. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  149. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  150. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  151. package/dist/backend/backend/src/services/slack/agent-coordination.d.ts +119 -0
  152. package/dist/backend/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
  153. package/dist/backend/backend/src/services/slack/agent-coordination.js +174 -0
  154. package/dist/backend/backend/src/services/slack/agent-coordination.js.map +1 -0
  155. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  156. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -0
  157. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
  159. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  160. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +619 -9
  161. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  162. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
  163. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  164. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +49 -12
  165. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  166. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
  167. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  168. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
  169. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  170. package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts +21 -1
  171. package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts.map +1 -1
  172. package/dist/backend/backend/src/services/team-move/team-move-chat.js +54 -2
  173. package/dist/backend/backend/src/services/team-move/team-move-chat.js.map +1 -1
  174. package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts +9 -4
  175. package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts.map +1 -1
  176. package/dist/backend/backend/src/services/team-move/team-move-exporter.js +32 -10
  177. package/dist/backend/backend/src/services/team-move/team-move-exporter.js.map +1 -1
  178. package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts +19 -0
  179. package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts.map +1 -1
  180. package/dist/backend/backend/src/services/team-move/team-move-importer.js +78 -3
  181. package/dist/backend/backend/src/services/team-move/team-move-importer.js.map +1 -1
  182. package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts.map +1 -1
  183. package/dist/backend/backend/src/services/team-move/team-move-runtime.js +8 -0
  184. package/dist/backend/backend/src/services/team-move/team-move-runtime.js.map +1 -1
  185. package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts +106 -0
  186. package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts.map +1 -0
  187. package/dist/backend/backend/src/services/team-move/team-move-transcripts.js +212 -0
  188. package/dist/backend/backend/src/services/team-move/team-move-transcripts.js.map +1 -0
  189. package/dist/backend/backend/src/services/team-move/team-move.types.d.ts +20 -0
  190. package/dist/backend/backend/src/services/team-move/team-move.types.d.ts.map +1 -1
  191. package/dist/backend/backend/src/services/team-move/team-move.types.js.map +1 -1
  192. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -2
  193. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  194. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +11 -4
  195. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  196. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  197. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +13 -0
  198. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  199. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +3 -0
  201. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -1
  202. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts.map +1 -1
  203. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js +4 -1
  204. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -1
  205. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
  206. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +4 -0
  207. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
  208. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
  209. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  210. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js +75 -7
  211. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  212. package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -1
  213. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +3 -1
  214. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -1
  215. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts +116 -0
  216. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts.map +1 -0
  217. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js +227 -0
  218. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js.map +1 -0
  219. package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
  220. package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
  221. package/dist/backend/backend/src/services/wiki/wiki-log-entries.js +222 -0
  222. package/dist/backend/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
  223. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts +93 -0
  224. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts.map +1 -0
  225. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js +142 -0
  226. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js.map +1 -0
  227. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts +104 -0
  228. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts.map +1 -0
  229. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js +192 -0
  230. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js.map +1 -0
  231. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +3 -2
  232. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
  233. package/dist/backend/backend/src/services/wiki/wiki-query.service.js +23 -39
  234. package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
  235. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts +105 -0
  236. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts.map +1 -0
  237. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js +195 -0
  238. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js.map +1 -0
  239. package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -1
  240. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +3 -0
  241. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -1
  242. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
  243. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  244. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +96 -25
  245. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  246. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
  247. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
  248. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js +17 -1
  249. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
  250. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +22 -0
  251. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  252. package/dist/backend/backend/src/services/workflow/scheduler.service.js +35 -1
  253. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  254. package/dist/backend/backend/src/types/index.d.ts +12 -0
  255. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  256. package/dist/backend/backend/src/types/index.js.map +1 -1
  257. package/dist/backend/backend/src/types/team-template.types.d.ts +1 -0
  258. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  259. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  260. package/dist/backend/build-info.json +2 -2
  261. package/dist/backend/config/constants.d.ts +11 -0
  262. package/dist/backend/config/constants.d.ts.map +1 -1
  263. package/dist/backend/config/constants.js +11 -0
  264. package/dist/backend/config/constants.js.map +1 -1
  265. package/dist/cli/backend/src/constants.d.ts +319 -17
  266. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  267. package/dist/cli/backend/src/constants.js +322 -17
  268. package/dist/cli/backend/src/constants.js.map +1 -1
  269. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +21 -2
  270. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  271. package/dist/cli/backend/src/services/agent/agent-registration.service.js +100 -3
  272. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  273. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
  274. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  275. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
  276. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  277. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  278. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  279. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  280. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  281. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +59 -3
  282. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  283. package/dist/cli/backend/src/services/agent/resource-mode.service.js +108 -10
  284. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
  285. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
  286. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  287. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +126 -11
  288. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  289. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
  290. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  291. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
  292. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  293. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  294. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  295. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +47 -6
  296. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  297. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  298. package/dist/cli/backend/src/services/memory/memory.service.js +11 -0
  299. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  300. package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
  301. package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
  302. package/dist/cli/backend/src/services/memory/startup-briefing.service.js +302 -0
  303. package/dist/cli/backend/src/services/memory/startup-briefing.service.js.map +1 -0
  304. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
  305. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
  306. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
  307. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
  308. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  309. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +10 -1
  310. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  311. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +8 -0
  312. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  313. package/dist/cli/backend/src/services/open-items/open-items.service.js +33 -0
  314. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  315. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  316. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  317. package/dist/cli/backend/src/services/open-items/question-card-gate.js +77 -0
  318. package/dist/cli/backend/src/services/open-items/question-card-gate.js.map +1 -0
  319. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  320. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  321. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  322. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  323. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  324. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  325. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  326. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  327. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  328. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  329. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  330. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  331. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  332. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  333. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js +3 -2
  334. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  335. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  336. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  337. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  338. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  339. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  340. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  341. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  342. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  343. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  344. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  345. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  346. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  347. package/dist/cli/backend/src/services/slack/agent-coordination.d.ts +119 -0
  348. package/dist/cli/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
  349. package/dist/cli/backend/src/services/slack/agent-coordination.js +174 -0
  350. package/dist/cli/backend/src/services/slack/agent-coordination.js.map +1 -0
  351. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
  352. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  353. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +619 -9
  354. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  355. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
  356. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  357. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +49 -12
  358. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  359. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
  360. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  361. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
  362. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  363. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
  364. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  365. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +75 -7
  366. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  367. package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
  368. package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
  369. package/dist/cli/backend/src/services/wiki/wiki-log-entries.js +222 -0
  370. package/dist/cli/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
  371. package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
  372. package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
  373. package/dist/cli/backend/src/services/wiki/wiki-recent.service.js +105 -0
  374. package/dist/cli/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
  375. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
  376. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  377. package/dist/cli/backend/src/services/wiki/wiki-search.service.js +96 -25
  378. package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  379. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
  380. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
  381. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js +17 -1
  382. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
  383. package/dist/cli/backend/src/types/index.d.ts +12 -0
  384. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  385. package/dist/cli/backend/src/types/index.js.map +1 -1
  386. package/dist/cli/backend/src/types/team-template.types.d.ts +1 -0
  387. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  388. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  389. package/dist/cli/config/constants.d.ts +11 -0
  390. package/dist/cli/config/constants.d.ts.map +1 -1
  391. package/dist/cli/config/constants.js +11 -0
  392. package/dist/cli/config/constants.js.map +1 -1
  393. package/package.json +1 -1
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * @module services/orchestrator/orchestrator-status.service
9
9
  */
10
+ import { type UsageLimitedView } from '../runtime-fallback/usage-limit-state.js';
10
11
  /**
11
12
  * Result of an orchestrator status check
12
13
  */
@@ -17,6 +18,12 @@ export interface OrchestratorStatusResult {
17
18
  agentStatus: string | null;
18
19
  /** Human-readable status message */
19
20
  message: string;
21
+ /**
22
+ * Set while the orchestrator's runtime is out of usage (e.g. Claude Code's
23
+ * weekly limit). `isActive` stays true — the session is running and must
24
+ * not be restarted — but it takes no turn before `until` / `retryAt`.
25
+ */
26
+ usageLimited?: UsageLimitedView;
20
27
  }
21
28
  /**
22
29
  * Check if the orchestrator is currently active and ready to receive messages.
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-status.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-status.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAqJ/E;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBzE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,UAAO,GAAG,MAAM,CAMvE"}
1
+ {"version":3,"file":"orchestrator-status.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-status.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAKnI;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAqBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CA6I/E;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBzE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,UAAO,GAAG,MAAM,CAMvE"}
@@ -13,8 +13,28 @@ import { getSessionBackendSync } from '../session/index.js';
13
13
  import { isInProcessRuntimeActive } from '../agent/crewly-agent/in-process-runtime-registry.js';
14
14
  import { RUNTIME_TYPES } from '../../constants.js';
15
15
  import { effectiveRuntimeType } from '../runtime-fallback/effective-runtime.js';
16
+ import { usageLimitOf, usageLimitReason, usageLimitedView } from '../runtime-fallback/usage-limit-state.js';
16
17
  /** Dashboard URL for user-facing messages */
17
18
  const DASHBOARD_URL = `http://localhost:${WEB_CONSTANTS.PORTS.FRONTEND}`;
19
+ /**
20
+ * The status of a running orchestrator: "active and ready", unless its
21
+ * runtime is out of usage, in which case it says so and until when.
22
+ *
23
+ * @param sessionName - Orchestrator session
24
+ * @param message - Message for the ready case
25
+ * @returns Active status
26
+ */
27
+ function activeStatus(sessionName, message) {
28
+ const base = { isActive: true, agentStatus: CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE };
29
+ const limited = usageLimitOf(sessionName);
30
+ if (!limited)
31
+ return { ...base, message };
32
+ return {
33
+ ...base,
34
+ message: `${usageLimitReason('Orchestrator', limited)}. It is not restarted meanwhile; messages wait in the queue.`,
35
+ usageLimited: usageLimitedView(sessionName),
36
+ };
37
+ }
18
38
  /**
19
39
  * Check if the orchestrator is currently active and ready to receive messages.
20
40
  *
@@ -103,11 +123,7 @@ export async function getOrchestratorStatus() {
103
123
  // which uses session existence as ground truth for status.
104
124
  const isSessionActive = sessionExists && agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.STARTED;
105
125
  if (isRegisteredActive || isSessionActive) {
106
- return {
107
- isActive: true,
108
- agentStatus: CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE,
109
- message: 'Orchestrator is active and ready.',
110
- };
126
+ return activeStatus(sessionName, 'Orchestrator is active and ready.');
111
127
  }
112
128
  // Proactive cleanup: if the session backend confirmed the session is dead
113
129
  // but stored status says active, update storage to prevent repeated stale checks
@@ -154,11 +170,7 @@ export async function getOrchestratorStatus() {
154
170
  catch {
155
171
  // Best-effort — don't let persist failure block recovery
156
172
  }
157
- return {
158
- isActive: true,
159
- agentStatus: CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE,
160
- message: 'Orchestrator is active and ready (status recovered).',
161
- };
173
+ return activeStatus(sessionName, 'Orchestrator is active and ready (status recovered).');
162
174
  }
163
175
  }
164
176
  // If session exists but status is not active/started, it may be initializing
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-status.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-status.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator-status.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-status.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AAChG,OAAO,EAAE,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAyB,MAAM,0CAA0C,CAAC;AAEnI,6CAA6C;AAC7C,MAAM,aAAa,GAAG,oBAAoB,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AAoBzE;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,WAAmB,EAAE,OAAe;IACxD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1C,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,GAAG,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,8DAA8D;QACnH,YAAY,EAAE,gBAAgB,CAAC,WAAW,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QAEpD,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAExE,wEAAwE;QACxE,mDAAmD;QACnD,yEAAyE;QACzE,mEAAmE;QACnE,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,MAAM,WAAW,GAAG,kBAAkB,EAAE,WAAW,IAAI,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnG,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;YAC/C,IAAI,cAAc,IAAI,WAAW,EAAE,CAAC;gBAClC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC1D,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;QAED,uCAAuC;QACvC,sEAAsE;QACtE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,gDAAgD;QAChD,IAAI,CAAC,aAAa;eACb,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,WAAW,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,YAAY;eACvG,WAAW;eACX,wBAAwB,CAAC,WAAW,CAAC,EACxC,CAAC;YACD,aAAa,GAAG,IAAI,CAAC;YACrB,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,iFAAiF;aAC3F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,IAAI,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC;QAE/F,0EAA0E;QAC1E,qEAAqE;QACrE,6EAA6E;QAC7E,MAAM,kBAAkB,GAAG,WAAW,KAAK,gBAAgB,CAAC,cAAc,CAAC,MAAM;eAC5E,CAAC,CAAC,qBAAqB,IAAI,aAAa,CAAC,CAAC;QAE/C,8EAA8E;QAC9E,kFAAkF;QAClF,2DAA2D;QAC3D,MAAM,eAAe,GAAG,aAAa,IAAI,WAAW,KAAK,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC;QAEjG,IAAI,kBAAkB,IAAI,eAAe,EAAE,CAAC;YAC1C,OAAO,YAAY,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;QACxE,CAAC;QAED,0EAA0E;QAC1E,iFAAiF;QACjF,kDAAkD;QAClD,IAAI,qBAAqB,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACtG,IAAI,CAAC;gBACH,MAAM,wBAAwB,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC9D,MAAM,wBAAwB,CAAC,iBAAiB,CAC9C,WAAW,EACX,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CACzC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;YAC9D,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,oFAAoF;QACpF,IAAI,WAAW,KAAK,gBAAgB,CAAC,cAAc,CAAC,UAAU;YAC1D,WAAW,KAAK,gBAAgB,CAAC,cAAc,CAAC,QAAQ;YACxD,WAAW,KAAK,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5D,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,WAAW;gBACX,OAAO,EAAE,kEAAkE;aAC5E,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,8DAA8D;QAC9D,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,aAAa,IAAI,qBAAqB,EAAE,CAAC;YAC3C,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;gBAC/C,iBAAiB,GAAG,CAAC,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAAC,WAAW,CAAC,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,yEAAyE;gBACzE,IAAI,CAAC;oBACH,MAAM,yBAAyB,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;oBAC/D,MAAM,yBAAyB,CAAC,iBAAiB,CAC/C,WAAW,EACX,gBAAgB,CAAC,cAAc,CAAC,MAAM,CACvC,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;gBACD,OAAO,YAAY,CAAC,WAAW,EAAE,sDAAsD,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,WAAW;gBACX,OAAO,EAAE,kEAAkE;aAC5E,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,WAAW;YACX,OAAO,EAAE,gFAAgF;SAC1F,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,4BAA4B,CACzC,WAAmB;IAEnB,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IAEpD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACxE,IAAI,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,qBAAqB,EAAE,CAAC;IAClE,MAAM,mBAAmB,GACvB,YAAY,EAAE,WAAW,IAAI,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC3E,IAAI,YAAY,IAAI,mBAAmB,KAAK,WAAW,EAAE,CAAC;QACxD,OAAO,YAAY,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;QAC/C,IAAI,cAAc,IAAI,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,oEAAoE;YACpE,IAAI,cAAc,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,cAAc;QACd,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,WAAW,KAAK,aAAa,CAAC,YAAY,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,UAAU,GAAG,IAAI;IAC7D,MAAM,WAAW,GAAG,wCAAwC,CAAC;IAC7D,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,WAAW,iDAAiD,aAAa,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,GAAG,WAAW,6CAA6C,CAAC;AACrE,CAAC"}
@@ -51,6 +51,8 @@ export interface RuntimeFallbackHooks {
51
51
  reportOutput(sessionName: string, runtime: string, text: string, source: RuntimeOutputSource): boolean;
52
52
  /** One-time note for the session's next kickoff (after a switch), consumed */
53
53
  takeKickoffNote(sessionName: string): string | null;
54
+ /** The session's model just answered with a tool call: its runtime target has usage (optional) */
55
+ reportWorking?(sessionName: string): void;
54
56
  }
55
57
  /**
56
58
  * Register (or clear) the hooks.
@@ -125,4 +127,18 @@ export declare function reportRuntimeOutput(sessionName: string, runtime: string
125
127
  * @returns The note, once, or null
126
128
  */
127
129
  export declare function takeRuntimeSwitchKickoffNote(sessionName: string): string | null;
130
+ /**
131
+ * Report that a session's model just answered (a Claude Code PreToolUse
132
+ * hook: the model produced a tool call, which it cannot do while its account
133
+ * is out of usage). Clears a stale "out of usage" mark on the runtime target
134
+ * the session runs on.
135
+ *
136
+ * @param sessionName - Session the hook came from
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * if (event === 'PreToolUse') reportRuntimeWorking(sessionName);
141
+ * ```
142
+ */
143
+ export declare function reportRuntimeWorking(sessionName: string | undefined | null): void;
128
144
  //# sourceMappingURL=effective-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"effective-runtime.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/effective-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACrC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACpC,kGAAkG;IAClG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChD,qGAAqG;IACrG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/C,sGAAsG;IACtG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAChD,qFAAqF;IACrF,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACzE,0GAA0G;IAC1G,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1E,0EAA0E;IAC1E,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACvG,8EAA8E;IAC9E,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpD;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAE/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAO/G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAO5F;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAOxF;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAOpG;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAOvG;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAO5H;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO/E"}
1
+ {"version":3,"file":"effective-runtime.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/effective-runtime.ts"],"names":[],"mappings":"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"}
@@ -152,4 +152,27 @@ export function takeRuntimeSwitchKickoffNote(sessionName) {
152
152
  return null;
153
153
  }
154
154
  }
155
+ /**
156
+ * Report that a session's model just answered (a Claude Code PreToolUse
157
+ * hook: the model produced a tool call, which it cannot do while its account
158
+ * is out of usage). Clears a stale "out of usage" mark on the runtime target
159
+ * the session runs on.
160
+ *
161
+ * @param sessionName - Session the hook came from
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * if (event === 'PreToolUse') reportRuntimeWorking(sessionName);
166
+ * ```
167
+ */
168
+ export function reportRuntimeWorking(sessionName) {
169
+ if (!hooks?.reportWorking || !sessionName)
170
+ return;
171
+ try {
172
+ hooks.reportWorking(sessionName);
173
+ }
174
+ catch {
175
+ // never breaks the caller
176
+ }
177
+ }
155
178
  //# sourceMappingURL=effective-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effective-runtime.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/effective-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6CH,IAAI,KAAK,GAAgC,IAAI,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiC;IACxE,KAAK,GAAG,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAmB,WAAsC,EAAE,UAAa;IAC3G,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW;QAAE,OAAO,UAAU,CAAC;IAC9C,IAAI,CAAC;QACJ,OAAQ,KAAK,CAAC,WAAW,CAAC,WAAW,CAAc,IAAI,UAAU,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,UAAU,CAAC;IACnB,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAsC;IAC5E,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAsC;IAC9E,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAyB;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACpE,IAAI,CAAC;QACJ,OAAO,MAAM,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,WAAmB,EAAE,OAAe;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,OAAe,EAAE,IAAY,EAAE,MAA2B;IAClH,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"effective-runtime.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/effective-runtime.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  *
6
6
  * - Claude Code: `You've hit your limit · resets 3pm (America/Los_Angeles)`,
7
7
  * `resets Oct 6, 9am`, `Your limit will reset at 5pm (Asia/Shanghai).`,
8
- * `continuing automatically at 3pm`, the old `usage limit reached|1767225600`
8
+ * `continuing automatically at 3pm`, the limit menu's `Wait here, then
9
+ * continue automatically at 8pm`, the old `usage limit reached|1767225600`
9
10
  * (epoch seconds) and the API's `resets 2026-08-08 00:00 UTC`.
10
11
  * - Codex: `try again at 4:05 PM`, `try again at Oct 3rd, 2026 4:05 PM`,
11
12
  * `try again in 4 days 7 hours 3 minutes`.
@@ -1 +1 @@
1
- {"version":3,"file":"reset-time.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/reset-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,uCAAuC;AACvC,UAAU,SAAS;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,IAAI,MAAM,CAQ3E;AA0BD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUpF;AAsCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqDjG"}
1
+ {"version":3,"file":"reset-time.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/reset-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,uCAAuC;AACvC,UAAU,SAAS;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,IAAI,MAAM,CAQ3E;AA0BD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUpF;AAsCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqDjG"}
@@ -5,7 +5,8 @@
5
5
  *
6
6
  * - Claude Code: `You've hit your limit · resets 3pm (America/Los_Angeles)`,
7
7
  * `resets Oct 6, 9am`, `Your limit will reset at 5pm (Asia/Shanghai).`,
8
- * `continuing automatically at 3pm`, the old `usage limit reached|1767225600`
8
+ * `continuing automatically at 3pm`, the limit menu's `Wait here, then
9
+ * continue automatically at 8pm`, the old `usage limit reached|1767225600`
9
10
  * (epoch seconds) and the API's `resets 2026-08-08 00:00 UTC`.
10
11
  * - Codex: `try again at 4:05 PM`, `try again at Oct 3rd, 2026 4:05 PM`,
11
12
  * `try again in 4 days 7 hours 3 minutes`.
@@ -107,7 +108,7 @@ const DATE = String.raw `(?:(?:on\s+)?([A-Za-z]{3,9})\.?\s+(\d{1,2})(?:st|nd|rd|
107
108
  /** A trailing time zone: `(America/Los_Angeles)`, `(UTC)`, ` UTC`. */
108
109
  const ZONE = String.raw `(?:\s*\(([A-Za-z_]+(?:\/[A-Za-z0-9_+\-]+)*)\)|\s+(UTC|GMT)\b)?`;
109
110
  /** What introduces an absolute reset time. */
110
- const ABSOLUTE_LEAD = String.raw `(?:resets?|reset\s+at|resets?\s+at|try\s+again\s+(?:at|after)|available\s+again\s+at|continuing\s+automatically(?:\s+at)?|until)`;
111
+ const ABSOLUTE_LEAD = String.raw `(?:resets?|reset\s+at|resets?\s+at|try\s+again\s+(?:at|after)|available\s+again\s+at|continu(?:e|ing)\s+automatically(?:\s+at)?|until)`;
111
112
  /** Absolute: lead + optional date + clock + optional zone. */
112
113
  const ABSOLUTE_RE = new RegExp(String.raw `${ABSOLUTE_LEAD}\s+(?:at\s+)?${DATE}${CLOCK}${ZONE}`, 'i');
113
114
  /** ISO-ish: `resets 2026-08-08 00:00 UTC`. */
@@ -1 +1 @@
1
- {"version":3,"file":"reset-time.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/reset-time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reset-time.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/reset-time.ts"],"names":[],"mappings":"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"}
@@ -110,4 +110,82 @@ export declare function getUsageLimitRules(runtime: string): readonly UsageLimit
110
110
  * ```
111
111
  */
112
112
  export declare function detectUsageLimit(output: string, runtime: string, now?: number, defaultTimeZone?: string): UsageLimitMatch | null;
113
+ /**
114
+ * Claude Code's usage-limit menu, shown when a turn hits the limit:
115
+ *
116
+ * ```
117
+ * ⎿ You've hit your weekly limit · resets Oct 16 at 8pm (America/New_York)
118
+ * What do you want to do?
119
+ * ❯ 1. Stop and wait for limit to reset
120
+ * 2. Wait here, then continue automatically at 8pm
121
+ * Enter to confirm · Esc to cancel
122
+ * ```
123
+ *
124
+ * Both options must be on screen. Matched against the spaceless screen tail.
125
+ */
126
+ export declare const CLAUDE_USAGE_LIMIT_MENU: readonly RegExp[];
127
+ /** What {@link detectUsageLimitScreen} found. */
128
+ export interface UsageLimitScreenMatch {
129
+ /** Runtime the match belongs to */
130
+ runtime: string;
131
+ /** Rule that matched the limit line, or `claude.usage_limit_menu` */
132
+ ruleId: string;
133
+ /** When the limit lifts (epoch ms), when the screen says so and it is plausible */
134
+ resetAt: number | null;
135
+ /** Set while the usage-limit menu is open; `selected` is the highlighted option */
136
+ menu: {
137
+ selected: 1 | 2 | null;
138
+ } | null;
139
+ }
140
+ /**
141
+ * Find a usage-limit state on a captured screen — what the agent shows right
142
+ * now — as opposed to {@link detectUsageLimit}, which reads live output and
143
+ * error text.
144
+ *
145
+ * Only the bottom of the screen counts (old scrollback and resumed
146
+ * transcripts sit above it):
147
+ *
148
+ * - Claude Code's usage-limit menu ({@link CLAUDE_USAGE_LIMIT_MENU}) is a
149
+ * modal waiting for an answer, so it always counts; the reset time comes
150
+ * from the limit line above it or from option 2 ("continue automatically
151
+ * at 8pm").
152
+ * - A plain limit line ("You've hit your … limit · resets …") counts only
153
+ * when its reset names a calendar date and is plausible
154
+ * ({@link plausibleReset}), so an old line that names a past date is not
155
+ * read as a new limit. A line whose reset has no date ("resets 8pm",
156
+ * "try again in 2h") never counts here: on a resumed conversation it may
157
+ * be old. Only new live output may report it.
158
+ *
159
+ * Transient rate limits and expired logins are never reported.
160
+ *
161
+ * @param screen - Captured screen text (escape sequences allowed)
162
+ * @param runtime - Runtime the session runs
163
+ * @param now - Current time (ms)
164
+ * @param defaultTimeZone - Zone for reset clock times that name none
165
+ * @returns The match, or null
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * detectUsageLimitScreen(screen, 'claude-code');
170
+ * // { runtime: 'claude-code', ruleId: 'claude.hit_your_limit', resetAt: <Oct 16 8pm New York>, menu: { selected: 1 } }
171
+ * ```
172
+ */
173
+ export declare function detectUsageLimitScreen(screen: string, runtime: string, now?: number, defaultTimeZone?: string): UsageLimitScreenMatch | null;
174
+ /**
175
+ * Whether a live output chunk is fresh activity that is not a usage-limit
176
+ * message: at least {@link USAGE_LIMIT_STATE_CONSTANTS.FRESH_OUTPUT_MIN_CHARS}
177
+ * printable characters, no usage-limit match, and none of the words of the
178
+ * limit screen. Used to lift a usage-limit state once the agent works again.
179
+ *
180
+ * @param output - Output chunk (escape sequences allowed)
181
+ * @param runtime - Runtime the session runs
182
+ * @param now - Current time (ms)
183
+ * @returns True for fresh non-limit output
184
+ *
185
+ * @example
186
+ * ```ts
187
+ * isFreshNonLimitOutput('⏺ Read(src/app.ts) … 120 lines, editing the handler now', 'claude-code'); // true
188
+ * ```
189
+ */
190
+ export declare function isFreshNonLimitOutput(output: string, runtime: string, now?: number): boolean;
113
191
  //# sourceMappingURL=usage-limit-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-limit-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/usage-limit-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAE9D;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC9B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,+DAA+D;IAC/D,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC/B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AASD,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAuDvD,CAAC;AAEF,mBAAmB;AACnB,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAmBtD,CAAC;AAoBF,6BAA6B;AAC7B,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAA8D,CAAC;AAE5H,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAAoD,CAAC;AAE7G;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAyB7D,CAAC;AAWF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAE7E;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAoB5I"}
1
+ {"version":3,"file":"usage-limit-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/usage-limit-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAE9D;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC9B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,+DAA+D;IAC/D,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC/B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AASD,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAuDvD,CAAC;AAEF,mBAAmB;AACnB,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAmBtD,CAAC;AAoBF,6BAA6B;AAC7B,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAA8D,CAAC;AAE5H,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAAoD,CAAC;AAE7G;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAyB7D,CAAC;AAWF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAE7E;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAoB5I;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAGpD,CAAC;AAQF,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACrC,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mFAAmF;IACnF,IAAI,EAAE;QAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACxC;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAmB,EACxB,eAAe,CAAC,EAAE,MAAM,GACtB,qBAAqB,GAAG,IAAI,CAgC9B;AAsBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAMxG"}
@@ -36,7 +36,7 @@
36
36
  *
37
37
  * @module services/runtime-fallback/usage-limit-rules
38
38
  */
39
- import { RUNTIME_TYPES } from '../../constants.js';
39
+ import { RUNTIME_TYPES, USAGE_LIMIT_STATE_CONSTANTS } from '../../constants.js';
40
40
  import { normalizeTerminalOutput } from '../harness/login-rules.js';
41
41
  import { detectLoginExpiry } from '../harness/login-expiry-rules.js';
42
42
  import { parseResetTime } from './reset-time.js';
@@ -254,4 +254,162 @@ export function detectUsageLimit(output, runtime, now = Date.now(), defaultTimeZ
254
254
  }
255
255
  return null;
256
256
  }
257
+ /**
258
+ * Claude Code's usage-limit menu, shown when a turn hits the limit:
259
+ *
260
+ * ```
261
+ * ⎿ You've hit your weekly limit · resets Oct 16 at 8pm (America/New_York)
262
+ * What do you want to do?
263
+ * ❯ 1. Stop and wait for limit to reset
264
+ * 2. Wait here, then continue automatically at 8pm
265
+ * Enter to confirm · Esc to cancel
266
+ * ```
267
+ *
268
+ * Both options must be on screen. Matched against the spaceless screen tail.
269
+ */
270
+ export const CLAUDE_USAGE_LIMIT_MENU = [
271
+ /Stopandwaitfor(?:the)?limittoreset/i,
272
+ /Waithere,?thencontinueautomatically/i,
273
+ ];
274
+ /** Which option of the usage-limit menu is highlighted (`❯`). */
275
+ const MENU_SELECTED = /❯\s*([12])\./;
276
+ /** Option 2 of the usage-limit menu, from "continue automatically" to the end of its line. */
277
+ const MENU_OPTION_2_TIME = /continue\s*automatically[^\n]*/i;
278
+ /**
279
+ * The last `count` non-empty lines of a screen, normalized.
280
+ *
281
+ * @param screen - Captured screen (escape sequences allowed)
282
+ * @param count - Lines to keep
283
+ * @returns The tail as text
284
+ */
285
+ function screenTail(screen, count) {
286
+ const lines = normalizeTerminalOutput(screen).text.split('\n').filter((line) => line.trim().length > 0);
287
+ return lines.slice(-count).join('\n');
288
+ }
289
+ /**
290
+ * A reset time a live screen may be trusted with: in the future and at most
291
+ * {@link USAGE_LIMIT_STATE_CONSTANTS.MAX_RESET_AHEAD_MS} away. A dated reset
292
+ * that already passed is read by {@link parseResetTime} as next year's, so a
293
+ * reset that far ahead means an old message.
294
+ *
295
+ * @param resetAt - Parsed reset time
296
+ * @param now - Current time (ms)
297
+ * @returns The reset time, or null when absent or implausible
298
+ */
299
+ function plausibleReset(resetAt, now) {
300
+ if (resetAt === null)
301
+ return null;
302
+ return resetAt > now && resetAt - now <= USAGE_LIMIT_STATE_CONSTANTS.MAX_RESET_AHEAD_MS ? resetAt : null;
303
+ }
304
+ /**
305
+ * Find a usage-limit state on a captured screen — what the agent shows right
306
+ * now — as opposed to {@link detectUsageLimit}, which reads live output and
307
+ * error text.
308
+ *
309
+ * Only the bottom of the screen counts (old scrollback and resumed
310
+ * transcripts sit above it):
311
+ *
312
+ * - Claude Code's usage-limit menu ({@link CLAUDE_USAGE_LIMIT_MENU}) is a
313
+ * modal waiting for an answer, so it always counts; the reset time comes
314
+ * from the limit line above it or from option 2 ("continue automatically
315
+ * at 8pm").
316
+ * - A plain limit line ("You've hit your … limit · resets …") counts only
317
+ * when its reset names a calendar date and is plausible
318
+ * ({@link plausibleReset}), so an old line that names a past date is not
319
+ * read as a new limit. A line whose reset has no date ("resets 8pm",
320
+ * "try again in 2h") never counts here: on a resumed conversation it may
321
+ * be old. Only new live output may report it.
322
+ *
323
+ * Transient rate limits and expired logins are never reported.
324
+ *
325
+ * @param screen - Captured screen text (escape sequences allowed)
326
+ * @param runtime - Runtime the session runs
327
+ * @param now - Current time (ms)
328
+ * @param defaultTimeZone - Zone for reset clock times that name none
329
+ * @returns The match, or null
330
+ *
331
+ * @example
332
+ * ```ts
333
+ * detectUsageLimitScreen(screen, 'claude-code');
334
+ * // { runtime: 'claude-code', ruleId: 'claude.hit_your_limit', resetAt: <Oct 16 8pm New York>, menu: { selected: 1 } }
335
+ * ```
336
+ */
337
+ export function detectUsageLimitScreen(screen, runtime, now = Date.now(), defaultTimeZone) {
338
+ if (!screen)
339
+ return null;
340
+ const tail = screenTail(screen, USAGE_LIMIT_STATE_CONSTANTS.SCREEN_TAIL_LINES);
341
+ if (!tail)
342
+ return null;
343
+ const lineMatch = detectUsageLimit(tail, runtime, now, defaultTimeZone);
344
+ const exhausting = lineMatch && isExhaustingKind(lineMatch.kind) ? lineMatch : null;
345
+ const spaceless = tail.replace(/[ \t]+/g, '');
346
+ if (runtime === RUNTIME_TYPES.CLAUDE_CODE && CLAUDE_USAGE_LIMIT_MENU.every((re) => re.test(spaceless))) {
347
+ const selected = MENU_SELECTED.exec(tail)?.[1];
348
+ // Option 2 names the reset ("continue automatically at 8pm"); read only
349
+ // that line — option 1's "limit to reset" is followed by "2." otherwise.
350
+ const option2 = MENU_OPTION_2_TIME.exec(tail)?.[0] ?? '';
351
+ const resetAt = plausibleReset(exhausting?.resetAt ?? parseResetTime(option2, now, defaultTimeZone), now);
352
+ return {
353
+ runtime,
354
+ ruleId: exhausting?.ruleId ?? 'claude.usage_limit_menu',
355
+ resetAt,
356
+ menu: { selected: selected === '1' ? 1 : selected === '2' ? 2 : null },
357
+ };
358
+ }
359
+ if (!exhausting)
360
+ return null;
361
+ // A screen holds history (a resumed conversation repaints old limit
362
+ // lines). A reset with only a clock time ("resets 8pm") or a duration
363
+ // cannot tell an old line from a new one — it would be read as the next
364
+ // 8pm — so only a dated reset counts here. Undated lines count only as
365
+ // new live output (detectUsageLimit on the output stream).
366
+ if (!hasDatedReset(tail))
367
+ return null;
368
+ const resetAt = plausibleReset(exhausting.resetAt, now);
369
+ if (resetAt === null)
370
+ return null;
371
+ return { runtime: exhausting.runtime, ruleId: exhausting.ruleId, resetAt, menu: null };
372
+ }
373
+ /** A calendar date in a reset phrase: "Oct 16", "2026-10-16", or the old "|<epoch>" form. */
374
+ const DATED_RESET = /\b(?:jan|feb|mar|apr|may|jun|jul|aug|sep|sept|oct|nov|dec)[a-z]*\.?\s+\d{1,2}(?:st|nd|rd|th)?\b|\b\d{4}-\d{2}-\d{2}\b|\|\d{10}\b/i;
375
+ /** The phrase that carries a reset time. */
376
+ const RESET_PHRASE = /\b(?:resets?|reset\s+at|try\s+again|limit\s+will\s+reset)\b|\|\d{10}\b/i;
377
+ /**
378
+ * Whether the last line naming a reset in `text` names a calendar date.
379
+ *
380
+ * @param text - Screen tail
381
+ * @returns True when the reset is dated
382
+ */
383
+ function hasDatedReset(text) {
384
+ const line = text.split('\n').reverse().find((l) => RESET_PHRASE.test(l));
385
+ return line !== undefined && DATED_RESET.test(line);
386
+ }
387
+ /** Words of a usage-limit screen (the limit line, its menu, Crewly's answer). */
388
+ const LIMIT_SCREEN_WORDS = /limit|resets?\b|continue\s*automatically|wait\s*here|what\s*do\s*you\s*want\s*to\s*do|enter\s*to\s*confirm/i;
389
+ /**
390
+ * Whether a live output chunk is fresh activity that is not a usage-limit
391
+ * message: at least {@link USAGE_LIMIT_STATE_CONSTANTS.FRESH_OUTPUT_MIN_CHARS}
392
+ * printable characters, no usage-limit match, and none of the words of the
393
+ * limit screen. Used to lift a usage-limit state once the agent works again.
394
+ *
395
+ * @param output - Output chunk (escape sequences allowed)
396
+ * @param runtime - Runtime the session runs
397
+ * @param now - Current time (ms)
398
+ * @returns True for fresh non-limit output
399
+ *
400
+ * @example
401
+ * ```ts
402
+ * isFreshNonLimitOutput('⏺ Read(src/app.ts) … 120 lines, editing the handler now', 'claude-code'); // true
403
+ * ```
404
+ */
405
+ export function isFreshNonLimitOutput(output, runtime, now = Date.now()) {
406
+ if (!output)
407
+ return false;
408
+ const text = normalizeTerminalOutput(output).text.replace(/\s+/g, ' ').trim();
409
+ if (text.length < USAGE_LIMIT_STATE_CONSTANTS.FRESH_OUTPUT_MIN_CHARS)
410
+ return false;
411
+ if (LIMIT_SCREEN_WORDS.test(text))
412
+ return false;
413
+ return detectUsageLimit(text, runtime, now) === null;
414
+ }
257
415
  //# sourceMappingURL=usage-limit-rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-limit-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/usage-limit-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-limit-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/usage-limit-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Read an agent's screen for a usage-limit state, record it, and answer
3
+ * Claude Code's usage-limit menu.
4
+ *
5
+ * One entry point ({@link inspectUsageLimitScreen}) for every place that
6
+ * already reads an agent's screen: the login/screen monitor's 30s sweep, the
7
+ * orchestrator heartbeat, and the delivery wait for a prompt. Detection is
8
+ * {@link detectUsageLimitScreen}; the state is {@link markUsageLimited}.
9
+ *
10
+ * The menu ("❯ 1. Stop and wait for limit to reset / 2. Wait here, then
11
+ * continue automatically at 8pm") is answered with option 2, like the other
12
+ * known start-up prompts are answered with the one right choice for an
13
+ * unattended agent: the turn waits and goes on by itself at the reset, so
14
+ * nobody has to come back and re-send it. Only while option 1 or 2 is the
15
+ * highlighted one, once per state, and Enter is pressed only after the
16
+ * screen shows option 2 highlighted.
17
+ *
18
+ * @module services/runtime-fallback/usage-limit-screen
19
+ */
20
+ import { type UsageLimitedInfo } from './usage-limit-state.js';
21
+ /** Keys and screen access, to answer the menu. */
22
+ export interface UsageLimitMenuIO {
23
+ sendKey(sessionName: string, key: string): Promise<void>;
24
+ sendEnter(sessionName: string): Promise<void>;
25
+ /** Current screen of the session */
26
+ capture(sessionName: string): string;
27
+ }
28
+ /** Minimal logger. */
29
+ export interface UsageLimitScreenLogger {
30
+ info(message: string, context?: Record<string, unknown>): void;
31
+ warn(message: string, context?: Record<string, unknown>): void;
32
+ }
33
+ /** Options of {@link inspectUsageLimitScreen}. */
34
+ export interface InspectUsageLimitOptions {
35
+ /** Keys + capture; without it the menu is left alone */
36
+ io?: UsageLimitMenuIO;
37
+ logger?: UsageLimitScreenLogger;
38
+ now?: number;
39
+ /** Zone for reset clock times that name none */
40
+ timeZone?: string;
41
+ /** Hand a new detection to the runtime fallback (default true) */
42
+ reportToFallback?: boolean;
43
+ }
44
+ /**
45
+ * Look at a session's screen for a usage-limit state. On a match the state
46
+ * is recorded (a new one is logged and handed to the runtime fallback, which
47
+ * may move the agent to another runtime) and an open usage-limit menu is
48
+ * answered. Never throws.
49
+ *
50
+ * @param sessionName - Session
51
+ * @param screen - Captured screen
52
+ * @param runtime - Runtime the session runs (null when unknown: nothing is detected)
53
+ * @param options - Keys, logger, clock
54
+ * @returns The state in force (also one recorded earlier), or null
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const limited = await inspectUsageLimitScreen('crewly-orc', screen, 'claude-code', { io });
59
+ * if (limited) return; // do not restart / wait / write
60
+ * ```
61
+ */
62
+ export declare function inspectUsageLimitScreen(sessionName: string, screen: string, runtime: string | null, options?: InspectUsageLimitOptions): Promise<UsageLimitedInfo | null>;
63
+ //# sourceMappingURL=usage-limit-screen.d.ts.map