crewly 1.20.194 → 1.20.196

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 (791) hide show
  1. package/config/constants.ts +68 -0
  2. package/config/hooks/agent-status/report.sh +31 -12
  3. package/config/hooks/subagent-guard/subagent.sh +25 -1
  4. package/config/roles/auditor/prompt.md +2 -2
  5. package/config/roles/orchestrator/fragments/communication.md +1 -1
  6. package/config/roles/orchestrator/fragments/lifecycle.md +1 -1
  7. package/config/roles/orchestrator/prompt.md +18 -508
  8. package/config/skills/_common/lib.sh +28 -5
  9. package/config/skills/_common/lib.test.sh +32 -1
  10. package/config/skills/agent/computer-use/SKILL.md +6 -0
  11. package/config/skills/agent/core/create-intent-tasks/execute.sh +2 -0
  12. package/config/skills/agent/core/decompose-intent/execute.sh +2 -0
  13. package/config/skills/agent/core/experiment-card/SKILL.md +38 -5
  14. package/config/skills/agent/core/experiment-card/execute.sh +40 -4
  15. package/config/skills/agent/core/experiment-card/execute.test.sh +17 -0
  16. package/config/skills/agent/core/project-tickets/SKILL.md +35 -2
  17. package/config/skills/agent/core/project-tickets/execute.sh +59 -6
  18. package/config/skills/agent/core/project-tickets/execute.test.sh +24 -0
  19. package/config/skills/agent/core/send-message/execute.sh +16 -0
  20. package/config/skills/agent/core/send-message/execute.test.sh +10 -0
  21. package/config/skills/agent/core/trace-read/SKILL.md +117 -0
  22. package/config/skills/agent/core/trace-read/execute.sh +116 -0
  23. package/config/skills/agent/core/update-intent-task/execute.sh +2 -0
  24. package/config/skills/agent/desktop-app-control/execute.sh +5 -2
  25. package/config/skills/agent/marketing/submit-for-approval/execute.sh +3 -2
  26. package/config/skills/orchestrator/decompose-mission/execute.sh +2 -0
  27. package/config/skills/orchestrator/decompose-okr/execute.sh +1 -0
  28. package/config/skills/orchestrator/design-team/execute.sh +2 -0
  29. package/config/skills/orchestrator/measure-kr/execute.sh +2 -0
  30. package/config/skills/orchestrator/review-mission/execute.sh +2 -0
  31. package/config/skills/orchestrator/send-message/execute.sh +27 -2
  32. package/config/skills/orchestrator/send-message/execute.test.sh +89 -0
  33. package/config/skills/registry.json +6 -5
  34. package/config/skills/team-leader/design-checklist/execute.sh +2 -0
  35. package/config/skills/team-leader/signal-digest/SKILL.md +110 -0
  36. package/config/skills/team-leader/signal-digest/execute.sh +173 -0
  37. package/config/skills/team-leader/signal-digest/execute.test.sh +123 -0
  38. package/config/skills/team-leader/signal-digest/signal-digest.config.example.json +23 -0
  39. package/config/skills/team-leader/signal-digest/signal_digest.py +572 -0
  40. package/config/skills/team-leader/signal-digest/signal_digest.test.py +319 -0
  41. package/dist/backend/backend/src/constants.d.ts +356 -5
  42. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  43. package/dist/backend/backend/src/constants.js +341 -8
  44. package/dist/backend/backend/src/constants.js.map +1 -1
  45. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +9 -3
  46. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  47. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +38 -5
  48. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  49. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +4 -9
  50. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
  51. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +6 -14
  52. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
  53. package/dist/backend/backend/src/controllers/auth/owner-session.controller.d.ts +64 -0
  54. package/dist/backend/backend/src/controllers/auth/owner-session.controller.d.ts.map +1 -0
  55. package/dist/backend/backend/src/controllers/auth/owner-session.controller.js +164 -0
  56. package/dist/backend/backend/src/controllers/auth/owner-session.controller.js.map +1 -0
  57. package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
  58. package/dist/backend/backend/src/controllers/browser/browser.routes.js +18 -5
  59. package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
  60. package/dist/backend/backend/src/controllers/canva/canva.routes.d.ts.map +1 -1
  61. package/dist/backend/backend/src/controllers/canva/canva.routes.js +8 -1
  62. package/dist/backend/backend/src/controllers/canva/canva.routes.js.map +1 -1
  63. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  64. package/dist/backend/backend/src/controllers/chat/chat.controller.js +16 -1
  65. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  66. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  67. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +3 -1
  68. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  69. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.d.ts.map +1 -1
  70. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js +3 -5
  71. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js.map +1 -1
  72. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts +4 -2
  73. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts.map +1 -1
  74. package/dist/backend/backend/src/controllers/connector/connector.controller.js +17 -2
  75. package/dist/backend/backend/src/controllers/connector/connector.controller.js.map +1 -1
  76. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts.map +1 -1
  77. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js +2 -3
  78. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js.map +1 -1
  79. package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts +4 -2
  80. package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts.map +1 -1
  81. package/dist/backend/backend/src/controllers/decisions/decisions.controller.js +31 -20
  82. package/dist/backend/backend/src/controllers/decisions/decisions.controller.js.map +1 -1
  83. package/dist/backend/backend/src/controllers/desktop/desktop.controller.d.ts.map +1 -1
  84. package/dist/backend/backend/src/controllers/desktop/desktop.controller.js +16 -0
  85. package/dist/backend/backend/src/controllers/desktop/desktop.controller.js.map +1 -1
  86. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  87. package/dist/backend/backend/src/controllers/google/google.controller.js +9 -5
  88. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  89. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  90. package/dist/backend/backend/src/controllers/google/google.routes.js +16 -3
  91. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  92. package/dist/backend/backend/src/controllers/harness/harness.controller.d.ts.map +1 -1
  93. package/dist/backend/backend/src/controllers/harness/harness.controller.js +3 -5
  94. package/dist/backend/backend/src/controllers/harness/harness.controller.js.map +1 -1
  95. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts +1 -0
  96. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  97. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +1 -0
  98. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  99. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts.map +1 -1
  100. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js +8 -1
  101. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js.map +1 -1
  102. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +1 -1
  103. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
  104. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  105. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +5 -2
  106. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  107. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts.map +1 -1
  108. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js +3 -5
  109. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js.map +1 -1
  110. package/dist/backend/backend/src/controllers/people/people.routes.d.ts.map +1 -1
  111. package/dist/backend/backend/src/controllers/people/people.routes.js +3 -5
  112. package/dist/backend/backend/src/controllers/people/people.routes.js.map +1 -1
  113. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +35 -2
  114. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
  115. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +138 -4
  116. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
  117. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +2 -0
  118. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -1
  119. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +7 -1
  120. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -1
  121. package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts.map +1 -1
  122. package/dist/backend/backend/src/controllers/request/open-items.controller.js +2 -4
  123. package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -1
  124. package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -1
  125. package/dist/backend/backend/src/controllers/request/request.controller.js +5 -1
  126. package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -1
  127. package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts.map +1 -1
  128. package/dist/backend/backend/src/controllers/settings/settings.controller.js +18 -2
  129. package/dist/backend/backend/src/controllers/settings/settings.controller.js.map +1 -1
  130. package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.d.ts +26 -0
  131. package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.d.ts.map +1 -0
  132. package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js +100 -0
  133. package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js.map +1 -0
  134. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  135. package/dist/backend/backend/src/controllers/slack/slack.controller.js +9 -0
  136. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  137. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  138. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +11 -0
  139. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  140. package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts +6 -4
  141. package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts.map +1 -1
  142. package/dist/backend/backend/src/controllers/system/system-control.controller.js +20 -13
  143. package/dist/backend/backend/src/controllers/system/system-control.controller.js.map +1 -1
  144. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  145. package/dist/backend/backend/src/controllers/team/team.controller.js +14 -7
  146. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  147. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -1
  148. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +5 -7
  149. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -1
  150. package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts +73 -0
  151. package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts.map +1 -0
  152. package/dist/backend/backend/src/controllers/trace/trace.controller.js +437 -0
  153. package/dist/backend/backend/src/controllers/trace/trace.controller.js.map +1 -0
  154. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts +3 -3
  155. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts.map +1 -1
  156. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js +4 -2
  157. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js.map +1 -1
  158. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -1
  159. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +10 -2
  160. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -1
  161. package/dist/backend/backend/src/index.d.ts +34 -0
  162. package/dist/backend/backend/src/index.d.ts.map +1 -1
  163. package/dist/backend/backend/src/index.js +342 -61
  164. package/dist/backend/backend/src/index.js.map +1 -1
  165. package/dist/backend/backend/src/middleware/agent-origin-correction.d.ts +31 -0
  166. package/dist/backend/backend/src/middleware/agent-origin-correction.d.ts.map +1 -0
  167. package/dist/backend/backend/src/middleware/agent-origin-correction.js +31 -0
  168. package/dist/backend/backend/src/middleware/agent-origin-correction.js.map +1 -0
  169. package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts +6 -0
  170. package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts.map +1 -1
  171. package/dist/backend/backend/src/middleware/agent-origin.middleware.js +4 -1
  172. package/dist/backend/backend/src/middleware/agent-origin.middleware.js.map +1 -1
  173. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +20 -17
  174. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -1
  175. package/dist/backend/backend/src/middleware/api-token.middleware.js +27 -37
  176. package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -1
  177. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts +213 -0
  178. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -0
  179. package/dist/backend/backend/src/middleware/caller-identity.middleware.js +481 -0
  180. package/dist/backend/backend/src/middleware/caller-identity.middleware.js.map +1 -0
  181. package/dist/backend/backend/src/middleware/caller-identity.testing.d.ts +67 -0
  182. package/dist/backend/backend/src/middleware/caller-identity.testing.d.ts.map +1 -0
  183. package/dist/backend/backend/src/middleware/caller-identity.testing.js +108 -0
  184. package/dist/backend/backend/src/middleware/caller-identity.testing.js.map +1 -0
  185. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  186. package/dist/backend/backend/src/routes/api.routes.js +11 -0
  187. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  188. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  189. package/dist/backend/backend/src/services/agent/agent-registration.service.js +17 -2
  190. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  191. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +7 -5
  192. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  193. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +19 -10
  194. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  195. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  196. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -1
  197. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  198. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +1 -1
  199. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/agent/restore-filter.d.ts +5 -2
  201. package/dist/backend/backend/src/services/agent/restore-filter.d.ts.map +1 -1
  202. package/dist/backend/backend/src/services/agent/restore-filter.js +5 -2
  203. package/dist/backend/backend/src/services/agent/restore-filter.js.map +1 -1
  204. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  205. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +4 -0
  206. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  207. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +29 -0
  208. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  209. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +77 -1
  210. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  211. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +4 -2
  212. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  213. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +22 -6
  214. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  215. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +2 -2
  216. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  217. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  218. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  219. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  220. package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts +6 -0
  221. package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts.map +1 -1
  222. package/dist/backend/backend/src/services/backup/backup-archive.service.js +7 -1
  223. package/dist/backend/backend/src/services/backup/backup-archive.service.js.map +1 -1
  224. package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts +1 -1
  225. package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts.map +1 -1
  226. package/dist/backend/backend/src/services/chat/chat.service.d.ts +175 -2
  227. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  228. package/dist/backend/backend/src/services/chat/chat.service.js +444 -35
  229. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  230. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -5
  231. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  232. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +34 -4
  233. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  234. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +4 -3
  235. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  236. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +7 -4
  237. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  238. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +18 -11
  239. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
  240. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +19 -25
  241. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
  242. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -4
  243. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  244. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +8 -4
  245. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  246. package/dist/backend/backend/src/services/chat-v2/types.d.ts +0 -1
  247. package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
  248. package/dist/backend/backend/src/services/chat-v2/types.js +0 -1
  249. package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
  250. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  251. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +5 -0
  252. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  253. package/dist/backend/backend/src/services/core/api-token.service.d.ts +28 -0
  254. package/dist/backend/backend/src/services/core/api-token.service.d.ts.map +1 -1
  255. package/dist/backend/backend/src/services/core/api-token.service.js +46 -0
  256. package/dist/backend/backend/src/services/core/api-token.service.js.map +1 -1
  257. package/dist/backend/backend/src/services/core/dashboard-build.d.ts +49 -0
  258. package/dist/backend/backend/src/services/core/dashboard-build.d.ts.map +1 -0
  259. package/dist/backend/backend/src/services/core/dashboard-build.js +68 -0
  260. package/dist/backend/backend/src/services/core/dashboard-build.js.map +1 -0
  261. package/dist/backend/backend/src/services/core/owner-auth.service.d.ts +127 -0
  262. package/dist/backend/backend/src/services/core/owner-auth.service.d.ts.map +1 -0
  263. package/dist/backend/backend/src/services/core/owner-auth.service.js +205 -0
  264. package/dist/backend/backend/src/services/core/owner-auth.service.js.map +1 -0
  265. package/dist/backend/backend/src/services/core/peer-process.service.d.ts +168 -0
  266. package/dist/backend/backend/src/services/core/peer-process.service.d.ts.map +1 -0
  267. package/dist/backend/backend/src/services/core/peer-process.service.js +352 -0
  268. package/dist/backend/backend/src/services/core/peer-process.service.js.map +1 -0
  269. package/dist/backend/backend/src/services/decisions/decision-store.d.ts.map +1 -1
  270. package/dist/backend/backend/src/services/decisions/decision-store.js +5 -1
  271. package/dist/backend/backend/src/services/decisions/decision-store.js.map +1 -1
  272. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts +10 -1
  273. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  274. package/dist/backend/backend/src/services/decisions/decision.wiring.js +20 -9
  275. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  276. package/dist/backend/backend/src/services/experiments/experiment-verdict.d.ts +1 -1
  277. package/dist/backend/backend/src/services/experiments/experiment-verdict.js +2 -2
  278. package/dist/backend/backend/src/services/experiments/experiment-verdict.js.map +1 -1
  279. package/dist/backend/backend/src/services/experiments/experiment.service.d.ts +149 -4
  280. package/dist/backend/backend/src/services/experiments/experiment.service.d.ts.map +1 -1
  281. package/dist/backend/backend/src/services/experiments/experiment.service.js +549 -24
  282. package/dist/backend/backend/src/services/experiments/experiment.service.js.map +1 -1
  283. package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts +20 -5
  284. package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts.map +1 -1
  285. package/dist/backend/backend/src/services/experiments/experiment.wiring.js +46 -9
  286. package/dist/backend/backend/src/services/experiments/experiment.wiring.js.map +1 -1
  287. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.d.ts +7 -0
  288. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.d.ts.map +1 -1
  289. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.js +21 -1
  290. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.js.map +1 -1
  291. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
  292. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js +7 -0
  293. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
  294. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts.map +1 -1
  295. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +2 -1
  296. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
  297. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +0 -8
  298. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  299. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +0 -18
  300. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  301. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +19 -0
  302. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  303. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +41 -5
  304. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  305. package/dist/backend/backend/src/services/monitoring/agent-turn-state.d.ts +184 -0
  306. package/dist/backend/backend/src/services/monitoring/agent-turn-state.d.ts.map +1 -0
  307. package/dist/backend/backend/src/services/monitoring/agent-turn-state.js +391 -0
  308. package/dist/backend/backend/src/services/monitoring/agent-turn-state.js.map +1 -0
  309. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts +35 -1
  310. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -1
  311. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +138 -2
  312. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -1
  313. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.d.ts +73 -0
  314. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.d.ts.map +1 -0
  315. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.js +258 -0
  316. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.js.map +1 -0
  317. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.d.ts +82 -0
  318. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.d.ts.map +1 -0
  319. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.js +141 -0
  320. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.js.map +1 -0
  321. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +51 -1
  322. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
  323. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +118 -2
  324. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
  325. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +7 -0
  326. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  327. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +4 -0
  328. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  329. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.d.ts +103 -0
  330. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.d.ts.map +1 -0
  331. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.js +86 -0
  332. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.js.map +1 -0
  333. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +57 -0
  334. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  335. package/dist/backend/backend/src/services/open-items/open-items.service.js +100 -4
  336. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  337. package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -1
  338. package/dist/backend/backend/src/services/orc/orc-status-router.service.js +10 -2
  339. package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -1
  340. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
  341. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +16 -0
  342. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
  343. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
  344. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +13 -0
  345. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
  346. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +36 -0
  347. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  348. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +44 -3
  349. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  350. package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.d.ts.map +1 -1
  351. package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js +2 -1
  352. package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js.map +1 -1
  353. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
  354. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +3 -0
  355. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
  356. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.d.ts +156 -0
  357. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.d.ts.map +1 -0
  358. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js +308 -0
  359. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js.map +1 -0
  360. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts +212 -0
  361. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts.map +1 -0
  362. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js +515 -0
  363. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js.map +1 -0
  364. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts +186 -0
  365. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts.map +1 -0
  366. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js +341 -0
  367. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js.map +1 -0
  368. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +309 -0
  369. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
  370. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +726 -1
  371. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
  372. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  373. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +15 -0
  374. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  375. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +34 -3
  376. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
  377. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js +57 -2
  378. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
  379. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts +61 -3
  380. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts.map +1 -1
  381. package/dist/backend/backend/src/services/restart/interrupted-turns.js +106 -9
  382. package/dist/backend/backend/src/services/restart/interrupted-turns.js.map +1 -1
  383. package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts +22 -0
  384. package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts.map +1 -1
  385. package/dist/backend/backend/src/services/restart/restart-drain.service.js +37 -5
  386. package/dist/backend/backend/src/services/restart/restart-drain.service.js.map +1 -1
  387. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.d.ts +62 -0
  388. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.d.ts.map +1 -0
  389. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.js +126 -0
  390. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.js.map +1 -0
  391. package/dist/backend/backend/src/services/restart/turn-probe.d.ts +17 -2
  392. package/dist/backend/backend/src/services/restart/turn-probe.d.ts.map +1 -1
  393. package/dist/backend/backend/src/services/restart/turn-probe.js +29 -4
  394. package/dist/backend/backend/src/services/restart/turn-probe.js.map +1 -1
  395. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  396. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
  397. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  398. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  399. package/dist/backend/backend/src/services/session/session-handoff.service.js +8 -5
  400. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  401. package/dist/backend/backend/src/services/signal-digest/signal-digest-card.d.ts +75 -0
  402. package/dist/backend/backend/src/services/signal-digest/signal-digest-card.d.ts.map +1 -0
  403. package/dist/backend/backend/src/services/signal-digest/signal-digest-card.js +187 -0
  404. package/dist/backend/backend/src/services/signal-digest/signal-digest-card.js.map +1 -0
  405. package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.d.ts +86 -0
  406. package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.d.ts.map +1 -0
  407. package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.js +307 -0
  408. package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.js.map +1 -0
  409. package/dist/backend/backend/src/services/signal-digest/signal-digest-store.d.ts +85 -0
  410. package/dist/backend/backend/src/services/signal-digest/signal-digest-store.d.ts.map +1 -0
  411. package/dist/backend/backend/src/services/signal-digest/signal-digest-store.js +185 -0
  412. package/dist/backend/backend/src/services/signal-digest/signal-digest-store.js.map +1 -0
  413. package/dist/backend/backend/src/services/signal-digest/signal-digest.service.d.ts +272 -0
  414. package/dist/backend/backend/src/services/signal-digest/signal-digest.service.d.ts.map +1 -0
  415. package/dist/backend/backend/src/services/signal-digest/signal-digest.service.js +570 -0
  416. package/dist/backend/backend/src/services/signal-digest/signal-digest.service.js.map +1 -0
  417. package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.d.ts +51 -0
  418. package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.d.ts.map +1 -0
  419. package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.js +116 -0
  420. package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.js.map +1 -0
  421. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts +5 -1
  422. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts.map +1 -1
  423. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js +6 -2
  424. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js.map +1 -1
  425. package/dist/backend/backend/src/services/slack/slack-auto-working.service.d.ts +29 -0
  426. package/dist/backend/backend/src/services/slack/slack-auto-working.service.d.ts.map +1 -1
  427. package/dist/backend/backend/src/services/slack/slack-auto-working.service.js +66 -3
  428. package/dist/backend/backend/src/services/slack/slack-auto-working.service.js.map +1 -1
  429. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +2 -1
  430. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  431. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +3 -2
  432. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  433. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +1 -1
  434. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -1
  435. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +79 -15
  436. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  437. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +200 -41
  438. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  439. package/dist/backend/backend/src/services/slack/slack.service.d.ts +43 -1
  440. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  441. package/dist/backend/backend/src/services/slack/slack.service.js +76 -7
  442. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  443. package/dist/backend/backend/src/services/system/auto-update.service.d.ts +2 -2
  444. package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -1
  445. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
  446. package/dist/backend/backend/src/services/task-pool/pool-storage.js +4 -0
  447. package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
  448. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  449. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +2 -0
  450. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  451. package/dist/backend/backend/src/services/trace/trace-analysis.service.d.ts +99 -0
  452. package/dist/backend/backend/src/services/trace/trace-analysis.service.d.ts.map +1 -0
  453. package/dist/backend/backend/src/services/trace/trace-analysis.service.js +148 -0
  454. package/dist/backend/backend/src/services/trace/trace-analysis.service.js.map +1 -0
  455. package/dist/backend/backend/src/services/trace/trace-context.service.d.ts +212 -0
  456. package/dist/backend/backend/src/services/trace/trace-context.service.d.ts.map +1 -0
  457. package/dist/backend/backend/src/services/trace/trace-context.service.js +489 -0
  458. package/dist/backend/backend/src/services/trace/trace-context.service.js.map +1 -0
  459. package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts +46 -0
  460. package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts.map +1 -0
  461. package/dist/backend/backend/src/services/trace/trace-http.middleware.js +176 -0
  462. package/dist/backend/backend/src/services/trace/trace-http.middleware.js.map +1 -0
  463. package/dist/backend/backend/src/services/trace/trace-markers.d.ts +93 -0
  464. package/dist/backend/backend/src/services/trace/trace-markers.d.ts.map +1 -0
  465. package/dist/backend/backend/src/services/trace/trace-markers.js +162 -0
  466. package/dist/backend/backend/src/services/trace/trace-markers.js.map +1 -0
  467. package/dist/backend/backend/src/services/trace/trace-metrics.d.ts +262 -0
  468. package/dist/backend/backend/src/services/trace/trace-metrics.d.ts.map +1 -0
  469. package/dist/backend/backend/src/services/trace/trace-metrics.js +810 -0
  470. package/dist/backend/backend/src/services/trace/trace-metrics.js.map +1 -0
  471. package/dist/backend/backend/src/services/trace/trace-recorder.d.ts +338 -0
  472. package/dist/backend/backend/src/services/trace/trace-recorder.d.ts.map +1 -0
  473. package/dist/backend/backend/src/services/trace/trace-recorder.js +789 -0
  474. package/dist/backend/backend/src/services/trace/trace-recorder.js.map +1 -0
  475. package/dist/backend/backend/src/services/trace/trace-store.d.ts +308 -0
  476. package/dist/backend/backend/src/services/trace/trace-store.d.ts.map +1 -0
  477. package/dist/backend/backend/src/services/trace/trace-store.js +714 -0
  478. package/dist/backend/backend/src/services/trace/trace-store.js.map +1 -0
  479. package/dist/backend/backend/src/services/trace/trace-summary.d.ts +77 -0
  480. package/dist/backend/backend/src/services/trace/trace-summary.d.ts.map +1 -0
  481. package/dist/backend/backend/src/services/trace/trace-summary.js +239 -0
  482. package/dist/backend/backend/src/services/trace/trace-summary.js.map +1 -0
  483. package/dist/backend/backend/src/services/trace/trace-timeline.d.ts +74 -0
  484. package/dist/backend/backend/src/services/trace/trace-timeline.d.ts.map +1 -0
  485. package/dist/backend/backend/src/services/trace/trace-timeline.js +162 -0
  486. package/dist/backend/backend/src/services/trace/trace-timeline.js.map +1 -0
  487. package/dist/backend/backend/src/services/trace/trace.types.d.ts +137 -0
  488. package/dist/backend/backend/src/services/trace/trace.types.d.ts.map +1 -0
  489. package/dist/backend/backend/src/services/trace/trace.types.js +104 -0
  490. package/dist/backend/backend/src/services/trace/trace.types.js.map +1 -0
  491. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.d.ts +80 -0
  492. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.d.ts.map +1 -0
  493. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.js +184 -0
  494. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.js.map +1 -0
  495. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts +1 -1
  496. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts.map +1 -1
  497. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts +7 -0
  498. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts.map +1 -1
  499. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js +16 -0
  500. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js.map +1 -1
  501. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts +16 -0
  502. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts.map +1 -1
  503. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js.map +1 -1
  504. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
  505. package/dist/backend/backend/src/services/v3/request.service.js +4 -0
  506. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
  507. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
  508. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +2 -1
  509. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
  510. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +8 -0
  511. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  512. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +46 -4
  513. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  514. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts +4 -3
  515. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts.map +1 -1
  516. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js +3 -2
  517. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js.map +1 -1
  518. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
  519. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  520. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  521. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  522. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -0
  523. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  524. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  525. package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -0
  526. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  527. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts.map +1 -1
  528. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js +2 -1
  529. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js.map +1 -1
  530. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +3 -0
  531. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
  532. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +7 -0
  533. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
  534. package/dist/backend/backend/src/types/decision.types.d.ts +3 -1
  535. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  536. package/dist/backend/backend/src/types/experiment.types.d.ts +65 -6
  537. package/dist/backend/backend/src/types/experiment.types.d.ts.map +1 -1
  538. package/dist/backend/backend/src/types/experiment.types.js.map +1 -1
  539. package/dist/backend/backend/src/types/signal-digest.types.d.ts +185 -0
  540. package/dist/backend/backend/src/types/signal-digest.types.d.ts.map +1 -0
  541. package/dist/backend/backend/src/types/signal-digest.types.js +21 -0
  542. package/dist/backend/backend/src/types/signal-digest.types.js.map +1 -0
  543. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts +9 -0
  544. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  545. package/dist/backend/backend/src/types/ticket-autopilot.types.js +14 -0
  546. package/dist/backend/backend/src/types/ticket-autopilot.types.js.map +1 -1
  547. package/dist/backend/backend/src/types/v2/open-item.types.d.ts +4 -0
  548. package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  549. package/dist/backend/backend/src/types/v2/request.types.d.ts +4 -0
  550. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
  551. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
  552. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +5 -1
  553. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  554. package/dist/backend/backend/src/types/v2/work-item.types.js +2 -0
  555. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  556. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +44 -37
  557. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
  558. package/dist/backend/backend/src/utils/agent-caller.utils.js +48 -42
  559. package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
  560. package/dist/backend/backend/src/utils/secret-env.d.ts.map +1 -1
  561. package/dist/backend/backend/src/utils/secret-env.js +8 -1
  562. package/dist/backend/backend/src/utils/secret-env.js.map +1 -1
  563. package/dist/backend/backend/src/utils/security.d.ts +2 -0
  564. package/dist/backend/backend/src/utils/security.d.ts.map +1 -1
  565. package/dist/backend/backend/src/utils/security.js +3 -1
  566. package/dist/backend/backend/src/utils/security.js.map +1 -1
  567. package/dist/backend/backend/src/websocket/chat.gateway.d.ts +9 -0
  568. package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
  569. package/dist/backend/backend/src/websocket/chat.gateway.js +26 -0
  570. package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
  571. package/dist/backend/build-info.json +2 -2
  572. package/dist/backend/config/constants.d.ts +67 -0
  573. package/dist/backend/config/constants.d.ts.map +1 -1
  574. package/dist/backend/config/constants.js +67 -0
  575. package/dist/backend/config/constants.js.map +1 -1
  576. package/dist/cli/backend/src/constants.d.ts +356 -5
  577. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  578. package/dist/cli/backend/src/constants.js +341 -8
  579. package/dist/cli/backend/src/constants.js.map +1 -1
  580. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  581. package/dist/cli/backend/src/services/agent/agent-registration.service.js +17 -2
  582. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  583. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +7 -5
  584. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  585. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +19 -10
  586. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  587. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  588. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -1
  589. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  590. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +1 -1
  591. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  592. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  593. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +4 -0
  594. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  595. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +29 -0
  596. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  597. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +77 -1
  598. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  599. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +4 -2
  600. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  601. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +22 -6
  602. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  603. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +2 -2
  604. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  605. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  606. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  607. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  608. package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts +6 -0
  609. package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts.map +1 -1
  610. package/dist/cli/backend/src/services/backup/backup-archive.service.js +7 -1
  611. package/dist/cli/backend/src/services/backup/backup-archive.service.js.map +1 -1
  612. package/dist/cli/backend/src/services/chat/chat.service.d.ts +282 -0
  613. package/dist/cli/backend/src/services/chat/chat.service.d.ts.map +1 -0
  614. package/dist/cli/backend/src/services/chat/chat.service.js +783 -0
  615. package/dist/cli/backend/src/services/chat/chat.service.js.map +1 -0
  616. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -5
  617. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  618. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +34 -4
  619. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  620. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +4 -3
  621. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  622. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +7 -4
  623. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  624. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +18 -11
  625. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
  626. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +19 -25
  627. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
  628. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -4
  629. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  630. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +8 -4
  631. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  632. package/dist/cli/backend/src/services/chat-v2/types.d.ts +0 -1
  633. package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -1
  634. package/dist/cli/backend/src/services/chat-v2/types.js +0 -1
  635. package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -1
  636. package/dist/cli/backend/src/services/core/api-token.service.d.ts +28 -0
  637. package/dist/cli/backend/src/services/core/api-token.service.d.ts.map +1 -1
  638. package/dist/cli/backend/src/services/core/api-token.service.js +46 -0
  639. package/dist/cli/backend/src/services/core/api-token.service.js.map +1 -1
  640. package/dist/cli/backend/src/services/core/owner-auth.service.d.ts +127 -0
  641. package/dist/cli/backend/src/services/core/owner-auth.service.d.ts.map +1 -0
  642. package/dist/cli/backend/src/services/core/owner-auth.service.js +205 -0
  643. package/dist/cli/backend/src/services/core/owner-auth.service.js.map +1 -0
  644. package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -1
  645. package/dist/cli/backend/src/services/decisions/decision-store.js +5 -1
  646. package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -1
  647. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
  648. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js +7 -0
  649. package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
  650. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +0 -8
  651. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  652. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +0 -18
  653. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  654. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +19 -0
  655. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  656. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +41 -5
  657. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  658. package/dist/cli/backend/src/services/monitoring/agent-turn-state.d.ts +184 -0
  659. package/dist/cli/backend/src/services/monitoring/agent-turn-state.d.ts.map +1 -0
  660. package/dist/cli/backend/src/services/monitoring/agent-turn-state.js +391 -0
  661. package/dist/cli/backend/src/services/monitoring/agent-turn-state.js.map +1 -0
  662. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.d.ts +73 -0
  663. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.d.ts.map +1 -0
  664. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.js +258 -0
  665. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.js.map +1 -0
  666. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +7 -0
  667. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  668. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +4 -0
  669. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  670. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +57 -0
  671. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  672. package/dist/cli/backend/src/services/open-items/open-items.service.js +100 -4
  673. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  674. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +36 -0
  675. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  676. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +44 -3
  677. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  678. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +34 -3
  679. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
  680. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js +57 -2
  681. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
  682. package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts +22 -0
  683. package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts.map +1 -1
  684. package/dist/cli/backend/src/services/restart/restart-drain.service.js +37 -5
  685. package/dist/cli/backend/src/services/restart/restart-drain.service.js.map +1 -1
  686. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  687. package/dist/cli/backend/src/services/session/session-handoff.service.js +8 -5
  688. package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -1
  689. package/dist/cli/backend/src/services/slack/slack-auto-working.service.d.ts +29 -0
  690. package/dist/cli/backend/src/services/slack/slack-auto-working.service.d.ts.map +1 -1
  691. package/dist/cli/backend/src/services/slack/slack-auto-working.service.js +66 -3
  692. package/dist/cli/backend/src/services/slack/slack-auto-working.service.js.map +1 -1
  693. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +2 -1
  694. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  695. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +3 -2
  696. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  697. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +79 -15
  698. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  699. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +200 -41
  700. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  701. package/dist/cli/backend/src/services/slack/slack.service.d.ts +43 -1
  702. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  703. package/dist/cli/backend/src/services/slack/slack.service.js +76 -7
  704. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  705. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
  706. package/dist/cli/backend/src/services/task-pool/pool-storage.js +4 -0
  707. package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
  708. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  709. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +2 -0
  710. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  711. package/dist/cli/backend/src/services/trace/trace-context.service.d.ts +212 -0
  712. package/dist/cli/backend/src/services/trace/trace-context.service.d.ts.map +1 -0
  713. package/dist/cli/backend/src/services/trace/trace-context.service.js +489 -0
  714. package/dist/cli/backend/src/services/trace/trace-context.service.js.map +1 -0
  715. package/dist/cli/backend/src/services/trace/trace-markers.d.ts +93 -0
  716. package/dist/cli/backend/src/services/trace/trace-markers.d.ts.map +1 -0
  717. package/dist/cli/backend/src/services/trace/trace-markers.js +162 -0
  718. package/dist/cli/backend/src/services/trace/trace-markers.js.map +1 -0
  719. package/dist/cli/backend/src/services/trace/trace-recorder.d.ts +338 -0
  720. package/dist/cli/backend/src/services/trace/trace-recorder.d.ts.map +1 -0
  721. package/dist/cli/backend/src/services/trace/trace-recorder.js +789 -0
  722. package/dist/cli/backend/src/services/trace/trace-recorder.js.map +1 -0
  723. package/dist/cli/backend/src/services/trace/trace-store.d.ts +308 -0
  724. package/dist/cli/backend/src/services/trace/trace-store.d.ts.map +1 -0
  725. package/dist/cli/backend/src/services/trace/trace-store.js +714 -0
  726. package/dist/cli/backend/src/services/trace/trace-store.js.map +1 -0
  727. package/dist/cli/backend/src/services/trace/trace.types.d.ts +137 -0
  728. package/dist/cli/backend/src/services/trace/trace.types.d.ts.map +1 -0
  729. package/dist/cli/backend/src/services/trace/trace.types.js +104 -0
  730. package/dist/cli/backend/src/services/trace/trace.types.js.map +1 -0
  731. package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
  732. package/dist/cli/backend/src/services/v3/request.service.js +4 -0
  733. package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
  734. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
  735. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  736. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  737. package/dist/cli/backend/src/types/decision.types.d.ts +3 -1
  738. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
  739. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts +9 -0
  740. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  741. package/dist/cli/backend/src/types/ticket-autopilot.types.js +14 -0
  742. package/dist/cli/backend/src/types/ticket-autopilot.types.js.map +1 -1
  743. package/dist/cli/backend/src/types/v2/open-item.types.d.ts +4 -0
  744. package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  745. package/dist/cli/backend/src/types/v2/request.types.d.ts +4 -0
  746. package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
  747. package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
  748. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +5 -1
  749. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  750. package/dist/cli/backend/src/types/v2/work-item.types.js +2 -0
  751. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  752. package/dist/cli/backend/src/utils/secret-env.d.ts.map +1 -1
  753. package/dist/cli/backend/src/utils/secret-env.js +8 -1
  754. package/dist/cli/backend/src/utils/secret-env.js.map +1 -1
  755. package/dist/cli/backend/src/utils/security.d.ts +196 -0
  756. package/dist/cli/backend/src/utils/security.d.ts.map +1 -0
  757. package/dist/cli/backend/src/utils/security.js +538 -0
  758. package/dist/cli/backend/src/utils/security.js.map +1 -0
  759. package/dist/cli/backend/src/websocket/chat.gateway.d.ts +9 -0
  760. package/dist/cli/backend/src/websocket/chat.gateway.d.ts.map +1 -1
  761. package/dist/cli/backend/src/websocket/chat.gateway.js +26 -0
  762. package/dist/cli/backend/src/websocket/chat.gateway.js.map +1 -1
  763. package/dist/cli/cli/src/commands/service.d.ts +12 -0
  764. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  765. package/dist/cli/cli/src/commands/service.js +36 -2
  766. package/dist/cli/cli/src/commands/service.js.map +1 -1
  767. package/dist/cli/cli/src/index.js +4 -0
  768. package/dist/cli/cli/src/index.js.map +1 -1
  769. package/dist/cli/cli/src/utils/owner-token-fetch.d.ts +41 -0
  770. package/dist/cli/cli/src/utils/owner-token-fetch.d.ts.map +1 -0
  771. package/dist/cli/cli/src/utils/owner-token-fetch.js +83 -0
  772. package/dist/cli/cli/src/utils/owner-token-fetch.js.map +1 -0
  773. package/dist/cli/cli/src/utils/safe-shutdown.d.ts +13 -3
  774. package/dist/cli/cli/src/utils/safe-shutdown.d.ts.map +1 -1
  775. package/dist/cli/cli/src/utils/safe-shutdown.js +26 -4
  776. package/dist/cli/cli/src/utils/safe-shutdown.js.map +1 -1
  777. package/dist/cli/config/constants.d.ts +67 -0
  778. package/dist/cli/config/constants.d.ts.map +1 -1
  779. package/dist/cli/config/constants.js +67 -0
  780. package/dist/cli/config/constants.js.map +1 -1
  781. package/frontend/dist/assets/index-bfa0e2e8.css +42 -0
  782. package/frontend/dist/assets/{index-800118ca.js → index-edfa8e04.js} +285 -285
  783. package/frontend/dist/index.html +2 -2
  784. package/package.json +1 -1
  785. package/packages/crewly-agent/src/runtime/api-client.test.ts +42 -0
  786. package/packages/crewly-agent/src/runtime/api-client.ts +6 -0
  787. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +0 -52
  788. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +0 -1
  789. package/dist/backend/backend/src/services/v3/request-notification.service.js +0 -161
  790. package/dist/backend/backend/src/services/v3/request-notification.service.js.map +0 -1
  791. package/frontend/dist/assets/index-5e967795.css +0 -42
