crewly 1.20.195 → 1.20.197

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 (595) 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/orchestrator/fragments/lifecycle.md +1 -1
  5. package/config/roles/orchestrator/prompt.md +3 -3
  6. package/config/skills/_common/lib.sh +28 -5
  7. package/config/skills/_common/lib.test.sh +32 -1
  8. package/config/skills/agent/core/create-intent-tasks/execute.sh +2 -0
  9. package/config/skills/agent/core/decompose-intent/execute.sh +2 -0
  10. package/config/skills/agent/core/experiment-card/SKILL.md +29 -1
  11. package/config/skills/agent/core/experiment-card/execute.sh +35 -1
  12. package/config/skills/agent/core/experiment-card/execute.test.sh +11 -0
  13. package/config/skills/agent/core/project-tickets/SKILL.md +35 -2
  14. package/config/skills/agent/core/project-tickets/execute.sh +59 -6
  15. package/config/skills/agent/core/project-tickets/execute.test.sh +24 -0
  16. package/config/skills/agent/core/send-message/execute.sh +16 -0
  17. package/config/skills/agent/core/send-message/execute.test.sh +10 -0
  18. package/config/skills/agent/core/trace-read/SKILL.md +117 -0
  19. package/config/skills/agent/core/trace-read/execute.sh +116 -0
  20. package/config/skills/agent/core/update-intent-task/execute.sh +2 -0
  21. package/config/skills/agent/marketing/submit-for-approval/execute.sh +3 -2
  22. package/config/skills/orchestrator/decompose-mission/execute.sh +2 -0
  23. package/config/skills/orchestrator/decompose-okr/execute.sh +1 -0
  24. package/config/skills/orchestrator/design-team/execute.sh +2 -0
  25. package/config/skills/orchestrator/measure-kr/execute.sh +2 -0
  26. package/config/skills/orchestrator/review-mission/execute.sh +2 -0
  27. package/config/skills/orchestrator/send-message/execute.sh +10 -2
  28. package/config/skills/orchestrator/send-message/execute.test.sh +9 -0
  29. package/config/skills/team-leader/design-checklist/execute.sh +2 -0
  30. package/dist/backend/backend/src/constants.d.ts +223 -5
  31. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  32. package/dist/backend/backend/src/constants.js +206 -6
  33. package/dist/backend/backend/src/constants.js.map +1 -1
  34. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +9 -3
  35. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  36. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +38 -5
  37. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  38. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +4 -9
  39. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
  40. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +6 -14
  41. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
  42. package/dist/backend/backend/src/controllers/auth/owner-session.controller.d.ts +64 -0
  43. package/dist/backend/backend/src/controllers/auth/owner-session.controller.d.ts.map +1 -0
  44. package/dist/backend/backend/src/controllers/auth/owner-session.controller.js +164 -0
  45. package/dist/backend/backend/src/controllers/auth/owner-session.controller.js.map +1 -0
  46. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  47. package/dist/backend/backend/src/controllers/browser/browser.controller.js +54 -8
  48. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  49. package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
  50. package/dist/backend/backend/src/controllers/browser/browser.routes.js +18 -5
  51. package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
  52. package/dist/backend/backend/src/controllers/canva/canva.routes.d.ts.map +1 -1
  53. package/dist/backend/backend/src/controllers/canva/canva.routes.js +8 -1
  54. package/dist/backend/backend/src/controllers/canva/canva.routes.js.map +1 -1
  55. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  56. package/dist/backend/backend/src/controllers/chat/chat.controller.js +10 -1
  57. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  58. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.d.ts.map +1 -1
  59. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js +3 -5
  60. package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js.map +1 -1
  61. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts +4 -2
  62. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts.map +1 -1
  63. package/dist/backend/backend/src/controllers/connector/connector.controller.js +17 -2
  64. package/dist/backend/backend/src/controllers/connector/connector.controller.js.map +1 -1
  65. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts.map +1 -1
  66. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js +2 -3
  67. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js.map +1 -1
  68. package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts +4 -2
  69. package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts.map +1 -1
  70. package/dist/backend/backend/src/controllers/decisions/decisions.controller.js +31 -20
  71. package/dist/backend/backend/src/controllers/decisions/decisions.controller.js.map +1 -1
  72. package/dist/backend/backend/src/controllers/desktop/desktop.controller.d.ts.map +1 -1
  73. package/dist/backend/backend/src/controllers/desktop/desktop.controller.js +16 -0
  74. package/dist/backend/backend/src/controllers/desktop/desktop.controller.js.map +1 -1
  75. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  76. package/dist/backend/backend/src/controllers/google/google.controller.js +9 -5
  77. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  78. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  79. package/dist/backend/backend/src/controllers/google/google.routes.js +16 -3
  80. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  81. package/dist/backend/backend/src/controllers/harness/harness.controller.d.ts.map +1 -1
  82. package/dist/backend/backend/src/controllers/harness/harness.controller.js +3 -5
  83. package/dist/backend/backend/src/controllers/harness/harness.controller.js.map +1 -1
  84. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts.map +1 -1
  85. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js +8 -1
  86. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js.map +1 -1
  87. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +1 -1
  88. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
  89. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts.map +1 -1
  90. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js +3 -5
  91. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js.map +1 -1
  92. package/dist/backend/backend/src/controllers/people/people.routes.d.ts.map +1 -1
  93. package/dist/backend/backend/src/controllers/people/people.routes.js +3 -5
  94. package/dist/backend/backend/src/controllers/people/people.routes.js.map +1 -1
  95. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +35 -2
  96. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
  97. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +138 -4
  98. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
  99. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +2 -0
  100. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -1
  101. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +7 -1
  102. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -1
  103. package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts.map +1 -1
  104. package/dist/backend/backend/src/controllers/request/open-items.controller.js +2 -4
  105. package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -1
  106. package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js +1 -1
  107. package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js.map +1 -1
  108. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  109. package/dist/backend/backend/src/controllers/slack/slack.controller.js +9 -0
  110. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  111. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  112. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +11 -0
  113. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  114. package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts +6 -4
  115. package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts.map +1 -1
  116. package/dist/backend/backend/src/controllers/system/system-control.controller.js +20 -13
  117. package/dist/backend/backend/src/controllers/system/system-control.controller.js.map +1 -1
  118. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  119. package/dist/backend/backend/src/controllers/team/team.controller.js +14 -7
  120. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  121. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -1
  122. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +5 -7
  123. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -1
  124. package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts +30 -4
  125. package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts.map +1 -1
  126. package/dist/backend/backend/src/controllers/trace/trace.controller.js +278 -10
  127. package/dist/backend/backend/src/controllers/trace/trace.controller.js.map +1 -1
  128. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts +3 -3
  129. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts.map +1 -1
  130. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js +4 -2
  131. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js.map +1 -1
  132. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -1
  133. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +10 -2
  134. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -1
  135. package/dist/backend/backend/src/index.d.ts +34 -0
  136. package/dist/backend/backend/src/index.d.ts.map +1 -1
  137. package/dist/backend/backend/src/index.js +313 -42
  138. package/dist/backend/backend/src/index.js.map +1 -1
  139. package/dist/backend/backend/src/middleware/agent-origin-correction.d.ts +31 -0
  140. package/dist/backend/backend/src/middleware/agent-origin-correction.d.ts.map +1 -0
  141. package/dist/backend/backend/src/middleware/agent-origin-correction.js +31 -0
  142. package/dist/backend/backend/src/middleware/agent-origin-correction.js.map +1 -0
  143. package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts +6 -0
  144. package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts.map +1 -1
  145. package/dist/backend/backend/src/middleware/agent-origin.middleware.js +4 -1
  146. package/dist/backend/backend/src/middleware/agent-origin.middleware.js.map +1 -1
  147. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +20 -17
  148. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -1
  149. package/dist/backend/backend/src/middleware/api-token.middleware.js +27 -37
  150. package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -1
  151. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts +213 -0
  152. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -0
  153. package/dist/backend/backend/src/middleware/caller-identity.middleware.js +481 -0
  154. package/dist/backend/backend/src/middleware/caller-identity.middleware.js.map +1 -0
  155. package/dist/backend/backend/src/middleware/caller-identity.testing.d.ts +67 -0
  156. package/dist/backend/backend/src/middleware/caller-identity.testing.d.ts.map +1 -0
  157. package/dist/backend/backend/src/middleware/caller-identity.testing.js +108 -0
  158. package/dist/backend/backend/src/middleware/caller-identity.testing.js.map +1 -0
  159. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  160. package/dist/backend/backend/src/services/agent/agent-registration.service.js +12 -2
  161. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  162. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +7 -5
  163. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  164. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +19 -10
  165. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  166. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  167. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -1
  168. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  169. package/dist/backend/backend/src/services/agent/restore-filter.d.ts +5 -2
  170. package/dist/backend/backend/src/services/agent/restore-filter.d.ts.map +1 -1
  171. package/dist/backend/backend/src/services/agent/restore-filter.js +5 -2
  172. package/dist/backend/backend/src/services/agent/restore-filter.js.map +1 -1
  173. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +4 -0
  175. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  176. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +29 -0
  177. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  178. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +77 -1
  179. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  180. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  181. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  182. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  183. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts +34 -1
  184. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
  185. package/dist/backend/backend/src/services/browser/browser-session.service.js +38 -1
  186. package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
  187. package/dist/backend/backend/src/services/browser/owner-browser-input.d.ts +98 -10
  188. package/dist/backend/backend/src/services/browser/owner-browser-input.d.ts.map +1 -1
  189. package/dist/backend/backend/src/services/browser/owner-browser-input.js +126 -11
  190. package/dist/backend/backend/src/services/browser/owner-browser-input.js.map +1 -1
  191. package/dist/backend/backend/src/services/chat/chat.service.d.ts +99 -2
  192. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  193. package/dist/backend/backend/src/services/chat/chat.service.js +265 -40
  194. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  195. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -5
  196. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  197. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +34 -4
  198. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  199. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +18 -11
  200. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
  201. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +19 -25
  202. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
  203. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -4
  204. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  205. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +8 -4
  206. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  207. package/dist/backend/backend/src/services/chat-v2/types.d.ts +0 -1
  208. package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
  209. package/dist/backend/backend/src/services/chat-v2/types.js +0 -1
  210. package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
  211. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  212. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +5 -0
  213. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  214. package/dist/backend/backend/src/services/core/api-token.service.d.ts +28 -0
  215. package/dist/backend/backend/src/services/core/api-token.service.d.ts.map +1 -1
  216. package/dist/backend/backend/src/services/core/api-token.service.js +46 -0
  217. package/dist/backend/backend/src/services/core/api-token.service.js.map +1 -1
  218. package/dist/backend/backend/src/services/core/dashboard-build.d.ts +49 -0
  219. package/dist/backend/backend/src/services/core/dashboard-build.d.ts.map +1 -0
  220. package/dist/backend/backend/src/services/core/dashboard-build.js +68 -0
  221. package/dist/backend/backend/src/services/core/dashboard-build.js.map +1 -0
  222. package/dist/backend/backend/src/services/core/owner-auth.service.d.ts +127 -0
  223. package/dist/backend/backend/src/services/core/owner-auth.service.d.ts.map +1 -0
  224. package/dist/backend/backend/src/services/core/owner-auth.service.js +205 -0
  225. package/dist/backend/backend/src/services/core/owner-auth.service.js.map +1 -0
  226. package/dist/backend/backend/src/services/core/peer-process.service.d.ts +168 -0
  227. package/dist/backend/backend/src/services/core/peer-process.service.d.ts.map +1 -0
  228. package/dist/backend/backend/src/services/core/peer-process.service.js +352 -0
  229. package/dist/backend/backend/src/services/core/peer-process.service.js.map +1 -0
  230. package/dist/backend/backend/src/services/experiments/experiment.service.d.ts +97 -1
  231. package/dist/backend/backend/src/services/experiments/experiment.service.d.ts.map +1 -1
  232. package/dist/backend/backend/src/services/experiments/experiment.service.js +372 -1
  233. package/dist/backend/backend/src/services/experiments/experiment.service.js.map +1 -1
  234. package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts.map +1 -1
  235. package/dist/backend/backend/src/services/experiments/experiment.wiring.js +19 -2
  236. package/dist/backend/backend/src/services/experiments/experiment.wiring.js.map +1 -1
  237. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts.map +1 -1
  238. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +2 -1
  239. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
  240. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +0 -8
  241. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  242. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +0 -18
  243. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  244. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +19 -0
  245. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  246. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +41 -5
  247. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  248. package/dist/backend/backend/src/services/monitoring/agent-turn-state.d.ts +184 -0
  249. package/dist/backend/backend/src/services/monitoring/agent-turn-state.d.ts.map +1 -0
  250. package/dist/backend/backend/src/services/monitoring/agent-turn-state.js +391 -0
  251. package/dist/backend/backend/src/services/monitoring/agent-turn-state.js.map +1 -0
  252. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts +35 -1
  253. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -1
  254. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +138 -2
  255. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -1
  256. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.d.ts +73 -0
  257. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.d.ts.map +1 -0
  258. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.js +258 -0
  259. package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.js.map +1 -0
  260. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.d.ts +82 -0
  261. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.d.ts.map +1 -0
  262. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.js +141 -0
  263. package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.js.map +1 -0
  264. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +51 -1
  265. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
  266. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +118 -2
  267. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
  268. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.d.ts +103 -0
  269. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.d.ts.map +1 -0
  270. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.js +86 -0
  271. package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.js.map +1 -0
  272. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +57 -0
  273. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  274. package/dist/backend/backend/src/services/open-items/open-items.service.js +100 -4
  275. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  276. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
  277. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +13 -0
  278. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
  279. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +36 -0
  280. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  281. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +42 -3
  282. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  283. package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.d.ts.map +1 -1
  284. package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js +2 -1
  285. package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js.map +1 -1
  286. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
  287. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +3 -0
  288. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
  289. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.d.ts +156 -0
  290. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.d.ts.map +1 -0
  291. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js +308 -0
  292. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js.map +1 -0
  293. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts +212 -0
  294. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts.map +1 -0
  295. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js +515 -0
  296. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js.map +1 -0
  297. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts +186 -0
  298. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts.map +1 -0
  299. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js +341 -0
  300. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js.map +1 -0
  301. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +309 -0
  302. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
  303. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +726 -1
  304. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
  305. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +34 -3
  306. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
  307. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js +57 -2
  308. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
  309. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts +61 -3
  310. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts.map +1 -1
  311. package/dist/backend/backend/src/services/restart/interrupted-turns.js +106 -9
  312. package/dist/backend/backend/src/services/restart/interrupted-turns.js.map +1 -1
  313. package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts +22 -0
  314. package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts.map +1 -1
  315. package/dist/backend/backend/src/services/restart/restart-drain.service.js +37 -5
  316. package/dist/backend/backend/src/services/restart/restart-drain.service.js.map +1 -1
  317. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.d.ts +62 -0
  318. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.d.ts.map +1 -0
  319. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.js +126 -0
  320. package/dist/backend/backend/src/services/restart/supervisor-stop-budget.js.map +1 -0
  321. package/dist/backend/backend/src/services/restart/turn-probe.d.ts +17 -2
  322. package/dist/backend/backend/src/services/restart/turn-probe.d.ts.map +1 -1
  323. package/dist/backend/backend/src/services/restart/turn-probe.js +29 -4
  324. package/dist/backend/backend/src/services/restart/turn-probe.js.map +1 -1
  325. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  326. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
  327. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  328. package/dist/backend/backend/src/services/slack/slack-auto-working.service.d.ts +29 -0
  329. package/dist/backend/backend/src/services/slack/slack-auto-working.service.d.ts.map +1 -1
  330. package/dist/backend/backend/src/services/slack/slack-auto-working.service.js +66 -3
  331. package/dist/backend/backend/src/services/slack/slack-auto-working.service.js.map +1 -1
  332. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +79 -15
  333. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  334. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +200 -41
  335. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  336. package/dist/backend/backend/src/services/slack/slack.service.d.ts +18 -0
  337. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  338. package/dist/backend/backend/src/services/slack/slack.service.js +32 -0
  339. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  340. package/dist/backend/backend/src/services/trace/trace-analysis.service.d.ts +99 -0
  341. package/dist/backend/backend/src/services/trace/trace-analysis.service.d.ts.map +1 -0
  342. package/dist/backend/backend/src/services/trace/trace-analysis.service.js +148 -0
  343. package/dist/backend/backend/src/services/trace/trace-analysis.service.js.map +1 -0
  344. package/dist/backend/backend/src/services/trace/trace-context.service.d.ts +17 -0
  345. package/dist/backend/backend/src/services/trace/trace-context.service.d.ts.map +1 -1
  346. package/dist/backend/backend/src/services/trace/trace-context.service.js +58 -1
  347. package/dist/backend/backend/src/services/trace/trace-context.service.js.map +1 -1
  348. package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts +4 -0
  349. package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts.map +1 -1
  350. package/dist/backend/backend/src/services/trace/trace-http.middleware.js +32 -2
  351. package/dist/backend/backend/src/services/trace/trace-http.middleware.js.map +1 -1
  352. package/dist/backend/backend/src/services/trace/trace-metrics.d.ts +262 -0
  353. package/dist/backend/backend/src/services/trace/trace-metrics.d.ts.map +1 -0
  354. package/dist/backend/backend/src/services/trace/trace-metrics.js +810 -0
  355. package/dist/backend/backend/src/services/trace/trace-metrics.js.map +1 -0
  356. package/dist/backend/backend/src/services/trace/trace-recorder.d.ts +48 -0
  357. package/dist/backend/backend/src/services/trace/trace-recorder.d.ts.map +1 -1
  358. package/dist/backend/backend/src/services/trace/trace-recorder.js +121 -1
  359. package/dist/backend/backend/src/services/trace/trace-recorder.js.map +1 -1
  360. package/dist/backend/backend/src/services/trace/trace-store.d.ts +40 -1
  361. package/dist/backend/backend/src/services/trace/trace-store.d.ts.map +1 -1
  362. package/dist/backend/backend/src/services/trace/trace-store.js +126 -14
  363. package/dist/backend/backend/src/services/trace/trace-store.js.map +1 -1
  364. package/dist/backend/backend/src/services/trace/trace-summary.d.ts +77 -0
  365. package/dist/backend/backend/src/services/trace/trace-summary.d.ts.map +1 -0
  366. package/dist/backend/backend/src/services/trace/trace-summary.js +239 -0
  367. package/dist/backend/backend/src/services/trace/trace-summary.js.map +1 -0
  368. package/dist/backend/backend/src/services/trace/trace-timeline.d.ts +74 -0
  369. package/dist/backend/backend/src/services/trace/trace-timeline.d.ts.map +1 -0
  370. package/dist/backend/backend/src/services/trace/trace-timeline.js +162 -0
  371. package/dist/backend/backend/src/services/trace/trace-timeline.js.map +1 -0
  372. package/dist/backend/backend/src/services/trace/trace.types.d.ts +22 -3
  373. package/dist/backend/backend/src/services/trace/trace.types.d.ts.map +1 -1
  374. package/dist/backend/backend/src/services/trace/trace.types.js +20 -1
  375. package/dist/backend/backend/src/services/trace/trace.types.js.map +1 -1
  376. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.d.ts +80 -0
  377. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.d.ts.map +1 -0
  378. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.js +184 -0
  379. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.js.map +1 -0
  380. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts +7 -0
  381. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts.map +1 -1
  382. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js +16 -0
  383. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js.map +1 -1
  384. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts +16 -0
  385. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts.map +1 -1
  386. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js.map +1 -1
  387. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
  388. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +2 -1
  389. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
  390. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +8 -0
  391. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  392. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +24 -2
  393. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  394. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts +4 -3
  395. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts.map +1 -1
  396. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js +3 -2
  397. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js.map +1 -1
  398. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
  399. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  400. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  401. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  402. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -0
  403. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  404. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  405. package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -0
  406. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  407. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts.map +1 -1
  408. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js +2 -1
  409. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js.map +1 -1
  410. package/dist/backend/backend/src/types/decision.types.d.ts +3 -1
  411. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  412. package/dist/backend/backend/src/types/experiment.types.d.ts +57 -0
  413. package/dist/backend/backend/src/types/experiment.types.d.ts.map +1 -1
  414. package/dist/backend/backend/src/types/experiment.types.js.map +1 -1
  415. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts +9 -0
  416. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  417. package/dist/backend/backend/src/types/ticket-autopilot.types.js +14 -0
  418. package/dist/backend/backend/src/types/ticket-autopilot.types.js.map +1 -1
  419. package/dist/backend/backend/src/types/v2/open-item.types.d.ts +4 -0
  420. package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  421. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +1 -1
  422. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  423. package/dist/backend/backend/src/types/v2/work-item.types.js +1 -0
  424. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  425. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +44 -37
  426. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
  427. package/dist/backend/backend/src/utils/agent-caller.utils.js +48 -42
  428. package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
  429. package/dist/backend/backend/src/utils/secret-env.d.ts.map +1 -1
  430. package/dist/backend/backend/src/utils/secret-env.js +8 -1
  431. package/dist/backend/backend/src/utils/secret-env.js.map +1 -1
  432. package/dist/backend/build-info.json +2 -2
  433. package/dist/backend/config/constants.d.ts +67 -0
  434. package/dist/backend/config/constants.d.ts.map +1 -1
  435. package/dist/backend/config/constants.js +67 -0
  436. package/dist/backend/config/constants.js.map +1 -1
  437. package/dist/cli/backend/src/constants.d.ts +223 -5
  438. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  439. package/dist/cli/backend/src/constants.js +206 -6
  440. package/dist/cli/backend/src/constants.js.map +1 -1
  441. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  442. package/dist/cli/backend/src/services/agent/agent-registration.service.js +12 -2
  443. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  444. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +7 -5
  445. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  446. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +19 -10
  447. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  448. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  449. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -1
  450. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  451. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  452. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +4 -0
  453. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  454. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +29 -0
  455. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  456. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +77 -1
  457. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  458. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  459. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  460. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  461. package/dist/cli/backend/src/services/chat/chat.service.d.ts +99 -2
  462. package/dist/cli/backend/src/services/chat/chat.service.d.ts.map +1 -1
  463. package/dist/cli/backend/src/services/chat/chat.service.js +265 -40
  464. package/dist/cli/backend/src/services/chat/chat.service.js.map +1 -1
  465. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -5
  466. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  467. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +34 -4
  468. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  469. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +18 -11
  470. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
  471. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +19 -25
  472. package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
  473. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -4
  474. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  475. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +8 -4
  476. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  477. package/dist/cli/backend/src/services/chat-v2/types.d.ts +0 -1
  478. package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -1
  479. package/dist/cli/backend/src/services/chat-v2/types.js +0 -1
  480. package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -1
  481. package/dist/cli/backend/src/services/core/api-token.service.d.ts +28 -0
  482. package/dist/cli/backend/src/services/core/api-token.service.d.ts.map +1 -1
  483. package/dist/cli/backend/src/services/core/api-token.service.js +46 -0
  484. package/dist/cli/backend/src/services/core/api-token.service.js.map +1 -1
  485. package/dist/cli/backend/src/services/core/owner-auth.service.d.ts +127 -0
  486. package/dist/cli/backend/src/services/core/owner-auth.service.d.ts.map +1 -0
  487. package/dist/cli/backend/src/services/core/owner-auth.service.js +205 -0
  488. package/dist/cli/backend/src/services/core/owner-auth.service.js.map +1 -0
  489. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +0 -8
  490. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  491. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +0 -18
  492. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  493. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +19 -0
  494. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  495. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +41 -5
  496. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  497. package/dist/cli/backend/src/services/monitoring/agent-turn-state.d.ts +184 -0
  498. package/dist/cli/backend/src/services/monitoring/agent-turn-state.d.ts.map +1 -0
  499. package/dist/cli/backend/src/services/monitoring/agent-turn-state.js +391 -0
  500. package/dist/cli/backend/src/services/monitoring/agent-turn-state.js.map +1 -0
  501. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.d.ts +73 -0
  502. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.d.ts.map +1 -0
  503. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.js +258 -0
  504. package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.js.map +1 -0
  505. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +57 -0
  506. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  507. package/dist/cli/backend/src/services/open-items/open-items.service.js +100 -4
  508. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  509. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +36 -0
  510. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  511. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +42 -3
  512. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  513. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +34 -3
  514. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
  515. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js +57 -2
  516. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
  517. package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts +22 -0
  518. package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts.map +1 -1
  519. package/dist/cli/backend/src/services/restart/restart-drain.service.js +37 -5
  520. package/dist/cli/backend/src/services/restart/restart-drain.service.js.map +1 -1
  521. package/dist/cli/backend/src/services/slack/slack-auto-working.service.d.ts +29 -0
  522. package/dist/cli/backend/src/services/slack/slack-auto-working.service.d.ts.map +1 -1
  523. package/dist/cli/backend/src/services/slack/slack-auto-working.service.js +66 -3
  524. package/dist/cli/backend/src/services/slack/slack-auto-working.service.js.map +1 -1
  525. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +79 -15
  526. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  527. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +200 -41
  528. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  529. package/dist/cli/backend/src/services/slack/slack.service.d.ts +18 -0
  530. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  531. package/dist/cli/backend/src/services/slack/slack.service.js +32 -0
  532. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  533. package/dist/cli/backend/src/services/trace/trace-context.service.d.ts +17 -0
  534. package/dist/cli/backend/src/services/trace/trace-context.service.d.ts.map +1 -1
  535. package/dist/cli/backend/src/services/trace/trace-context.service.js +58 -1
  536. package/dist/cli/backend/src/services/trace/trace-context.service.js.map +1 -1
  537. package/dist/cli/backend/src/services/trace/trace-recorder.d.ts +48 -0
  538. package/dist/cli/backend/src/services/trace/trace-recorder.d.ts.map +1 -1
  539. package/dist/cli/backend/src/services/trace/trace-recorder.js +121 -1
  540. package/dist/cli/backend/src/services/trace/trace-recorder.js.map +1 -1
  541. package/dist/cli/backend/src/services/trace/trace-store.d.ts +40 -1
  542. package/dist/cli/backend/src/services/trace/trace-store.d.ts.map +1 -1
  543. package/dist/cli/backend/src/services/trace/trace-store.js +126 -14
  544. package/dist/cli/backend/src/services/trace/trace-store.js.map +1 -1
  545. package/dist/cli/backend/src/services/trace/trace.types.d.ts +22 -3
  546. package/dist/cli/backend/src/services/trace/trace.types.d.ts.map +1 -1
  547. package/dist/cli/backend/src/services/trace/trace.types.js +20 -1
  548. package/dist/cli/backend/src/services/trace/trace.types.js.map +1 -1
  549. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
  550. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  551. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  552. package/dist/cli/backend/src/types/decision.types.d.ts +3 -1
  553. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
  554. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts +9 -0
  555. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  556. package/dist/cli/backend/src/types/ticket-autopilot.types.js +14 -0
  557. package/dist/cli/backend/src/types/ticket-autopilot.types.js.map +1 -1
  558. package/dist/cli/backend/src/types/v2/open-item.types.d.ts +4 -0
  559. package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  560. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +1 -1
  561. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  562. package/dist/cli/backend/src/types/v2/work-item.types.js +1 -0
  563. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  564. package/dist/cli/backend/src/utils/secret-env.d.ts.map +1 -1
  565. package/dist/cli/backend/src/utils/secret-env.js +8 -1
  566. package/dist/cli/backend/src/utils/secret-env.js.map +1 -1
  567. package/dist/cli/cli/src/commands/service.d.ts +12 -0
  568. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  569. package/dist/cli/cli/src/commands/service.js +36 -2
  570. package/dist/cli/cli/src/commands/service.js.map +1 -1
  571. package/dist/cli/cli/src/index.js +4 -0
  572. package/dist/cli/cli/src/index.js.map +1 -1
  573. package/dist/cli/cli/src/utils/owner-token-fetch.d.ts +41 -0
  574. package/dist/cli/cli/src/utils/owner-token-fetch.d.ts.map +1 -0
  575. package/dist/cli/cli/src/utils/owner-token-fetch.js +83 -0
  576. package/dist/cli/cli/src/utils/owner-token-fetch.js.map +1 -0
  577. package/dist/cli/cli/src/utils/safe-shutdown.d.ts +13 -3
  578. package/dist/cli/cli/src/utils/safe-shutdown.d.ts.map +1 -1
  579. package/dist/cli/cli/src/utils/safe-shutdown.js +26 -4
  580. package/dist/cli/cli/src/utils/safe-shutdown.js.map +1 -1
  581. package/dist/cli/config/constants.d.ts +67 -0
  582. package/dist/cli/config/constants.d.ts.map +1 -1
  583. package/dist/cli/config/constants.js +67 -0
  584. package/dist/cli/config/constants.js.map +1 -1
  585. package/frontend/dist/assets/index-5cbcf45b.css +42 -0
  586. package/frontend/dist/assets/{index-800118ca.js → index-63a33dbf.js} +291 -291
  587. package/frontend/dist/index.html +2 -2
  588. package/package.json +1 -1
  589. package/packages/crewly-agent/src/runtime/api-client.test.ts +42 -0
  590. package/packages/crewly-agent/src/runtime/api-client.ts +6 -0
  591. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +0 -52
  592. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +0 -1
  593. package/dist/backend/backend/src/services/v3/request-notification.service.js +0 -161
  594. package/dist/backend/backend/src/services/v3/request-notification.service.js.map +0 -1
  595. package/frontend/dist/assets/index-5e967795.css +0 -42
