crewly 1.20.105 → 1.20.107

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 (580) hide show
  1. package/README.md +22 -12
  2. package/config/constants.ts +43 -0
  3. package/config/index.ts +2 -0
  4. package/config/skills/_common/lib.sh +55 -2
  5. package/config/skills/_common/lib.test.sh +58 -1
  6. package/config/skills/_common/task-pool-body-shape.test.sh +60 -0
  7. package/config/skills/agent/core/cancel-followup/execute.sh +18 -3
  8. package/config/skills/agent/core/cancel-followup/execute.test.sh +73 -0
  9. package/config/skills/agent/core/complete-task/execute.sh +1 -1
  10. package/config/skills/agent/core/create-intent-tasks/execute.sh +1 -1
  11. package/config/skills/agent/core/create-task/SKILL.md +1 -0
  12. package/config/skills/agent/core/create-task/execute.sh +10 -0
  13. package/config/skills/agent/core/decompose-intent/execute.sh +1 -1
  14. package/config/skills/agent/core/handoff-task/execute.sh +1 -1
  15. package/config/skills/agent/core/list-my-followups/SKILL.md +1 -1
  16. package/config/skills/agent/core/list-my-followups/execute.sh +25 -3
  17. package/config/skills/agent/core/list-my-followups/execute.test.sh +72 -0
  18. package/config/skills/agent/core/poll-tasks/execute.sh +3 -3
  19. package/config/skills/agent/core/reply-channel/SKILL.md +1 -1
  20. package/config/skills/agent/core/report-progress/execute.sh +1 -1
  21. package/config/skills/agent/core/report-status/execute.sh +1 -1
  22. package/config/skills/agent/core/slack-post/SKILL.md +1 -1
  23. package/config/skills/agent/core/todo-add/SKILL.md +64 -0
  24. package/config/skills/agent/core/todo-add/execute.sh +84 -0
  25. package/config/skills/agent/core/todo-add/execute.test.sh +76 -0
  26. package/config/skills/agent/core/todo-lists/SKILL.md +58 -0
  27. package/config/skills/agent/core/todo-lists/execute.sh +70 -0
  28. package/config/skills/agent/core/todo-lists/execute.test.sh +77 -0
  29. package/config/skills/agent/core/todo-tasks/SKILL.md +59 -0
  30. package/config/skills/agent/core/todo-tasks/execute.sh +78 -0
  31. package/config/skills/agent/core/todo-tasks/execute.test.sh +74 -0
  32. package/config/skills/agent/core/todo-update/SKILL.md +63 -0
  33. package/config/skills/agent/core/todo-update/execute.sh +115 -0
  34. package/config/skills/agent/core/todo-update/execute.test.sh +82 -0
  35. package/config/skills/agent/core/update-intent-task/execute.sh +1 -1
  36. package/config/skills/agent/marketing/brand-onboarding/execute.sh +1 -1
  37. package/config/skills/agent/marketing/submit-for-approval/execute.sh +1 -1
  38. package/config/skills/agent/remote-browser/SOP-google-flow-video.md +1 -1
  39. package/config/skills/agent/remote-browser/execute.sh +33 -1
  40. package/config/skills/agent/remote-browser/execute.test.sh +62 -0
  41. package/config/skills/agent/screenshot-compare/execute.sh +1 -1
  42. package/config/skills/agent/transcribe-audio/SKILL.md +1 -1
  43. package/config/skills/agent/transcribe-audio/execute.sh +1 -1
  44. package/config/skills/agent/transcribe-audio/instructions.md +1 -1
  45. package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
  46. package/config/skills/orchestrator/get-tasks/SKILL.md +7 -1
  47. package/config/skills/orchestrator/get-tasks/execute.sh +51 -28
  48. package/config/skills/orchestrator/get-tasks/execute.test.sh +67 -0
  49. package/config/skills/orchestrator/heartbeat/execute.sh +2 -2
  50. package/config/skills/orchestrator/list-missions/execute.sh +1 -1
  51. package/config/skills/orchestrator/list-missions/execute.test.sh +38 -11
  52. package/config/skills/team-leader/decompose-goal/SKILL.md +1 -0
  53. package/config/skills/team-leader/decompose-goal/execute.sh +17 -2
  54. package/config/skills/team-leader/delegate-task/SKILL.md +1 -0
  55. package/config/skills/team-leader/delegate-task/execute.sh +6 -2
  56. package/dist/backend/backend/src/constants.d.ts +264 -2
  57. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  58. package/dist/backend/backend/src/constants.js +255 -3
  59. package/dist/backend/backend/src/constants.js.map +1 -1
  60. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +33 -0
  61. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  62. package/dist/backend/backend/src/controllers/browser/browser.controller.js +176 -9
  63. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  64. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  65. package/dist/backend/backend/src/controllers/chat/chat.controller.js +38 -35
  66. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  67. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +10 -45
  68. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  69. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +40 -89
  70. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  71. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.d.ts +51 -0
  72. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.d.ts.map +1 -0
  73. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js +223 -0
  74. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js.map +1 -0
  75. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts +25 -0
  76. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts.map +1 -0
  77. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js +42 -0
  78. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js.map +1 -0
  79. package/dist/backend/backend/src/controllers/session/session.controller.d.ts +2 -1
  80. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  81. package/dist/backend/backend/src/controllers/session/session.controller.js +21 -0
  82. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  83. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  84. package/dist/backend/backend/src/controllers/slack/slack.controller.js +51 -3
  85. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  86. package/dist/backend/backend/src/controllers/system/restart-readiness.controller.d.ts +23 -0
  87. package/dist/backend/backend/src/controllers/system/restart-readiness.controller.d.ts.map +1 -0
  88. package/dist/backend/backend/src/controllers/system/restart-readiness.controller.js +35 -0
  89. package/dist/backend/backend/src/controllers/system/restart-readiness.controller.js.map +1 -0
  90. package/dist/backend/backend/src/controllers/system/system.controller.d.ts +5 -3
  91. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  92. package/dist/backend/backend/src/controllers/system/system.controller.js +27 -6
  93. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  94. package/dist/backend/backend/src/controllers/system/system.routes.d.ts.map +1 -1
  95. package/dist/backend/backend/src/controllers/system/system.routes.js +3 -0
  96. package/dist/backend/backend/src/controllers/system/system.routes.js.map +1 -1
  97. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  98. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +29 -1
  99. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  100. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  101. package/dist/backend/backend/src/controllers/team/team.controller.js +86 -6
  102. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  103. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts +41 -0
  104. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -0
  105. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +135 -0
  106. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -0
  107. package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts +18 -0
  108. package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts.map +1 -0
  109. package/dist/backend/backend/src/controllers/tickets/tickets.routes.js +25 -0
  110. package/dist/backend/backend/src/controllers/tickets/tickets.routes.js.map +1 -0
  111. package/dist/backend/backend/src/index.d.ts +70 -1
  112. package/dist/backend/backend/src/index.d.ts.map +1 -1
  113. package/dist/backend/backend/src/index.js +352 -71
  114. package/dist/backend/backend/src/index.js.map +1 -1
  115. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  116. package/dist/backend/backend/src/routes/api.routes.js +6 -0
  117. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  118. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts +128 -0
  119. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts.map +1 -0
  120. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js +200 -0
  121. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js.map +1 -0
  122. package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +2 -2
  123. package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +3 -1
  125. package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
  126. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +4 -0
  127. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  128. package/dist/backend/backend/src/services/agent/agent-registration.service.js +61 -4
  129. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  130. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +30 -0
  131. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  132. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +62 -1
  133. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  134. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +2 -1
  136. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +0 -2
  138. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  139. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +0 -2
  140. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  141. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +65 -1
  142. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  143. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +113 -10
  144. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  145. package/dist/backend/backend/src/services/agent/restore-filter.d.ts +12 -0
  146. package/dist/backend/backend/src/services/agent/restore-filter.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/agent/restore-filter.js +19 -0
  148. package/dist/backend/backend/src/services/agent/restore-filter.js.map +1 -1
  149. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  150. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +3 -2
  151. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  152. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts +28 -0
  153. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -0
  154. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js +34 -0
  155. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -0
  156. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +57 -5
  157. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  158. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +98 -18
  159. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  160. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +12 -1
  161. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  162. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +25 -4
  163. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  164. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts +2 -1
  165. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts.map +1 -1
  166. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js +5 -1
  167. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js.map +1 -1
  168. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts +38 -0
  169. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
  170. package/dist/backend/backend/src/services/browser/browser-session.service.js +34 -0
  171. package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
  172. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +6 -0
  173. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +5 -0
  175. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  176. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts.map +1 -1
  177. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js +7 -2
  178. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js.map +1 -1
  179. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +23 -1
  180. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  181. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +58 -1
  182. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  183. package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.d.ts +63 -0
  184. package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.d.ts.map +1 -0
  185. package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.js +72 -0
  186. package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.js.map +1 -0
  187. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
  188. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  189. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +15 -0
  190. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  191. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  192. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +6 -1
  193. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  194. package/dist/backend/backend/src/services/connector/connector-access.service.d.ts +2 -2
  195. package/dist/backend/backend/src/services/connector/connector-access.service.d.ts.map +1 -1
  196. package/dist/backend/backend/src/services/connector/connector-access.service.js +2 -2
  197. package/dist/backend/backend/src/services/connector/connector-access.service.js.map +1 -1
  198. package/dist/backend/backend/src/services/core/retry.util.d.ts +5 -0
  199. package/dist/backend/backend/src/services/core/retry.util.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/core/retry.util.js +2 -2
  201. package/dist/backend/backend/src/services/core/retry.util.js.map +1 -1
  202. package/dist/backend/backend/src/services/factory.service.js +3 -3
  203. package/dist/backend/backend/src/services/factory.service.js.map +1 -1
  204. package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
  205. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +24 -1
  206. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
  207. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +9 -0
  208. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  209. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +55 -0
  210. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  211. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +7 -0
  212. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  213. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +12 -0
  214. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  215. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +36 -1
  216. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  217. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +90 -2
  218. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  219. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.d.ts +250 -0
  220. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.d.ts.map +1 -0
  221. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.js +367 -0
  222. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.js.map +1 -0
  223. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts +116 -0
  224. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts.map +1 -0
  225. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js +220 -0
  226. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js.map +1 -0
  227. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -1
  228. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js +22 -16
  229. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
  230. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +11 -1
  231. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
  232. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  233. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +9 -9
  234. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  235. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +189 -0
  236. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -0
  237. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js +246 -0
  238. package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -0
  239. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts +153 -0
  240. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts.map +1 -0
  241. package/dist/backend/backend/src/services/restart/interrupted-turns.js +279 -0
  242. package/dist/backend/backend/src/services/restart/interrupted-turns.js.map +1 -0
  243. package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts +176 -0
  244. package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts.map +1 -0
  245. package/dist/backend/backend/src/services/restart/restart-drain.service.js +298 -0
  246. package/dist/backend/backend/src/services/restart/restart-drain.service.js.map +1 -0
  247. package/dist/backend/backend/src/services/restart/turn-probe.d.ts +52 -0
  248. package/dist/backend/backend/src/services/restart/turn-probe.d.ts.map +1 -0
  249. package/dist/backend/backend/src/services/restart/turn-probe.js +61 -0
  250. package/dist/backend/backend/src/services/restart/turn-probe.js.map +1 -0
  251. package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.d.ts +70 -0
  252. package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.d.ts.map +1 -0
  253. package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.js +105 -0
  254. package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.js.map +1 -0
  255. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +2 -0
  256. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  257. package/dist/backend/backend/src/services/session/pty/pty-session.js +53 -1
  258. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  259. package/dist/backend/backend/src/services/session/session-binding.d.ts +125 -0
  260. package/dist/backend/backend/src/services/session/session-binding.d.ts.map +1 -0
  261. package/dist/backend/backend/src/services/session/session-binding.js +183 -0
  262. package/dist/backend/backend/src/services/session/session-binding.js.map +1 -0
  263. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  264. package/dist/backend/backend/src/services/session/session-handoff.service.js +19 -0
  265. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  266. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts +10 -0
  267. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  268. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +37 -1
  269. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  270. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts +4 -3
  271. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts.map +1 -1
  272. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js +4 -3
  273. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js.map +1 -1
  274. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +72 -7
  275. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  276. package/dist/backend/backend/src/services/slack/slack-initializer.js +185 -23
  277. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  278. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +4 -45
  279. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  280. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +57 -190
  281. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  282. package/dist/backend/backend/src/services/slack/slack-source-preference.service.d.ts +59 -0
  283. package/dist/backend/backend/src/services/slack/slack-source-preference.service.d.ts.map +1 -0
  284. package/dist/backend/backend/src/services/slack/slack-source-preference.service.js +69 -0
  285. package/dist/backend/backend/src/services/slack/slack-source-preference.service.js.map +1 -0
  286. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +18 -0
  287. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  288. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +64 -3
  289. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  290. package/dist/backend/backend/src/services/slack/slack.service.d.ts +33 -1
  291. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  292. package/dist/backend/backend/src/services/slack/slack.service.js +129 -4
  293. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  294. package/dist/backend/backend/src/services/task-pool/pool-archive-migration.d.ts +108 -0
  295. package/dist/backend/backend/src/services/task-pool/pool-archive-migration.d.ts.map +1 -0
  296. package/dist/backend/backend/src/services/task-pool/pool-archive-migration.js +193 -0
  297. package/dist/backend/backend/src/services/task-pool/pool-archive-migration.js.map +1 -0
  298. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +15 -0
  299. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
  300. package/dist/backend/backend/src/services/task-pool/pool-storage.js +30 -0
  301. package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
  302. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +41 -1
  303. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  304. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +55 -1
  305. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  306. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts +7 -0
  307. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -1
  308. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +32 -1
  309. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -1
  310. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  311. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +4 -3
  312. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  313. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
  314. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +12 -0
  315. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
  316. package/dist/backend/backend/src/services/v3/request.service.d.ts +7 -0
  317. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
  318. package/dist/backend/backend/src/services/v3/request.service.js +17 -0
  319. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
  320. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts +279 -0
  321. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -0
  322. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +458 -0
  323. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -0
  324. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +376 -0
  325. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -0
  326. package/dist/backend/backend/src/services/v3/ticket-intake.service.js +566 -0
  327. package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -0
  328. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
  329. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +3 -3
  330. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
  331. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +28 -4
  332. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
  333. package/dist/backend/backend/src/services/v3/trigger-engine.service.js +40 -10
  334. package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
  335. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +1 -0
  336. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  337. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +3 -3
  338. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  339. package/dist/backend/backend/src/types/slack.types.d.ts +29 -0
  340. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  341. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  342. package/dist/backend/backend/src/types/thread-status.types.d.ts +26 -0
  343. package/dist/backend/backend/src/types/thread-status.types.d.ts.map +1 -1
  344. package/dist/backend/backend/src/types/thread-status.types.js +17 -0
  345. package/dist/backend/backend/src/types/thread-status.types.js.map +1 -1
  346. package/dist/backend/backend/src/types/v2/index.d.ts +3 -2
  347. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  348. package/dist/backend/backend/src/types/v2/index.js +1 -1
  349. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  350. package/dist/backend/backend/src/types/v2/request.types.d.ts +39 -3
  351. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
  352. package/dist/backend/backend/src/types/v2/request.types.js +11 -2
  353. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
  354. package/dist/backend/backend/src/types/v2/ticket.types.d.ts +173 -0
  355. package/dist/backend/backend/src/types/v2/ticket.types.d.ts.map +1 -0
  356. package/dist/backend/backend/src/types/v2/ticket.types.js +203 -0
  357. package/dist/backend/backend/src/types/v2/ticket.types.js.map +1 -0
  358. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +26 -0
  359. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
  360. package/dist/backend/backend/src/utils/agent-caller.utils.js +40 -3
  361. package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
  362. package/dist/backend/backend/src/utils/gemini-auth-settings.d.ts +62 -0
  363. package/dist/backend/backend/src/utils/gemini-auth-settings.d.ts.map +1 -0
  364. package/dist/backend/backend/src/utils/gemini-auth-settings.js +104 -0
  365. package/dist/backend/backend/src/utils/gemini-auth-settings.js.map +1 -0
  366. package/dist/backend/backend/src/utils/local-api-url.utils.d.ts +56 -0
  367. package/dist/backend/backend/src/utils/local-api-url.utils.d.ts.map +1 -0
  368. package/dist/backend/backend/src/utils/local-api-url.utils.js +80 -0
  369. package/dist/backend/backend/src/utils/local-api-url.utils.js.map +1 -0
  370. package/dist/backend/build-info.json +2 -2
  371. package/dist/backend/config/constants.d.ts +40 -0
  372. package/dist/backend/config/constants.d.ts.map +1 -1
  373. package/dist/backend/config/constants.js +41 -0
  374. package/dist/backend/config/constants.js.map +1 -1
  375. package/dist/backend/config/index.d.ts +4 -2
  376. package/dist/backend/config/index.d.ts.map +1 -1
  377. package/dist/backend/config/index.js +2 -2
  378. package/dist/backend/config/index.js.map +1 -1
  379. package/dist/cli/backend/src/constants.d.ts +264 -2
  380. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  381. package/dist/cli/backend/src/constants.js +255 -3
  382. package/dist/cli/backend/src/constants.js.map +1 -1
  383. package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts +2 -2
  384. package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
  385. package/dist/cli/backend/src/services/agent/active-work-briefing.service.js +3 -1
  386. package/dist/cli/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
  387. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +4 -0
  388. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  389. package/dist/cli/backend/src/services/agent/agent-registration.service.js +61 -4
  390. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  391. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +30 -0
  392. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  393. package/dist/cli/backend/src/services/agent/claude-runtime.service.js +62 -1
  394. package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  395. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  396. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +2 -1
  397. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  398. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +0 -2
  399. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  400. package/dist/cli/backend/src/services/agent/crewly-agent/types.js +0 -2
  401. package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  402. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +65 -1
  403. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  404. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +113 -10
  405. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  406. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  407. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +3 -2
  408. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  409. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts +28 -0
  410. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -0
  411. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js +34 -0
  412. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -0
  413. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +6 -0
  414. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  415. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +5 -0
  416. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  417. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +23 -1
  418. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  419. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +58 -1
  420. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  421. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
  422. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  423. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +15 -0
  424. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  425. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +7 -0
  426. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  427. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +12 -0
  428. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  429. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +36 -1
  430. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  431. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +90 -2
  432. package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  433. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +189 -0
  434. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -0
  435. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js +246 -0
  436. package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -0
  437. package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts +176 -0
  438. package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts.map +1 -0
  439. package/dist/cli/backend/src/services/restart/restart-drain.service.js +298 -0
  440. package/dist/cli/backend/src/services/restart/restart-drain.service.js.map +1 -0
  441. package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.d.ts +70 -0
  442. package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.d.ts.map +1 -0
  443. package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.js +105 -0
  444. package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.js.map +1 -0
  445. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +2 -0
  446. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  447. package/dist/cli/backend/src/services/session/pty/pty-session.js +53 -1
  448. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
  449. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  450. package/dist/cli/backend/src/services/session/session-handoff.service.js +19 -0
  451. package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -1
  452. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts +10 -0
  453. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  454. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +37 -1
  455. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  456. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +4 -45
  457. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  458. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +57 -190
  459. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  460. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +18 -0
  461. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  462. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +64 -3
  463. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  464. package/dist/cli/backend/src/services/slack/slack.service.d.ts +33 -1
  465. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  466. package/dist/cli/backend/src/services/slack/slack.service.js +129 -4
  467. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  468. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +15 -0
  469. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
  470. package/dist/cli/backend/src/services/task-pool/pool-storage.js +30 -0
  471. package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
  472. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +41 -1
  473. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  474. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +55 -1
  475. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  476. package/dist/cli/backend/src/services/v3/request.service.d.ts +7 -0
  477. package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
  478. package/dist/cli/backend/src/services/v3/request.service.js +17 -0
  479. package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
  480. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts +279 -0
  481. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -0
  482. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +458 -0
  483. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -0
  484. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +376 -0
  485. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -0
  486. package/dist/cli/backend/src/services/v3/ticket-intake.service.js +566 -0
  487. package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -0
  488. package/dist/cli/backend/src/types/slack.types.d.ts +29 -0
  489. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  490. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  491. package/dist/cli/backend/src/types/thread-status.types.d.ts +26 -0
  492. package/dist/cli/backend/src/types/thread-status.types.d.ts.map +1 -1
  493. package/dist/cli/backend/src/types/thread-status.types.js +17 -0
  494. package/dist/cli/backend/src/types/thread-status.types.js.map +1 -1
  495. package/dist/cli/backend/src/types/v2/index.d.ts +3 -2
  496. package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
  497. package/dist/cli/backend/src/types/v2/index.js +1 -1
  498. package/dist/cli/backend/src/types/v2/index.js.map +1 -1
  499. package/dist/cli/backend/src/types/v2/request.types.d.ts +39 -3
  500. package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
  501. package/dist/cli/backend/src/types/v2/request.types.js +11 -2
  502. package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
  503. package/dist/cli/backend/src/types/v2/ticket.types.d.ts +173 -0
  504. package/dist/cli/backend/src/types/v2/ticket.types.d.ts.map +1 -0
  505. package/dist/cli/backend/src/types/v2/ticket.types.js +203 -0
  506. package/dist/cli/backend/src/types/v2/ticket.types.js.map +1 -0
  507. package/dist/cli/backend/src/utils/gemini-auth-settings.d.ts +62 -0
  508. package/dist/cli/backend/src/utils/gemini-auth-settings.d.ts.map +1 -0
  509. package/dist/cli/backend/src/utils/gemini-auth-settings.js +104 -0
  510. package/dist/cli/backend/src/utils/gemini-auth-settings.js.map +1 -0
  511. package/dist/cli/backend/src/utils/local-api-url.utils.d.ts +56 -0
  512. package/dist/cli/backend/src/utils/local-api-url.utils.d.ts.map +1 -0
  513. package/dist/cli/backend/src/utils/local-api-url.utils.js +80 -0
  514. package/dist/cli/backend/src/utils/local-api-url.utils.js.map +1 -0
  515. package/dist/cli/cli/src/commands/doctor.d.ts +73 -2
  516. package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -1
  517. package/dist/cli/cli/src/commands/doctor.js +250 -8
  518. package/dist/cli/cli/src/commands/doctor.js.map +1 -1
  519. package/dist/cli/cli/src/commands/install.js +2 -0
  520. package/dist/cli/cli/src/commands/install.js.map +1 -1
  521. package/dist/cli/cli/src/commands/onboard.d.ts +68 -0
  522. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  523. package/dist/cli/cli/src/commands/onboard.js +149 -18
  524. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  525. package/dist/cli/cli/src/commands/service.d.ts +6 -0
  526. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  527. package/dist/cli/cli/src/commands/service.js +152 -50
  528. package/dist/cli/cli/src/commands/service.js.map +1 -1
  529. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  530. package/dist/cli/cli/src/commands/start.js +25 -80
  531. package/dist/cli/cli/src/commands/start.js.map +1 -1
  532. package/dist/cli/cli/src/commands/status.d.ts +17 -1
  533. package/dist/cli/cli/src/commands/status.d.ts.map +1 -1
  534. package/dist/cli/cli/src/commands/status.js +133 -68
  535. package/dist/cli/cli/src/commands/status.js.map +1 -1
  536. package/dist/cli/cli/src/commands/stop.d.ts +28 -1
  537. package/dist/cli/cli/src/commands/stop.d.ts.map +1 -1
  538. package/dist/cli/cli/src/commands/stop.js +260 -100
  539. package/dist/cli/cli/src/commands/stop.js.map +1 -1
  540. package/dist/cli/cli/src/index.js +3 -2
  541. package/dist/cli/cli/src/index.js.map +1 -1
  542. package/dist/cli/cli/src/scripts/ensure-node-pty.d.ts +68 -0
  543. package/dist/cli/cli/src/scripts/ensure-node-pty.d.ts.map +1 -0
  544. package/dist/cli/cli/src/scripts/ensure-node-pty.js +167 -0
  545. package/dist/cli/cli/src/scripts/ensure-node-pty.js.map +1 -0
  546. package/dist/cli/cli/src/utils/backend-status.d.ts +175 -0
  547. package/dist/cli/cli/src/utils/backend-status.d.ts.map +1 -0
  548. package/dist/cli/cli/src/utils/backend-status.js +322 -0
  549. package/dist/cli/cli/src/utils/backend-status.js.map +1 -0
  550. package/dist/cli/cli/src/utils/marketplace.d.ts +31 -2
  551. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  552. package/dist/cli/cli/src/utils/marketplace.js +78 -20
  553. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  554. package/dist/cli/cli/src/utils/native-toolchain.d.ts +53 -8
  555. package/dist/cli/cli/src/utils/native-toolchain.d.ts.map +1 -1
  556. package/dist/cli/cli/src/utils/native-toolchain.js +107 -15
  557. package/dist/cli/cli/src/utils/native-toolchain.js.map +1 -1
  558. package/dist/cli/cli/src/utils/process-cleanup.d.ts +38 -6
  559. package/dist/cli/cli/src/utils/process-cleanup.d.ts.map +1 -1
  560. package/dist/cli/cli/src/utils/process-cleanup.js +83 -53
  561. package/dist/cli/cli/src/utils/process-cleanup.js.map +1 -1
  562. package/dist/cli/cli/src/utils/runtime-auth.d.ts +130 -0
  563. package/dist/cli/cli/src/utils/runtime-auth.d.ts.map +1 -0
  564. package/dist/cli/cli/src/utils/runtime-auth.js +248 -0
  565. package/dist/cli/cli/src/utils/runtime-auth.js.map +1 -0
  566. package/dist/cli/cli/src/utils/safe-shutdown.d.ts +137 -0
  567. package/dist/cli/cli/src/utils/safe-shutdown.d.ts.map +1 -0
  568. package/dist/cli/cli/src/utils/safe-shutdown.js +236 -0
  569. package/dist/cli/cli/src/utils/safe-shutdown.js.map +1 -0
  570. package/dist/cli/config/constants.d.ts +40 -0
  571. package/dist/cli/config/constants.d.ts.map +1 -1
  572. package/dist/cli/config/constants.js +41 -0
  573. package/dist/cli/config/constants.js.map +1 -1
  574. package/dist/cli/config/index.d.ts +4 -2
  575. package/dist/cli/config/index.d.ts.map +1 -1
  576. package/dist/cli/config/index.js +2 -2
  577. package/dist/cli/config/index.js.map +1 -1
  578. package/frontend/dist/assets/{index-1fd45a2a.js → index-f7b99e81.js} +262 -262
  579. package/frontend/dist/index.html +1 -1
  580. package/package.json +4 -4