@@ -14,12 +14,24 @@
14
14
  * Scheduler / status pings ([SYSTEM] markers) are not persisted: their
15
15
  * producers fire again after a restart, and replaying a stale ping is noise.
16
16
  *
17
+ * A turn with no delivered message — one the runtime started on its own
18
+ * (a background subagent finishing), or background work after a turn — is
19
+ * persisted as one `work` entry per session, so its agent is still restored
20
+ * and told to continue (2026-10-02, Eve; specs/2026-10-02-restart-busy-and-resume.md).
21
+ *
22
+ * Every resumed agent gets one English note: "Crewly restarted while you were
23
+ * working on <TKT-n | this request>. Continue where you left off and deliver."
24
+ *
17
25
  * @module services/restart/interrupted-turns
18
26
  */
19
27
  import { type MessageSource } from '../../constants.js';
20
28
  import type { InFlightTurn } from './in-flight-turn-tracker.service.js';
21
29
  /** One interrupted message, as stored on disk. */
22
30
  export interface InterruptedTurnEntry {
31
+ /** 'work': no message to re-deliver, only the resume note (absent = 'message') */
32
+ kind?: 'message' | 'work';
33
+ /** Ticket the work belongs to (TKT-194), when known */
34
+ workLabel?: string;
23
35
  /** Agent session that was mid-turn */
24
36
  sessionName: string;
25
37
  /** Epoch ms the message was delivered */
@@ -74,6 +86,22 @@ export interface ResumeDeps {
74
86
  warn: (msg: string, meta?: Record<string, unknown>) => void;
75
87
  };
76
88
  }