@@ -3,7 +3,7 @@
3
3
  * Re-exported from the main config constants for backend use
4
4
  */
5
5
  // Import from config directory for cross-domain constants
6
- import { CREWLY_CONSTANTS as CONFIG_CREWLY_CONSTANTS, AGENT_IDENTITY_CONSTANTS as CONFIG_AGENT_IDENTITY_CONSTANTS, TIMING_CONSTANTS as CONFIG_TIMING_CONSTANTS, MEMORY_CONSTANTS as CONFIG_MEMORY_CONSTANTS, CONTINUATION_CONSTANTS as CONFIG_CONTINUATION_CONSTANTS, ORCHESTRATOR_RESTART_CONSTANTS as CONFIG_ORCHESTRATOR_RESTART_CONSTANTS, AGENT_SUSPEND_CONSTANTS as CONFIG_AGENT_SUSPEND_CONSTANTS, VERSION_CHECK_CONSTANTS as CONFIG_VERSION_CHECK_CONSTANTS, AUTO_UPDATE_CONSTANTS as CONFIG_AUTO_UPDATE_CONSTANTS, CLOUD_DISCONNECT_NOTICE_CONSTANTS as CONFIG_CLOUD_DISCONNECT_NOTICE_CONSTANTS, AGENT_HEARTBEAT_MONITOR_CONSTANTS as CONFIG_AGENT_HEARTBEAT_MONITOR_CONSTANTS, ORCHESTRATOR_HEARTBEAT_CONSTANTS as CONFIG_ORCHESTRATOR_HEARTBEAT_CONSTANTS, MARKETPLACE_CONSTANTS as CONFIG_MARKETPLACE_CONSTANTS, TEMPLATE_MARKETPLACE_CONSTANTS as CONFIG_TEMPLATE_MARKETPLACE_CONSTANTS, ADDON_CONSTANTS as CONFIG_ADDON_CONSTANTS, AUDITOR_CONSTANTS as CONFIG_AUDITOR_CONSTANTS, PROCESS_EXIT_CODES as CONFIG_PROCESS_EXIT_CODES, SAFE_RESTART_CONSTANTS as CONFIG_SAFE_RESTART_CONSTANTS, WEB_CONSTANTS as CONFIG_WEB_CONSTANTS, API_SECURITY_CONSTANTS as CONFIG_API_SECURITY_CONSTANTS, PROJECT_TICKET_CONSTANTS as CONFIG_PROJECT_TICKET_CONSTANTS, } from '../../config/constants.js';
6
+ import { CREWLY_CONSTANTS as CONFIG_CREWLY_CONSTANTS, AGENT_IDENTITY_CONSTANTS as CONFIG_AGENT_IDENTITY_CONSTANTS, TIMING_CONSTANTS as CONFIG_TIMING_CONSTANTS, MEMORY_CONSTANTS as CONFIG_MEMORY_CONSTANTS, CONTINUATION_CONSTANTS as CONFIG_CONTINUATION_CONSTANTS, ORCHESTRATOR_RESTART_CONSTANTS as CONFIG_ORCHESTRATOR_RESTART_CONSTANTS, AGENT_SUSPEND_CONSTANTS as CONFIG_AGENT_SUSPEND_CONSTANTS, VERSION_CHECK_CONSTANTS as CONFIG_VERSION_CHECK_CONSTANTS, AUTO_UPDATE_CONSTANTS as CONFIG_AUTO_UPDATE_CONSTANTS, CLOUD_DISCONNECT_NOTICE_CONSTANTS as CONFIG_CLOUD_DISCONNECT_NOTICE_CONSTANTS, AGENT_HEARTBEAT_MONITOR_CONSTANTS as CONFIG_AGENT_HEARTBEAT_MONITOR_CONSTANTS, ORCHESTRATOR_HEARTBEAT_CONSTANTS as CONFIG_ORCHESTRATOR_HEARTBEAT_CONSTANTS, MARKETPLACE_CONSTANTS as CONFIG_MARKETPLACE_CONSTANTS, TEMPLATE_MARKETPLACE_CONSTANTS as CONFIG_TEMPLATE_MARKETPLACE_CONSTANTS, ADDON_CONSTANTS as CONFIG_ADDON_CONSTANTS, AUDITOR_CONSTANTS as CONFIG_AUDITOR_CONSTANTS, PROCESS_EXIT_CODES as CONFIG_PROCESS_EXIT_CODES, SAFE_RESTART_CONSTANTS as CONFIG_SAFE_RESTART_CONSTANTS, WEB_CONSTANTS as CONFIG_WEB_CONSTANTS, API_SECURITY_CONSTANTS as CONFIG_API_SECURITY_CONSTANTS, OWNER_AUTH_CONSTANTS as CONFIG_OWNER_AUTH_CONSTANTS, PROJECT_TICKET_CONSTANTS as CONFIG_PROJECT_TICKET_CONSTANTS, } from '../../config/constants.js';
7
7
  // Re-export the cross-domain constants for backend use
