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
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Ticket autopilot tracing (specs/2026-10-03-autopilot-experiments.md §1).
3
+ *
4
+ * - The **run trace**: one `autopilot` root per project per local day,
5
+ * tagged `autopilot: {projectId, day}`, holding every autopilot step as an
6
+ * `autopilot.action` event (triage, listed tickets, skips with a reason,
7
+ * budget pause / resume, picks, claims, dispatches, retro).
8
+ * - **Ticket traces**: when work starts on a ticket of a project whose
9
+ * autopilot is on, the ticket runs in a trace tagged with the project and
10
+ * the start day plus the ticket's labels; its WorkItem carries that trace,
11
+ * and every later status change is a `ticket.status` event in it.
12
+ *
13
+ * Every function here is fire-and-forget: it catches its own errors and
14
+ * never throws, so tracing can never break the autopilot or a ticket write.
15
+ *
16
+ * @module services/project-tickets/ticket-autopilot-trace
17
+ */
18
+ import type { TraceActor, TraceOutcome } from '../trace/trace.types.js';
19
+ import { type TicketAutopilotSettings } from '../../types/ticket-autopilot.types.js';
20
+ import type { ProjectTicketStatus } from '../../types/project-ticket.types.js';
21
+ /** Every autopilot step recorded in a run trace (`data.action`). */
22
+ export declare const AUTOPILOT_ACTIONS: readonly ["triage", "triage_ticket", "skip", "budget_paused", "budget_resumed", "pick", "cancel", "claim", "dispatch", "retro_scheduled", "retro_filed", "retro_gap_ticket"];
23
+ /** One autopilot step. */
24
+ export type AutopilotAction = (typeof AUTOPILOT_ACTIONS)[number];
25
+ /** The part of a project the tracing needs. */
26
+ export interface AutopilotTraceProject {
27
+ id: string;
28
+ name: string;
29
+ ticketAutopilot?: Partial<TicketAutopilotSettings> | null;
30
+ }
31
+ /** Input of {@link traceAutopilotAction}. */
32
+ export interface AutopilotActionInput {
33
+ /** One English line */
34
+ summary: string;
35
+ outcome?: TraceOutcome;
36
+ ticketId?: string;
37
+ workItemId?: string;
38
+ /** Agent the step concerns (driver, claimer, assignee) */
39
+ session?: string;
40
+ /** Who did it (default: the system) */
41
+ actor?: TraceActor;
42
+ data?: Record<string, unknown>;
43
+ /** Also record the step in this trace (a ticket's) */
44
+ alsoTraceId?: string | null;
45
+ /** Start the day's run trace when there is none yet (default true; a skip alone never starts one) */
46
+ create?: boolean;
47
+ /** Record into this run trace instead of the one of `now`'s day */
48
+ runTraceId?: string | null;
49
+ now?: Date;
50
+ }
51
+ /**
52
+ * The index key of a project's run on a day.
53
+ *
54
+ * @param projectId - Project id
55
+ * @param day - Local date (YYYY-MM-DD)
56
+ * @returns `<projectId>:<day>`
57
+ */
58
+ export declare function autopilotRunKey(projectId: string, day: string): string;
59
+ /**
60
+ * The index key of a ticket's autopilot trace.
61
+ *
62
+ * @param projectId - Project id
63
+ * @param ticketId - Ticket id
64
+ * @returns `<projectId>:<ticketId>`
65
+ */
66
+ export declare function autopilotTicketKey(projectId: string, ticketId: string): string;
67
+ /**
68
+ * Who a ticket Log actor is.
69
+ *
70
+ * @param actor - `owner`, a session, or a system label
71
+ * @returns Trace actor
72
+ */
73
+ export declare function ticketActor(actor: string | undefined): TraceActor;
74
+ /**
75
+ * The run trace of a project for a local day, started (and tagged) on first use.
76
+ *
77
+ * @param project - Project id and name
78
+ * @param now - Clock (its local date is the run's day)
79
+ * @param create - Start it when missing (default true)
80
+ * @returns Trace id, or null
81
+ */
82
+ export declare function autopilotRunTrace(project: Pick<AutopilotTraceProject, 'id' | 'name'>, now?: Date, create?: boolean): string | null;
83
+ /**
84
+ * Record one autopilot step in the project's run trace of the day (and,
85
+ * when given, in a ticket's trace too).
86
+ *
87
+ * @param project - Project id and name
88
+ * @param action - The step
89
+ * @param input - Summary, refs, data
90
+ * @returns The run trace id, or null
91
+ */
92
+ export declare function traceAutopilotAction(project: Pick<AutopilotTraceProject, 'id' | 'name'>, action: AutopilotAction, input: AutopilotActionInput): string | null;
93
+ /**
94
+ * A new trace for one triage turn, tagged with the project and day: the
95
+ * driver's turn (its calls, usage) stays out of the run trace's event cap.
96
+ *
97
+ * @param project - Project id and name
98
+ * @param ticketCount - Tickets listed
99
+ * @param now - Clock
100
+ * @returns Trace id, or null
101
+ */
102
+ export declare function startTriageTrace(project: Pick<AutopilotTraceProject, 'id' | 'name'>, ticketCount: number, now?: Date): string | null;
103
+ /**
104
+ * Work is about to start on a ticket (`startWork`: AutoClaim, claim,
105
+ * assign). When the project's autopilot is on, the ticket runs in a trace
106
+ * tagged with the project and the start day plus its labels. Reuses the
107
+ * ticket's earlier autopilot trace, else its Request / ticket trace, else
108
+ * starts a `ticket` root. A ticket linked to a broader trace (e.g. the owner
109
+ * conversation that created it) gets its own root, so its numbers are its
110
+ * own. Call before the WorkItem enters the pool and put the id on it; record
111
+ * the start with {@link traceAutopilotTicketStarted} once it succeeded.
112
+ *
113
+ * @param project - The project (its stored autopilot settings decide)
114
+ * @param ticket - Ticket id, title, labels
115
+ * @param opts - Assignee, whether it is a self-claim, who started it
116
+ * @returns The trace id for the ticket's WorkItem, or null (autopilot off / no trace)
117
+ */
118
+ export declare function autopilotTicketTraceForStart(project: AutopilotTraceProject, ticket: {
119
+ id: string;
120
+ title: string;
121
+ labels?: string[];
122
+ }, opts: {
123
+ assignee: string;
124
+ self: boolean;
125
+ actor?: string;
126
+ now?: Date;
127
+ }): string | null;
128
+ /**
129
+ * Work started on a ticket of an autopilot project: record the claim /
130
+ * dispatch in the ticket's trace and in the day's run trace.
131
+ *
132
+ * @param project - The project
133
+ * @param ticket - Ticket id, title, labels
134
+ * @param opts - Assignee, self-claim or not, who started it, the WorkItem, the ticket's trace
135
+ */
136
+ export declare function traceAutopilotTicketStarted(project: AutopilotTraceProject, ticket: {
137
+ id: string;
138
+ title: string;
139
+ labels?: string[];
140
+ }, opts: {
141
+ assignee: string;
142
+ self: boolean;
143
+ actor?: string;
144
+ workItemId?: string;
145
+ traceId: string;
146
+ now?: Date;
147
+ }): void;
148
+ /** A ticket write the listener sees (status and / or labels changed). */
149
+ export interface AutopilotTicketChange {
150
+ projectPath: string;
151
+ ticket: {
152
+ id: string;
153
+ title: string;
154
+ status: ProjectTicketStatus;
155
+ labels: string[];
156
+ assignee: string | null;
157
+ workItemId: string | null;
158
+ };
159
+ before: {
160
+ status: ProjectTicketStatus;
161
+ labels: string[];
162
+ };
163
+ actor: string;
164
+ }
165
+ /**
166
+ * Record a ticket write: `ticket.status` (and new labels) in the ticket's
167
+ * autopilot trace, and `pick` / `cancel` in the run trace when a lead or the
168
+ * orchestrator readies or cancels a ticket of an autopilot project.
169
+ *
170
+ * @param project - The ticket's project (null when unknown)
171
+ * @param change - What changed
172
+ * @param now - Clock
173
+ */
174
+ export declare function traceAutopilotTicketChange(project: AutopilotTraceProject | null, change: AutopilotTicketChange, now?: Date): void;
175
+ /**
176
+ * Listener for {@link ProjectTicketService.onChange}: resolves the ticket's
177
+ * project by path, then {@link traceAutopilotTicketChange}.
178
+ *
179
+ * @param getProjects - Project list (StorageService)
180
+ * @param now - Clock
181
+ * @returns The listener (never throws, never awaited by the ticket write)
182
+ */
183
+ export declare function createAutopilotTicketListener(getProjects: () => Promise<Array<AutopilotTraceProject & {
184
+ path: string;
185
+ }>>, now?: () => Date): (change: AutopilotTicketChange) => void;
186
+ //# sourceMappingURL=ticket-autopilot-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-autopilot-trace.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,341 @@
1
+ /**
2
+ * Ticket autopilot tracing (specs/2026-10-03-autopilot-experiments.md §1).
3
+ *
4
+ * - The **run trace**: one `autopilot` root per project per local day,
5
+ * tagged `autopilot: {projectId, day}`, holding every autopilot step as an
6
+ * `autopilot.action` event (triage, listed tickets, skips with a reason,
7
+ * budget pause / resume, picks, claims, dispatches, retro).
8
+ * - **Ticket traces**: when work starts on a ticket of a project whose
9
+ * autopilot is on, the ticket runs in a trace tagged with the project and
10
+ * the start day plus the ticket's labels; its WorkItem carries that trace,
11
+ * and every later status change is a `ticket.status` event in it.
12
+ *
13
+ * Every function here is fire-and-forget: it catches its own errors and
14
+ * never throws, so tracing can never break the autopilot or a ticket write.
15
+ *
16
+ * @module services/project-tickets/ticket-autopilot-trace
17
+ */
18
+ import * as path from 'path';
19
+ import { getTraceContext } from '../trace/trace-context.service.js';
20
+ import { resolveTicketAutopilotSettings } from '../../types/ticket-autopilot.types.js';
21
+ import { localDateKey } from './ticket-autopilot-decision.js';
22
+ /** Every autopilot step recorded in a run trace (`data.action`). */
23
+ export const AUTOPILOT_ACTIONS = [
24
+ 'triage',
25
+ 'triage_ticket',
26
+ 'skip',
27
+ 'budget_paused',
28
+ 'budget_resumed',
29
+ 'pick',
30
+ 'cancel',
31
+ 'claim',
32
+ 'dispatch',
33
+ 'retro_scheduled',
34
+ 'retro_filed',
35
+ 'retro_gap_ticket',
36
+ ];
37
+ /** Non-agent actors written in ticket Log lines. */
38
+ const SYSTEM_ACTORS = new Set(['crewly', 'system', 'experiments', 'autopilot', 'v1-migration']);
39
+ /**
40
+ * Run a hook, swallowing any error.
41
+ *
42
+ * @param fn - Body
43
+ * @param fallback - Value on error
44
+ * @returns The body's value, or the fallback
45
+ */
46
+ function safely(fn, fallback) {
47
+ try {
48
+ return fn();
49
+ }
50
+ catch {
51
+ return fallback;
52
+ }
53
+ }
54
+ /**
55
+ * The index key of a project's run on a day.
56
+ *
57
+ * @param projectId - Project id
58
+ * @param day - Local date (YYYY-MM-DD)
59
+ * @returns `<projectId>:<day>`
60
+ */
61
+ export function autopilotRunKey(projectId, day) {
62
+ return `${projectId}:${day}`;
63
+ }
64
+ /**
65
+ * The index key of a ticket's autopilot trace.
66
+ *
67
+ * @param projectId - Project id
68
+ * @param ticketId - Ticket id
69
+ * @returns `<projectId>:<ticketId>`
70
+ */
71
+ export function autopilotTicketKey(projectId, ticketId) {
72
+ return `${projectId}:${ticketId}`;
73
+ }
74
+ /**
75
+ * Who a ticket Log actor is.
76
+ *
77
+ * @param actor - `owner`, a session, or a system label
78
+ * @returns Trace actor
79
+ */
80
+ export function ticketActor(actor) {
81
+ if (!actor || SYSTEM_ACTORS.has(actor))
82
+ return { kind: 'system' };
83
+ if (actor === 'owner')
84
+ return { kind: 'owner' };
85
+ return { kind: 'agent', session: actor };
86
+ }
87
+ /**
88
+ * The run trace of a project for a local day, started (and tagged) on first use.
89
+ *
90
+ * @param project - Project id and name
91
+ * @param now - Clock (its local date is the run's day)
92
+ * @param create - Start it when missing (default true)
93
+ * @returns Trace id, or null
94
+ */
95
+ export function autopilotRunTrace(project, now = new Date(), create = true) {
96
+ return safely(() => {
97
+ const ctx = getTraceContext();
98
+ const day = localDateKey(now);
99
+ const key = autopilotRunKey(project.id, day);
100
+ const existing = ctx.store.traceByRef('autopilotRun', key);
101
+ if (existing || !create)
102
+ return existing;
103
+ const traceId = ctx.startTrace({
104
+ kind: 'autopilot',
105
+ summary: `Autopilot run: ${project.name} ${day}`,
106
+ actor: { kind: 'system' },
107
+ refs: {},
108
+ now,
109
+ });
110
+ if (!traceId)
111
+ return null;
112
+ ctx.store.linkRef('autopilotRun', key, traceId);
113
+ ctx.store.tag(traceId, { autopilot: { projectId: project.id, day } });
114
+ return traceId;
115
+ }, null);
116
+ }
117
+ /**
118
+ * Record one autopilot step in the project's run trace of the day (and,
119
+ * when given, in a ticket's trace too).
120
+ *
121
+ * @param project - Project id and name
122
+ * @param action - The step
123
+ * @param input - Summary, refs, data
124
+ * @returns The run trace id, or null
125
+ */
126
+ export function traceAutopilotAction(project, action, input) {
127
+ return safely(() => {
128
+ const now = input.now ?? new Date();
129
+ const runTrace = input.runTraceId !== undefined ? input.runTraceId : autopilotRunTrace(project, now, input.create ?? true);
130
+ const ctx = getTraceContext();
131
+ const refs = {
132
+ ...(input.ticketId ? { ticketId: input.ticketId } : {}),
133
+ ...(input.workItemId ? { workItemId: input.workItemId } : {}),
134
+ ...(input.session ? { session: input.session } : {}),
135
+ };
136
+ const data = { action, projectId: project.id, ...(input.data ?? {}) };
137
+ for (const traceId of new Set([runTrace, input.alsoTraceId].filter((t) => !!t))) {
138
+ ctx.record({
139
+ traceId,
140
+ type: 'autopilot.action',
141
+ actor: input.actor ?? { kind: 'system' },
142
+ summary: input.summary,
143
+ outcome: input.outcome ?? 'info',
144
+ refs,
145
+ data,
146
+ at: now,
147
+ });
148
+ }
149
+ return runTrace;
150
+ }, null);
151
+ }
152
+ /**
153
+ * A new trace for one triage turn, tagged with the project and day: the
154
+ * driver's turn (its calls, usage) stays out of the run trace's event cap.
155
+ *
156
+ * @param project - Project id and name
157
+ * @param ticketCount - Tickets listed
158
+ * @param now - Clock
159
+ * @returns Trace id, or null
160
+ */
161
+ export function startTriageTrace(project, ticketCount, now = new Date()) {
162
+ return safely(() => {
163
+ const ctx = getTraceContext();
164
+ const day = localDateKey(now);
165
+ const traceId = ctx.startTrace({
166
+ kind: 'triage',
167
+ summary: `Triage: ${project.name} ${day} (${ticketCount} ticket${ticketCount === 1 ? '' : 's'})`,
168
+ actor: { kind: 'system' },
169
+ refs: {},
170
+ now,
171
+ });
172
+ if (traceId)
173
+ ctx.store.tag(traceId, { autopilot: { projectId: project.id, day } });
174
+ return traceId;
175
+ }, null);
176
+ }
177
+ /**
178
+ * Work is about to start on a ticket (`startWork`: AutoClaim, claim,
179
+ * assign). When the project's autopilot is on, the ticket runs in a trace
180
+ * tagged with the project and the start day plus its labels. Reuses the
181
+ * ticket's earlier autopilot trace, else its Request / ticket trace, else
182
+ * starts a `ticket` root. A ticket linked to a broader trace (e.g. the owner
183
+ * conversation that created it) gets its own root, so its numbers are its
184
+ * own. Call before the WorkItem enters the pool and put the id on it; record
185
+ * the start with {@link traceAutopilotTicketStarted} once it succeeded.
186
+ *
187
+ * @param project - The project (its stored autopilot settings decide)
188
+ * @param ticket - Ticket id, title, labels
189
+ * @param opts - Assignee, whether it is a self-claim, who started it
190
+ * @returns The trace id for the ticket's WorkItem, or null (autopilot off / no trace)
191
+ */
192
+ export function autopilotTicketTraceForStart(project, ticket, opts) {
193
+ return safely(() => {
194
+ if (!resolveTicketAutopilotSettings(project.ticketAutopilot).enabled)
195
+ return null;
196
+ const ctx = getTraceContext();
197
+ const store = ctx.store;
198
+ const now = opts.now ?? new Date();
199
+ const key = autopilotTicketKey(project.id, ticket.id);
200
+ let traceId = store.traceByRef('autopilotTicket', key);
201
+ if (!traceId) {
202
+ const linked = store.traceByRef('ticket', ticket.id);
203
+ const entry = linked ? store.getEntry(linked) : null;
204
+ const own = !!entry &&
205
+ (entry.root.kind === 'request' || entry.root.kind === 'ticket') &&
206
+ (!entry.tags?.autopilot || entry.tags.autopilot.projectId === project.id);
207
+ traceId = own
208
+ ? linked
209
+ : ctx.startTrace({
210
+ kind: 'ticket',
211
+ summary: `${ticket.id}: ${ticket.title}`,
212
+ actor: opts.self ? { kind: 'agent', session: opts.assignee } : ticketActor(opts.actor),
213
+ refs: { ticketId: ticket.id },
214
+ now,
215
+ });
216
+ if (!traceId)
217
+ return null;
218
+ store.linkRef('autopilotTicket', key, traceId);
219
+ store.linkRef('ticket', ticket.id, traceId);
220
+ }
221
+ store.tag(traceId, { autopilot: { projectId: project.id, day: localDateKey(now) }, labels: ticket.labels ?? [] });
222
+ return traceId;
223
+ }, null);
224
+ }
225
+ /**
226
+ * Work started on a ticket of an autopilot project: record the claim /
227
+ * dispatch in the ticket's trace and in the day's run trace.
228
+ *
229
+ * @param project - The project
230
+ * @param ticket - Ticket id, title, labels
231
+ * @param opts - Assignee, self-claim or not, who started it, the WorkItem, the ticket's trace
232
+ */
233
+ export function traceAutopilotTicketStarted(project, ticket, opts) {
234
+ safely(() => {
235
+ traceAutopilotAction(project, opts.self ? 'claim' : 'dispatch', {
236
+ summary: opts.self
237
+ ? `${opts.assignee} claimed ${ticket.id}: ${ticket.title}`
238
+ : `${ticket.id} assigned to ${opts.assignee}${opts.actor ? ` by ${opts.actor}` : ''}: ${ticket.title}`,
239
+ outcome: 'ok',
240
+ ticketId: ticket.id,
241
+ ...(opts.workItemId ? { workItemId: opts.workItemId } : {}),
242
+ session: opts.assignee,
243
+ actor: opts.self ? { kind: 'agent', session: opts.assignee } : ticketActor(opts.actor),
244
+ data: { labels: (ticket.labels ?? []).join(',') },
245
+ alsoTraceId: opts.traceId,
246
+ ...(opts.now ? { now: opts.now } : {}),
247
+ });
248
+ }, undefined);
249
+ }
250
+ /** Outcome of a ticket status in its trace. */
251
+ const TICKET_STATUS_OUTCOME = {
252
+ done: 'ok',
253
+ cancelled: 'skipped',
254
+ review: 'queued',
255
+ };
256
+ /**
257
+ * Record a ticket write: `ticket.status` (and new labels) in the ticket's
258
+ * autopilot trace, and `pick` / `cancel` in the run trace when a lead or the
259
+ * orchestrator readies or cancels a ticket of an autopilot project.
260
+ *
261
+ * @param project - The ticket's project (null when unknown)
262
+ * @param change - What changed
263
+ * @param now - Clock
264
+ */
265
+ export function traceAutopilotTicketChange(project, change, now = new Date()) {
266
+ safely(() => {
267
+ if (!project)
268
+ return;
269
+ const ctx = getTraceContext();
270
+ const { ticket, before } = change;
271
+ const traceId = ctx.store.traceByRef('autopilotTicket', autopilotTicketKey(project.id, ticket.id));
272
+ if (traceId) {
273
+ const added = ticket.labels.filter((l) => !before.labels.includes(l));
274
+ if (added.length > 0)
275
+ ctx.store.tag(traceId, { labels: added });
276
+ if (ticket.status !== before.status) {
277
+ ctx.record({
278
+ traceId,
279
+ type: 'ticket.status',
280
+ actor: ticketActor(change.actor),
281
+ summary: `Ticket ${ticket.id} ${before.status} → ${ticket.status}: ${ticket.title}`,
282
+ outcome: TICKET_STATUS_OUTCOME[ticket.status] ?? 'info',
283
+ refs: { ticketId: ticket.id, ...(ticket.assignee ? { session: ticket.assignee } : {}), ...(ticket.workItemId ? { workItemId: ticket.workItemId } : {}) },
284
+ data: { from: before.status, to: ticket.status, projectId: project.id },
285
+ at: now,
286
+ });
287
+ }
288
+ }
289
+ if (ticket.status === before.status || !resolveTicketAutopilotSettings(project.ticketAutopilot).enabled)
290
+ return;
291
+ const actor = ticketActor(change.actor);
292
+ if (actor.kind !== 'agent')
293
+ return;
294
+ if (ticket.status === 'ready') {
295
+ traceAutopilotAction(project, 'pick', {
296
+ summary: `${change.actor} made ${ticket.id} ready: ${ticket.title}`,
297
+ outcome: 'ok',
298
+ ticketId: ticket.id,
299
+ session: change.actor,
300
+ actor,
301
+ data: { from: before.status, labels: ticket.labels.join(',') },
302
+ now,
303
+ });
304
+ }
305
+ else if (ticket.status === 'cancelled') {
306
+ traceAutopilotAction(project, 'cancel', {
307
+ summary: `${change.actor} cancelled ${ticket.id}: ${ticket.title}`,
308
+ outcome: 'skipped',
309
+ ticketId: ticket.id,
310
+ session: change.actor,
311
+ actor,
312
+ data: { from: before.status, labels: ticket.labels.join(',') },
313
+ now,
314
+ });
315
+ }
316
+ }, undefined);
317
+ }
318
+ /**
319
+ * Listener for {@link ProjectTicketService.onChange}: resolves the ticket's
320
+ * project by path, then {@link traceAutopilotTicketChange}.
321
+ *
322
+ * @param getProjects - Project list (StorageService)
323
+ * @param now - Clock
324
+ * @returns The listener (never throws, never awaited by the ticket write)
325
+ */
326
+ export function createAutopilotTicketListener(getProjects, now = () => new Date()) {
327
+ return (change) => {
328
+ void (async () => {
329
+ try {
330
+ const projects = await getProjects();
331
+ const wanted = path.resolve(change.projectPath);
332
+ const project = projects.find((p) => !!p.path && path.resolve(p.path) === wanted) ?? null;
333
+ traceAutopilotTicketChange(project, change, now());
334
+ }
335
+ catch {
336
+ // Tracing never affects a ticket write.
337
+ }
338
+ })();
339
+ };
340
+ }
341
+ //# sourceMappingURL=ticket-autopilot-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-autopilot-trace.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-trace.ts"],"names":[],"mappings":"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"}