89
+ /** An owner promise held by an agent at boot. */
90
+ export interface OpenCommitmentRef {
91
+ /** Agent that promised */
92
+ sessionName: string;
93
+ /** Ticket label (TKT-194), when known */
94
+ ticket?: string;
95
+ /** The promise, as the agent wrote it */
96
+ text: string;
97
+ }
98
+ /** A note to send to one restored agent. */
99
+ export interface RestartNote {
100
+ /** Agent session */
101
+ sessionName: string;
102
+ /** English note text */
103
+ text: string;
104
+ }
77
105
  /** Summary of a resume pass. */
78
106
  export interface ResumeSummary {
79
107
  redelivered: number;
@@ -94,6 +122,25 @@ export declare function interruptedTurnsPath(crewlyHome: string): string;
94
122
  * @returns Entries to persist
95
123
  */
96
124
  export declare function toInterruptedEntries(turns: readonly InFlightTurn[]): InterruptedTurnEntry[];
125
+ /**
126
+ * The ticket a message is about, from its `[TICKET:TKT-n …]` marker.
127
+ *
128
+ * @param text - Delivered text
129
+ * @returns `TKT-n`, or undefined
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * workLabelOf('[CHAT:x] [TICKET:TKT-194 9d34…] (…)'); // 'TKT-194'
134
+ * ```
135
+ */
136
+ export declare function workLabelOf(text: string | undefined): string | undefined;
137
+ /**
138
+ * The one-line resume note.
139
+ *
140
+ * @param label - Ticket label, or undefined for "this request"
141
+ * @returns "Crewly restarted while you were working on … Continue where you left off and deliver."
142
+ */
143
+ export declare function buildResumeNote(label?: string): string;
97
144
  /**
98
145
  * Write entries atomically (write-then-rename), or remove the file when empty.
99
146
  *
@@ -128,13 +175,24 @@ export declare function loadInterruptedTurns(filePath: string, now?: number, max
128
175
  */
129
176
  export declare function clearInterruptedTurns(filePath: string): void;
130
177
  /**
131
- * Prefix a message with the resume notice, without stacking notices when a
178
+ * Prefix a message with the resume note, without stacking notes when a
132
179
  * resumed message is itself interrupted again.
133
180
  *
134
181
  * @param original - The message to resume
135
- * @returns Notice + original
182
+ * @param label - Ticket label; defaults to the message's own ticket marker
183
+ * @returns Note + header + original
184
+ */
185
+ export declare function buildResumeMessage(original: string, label?: string): string;
186
+ /**
187
+ * Notes for agents restored because they hold an owner promise, skipping
188
+ * agents that already get an interrupted-turn note (one note per agent).
189
+ *
190
+ * @param commitments - Open promises at boot
191
+ * @param interrupted - Interrupted entries being resumed
192
+ * @param isRunning - Whether the agent is running now (restored)
193
+ * @returns At most one note per session
136
194
  */
137
- export declare function buildResumeMessage(original: string): string;
195
+ export declare function planCommitmentNotes(commitments: readonly OpenCommitmentRef[], interrupted: readonly InterruptedTurnEntry[], isRunning: (sessionName: string) => boolean): RestartNote[];
138
196
  /**
139
197
  * Re-deliver interrupted messages, one at a time.
140
198
  *
@@ -1 +1 @@
1
- {"version":3,"file":"interrupted-turns.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/interrupted-turns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interrupted-turns.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/interrupted-turns.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,14 @@
14
14
  * Scheduler / status pings ([SYSTEM] markers) are not persisted: their
15
15
  * producers fire again after a restart, and replaying a stale ping is noise.
16
16
  *
17
+ * A turn with no delivered message — one the runtime started on its own
18
+ * (a background subagent finishing), or background work after a turn — is
19
+ * persisted as one `work` entry per session, so its agent is still restored
20
+ * and told to continue (2026-10-02, Eve; specs/2026-10-02-restart-busy-and-resume.md).
21
+ *
22
+ * Every resumed agent gets one English note: "Crewly restarted while you were
23
+ * working on <TKT-n | this request>. Continue where you left off and deliver."
24
+ *
17
25
  * @module services/restart/interrupted-turns
18
26
  */
19
27
  import { readFileSync, writeFileSync, renameSync, mkdirSync, unlinkSync } from 'fs';
@@ -53,9 +61,48 @@ export function toInterruptedEntries(turns) {
53
61
  ...(m.sourceMetadata ? { sourceMetadata: m.sourceMetadata } : {}),
54
62
  });