8
8
  export const PROCESS_EXIT_CODES = CONFIG_PROCESS_EXIT_CODES;
9
9
  /** Project tickets (specs/2026-09-28-project-tickets.md) — see config/constants.ts. */
@@ -73,6 +73,52 @@ export const TICKET_AUTOPILOT_CONSTANTS = {
73
73
  STATE_FILENAME: 'ticket-autopilot-state.json',
74
74
  /** Env kill switch: `0` keeps the autopilot service from starting */
75
75
  ENV_SWITCH: 'CREWLY_TICKET_AUTOPILOT',
76
+ // --- Autopilot stats and daily retro (specs/2026-10-03-autopilot-experiments.md) ---
77
+ /** Default and largest range of `GET …/stats` and `…/runs` (days, today included) */
78
+ STATS_DEFAULT_DAYS: 14,
79
+ STATS_MAX_DAYS: 90,
80
+ /** WorkItem type / `metadata.kind` of the daily retro the driver receives */
81
+ RETRO_WORK_ITEM_TYPE: 'autopilot_retro',
82
+ RETRO_METADATA_KIND: 'autopilot_retro',
83
+ /** Local hour (0-23) at or after which yesterday's retro is scheduled */
84
+ RETRO_HOUR_LOCAL: 9,
85
+ /** Wiki folder (inside the project vault) the retros are written to */
86
+ RETRO_WIKI_DIR: 'llm-curated/autopilot-retros',
87
+ /** Project (by name) harness-gap tickets are filed on */
88
+ RETRO_HARNESS_PROJECT: 'Crewly',
89
+ /**
90
+ * Hold on a harness-gap ticket until the owner approves it: triage skips
91
+ * it; only the retro card's answer removes it (not ask-owner --clear,
92
+ * not other decisions), and the digest does not list it as waiting.
93
+ */
94
+ RETRO_PENDING_LABEL: 'retro-pending',
95
+ /** Retro scheduling / check-in reads that fail are retried after this, doubling up to the max */
96
+ RETRY_BACKOFF_MIN_MS: 30 * 60 * 1000,
97
+ RETRY_BACKOFF_MAX_MS: 24 * 60 * 60 * 1000,
98
+ /** Labels of a harness-gap ticket filed by a retro */
99
+ RETRO_GAP_LABELS: ['harness-gap', 'from-retro'],
100
+ /** Most harness-gap tickets filed per day, across projects */
101
+ RETRO_MAX_GAPS_PER_DAY: 3,
102
+ /** Word overlap (Jaccard) at or above which a gap duplicates an open ticket / earlier gap */
103
+ RETRO_DEDUPE_SIMILARITY: 0.6,
104
+ /** How long filed gap titles are remembered for the dedupe (days) */
105
+ RETRO_GAP_MEMORY_DAYS: 60,
106
+ /** Longest retro summary / problem detail accepted (chars) */
107
+ RETRO_SUMMARY_MAX_CHARS: 6_000,
108
+ RETRO_DETAIL_MAX_CHARS: 1_000,
109
+ /** Problem title bounds (chars) and most problems per retro */
110
+ RETRO_TITLE_MIN_CHARS: 4,
111
+ RETRO_TITLE_MAX_CHARS: 140,
112
+ RETRO_MAX_PROBLEMS: 20,
113
+ /** Problem classes */
114
+ RETRO_CLASSES: ['agent_judgment', 'missing_skill', 'harness_gap', 'owner_dependency'],
115
+ /** Decision kind of the one card that approves a retro's harness-gap tickets */
116
+ RETRO_DECISION_KIND: 'retro_harness_gaps',
117
+ /** How long the owner has to answer it (the default, Skip, applies after) */
118
+ RETRO_DECISION_DEADLINE_MS: 48 * 60 * 60 * 1000,
119
+ /** Option labels of that card */
120
+ RETRO_APPROVE_LABEL: 'Approve',
121
+ RETRO_SKIP_LABEL: 'Skip',
76
122
  };