@@ -12,6 +12,8 @@ import { DEFAULT_TERMINAL_COLS, DEFAULT_TERMINAL_ROWS, } from '../session-backen
12
12
  import { PTY_CONSTANTS, API_SECURITY_CONSTANTS } from '../../../constants.js';
13
13
  import { LoggerService } from '../../core/logger.service.js';
14
14
  import { stripNestedClaudeSessionEnv } from '../../agent/runtime-session-recovery.js';
15
+ import { createBareModuleRequire } from '../../../utils/node-require.utils.js';
16
+ import { ensureSpawnHelperExecutable, findLoadedNodePtyDir, resolveNodePtyDir, } from './node-pty-install.utils.js';
15
17
  /**
16
18
  * Test affordance: lets `pty-session.test.ts` swap in a stub instead of
17
19
  * calling the real `pty.spawn`. Production code path is identical.
@@ -106,7 +108,54 @@ class PtySpawnExhaustedError extends Error {
106
108
  this.name = 'PtySpawnExhaustedError';
107
109
  }
108
110
  }
111
+ /**
112
+ * Set once the spawn-helper exec bit has been checked in this process.
113
+ * Holds the unfixable helper path (if any) so a later spawn failure can name
114
+ * the real cause instead of blaming the process table.
115
+ */
116
+ let spawnHelperCheck = { done: false, unfixable: null };
117
+ /**
118
+ * Once per process, make node-pty's `spawn-helper` executable (#778).
119
+ *
120
+ * A helper without its exec bit makes every spawn fail with `posix_spawnp
121
+ * failed.`, which the retry loop below would treat as transient. Installs
122
+ * that skipped Crewly's postinstall (`--ignore-scripts`, other package
123
+ * managers) are repaired here instead.
124
+ *
125
+ * @param logger - Logger for the repair / failure line
126
+ */
127
+ function ensureSpawnHelperOnce(logger) {
128
+ if (spawnHelperCheck.done)
129
+ return;
130
+ spawnHelperCheck = { done: true, unfixable: null };
131
+ try {
132
+ const nodeRequire = createBareModuleRequire(typeof require === 'function' ? require : null);
133
+ const dir = findLoadedNodePtyDir(nodeRequire.cache) ??
134
+ resolveNodePtyDir((request) => nodeRequire.resolve(request));
135
+ if (!dir)
136
+ return;
137
+ const { fixed, failed } = ensureSpawnHelperExecutable(dir);
138
+ if (fixed.length > 0) {
139
+ logger.warn('node-pty spawn-helper was not executable; fixed with chmod 755', { fixed });
140
+ }
141
+ if (failed.length > 0) {
142
+ spawnHelperCheck.unfixable = failed[0].path;
143
+ logger.error('node-pty spawn-helper is not executable and could not be fixed; PTY spawns will fail', {
144
+ failed,
145
+ hint: `chmod +x ${failed[0].path}`,
146
+ });
147
+ }
148
+ }
149
+ catch (error) {
150
+ logger.debug('spawn-helper check skipped', { error: error instanceof Error ? error.message : String(error) });
151
+ }
152
+ }
153
+ /** Test affordance: forget the once-per-process spawn-helper check. */
154
+ export function _resetSpawnHelperCheckForTesting() {
155
+ spawnHelperCheck = { done: false, unfixable: null };
156
+ }
109
157
  function spawnPtyWithRetry(command, args, options, logger) {
158
+ ensureSpawnHelperOnce(logger);
110
159
  let lastError = null;
111
160
  for (let attempt = 0; attempt < PTY_SPAWN_RETRY_BACKOFFS_MS.length; attempt++) {
112
161
  const backoffMs = PTY_SPAWN_RETRY_BACKOFFS_MS[attempt];
@@ -135,7 +184,10 @@ function spawnPtyWithRetry(command, args, options, logger) {
135
184
  const maxProcPerUid = readMaxProcPerUid();
136
185
  const errMsg = lastError instanceof Error ? lastError.message : String(lastError);
137
186
  let humanHint = '';
138
- if (userProcessCount !== null &&
187
+ if (spawnHelperCheck.unfixable) {
188
+ humanHint = ` node-pty's spawn-helper is not executable — run: chmod +x ${spawnHelperCheck.unfixable}`;
189
+ }
190
+ else if (userProcessCount !== null &&
139
191
  maxProcPerUid !== null &&
140
192
  userProcessCount > maxProcPerUid * 0.75) {
141
193
  humanHint = ` Your user process count is ${userProcessCount} / ${maxProcPerUid} (>75% of limit). Close some Chrome tabs / VS Code windows / other agent sessions and retry.`;
@@ -1 +1 @@
1
- {"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Session binding — which persisted session names are still launchable.
3
+ *
4
+ * The team config is the source of truth for a member's session name
5
+ * (`member.sessionName`, the "binding"). Runtime state (session-state.json)
6
+ * is only a cache of what was running, and it goes stale: when a member is
7
+ * renamed, startTeamMember derives a new session name from the new display
8
+ * name, and the entry under the old name used to stay behind. Startup
9
+ * auto-restore and the Resume dialog then relaunched the member under that
10
+ * stale name, running it twice under two names (2026-09-23,
11
+ * `crewly-marketing-self-watch-scribe-45506487` vs `crewly-marketing-dana-45506487`).
12
+ *
13
+ * Rule: a persisted entry that claims a team (it has a teamId or memberId)
14
+ * is launchable only under a name some member is bound to. If the entry's
15
+ * memberId names a member bound to a different name, it is relaunched under
16
+ * that bound name. Otherwise it is unbound and must not be offered or
17
+ * launched. Entries that claim no team (orchestrator, ad-hoc sessions) are
18
+ * left alone.
19
+ *
20
+ * @module services/session/session-binding
21
+ */
22
+ import type { PersistedSessionInfo } from './session-state-persistence.js';
23
+ /** The slice of a team this module reads. */
24
+ export interface BindingTeam {
25
+ id: string;
26
+ members: ReadonlyArray<{
27
+ id: string;
28
+ sessionName?: string;
29
+ }>;
30
+ }
31
+ /** A member's binding. */
32
+ export interface SessionBinding {
33
+ teamId: string;
34
+ memberId: string;
35
+ }
36
+ /** Result of resolving persisted sessions against the team config. */
37
+ export interface ResolvedPersistedSessions {
38
+ /**
39
+ * Entries safe to launch or offer, with `name` rewritten to the member's
40
+ * bound name where the entry was stale but its memberId resolved.
41
+ */
42
+ launchable: PersistedSessionInfo[];
43
+ /** Names that claim a team but match no binding. Never launch these. */
44
+ unbound: string[];
45
+ /** Stale names that were rewritten to a bound name (old → new). */
46
+ rebound: Array<{
47
+ from: string;
48
+ to: string;
49
+ }>;
50
+ }
51
+ /**
52
+ * Index every member's bound session name.
53
+ *
54
+ * @param teams - Teams from the team config.
55
+ * @returns bound sessionName → { teamId, memberId }; members with no name are skipped.
56
+ */
57
+ export declare function collectSessionBindings(teams: ReadonlyArray<BindingTeam>): Map<string, SessionBinding>;
58
+ /**
59
+ * Whether a persisted entry claims to belong to a team member.
60
+ *
61
+ * @param info - Persisted session entry.
62
+ * @returns true when it carries a teamId or memberId.
63
+ */
64
+ export declare function claimsTeam(info: Pick<PersistedSessionInfo, 'teamId' | 'memberId'>): boolean;
65
+ /**
66
+ * Split persisted sessions into launchable and unbound, per the module rule.
67
+ *
68
+ * @param sessions - Entries from session-state.json.
69
+ * @param teams - Teams from the team config (the bindings).
70
+ * @returns launchable entries (possibly renamed to the bound name), unbound names, and renames.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * const { launchable, unbound } = resolvePersistedSessions(state.sessions, await storage.getTeams());
75
+ * for (const name of unbound) persistence.unregisterSession(name);
76
+ * ```
77
+ */
78
+ export declare function resolvePersistedSessions(sessions: ReadonlyArray<PersistedSessionInfo>, teams: ReadonlyArray<BindingTeam>): ResolvedPersistedSessions;
79
+ /** Which persisted sessions startup auto-restore relaunches, and why the rest are skipped. */
80
+ export interface AutoRestoreSelection {
81
+ /** Sessions to relaunch, each under a bound name (or claiming no team). */
82
+ sessions: PersistedSessionInfo[];
83
+ /** Stale names that are never relaunched. */
84
+ unbound: string[];
85
+ /** Stale names relaunched under the member's bound name instead. */
86
+ rebound: Array<{
87
+ from: string;
88
+ to: string;
89
+ }>;
90
+ /** Bound sessions skipped because no pending WorkItem targets them. */
91
+ skippedNoWork: string[];
92
+ }
93
+ /**
94
+ * Choose the persisted sessions startup auto-restore relaunches.
95
+ *
96
+ * 1. Bindings: team sessions launch only under the name the team config binds
97
+ * the member to (see resolvePersistedSessions). If the teams could not be
98
+ * read (`teams === null`), only sessions that claim no team are kept: a
99
+ * stale name must never be launched just because the config was unreadable.
100
+ * 2. Work gate: only sessions targeted by a pending WorkItem are relaunched.
101
+ * A rebound session also counts work that still targets its old name. If
102
+ * the pool could not be read (`targets === null`), the gate is skipped
103
+ * (the pre-existing safety valve: better to over-restore than strand work).
104
+ *
105
+ * @param input - Persisted sessions (orchestrator/auditor already removed),
106
+ * the teams (or null), and the names targeted by pending WorkItems (or null).
107
+ * @returns The sessions to relaunch and the reasons others were dropped.
108
+ */
109
+ export declare function selectAutoRestoreSessions(input: {
110
+ sessions: ReadonlyArray<PersistedSessionInfo>;
111
+ teams: ReadonlyArray<BindingTeam> | null;
112
+ targets: ReadonlySet<string> | null;
113
+ }): AutoRestoreSelection;
114
+ /**
115
+ * Delete the Claude Code agent file Crewly generated for a session
116
+ * (`{projectPath}/.claude/agents/{sessionName}.md`). That file is what lists
117
+ * the session as a launchable agent. Only a file carrying Crewly's own
118
+ * frontmatter marker is removed; a hand-written agent is left alone.
119
+ *
120
+ * @param projectPath - Project the session ran in.
121
+ * @param sessionName - Session whose agent file to remove.
122
+ * @returns true if a file was removed.
123
+ */
124
+ export declare function removeCrewlyAgentFile(projectPath: string | undefined, sessionName: string): Promise<boolean>;
125
+ //# sourceMappingURL=session-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-binding.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,yBAAyB;IACzC;;;OAGG;IACH,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAUrG;AAkBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,OAAO,CAE3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAC/B,yBAAyB,CAoC3B;AAED,8FAA8F;AAC9F,MAAM,WAAW,oBAAoB;IACpC,2EAA2E;IAC3E,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oEAAoE;IACpE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,uEAAuE;IACvE,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC9C,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACpC,GAAG,oBAAoB,CAwBvB;AAKD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWlH"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Session binding — which persisted session names are still launchable.
3
+ *
4
+ * The team config is the source of truth for a member's session name
5
+ * (`member.sessionName`, the "binding"). Runtime state (session-state.json)
6
+ * is only a cache of what was running, and it goes stale: when a member is
7
+ * renamed, startTeamMember derives a new session name from the new display
8
+ * name, and the entry under the old name used to stay behind. Startup
9
+ * auto-restore and the Resume dialog then relaunched the member under that
10
+ * stale name, running it twice under two names (2026-09-23,
11
+ * `crewly-marketing-self-watch-scribe-45506487` vs `crewly-marketing-dana-45506487`).
12
+ *
13
+ * Rule: a persisted entry that claims a team (it has a teamId or memberId)
14
+ * is launchable only under a name some member is bound to. If the entry's
15
+ * memberId names a member bound to a different name, it is relaunched under
16
+ * that bound name. Otherwise it is unbound and must not be offered or
17
+ * launched. Entries that claim no team (orchestrator, ad-hoc sessions) are
18
+ * left alone.
19
+ *
20
+ * @module services/session/session-binding
21
+ */
22
+ import * as fs from 'fs/promises';
23
+ import * as path from 'path';
24
+ /**
25
+ * Index every member's bound session name.
26
+ *
27
+ * @param teams - Teams from the team config.
28
+ * @returns bound sessionName → { teamId, memberId }; members with no name are skipped.
29
+ */
30
+ export function collectSessionBindings(teams) {
31
+ const bindings = new Map();
32
+ for (const team of teams) {
33
+ for (const member of team.members ?? []) {
34
+ if (member.sessionName) {
35
+ bindings.set(member.sessionName, { teamId: team.id, memberId: member.id });
36
+ }
37
+ }
38
+ }
39
+ return bindings;
40
+ }
41
+ /**
42
+ * Index members by id to their bound session name.
43
+ *
44
+ * @param teams - Teams from the team config.
45
+ * @returns memberId → bound sessionName (only members that have one).
46
+ */
47
+ function collectMemberBindings(teams) {
48
+ const byMember = new Map();
49
+ for (const team of teams) {
50
+ for (const member of team.members ?? []) {
51
+ if (member.sessionName)
52
+ byMember.set(member.id, member.sessionName);
53
+ }
54
+ }
55
+ return byMember;
56
+ }
57
+ /**
58
+ * Whether a persisted entry claims to belong to a team member.
59
+ *
60
+ * @param info - Persisted session entry.
61
+ * @returns true when it carries a teamId or memberId.
62
+ */
63
+ export function claimsTeam(info) {
64
+ return !!(info.teamId || info.memberId);
65
+ }
66
+ /**
67
+ * Split persisted sessions into launchable and unbound, per the module rule.
68
+ *
69
+ * @param sessions - Entries from session-state.json.
70
+ * @param teams - Teams from the team config (the bindings).
71
+ * @returns launchable entries (possibly renamed to the bound name), unbound names, and renames.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const { launchable, unbound } = resolvePersistedSessions(state.sessions, await storage.getTeams());
76
+ * for (const name of unbound) persistence.unregisterSession(name);
77
+ * ```
78
+ */
79
+ export function resolvePersistedSessions(sessions, teams) {
80
+ const bindings = collectSessionBindings(teams);
81
+ const byMember = collectMemberBindings(teams);
82
+ const launchable = [];
83
+ const unbound = [];
84
+ const rebound = [];
85
+ const taken = new Set();
86
+ // Pass 1: entries already under a bound name (or claiming no team) win.
87
+ const pending = [];
88
+ for (const info of sessions) {
89
+ if (!claimsTeam(info) || bindings.has(info.name)) {
90
+ if (taken.has(info.name))
91
+ continue;
92
+ taken.add(info.name);
93
+ const binding = bindings.get(info.name);
94
+ launchable.push(binding ? { ...info, teamId: binding.teamId, memberId: binding.memberId } : { ...info });
95
+ }
96
+ else {
97
+ pending.push(info);
98
+ }
99
+ }
100
+ // Pass 2: stale names. Rebind through memberId if possible, but never
101
+ // start a second copy of a member whose bound name is already launchable.
102
+ for (const info of pending) {
103
+ const boundName = info.memberId ? byMember.get(info.memberId) : undefined;
104
+ const binding = boundName ? bindings.get(boundName) : undefined;
105
+ if (boundName && binding && !taken.has(boundName)) {
106
+ taken.add(boundName);
107
+ launchable.push({ ...info, name: boundName, teamId: binding.teamId, memberId: binding.memberId });
108
+ rebound.push({ from: info.name, to: boundName });
109
+ }
110
+ // Either way the stale name itself is dead.
111
+ unbound.push(info.name);
112
+ }
113
+ return { launchable, unbound, rebound };
114
+ }
115
+ /**
116
+ * Choose the persisted sessions startup auto-restore relaunches.
117
+ *
118
+ * 1. Bindings: team sessions launch only under the name the team config binds
119
+ * the member to (see resolvePersistedSessions). If the teams could not be
120
+ * read (`teams === null`), only sessions that claim no team are kept: a
121
+ * stale name must never be launched just because the config was unreadable.
122
+ * 2. Work gate: only sessions targeted by a pending WorkItem are relaunched.
123
+ * A rebound session also counts work that still targets its old name. If
124
+ * the pool could not be read (`targets === null`), the gate is skipped
125
+ * (the pre-existing safety valve: better to over-restore than strand work).
126
+ *
127
+ * @param input - Persisted sessions (orchestrator/auditor already removed),
128
+ * the teams (or null), and the names targeted by pending WorkItems (or null).
129
+ * @returns The sessions to relaunch and the reasons others were dropped.
130
+ */
131
+ export function selectAutoRestoreSessions(input) {
132
+ let bound;
133
+ let unbound;
134
+ let rebound;
135
+ if (input.teams === null) {
136
+ bound = input.sessions.filter((s) => !claimsTeam(s)).map((s) => ({ ...s }));
137
+ unbound = input.sessions.filter((s) => claimsTeam(s)).map((s) => s.name);
138
+ rebound = [];
139
+ }
140
+ else {
141
+ ({ launchable: bound, unbound, rebound } = resolvePersistedSessions(input.sessions, input.teams));
142
+ }
143
+ if (input.targets === null) {
144
+ return { sessions: bound, unbound, rebound, skippedNoWork: [] };
145
+ }
146
+ const targets = input.targets;
147
+ const oldName = new Map(rebound.map((r) => [r.to, r.from]));
148
+ const hasWork = (s) => targets.has(s.name) || targets.has(oldName.get(s.name) ?? '');
149
+ return {
150
+ sessions: bound.filter(hasWork),
151
+ unbound,
152
+ rebound,
153
+ skippedNoWork: bound.filter((s) => !hasWork(s)).map((s) => s.name),
154
+ };
155
+ }
156
+ /** Marker Crewly writes into the frontmatter of the agent files it generates. */
157
+ const CREWLY_AGENT_FILE_MARKER = 'agent for Crewly orchestration';
158
+ /**
159
+ * Delete the Claude Code agent file Crewly generated for a session
160
+ * (`{projectPath}/.claude/agents/{sessionName}.md`). That file is what lists
161
+ * the session as a launchable agent. Only a file carrying Crewly's own
162
+ * frontmatter marker is removed; a hand-written agent is left alone.
163
+ *
164
+ * @param projectPath - Project the session ran in.
165
+ * @param sessionName - Session whose agent file to remove.
166
+ * @returns true if a file was removed.
167
+ */
168
+ export async function removeCrewlyAgentFile(projectPath, sessionName) {
169
+ if (!projectPath || !sessionName || sessionName.includes('/') || sessionName.includes('..'))
170
+ return false;
171
+ const file = path.join(projectPath, '.claude', 'agents', `${sessionName}.md`);
172
+ try {
173
+ const head = (await fs.readFile(file, 'utf8')).slice(0, 512);
174
+ if (!head.startsWith('---') || !head.includes(CREWLY_AGENT_FILE_MARKER))
175
+ return false;
176
+ await fs.unlink(file);
177
+ return true;
178
+ }
179
+ catch {
180
+ return false;
181
+ }
182
+ }
183
+ //# sourceMappingURL=session-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-binding.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-binding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-handoff.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-handoff.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-handoff.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-handoff.service.ts"],"names":[],"mappings":"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"}
@@ -718,6 +718,7 @@ export class SessionHandoffService {
718
718
  // boot. The catch below is now a real fail-loud signal, not a
719
719
  // shrug-and-include-all.
720
720
  const tsq = ThreadStatusQueueService.getInstance();
721
+ let closedByTombstone = 0;
721
722
  threads = allThreads.filter(thread => {
722
723
  // Build the threadKey the same way the Slack bridge does
723
724
  const threadKey = `${thread.channelId}:${thread.threadId}`;
@@ -729,6 +730,16 @@ export class SessionHandoffService {
729
730
  });
730
731
  return false;
731
732
  }
733
+ // No entry is not "unreplied": cleanup drops terminal entries after
734
+ // CLEANUP_RETENTION_HOURS, while this scan goes by thread-file
735
+ // mtime, which can be later (an agent's completion report). A
736
+ // tombstone says the thread was closed; without one, nothing is
737
+ // known and the thread is kept (#757).
738
+ if (!entry && tsq.getTombstone(threadKey)) {
739
+ this.logger.debug('Filtering out closed thread whose status entry aged out', { threadKey });
740
+ closedByTombstone++;
741
+ return false;
742
+ }
732
743
  // For chat-ui threads: also check by conversationId since chat-ui
733
744
  // files use the conversation ID as the channelId, and the TSQ
734
745
  // entries store the matching sourceConversationItemId.
@@ -741,6 +752,13 @@ export class SessionHandoffService {
741
752
  });
742
753
  return false;
743
754
  }
755
+ if (!entry && !byConvId && tsq.getTombstoneByConversationId(thread.channelId)) {
756
+ this.logger.debug('Filtering out closed chat-ui thread whose status entry aged out', {
757
+ channelId: thread.channelId,
758
+ });
759
+ closedByTombstone++;
760
+ return false;
761
+ }
744
762
  }
745
763
  return true;
746
764
  });
@@ -749,6 +767,7 @@ export class SessionHandoffService {
749
767
  total: allThreads.length,
750
768
  kept: threads.length,
751
769
  filtered: allThreads.length - threads.length,
770
+ closedByTombstone,
752
771
  });
753
772
  }
754
773
  }