55
63
  }
64
+ if (turn.messages.length === 0) {
65
+ // Working with nothing to re-deliver: a turn the runtime started on
66
+ // its own, or background work after a turn. The agent still needs to
67
+ // be brought back and told to continue. (A turn made only of [SYSTEM]
68
+ // pings is still dropped: its producers fire again.)
69
+ const label = workLabelOf(turn.lastDelivered);
70
+ out.push({
71
+ kind: 'work',
72
+ sessionName: turn.sessionName,
73
+ deliveredAt: turn.since,
74
+ text: '',
75
+ preview: turn.longRunning ? '(working: tool call or background task running)' : '(working: turn in progress)',
76
+ ...(label ? { workLabel: label } : {}),
77
+ });
78
+ }
56
79
  }
57
80
  return out;
58
81
  }
82
+ /**
83
+ * The ticket a message is about, from its `[TICKET:TKT-n …]` marker.
84
+ *
85
+ * @param text - Delivered text
86
+ * @returns `TKT-n`, or undefined
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * workLabelOf('[CHAT:x] [TICKET:TKT-194 9d34…] (…)'); // 'TKT-194'
91
+ * ```
92
+ */
93
+ export function workLabelOf(text) {
94
+ const m = /\[TICKET:(TKT-\d+)\b/.exec(text ?? '');
95
+ return m ? m[1] : undefined;
96
+ }
97
+ /**
98
+ * The one-line resume note.
99
+ *
100
+ * @param label - Ticket label, or undefined for "this request"
101
+ * @returns "Crewly restarted while you were working on … Continue where you left off and deliver."
102
+ */
103
+ export function buildResumeNote(label) {
104
+ return SAFE_RESTART.RESUME_NOTICE_TEMPLATE.replace('{work}', label && label.trim() ? label.trim() : SAFE_RESTART.RESUME_DEFAULT_WORK_LABEL);
105
+ }
59
106
  /**
60
107
  * Read the file without filtering. Missing or unreadable file → [].
61
108
  *
@@ -135,6 +182,7 @@ export function loadInterruptedTurns(filePath, now = Date.now(), maxAgeMs = SAFE
135
182
  let dropped = 0;
136
183
  for (const e of all) {
137
184
  const valid = e &&
185
+ (e.kind === undefined || e.kind === 'message' || e.kind === 'work') &&
138
186
  typeof e.sessionName === 'string' &&
139
187
  e.sessionName.length > 0 &&
140
188
  typeof e.text === 'string' &&
@@ -161,18 +209,55 @@ export function clearInterruptedTurns(filePath) {
161
209
  }
162
210
  }
163
211
  /**
164
- * Prefix a message with the resume notice, without stacking notices when a
212
+ * Prefix a message with the resume note, without stacking notes when a
165
213
  * resumed message is itself interrupted again.
166
214
  *
167
215
  * @param original - The message to resume
168
- * @returns Notice + original
216
+ * @param label - Ticket label; defaults to the message's own ticket marker
217
+ * @returns Note + header + original
169
218
  */
170
- export function buildResumeMessage(original) {
219
+ export function buildResumeMessage(original, label) {
171
220
  let body = original;
172
- while (body.startsWith(SAFE_RESTART.RESUME_NOTICE)) {
173
- body = body.slice(SAFE_RESTART.RESUME_NOTICE.length).replace(/^\s+/, '');
221
+ for (;;) {
222
+ const stripped = body.replace(SAFE_RESTART.RESUME_NOTICE_PATTERN, '');
223
+ const withoutHeader = stripped.startsWith(SAFE_RESTART.RESUME_ORIGINAL_HEADER)
224
+ ? stripped.slice(SAFE_RESTART.RESUME_ORIGINAL_HEADER.length).replace(/^\s*\n/, '')
225
+ : stripped;
226
+ if (withoutHeader === body)
227
+ break;
228
+ body = withoutHeader;
229
+ }
230
+ return `${buildResumeNote(label ?? workLabelOf(body))}\n${SAFE_RESTART.RESUME_ORIGINAL_HEADER}\n${body}`;
231
+ }
232
+ /**
233
+ * Notes for agents restored because they hold an owner promise, skipping
234
+ * agents that already get an interrupted-turn note (one note per agent).
235
+ *
236
+ * @param commitments - Open promises at boot
237
+ * @param interrupted - Interrupted entries being resumed
238
+ * @param isRunning - Whether the agent is running now (restored)
239
+ * @returns At most one note per session
240
+ */
241
+ export function planCommitmentNotes(commitments, interrupted, isRunning) {
242
+ const covered = new Set(interrupted.map((e) => e.sessionName));
243
+ const bySession = new Map();
244
+ for (const c of commitments) {
245
+ if (covered.has(c.sessionName) || !isRunning(c.sessionName))
246
+ continue;
247
+ const list = bySession.get(c.sessionName) ?? [];
248
+ list.push(c);
249
+ bySession.set(c.sessionName, list);
250
+ }
251
+ const notes = [];
252
+ for (const [sessionName, list] of bySession) {
253
+ const tickets = [...new Set(list.map((c) => c.ticket).filter((t) => !!t))];
254
+ const promises = list.map((c) => `- ${c.ticket ? `${c.ticket}: ` : ''}"${c.text.replace(/\s+/g, ' ').trim()}"`);
255
+ notes.push({
256
+ sessionName,
257
+ text: [buildResumeNote(tickets.length > 0 ? tickets.join(', ') : undefined), SAFE_RESTART.RESUME_PROMISE_HEADER, ...promises].join('\n'),
258
+ });
174
259
  }
175
- return `${SAFE_RESTART.RESUME_NOTICE}\n${body}`;
260
+ return notes;
176
261
  }
177
262
  /**
178
263
  * Whether an entry carries enough queue metadata to be re-enqueued.
@@ -206,9 +291,17 @@ export async function resumeInterruptedTurns(entries, deps) {
206
291
  const summary = { redelivered: 0, skipped: 0, failed: 0 };
207
292
  const remaining = [...entries];
208
293
  let orcReady = null;
294
+ // One note per agent: a session with a message to resume needs no extra
295
+ // "continue" note, and a session with several work entries gets one.
296
+ const withMessages = new Set(entries.filter((e) => e.kind !== 'work').map((e) => e.sessionName));
297
+ const workNoted = new Set();
209
298
  for (const entry of entries) {
210
299
  const isOrc = entry.sessionName === deps.orchestratorSession;
211
300
  try {
301
+ if (entry.kind === 'work' && (withMessages.has(entry.sessionName) || workNoted.has(entry.sessionName))) {
302
+ summary.skipped += 1;
303
+ continue;
304
+ }
212
305
  if (!isOrc && !deps.isSessionRunning(entry.sessionName)) {
213
306
  summary.skipped += 1;
214
307
  deps.logger.warn('Interrupted turn not resumed: agent is not running after restart', {
@@ -216,9 +309,9 @@ export async function resumeInterruptedTurns(entries, deps) {
216
309
  messagePreview: entry.preview,
217
310
  });
218
311
  }
219
- else if (isQueueEntry(entry)) {
312
+ else if (entry.kind !== 'work' && isQueueEntry(entry)) {
220
313
  deps.enqueue({
221
- content: buildResumeMessage(entry.originalContent),
314
+ content: buildResumeMessage(entry.originalContent, entry.workLabel ?? workLabelOf(entry.text)),
222
315
  conversationId: entry.conversationId,
223
316
  source: entry.source,
224
317
  ...(entry.sourceMetadata ? { sourceMetadata: entry.sourceMetadata } : {}),
@@ -243,7 +336,11 @@ export async function resumeInterruptedTurns(entries, deps) {
243
336
  continue;
244
337
  }
245
338
  }
246
- const result = await deps.sendMessageToAgent(entry.sessionName, buildResumeMessage(entry.text));
339
+ const isWork = entry.kind === 'work';
340
+ if (isWork)
341
+ workNoted.add(entry.sessionName);
342
+ const text = isWork ? buildResumeNote(entry.workLabel) : buildResumeMessage(entry.text, entry.workLabel);
343
+ const result = await deps.sendMessageToAgent(entry.sessionName, text);
247
344
  if (result.success) {
248
345
  summary.redelivered += 1;
249
346
  deps.logger.info('Interrupted turn re-delivered', {
@@ -1 +1 @@
1
- {"version":3,"file":"interrupted-turns.js","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/interrupted-turns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interrupted-turns.js","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/interrupted-turns.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,11 @@ export interface DrainResult {
32
32
  export interface DrainOptions {
33
33
  /** Maximum wait (ms); 0 skips the wait */
34
34
  timeoutMs: number;
35
+ /**
36
+ * Longer cap used while any agent waited on has a tool call, subagent or
37
+ * background task running (ms). Never shortens `timeoutMs`.
38
+ */
39
+ backgroundTimeoutMs?: number;
35
40
  /** Re-check interval (ms) */
36
41
  pollMs?: number;
37
42
  /** Interval for the repeated "still waiting" log line (ms) */
@@ -49,6 +54,10 @@ export interface BusyAgent {
49
54
  since: string;
50
55
  /** Preview of the most recent open delivery */
51
56
  messagePreview: string;
57
+ /** 'runtime': working without a tracked delivery (self-started turn, background work) */
58
+ origin?: 'delivery' | 'runtime';
59
+ /** A tool call, subagent or background task is running */
60
+ longRunning?: boolean;
52
61
  }
53
62
  /** Body of `GET /api/system/restart-readiness`. */
54
63
  export interface RestartReadiness {
@@ -81,6 +90,19 @@ export interface GracefulShutdownRequest {
81
90
  * ```
82
91
  */
83
92
  export declare function resolveRestartDrainMs(env?: NodeJS.ProcessEnv): number;
93
+ /**
94
+ * Resolve the longer drain cap used while agents have background work.
95
+ *
96
+ * @param env - Environment (defaults to process.env)
97
+ * @returns Cap in ms; 0 when the drain is disabled; never below the normal drain
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * resolveBackgroundDrainMs({}); // 600000
102
+ * resolveBackgroundDrainMs({ CREWLY_RESTART_DRAIN_MS: '0' }); // 0
103
+ * ```
104
+ */
105
+ export declare function resolveBackgroundDrainMs(env?: NodeJS.ProcessEnv): number;
84
106
  /**
85
107
  * Process-wide safe-restart state. Singleton.
86
108
  */
@@ -1 +1 @@
1
- {"version":3,"file":"restart-drain.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/restart-drain.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restart-drain.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/restart-drain.service.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,31 @@ export function resolveRestartDrainMs(env = process.env) {
40
40
  return SAFE_RESTART.DRAIN_TIMEOUT_MS;
41
41
  return Math.floor(parsed);
42
42
  }
43
+ /**
44
+ * Resolve the longer drain cap used while agents have background work.
45
+ *
46
+ * @param env - Environment (defaults to process.env)
47
+ * @returns Cap in ms; 0 when the drain is disabled; never below the normal drain
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * resolveBackgroundDrainMs({}); // 600000
52
+ * resolveBackgroundDrainMs({ CREWLY_RESTART_DRAIN_MS: '0' }); // 0
53
+ * ```
54
+ */
55
+ export function resolveBackgroundDrainMs(env = process.env) {
56
+ const drainMs = resolveRestartDrainMs(env);
57
+ if (drainMs === 0)
58
+ return 0;
59
+ const raw = env[SAFE_RESTART.BACKGROUND_DRAIN_ENV_VAR];
60
+ let cap = SAFE_RESTART.BACKGROUND_DRAIN_TIMEOUT_MS;
61
+ if (raw !== undefined && raw.trim() !== '') {
62
+ const parsed = Number(raw);
63
+ if (Number.isFinite(parsed) && parsed >= 0)
64
+ cap = Math.floor(parsed);
65
+ }
66
+ return Math.max(drainMs, cap);
67
+ }
43
68
  /**
44
69
  * Process-wide safe-restart state. Singleton.
45
70
  */
@@ -204,6 +229,11 @@ export class RestartDrainService {
204
229
  const t = now();
205
230
  const busy = this.tracker.getMidTurn(t);
206
231
  const waitedMs = t - start;
232
+ // Tool calls and background subagents routinely outlast the
233
+ // normal cap; wait longer for them, but never forever.
234
+ const capMs = busy.some((b) => b.longRunning)
235
+ ? Math.max(options.timeoutMs, options.backgroundTimeoutMs ?? options.timeoutMs)
236
+ : options.timeoutMs;
207
237
  if (busy.length === 0) {
208
238
  this.logger.info('Restart drain complete: no agent is mid-turn', { waitedMs });
209
239
  return { outcome: 'drained', waitedMs, remaining: [] };
@@ -215,10 +245,10 @@ export class RestartDrainService {
215
245
  });
216
246
  return { outcome: 'skipped', waitedMs, remaining: busy };
217
247
  }
218
- if (waitedMs >= options.timeoutMs) {
248
+ if (waitedMs >= capMs) {
219
249
  this.logger.warn('Restart drain timed out; these turns will be resumed after restart', {
220
250
  waitedMs,
221
- timeoutMs: options.timeoutMs,
251
+ timeoutMs: capMs,
222
252
  interrupted: busy.map(describeTurn),
223
253
  });
224
254
  return { outcome: 'timed-out', waitedMs, remaining: busy };
@@ -228,13 +258,13 @@ export class RestartDrainService {
228
258
  this.logger.info('Restart drain: waiting for agents to finish their current turn', {
229
259
  waitingOn: busy.map(describeTurn),
230
260
  waitedMs,
231
- timeoutMs: options.timeoutMs,
261
+ timeoutMs: capMs,
232
262
  hint: 'send the signal again to stop waiting',
233
263
  });
234
264
  lastLoggedKey = key;
235
265
  lastLogAt = t;
236
266
  }
237
- await this.sleepUnlessSkipped(sleep, Math.min(pollMs, options.timeoutMs - waitedMs));
267
+ await this.sleepUnlessSkipped(sleep, Math.min(pollMs, capMs - waitedMs));
238
268
  }
239
269
  }
240
270
  finally {
@@ -283,7 +313,9 @@ function toBusyAgent(turn) {
283
313
  return {
284
314
  session: turn.sessionName,
285
315
  since: new Date(turn.since).toISOString(),
286
- messagePreview: newest?.preview ?? '',
316
+ messagePreview: newest?.preview ?? (turn.longRunning ? '(working: tool call or background task running)' : '(working: turn in progress)'),
317
+ ...(turn.origin ? { origin: turn.origin } : {}),
318
+ ...(turn.longRunning ? { longRunning: true } : {}),
287
319
  };
288
320
  }
289
321
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"restart-drain.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/restart-drain.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAmB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qCAAqC,CAAC;AA2D7F;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACzE,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACjF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAWM;IAV7B,MAAM,CAAC,QAAQ,GAA+B,IAAI,CAAC;IAC1C,MAAM,CAAkB;IACjC,MAAM,GAAG,KAAK,CAAC;IACf,WAAW,GAAkB,IAAI,CAAC;IAClC,QAAQ,GAAG,KAAK,CAAC;IACjB,aAAa,GAAG,KAAK,CAAC;IACtB,WAAW,GAAwB,IAAI,CAAC;IACxC,YAAY,GAA0B,IAAI,CAAC;IAC3C,eAAe,GAAiE,IAAI,CAAC;IAE7F,YAAqC,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAChE,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YACnC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QACnB,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,UAAU;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sEAAsE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,MAAc;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yEAAyE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAA8B;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,OAAqE;QACvF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,uBAAuB,CAAC,OAAgC;QACvD,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QACxC,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBACrD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7D,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,YAAY;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,OAAqB;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,sBAAsB,CAAC;QACrE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,YAAY,CAAC,qBAAqB,CAAC;QAClF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAClE,MAAM,EAAE,YAAY,CAAC,aAAa;gBAClC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;aACrC,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;QAC1B,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACJ,SAAS,CAAC;gBACT,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC/E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACxD,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kEAAkE,EAAE;wBACpF,QAAQ;wBACR,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;qBACnC,CAAC,CAAC;oBACH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC1D,CAAC;gBACD,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oEAAoE,EAAE;wBACtF,QAAQ;wBACR,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;qBACnC,CAAC,CAAC;oBACH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC5D,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrD,IAAI,GAAG,KAAK,aAAa,IAAI,CAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;oBAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE;wBAClF,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;wBACjC,QAAQ;wBACR,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,IAAI,EAAE,uCAAuC;qBAC7C,CAAC,CAAC;oBACH,aAAa,GAAG,GAAG,CAAC;oBACpB,SAAS,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;YACtF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB,CAAC,KAA6C,EAAE,EAAU;QACzF,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,KAAK,GAAyC,IAAI,CAAC;QACvD,MAAM,IAAI,GAAG,KAAK;YACjB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC;YACJ,MAAM,OAAO,CAAC,IAAI,CAAC;gBAClB,IAAI;gBACJ,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC5B,CAAC,CAAC;aACF,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,iEAAiE;YACjE,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;;AAGF;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAkB;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO;QACN,OAAO,EAAE,IAAI,CAAC,WAAW;QACzB,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;QACzC,cAAc,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;KACrC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAkB;IACvC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"restart-drain.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/restart-drain.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Supervisor stop budget.
3
+ *
4
+ * Under systemd, the unit's `TimeoutStopSec` decides when a stopping service
5
+ * is SIGKILLed, whatever the backend's own drain cap says. The unit is
6
+ * written at install time, so a unit from before the 10-minute background
7
+ * drain (steamfun-ops: 150 s) would SIGKILL the backend mid-drain and
8
+ * `saveInterruptedTurns` would never run (PR #1013 review). The backend
9
+ * therefore reads the live `TimeoutStopUSec` and caps its drain to it minus
10
+ * the shutdown margin.
11
+ *
12
+ * @module services/restart/supervisor-stop-budget
13
+ */
14
+ /** Dependencies (injectable for tests). */
15
+ export interface SupervisorBudgetDeps {
16
+ /** Environment */
17
+ env: NodeJS.ProcessEnv;
18
+ /** Read a file (the process's cgroup) */
19
+ readFile: (path: string) => string;
20
+ /** Run systemctl and return stdout */
21
+ systemctl: (args: string[]) => string;
22
+ }
23
+ /**
24
+ * Parse a systemd time span ("2min 30s", "150s", "500ms", "infinity").
25
+ *
26
+ * @param text - systemctl output value
27
+ * @returns Milliseconds; null for infinity or unparseable text
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * parseSystemdTimespanMs('2min 30s'); // 150000
32
+ * ```
33
+ */
34
+ export declare function parseSystemdTimespanMs(text: string): number | null;
35
+ /**
36
+ * The systemd unit a process runs in, from its /proc/self/cgroup.
37
+ *
38
+ * @param cgroup - File content
39
+ * @returns `{ unit, user }`, or null when not in a .service unit
40
+ */
41
+ export declare function systemdUnitFromCgroup(cgroup: string): {
42
+ unit: string;
43
+ user: boolean;
44
+ } | null;
45
+ /**
46
+ * How long the supervisor waits after SIGTERM before SIGKILL, when known.
47
+ *
48
+ * @param deps - Environment, file reader, systemctl runner
49
+ * @returns Milliseconds, or null when not under systemd, unlimited, or unreadable
50
+ */
51
+ export declare function resolveSupervisorStopBudgetMs(deps?: Partial<SupervisorBudgetDeps>): number | null;
52
+ /**
53
+ * Cap a drain so it ends before the supervisor SIGKILLs, leaving the margin
54
+ * for the rest of shutdown (persisting interrupted turns, PTY teardown).
55
+ *
56
+ * @param drainMs - Drain cap the backend wants
57
+ * @param budgetMs - Supervisor stop budget, or null when unlimited / unknown
58
+ * @param marginMs - Time needed after the drain
59
+ * @returns The cap to use (never negative)
60
+ */
61
+ export declare function capDrainToSupervisor(drainMs: number, budgetMs: number | null, marginMs: number): number;
62
+ //# sourceMappingURL=supervisor-stop-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor-stop-budget.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/supervisor-stop-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACpC,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,sCAAsC;IACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;CACtC;AAwBD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAclE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAY5F;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,GAAG,IAAI,CAejG;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvG"}