77
123
  /**
78
124
  * Safe restart: drain in-flight agent turns before a shutdown kills the PTYs,
@@ -100,6 +146,8 @@ export const SAFE_RESTART = {
100
146
  PROBE_TAIL_LINES: 15,
101
147
  /** Open messages kept per session (oldest dropped beyond this) */
102
148
  MAX_OPEN_MESSAGES_PER_SESSION: 5,
149
+ /** Sessions whose last delivered message is remembered (labels runtime-started turns) */
150
+ MAX_LAST_DELIVERED_SESSIONS: 500,
103
151
  /** Characters of the delivered text kept as a preview */
104
152
  PREVIEW_CHARS: 160,
105
153
  /** File under CREWLY_HOME holding turns cut off by the last shutdown */
@@ -110,8 +158,52 @@ export const SAFE_RESTART = {
110
158
  RESUME_ORC_READY_TIMEOUT_MS: 10 * 60 * 1000,
111
159
  /** Poll interval while waiting for the orchestrator to become active (ms) */
112
160
  RESUME_ORC_POLL_MS: 5_000,
113
- /** Prefix of the notice re-delivered with an interrupted message */
114
- RESUME_NOTICE: '[CREWLY] You were interrupted by a restart while handling this message; pick it up again:',
161
+ /**
162
+ * Resume note sent once to an agent whose work a restart cut off;
163
+ * `{work}` is the ticket (TKT-194) or "this request".
164
+ */
165
+ RESUME_NOTICE_TEMPLATE: 'Crewly restarted while you were working on {work}. Continue where you left off and deliver.',
166
+ /** `{work}` when no ticket is known */
167
+ RESUME_DEFAULT_WORK_LABEL: 'this request',
168
+ /** Matches a resume note at the start of a message (so notes never stack) */
169
+ RESUME_NOTICE_PATTERN: /^Crewly restarted while you were working on [^\n]*?\. Continue where you left off and deliver\.[^\n]*\n?/,
170
+ /** Line that introduces the original message under a resume note */
171
+ RESUME_ORIGINAL_HEADER: 'The message you were handling:',
172
+ /** Line that introduces an owner promise under a resume note */
173
+ RESUME_PROMISE_HEADER: 'You promised the owner:',
174
+ };
175
+ /**
176
+ * Runtime turn state (specs/2026-10-02-restart-busy-and-resume.md): whether
177
+ * an agent is mid-turn according to its runtime (Claude Code hooks and
178
+ * transcript), not according to screen output.
179
+ */
180
+ export const TURN_STATE_CONSTANTS = {
181
+ /** An active turn with no hook event for this long (and nothing open) is no longer trusted (ms) */
182
+ HOOK_SILENCE_MS: 10 * 60 * 1000,
183
+ /** An open tool call or a running subagent / background task expires after this (ms) */
184
+ OPEN_WORK_MAX_MS: 60 * 60 * 1000,
185
+ /** After a delivery, wait this long for the runtime to report the turn started (ms) */
186
+ DELIVERY_START_MS: 2 * 60 * 1000,
187
+ /** A transcript that says "mid-turn" counts only if it changed within this window (ms) */
188
+ TRANSCRIPT_FRESH_MS: 10 * 60 * 1000,
189
+ /** Re-check interval for end-of-turn settling skipped while background work runs (ms) */
190
+ SETTLE_RECHECK_MS: 60_000,
191
+ /** Clock slack between a Stop hook and the transcript's own turn-end entry (ms) */
192
+ TRANSCRIPT_LAG_MS: 30_000,
193
+ /** Accepted SessionStart sources from the hook */
194
+ SESSION_START_SOURCES: ['startup', 'resume', 'clear', 'compact'],
195
+ /** How long a located transcript path is reused before re-resolving (ms) */
196
+ LOCATOR_CACHE_MS: 60_000,
197
+ /** Bytes read from the end of a transcript */
198
+ TRANSCRIPT_TAIL_BYTES: 512 * 1024,
199
+ /** Sessions tracked in memory (oldest dropped beyond this) */
200
+ MAX_TRACKED_SESSIONS: 500,
201
+ /** Open tool calls / subagents remembered per session */
202
+ MAX_OPEN_PER_SESSION: 64,
203
+ /** Accepted toolUseId / agentId values from the hook */
204
+ ID_PATTERN: /^[A-Za-z0-9_-]{1,128}$/,
205
+ /** Gemini CLI's busy footer ("esc to cancel, 12s"); only read for Gemini sessions */
206
+ GEMINI_BUSY_MARKER: 'esc to cancel',
115
207
  };
116
208
  export const AGENT_IDENTITY_CONSTANTS = CONFIG_AGENT_IDENTITY_CONSTANTS;
117
209
  export const TIMING_CONSTANTS = CONFIG_TIMING_CONSTANTS;
@@ -128,6 +220,8 @@ export const WEB_CONSTANTS = CONFIG_WEB_CONSTANTS;
128
220
  export const ADDON_CONSTANTS = CONFIG_ADDON_CONSTANTS;
129
221
  export const AUDITOR_CONSTANTS = CONFIG_AUDITOR_CONSTANTS;
130
222
  export const API_SECURITY_CONSTANTS = CONFIG_API_SECURITY_CONSTANTS;
223
+ /** Owner authentication (#999, specs/2026-10-03-owner-auth.md) — see config/constants.ts. */
224
+ export const OWNER_AUTH_CONSTANTS = CONFIG_OWNER_AUTH_CONSTANTS;
131
225
  // Re-export specific constants that the backend needs from the main config
132
226
  export const ORCHESTRATOR_SESSION_NAME = CONFIG_CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME;
133
227
  export const ORCHESTRATOR_ROLE = 'orchestrator';
@@ -429,10 +523,13 @@ export const CONTROL_PLANE_GUARD_CONSTANTS = {
429
523
  export const AGENT_STATUS_HOOK_CONSTANTS = {
430
524
  /** Hook script, relative to the install root. */
431
525
  HOOK_SCRIPT: 'config/hooks/agent-status/report.sh',
432
- /** Hook events the script is registered for. */
433
- EVENTS: ['Notification', 'PermissionRequest', 'Stop', 'UserPromptSubmit', 'PostToolUse'],
526
+ /**
527
+ * Hook events the script is registered for. PreToolUse, SubagentStart,
528
+ * SubagentStop and SessionStart feed the runtime turn state (specs/2026-10-02-restart-busy-and-resume.md).
529
+ */
530
+ EVENTS: ['Notification', 'PermissionRequest', 'Stop', 'UserPromptSubmit', 'PreToolUse', 'PostToolUse', 'SubagentStart', 'SubagentStop', 'SessionStart'],
434
531
  /** Events that carry a tool matcher; they match every tool. */
435
- TOOL_EVENTS: ['PermissionRequest', 'PostToolUse'],
532
+ TOOL_EVENTS: ['PermissionRequest', 'PreToolUse', 'PostToolUse'],
436
533
  /** Matcher that selects every tool. */
437
534
  ALL_TOOLS_MATCHER: '*',
438
535
  /** Notification types that mean "waiting on the user". */
@@ -1240,6 +1337,15 @@ export const SLACK_TYPING_CONSTANTS = {
1240
1337
  AUTO_WORKING_DELIVERY_MAX_MS: 10 * 60 * 1000,
1241
1338
  /** Deliveries still watched at once; the oldest is dropped past this */
1242
1339
  AUTO_WORKING_MAX_WATCHES: 200,
1340
+ /**
1341
+ * A scheduled brief (trigger / cron work item, `[SCHEDULED]` message)
1342
+ * delivered to an agent this long before an owner message's watch opened,
1343
+ * or any time after, means the agent's next turn is the scheduled one: it
1344
+ * gets no "working on it" under the owner's message. Busy is seen up to a
1345
+ * 30 s poll late, so a brief written just before the owner's message can
1346
+ * still be the turn that shows up.
1347
+ */
1348
+ AUTO_WORKING_SCHEDULED_GRACE_MS: 30 * 1000,
1243
1349
  };
1244
1350
  /**
1245
1351
  * Slack thread context read at delivery time.
@@ -2143,6 +2249,15 @@ export const RUNTIME_EXIT_CONSTANTS = {
2143
2249
  EARLY_EXIT_WINDOW_MS: 60_000,
2144
2250
  /** Characters of cleaned terminal output logged with an unexplained exit (#791) */
2145
2251
  EXIT_DIAGNOSTIC_TAIL_CHARS: 1500,
2252
+ /**
2253
+ * #989: this many `startup_exit`s of one runtime within
2254
+ * STARTUP_EXIT_WINDOW_MS means it keeps dying at start; the owner is told.
2255
+ */
2256
+ STARTUP_EXIT_ALERT_THRESHOLD: 3,
2257
+ /** Window over which repeated `startup_exit`s of one runtime are counted (30 minutes). */
2258
+ STARTUP_EXIT_WINDOW_MS: 30 * 60 * 1000,
2259
+ /** The owner is told about one runtime's startup exits at most this often (24 hours). */
2260
+ STARTUP_EXIT_NOTICE_COOLDOWN_MS: 24 * 60 * 60 * 1000,
2146
2261
  };
2147
2262
  /**
2148
2263
  * Constants for context window monitoring and auto-recovery.
@@ -2474,6 +2589,15 @@ export const CLAUDE_TRANSCRIPT_SYNC_CONSTANTS = {
2474
2589
  * read; the remembered offset keeps it from being counted twice.
2475
2590
  */
2476
2591
  MAX_REMEMBERED_TRANSCRIPTS: 8,
2592
+ /**
2593
+ * #990 cost repair: a cursor's `cost` is lowered to its session's ledger
2594
+ * cost only when it is above it by more than this many USD…
2595
+ */
2596
+ COST_REPAIR_MIN_EXCESS_USD: 1,
2597
+ /** …and by more than this fraction of the ledger cost (price-table drift is ~0.5%). */
2598
+ COST_REPAIR_MIN_EXCESS_FRACTION: 0.02,
2599
+ /** Set to `1` to log what the #990 cost repair would change without changing anything. */
2600
+ COST_REPAIR_DRY_RUN_ENV: 'CREWLY_COST_REPAIR_DRY_RUN',
2477
2601
  /**
2478
2602
  * Context size, in tokens, above which a claude-code agent is asked to
2479
2603
  * compact.
@@ -2971,6 +3095,15 @@ export const SYSTEM_RESOURCE_ALERT_CONSTANTS = {
2971
3095
  POLL_INTERVAL: 60000, // 1 minute
2972
3096
  /** Cooldown between repeated alerts for the same metric (ms) */
2973
3097
  ALERT_COOLDOWN: 600000, // 10 minutes
3098
+ /**
3099
+ * Alert keys that also go to the owner over Slack (#991): critical disk
3100
+ * and memory, and idle agents auto-stopped under memory pressure.
3101
+ */
3102
+ OWNER_NOTICE_KEYS: ['disk_critical', 'memory_critical', 'agents_auto_stopped'],
3103
+ /** Owner Slack notice for the same alert key at most this often (6 hours). */
3104
+ OWNER_NOTICE_COOLDOWN: 6 * 60 * 60 * 1000,
3105
+ /** State file under CREWLY_HOME remembering when the owner was last told, per alert key. */
3106
+ OWNER_NOTICE_STATE_FILENAME: 'system-alert-owner-notices.json',
2974
3107
  /** Thresholds for triggering alerts */
2975
3108
  THRESHOLDS: {
2976
3109
  DISK_WARNING: 85, // 85% used
@@ -3994,6 +4127,25 @@ export const OWNER_RECEIPT_CONSTANTS = {
3994
4127
  MIN_SUMMARY_WEIGHTED_LENGTH: 12,
3995
4128
  /** How the orchestrator is named on the receipt (it is in no team) */
3996
4129
  ORCHESTRATOR_LABEL: 'Orc',
4130
+ /**
4131
+ * The format ask (#856 follow-up): while the nightly receipt is off, the
4132
+ * owner is shown one real sample of it on a decision card and chooses.
4133
+ * Nothing is turned on without his "Turn on" answer.
4134
+ */
4135
+ FORMAT_ASK: {
4136
+ /** Decision kind whose handler applies the answer */
4137
+ DECISION_KIND: 'owner_receipt_format',
4138
+ /** `system.key` of the decision */
4139
+ SYSTEM_KEY: 'nightly-format',
4140
+ /** The sample covers this much time before the ask (ms) */
4141
+ SAMPLE_WINDOW_MS: 24 * 60 * 60 * 1000,
4142
+ /** Unanswered by then: the default (stay off) is applied (ms) */
4143
+ DEADLINE_MS: 3 * 24 * 60 * 60 * 1000,
4144
+ TITLE: 'Nightly receipt · try this format?',
4145
+ QUESTION: 'This is what tonight\'s receipt would look like. Send it to you every night?',
4146
+ OPTION_ON: 'Turn on nightly — this format',
4147
+ OPTION_PER_ASK: 'Keep per-ask format — every ask, one line each',
4148
+ },
3997
4149
  };
3998
4150
  /**
3999
4151
  * Ticket loop (specs/ticket-loop.md, Phase 1): owner messages become tickets
@@ -4930,6 +5082,9 @@ export const SECRET_REDACTION_CONSTANTS = {
4930
5082
  'SLACK_USER_TOKEN',
4931
5083
  'SLACK_SIGNING_SECRET',
4932
5084
  'CREWLY_API_TOKEN',
5085
+ // The per-session agent badge (#999). Its name avoids TOKEN on purpose
5086
+ // (Codex strips such variables), so the suffix rule would miss it.
5087
+ 'CREWLY_AGENT_BADGE',
4933
5088
  ],
4934
5089
  /** Name families masked in `NAME=value` (tested against the upper-cased name). */
4935
5090
  SECRET_NAME_PATTERNS: [/^SLACK_\w*_TOKEN$/, /^CREWLY_\w*_TOKEN$/, /(?:^|_)PRIVATE_KEY$/],
@@ -5349,6 +5504,44 @@ export const TRACE_CONSTANTS = {
5349
5504
  SKIPPED_SKILL_PATH_PREFIXES: ['/agent-hooks', '/traces', '/heartbeat', '/health'],
5350
5505
  /** HTTP statuses recorded as `guard.block` instead of `error` */
5351
5506
  GUARD_BLOCK_STATUSES: [403, 409, 423, 429],
5507
+ // --- Autonomy metrics (#984, specs/2026-10-03-autonomy-metrics.md) ---
5508
+ /** A gap with no progress longer than this is a stall. Override: CREWLY_TRACE_STALL_MINUTES, `?stallMinutes=` */
5509
+ STALL_MINUTES: 30,
5510
+ /** Bounds of a caller-given stall threshold (minutes) */
5511
+ STALL_MINUTES_MIN: 1,
5512
+ STALL_MINUTES_MAX: 7 * 24 * 60,
5513
+ /** Events this long before a stall still explain it (quota, delivery failure) */
5514
+ STALL_CAUSE_LOOKBACK_MS: 5 * 60 * 1000,
5515
+ /** Without turn events, a session's activity points at most this far apart form one busy period */
5516
+ INFERRED_TURN_GAP_MS: 5 * 60 * 1000,
5517
+ /** The owner message this close to the root is the ask, not a touch */
5518
+ ROOT_GRACE_MS: 2 * 60 * 1000,
5519
+ /** The same owner message delivered to two agents within this window is one touch */
5520
+ OWNER_MESSAGE_DEDUPE_MS: 60 * 1000,
5521
+ /** A dashboard write this close to an owner touch is that touch, not a manual intervention */
5522
+ OWNER_ACTION_DEDUPE_MS: 10 * 1000,
5523
+ /** How long computed metrics are reused (an ongoing stall keeps growing) */
5524
+ METRICS_CACHE_TTL_MS: 60 * 1000,
5525
+ /** Most traces whose metrics are cached (≥ MAX_LIST_LIMIT, so one list call never evicts its own rows) */
5526
+ METRICS_CACHE_MAX: 1_000,
5527
+ /** Most rows of `GET /api/traces` when metrics are embedded (each row may read a whole trace file) */
5528
+ METRICS_LIST_MAX: 100,
5529
+ /** Default and largest size of the `trace-read` summary (chars) */
5530
+ READ_DEFAULT_CHARS: 4_000,
5531
+ READ_MIN_CHARS: 600,
5532
+ READ_MAX_CHARS: 16_000,
5533
+ /** Longest event summary shown in a key-event line of the text summary */
5534
+ SUMMARY_EVENT_CHARS: 140,
5535
+ /** Stalls listed in the text summary (the longest first) */
5536
+ SUMMARY_MAX_STALLS: 5,
5537
+ /** Agents / models listed in the text summary (most expensive first) */
5538
+ SUMMARY_MAX_BREAKDOWN: 4,
5539
+ /** Stalls kept in a metrics object (the longest; counts cover all) */
5540
+ METRICS_MAX_STALL_ITEMS: 50,
5541
+ /** Hook event the subagent guard posts to /api/agent-hooks when it sends a subagent back */
5542
+ SUBAGENT_SENDBACK_HOOK_EVENT: 'SubagentSendBack',
5543
+ /** Most ticket labels kept in a trace's tags (specs/2026-10-03-autopilot-experiments.md) */
5544
+ MAX_TAG_LABELS: 20,
5352
5545
  };
5353
5546
  /**
5354
5547
  * Token usage: the unit, the stats endpoint, and the Codex / Antigravity
@@ -5649,5 +5842,12 @@ export const EXPERIMENT_CONSTANTS = {
5649
5842
  MAX_TEXT_LENGTH: 1000,
5650
5843
  /** Kill switch for the scheduler */
5651
5844
  ENV_SWITCH: 'CREWLY_EXPERIMENTS',
5845
+ /** Autopilot cards: extra outcome metrics allowed besides the primary (specs/2026-10-03-autopilot-experiments.md) */
5846
+ MAX_EXTRA_METRICS: 5,
5847
+ /** Autopilot cards: one owner check-in this often while running */
5848
+ CHECK_IN_INTERVAL_MS: 7 * 24 * 60 * 60 * 1000,
5849
+ /** A check-in whose process read (or send) failed is retried after this, doubling up to the max */
5850
+ CHECK_IN_RETRY_MIN_MS: 30 * 60 * 1000,
5851
+ CHECK_IN_RETRY_MAX_MS: 24 * 60 * 60 * 1000,
5652
5852
  };
5653
5853
  //# sourceMappingURL=constants.js.map