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
@@ -0,0 +1,298 @@
1
+ /**
2
+ * Restart Drain Service
3
+ *
4
+ * Owns the "safe restart" state of the process:
5
+ * - a delivery pause: once shutdown starts, nothing new is written into an
6
+ * agent's PTY — messages stay on the persistent queues instead;
7
+ * - the drain: wait until no agent is mid-turn, capped by a timeout, and
8
+ * interruptible by a second signal;
9
+ * - restart readiness for operators (`GET /api/system/restart-readiness`);
10
+ * - a hook through which the REST restart endpoint asks the server for the
11
+ * same graceful, drained shutdown a SIGTERM gets.
12
+ *
13
+ * "Queue empty" is not "safe to restart": a delivered message is off the
14
+ * queue while the agent is still working on it (2026-09-24, Ella). Readiness
15
+ * therefore reports in-flight turns, not queue depth.
16
+ *
17
+ * @module services/restart/restart-drain
18
+ */
19
+ import { LoggerService } from '../core/logger.service.js';
20
+ import { SAFE_RESTART } from '../../constants.js';
21
+ import { InFlightTurnTracker } from './in-flight-turn-tracker.service.js';
22
+ /**
23
+ * Resolve the drain timeout from the environment.
24
+ *
25
+ * @param env - Environment (defaults to process.env)
26
+ * @returns Timeout in ms; 0 disables the wait. Invalid or negative values fall back to the default.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * resolveRestartDrainMs({ CREWLY_RESTART_DRAIN_MS: '0' }); // 0
31
+ * resolveRestartDrainMs({}); // 120000
32
+ * ```
33
+ */
34
+ export function resolveRestartDrainMs(env = process.env) {
35
+ const raw = env[SAFE_RESTART.DRAIN_ENV_VAR];
36
+ if (raw === undefined || raw.trim() === '')
37
+ return SAFE_RESTART.DRAIN_TIMEOUT_MS;
38
+ const parsed = Number(raw);
39
+ if (!Number.isFinite(parsed) || parsed < 0)
40
+ return SAFE_RESTART.DRAIN_TIMEOUT_MS;
41
+ return Math.floor(parsed);
42
+ }
43
+ /**
44
+ * Process-wide safe-restart state. Singleton.
45
+ */
46
+ export class RestartDrainService {
47
+ tracker;
48
+ static instance = null;
49
+ logger;
50
+ paused = false;
51
+ pauseReason = null;
52
+ draining = false;
53
+ skipRequested = false;
54
+ wakeSleeper = null;
55
+ queueCounter = null;
56
+ shutdownHandler = null;
57
+ constructor(tracker) {
58
+ this.tracker = tracker;
59
+ this.logger = LoggerService.getInstance().createComponentLogger('RestartDrain');
60
+ }
61
+ /**
62
+ * Get the singleton instance.
63
+ *
64
+ * @returns The service
65
+ */
66
+ static getInstance() {
67
+ if (!RestartDrainService.instance) {
68
+ RestartDrainService.instance = new RestartDrainService(InFlightTurnTracker.getInstance());
69
+ }
70
+ return RestartDrainService.instance;
71
+ }
72
+ /**
73
+ * Reset the singleton (tests only).
74
+ */
75
+ static resetInstance() {
76
+ RestartDrainService.instance = null;
77
+ }
78
+ /**
79
+ * Whether deliveries into agent PTYs are paused (shutdown in progress).
80
+ *
81
+ * @returns True while paused
82
+ */
83
+ isDeliveryPaused() {
84
+ return this.paused;
85
+ }
86
+ /**
87
+ * Whether the drain wait is running right now.
88
+ *
89
+ * @returns True during the wait
90
+ */
91
+ isDraining() {
92
+ return this.draining;
93
+ }
94
+ /**
95
+ * Stop writing new messages into agent PTYs. Idempotent; never undone in
96
+ * this process (the next boot starts unpaused).
97
+ *
98
+ * @param reason - Why (for logs)
99
+ */
100
+ pauseDelivery(reason) {
101
+ if (this.paused)
102
+ return;
103
+ this.paused = true;
104
+ this.pauseReason = reason;
105
+ this.logger.info('Agent message delivery paused for shutdown; new messages stay queued', { reason });
106
+ }
107
+ /**
108
+ * Ask a running drain to stop waiting (second signal, supervisor escalation).
109
+ *
110
+ * @param reason - Why (for logs)
111
+ * @returns True if a drain was running and will now end
112
+ */
113
+ requestSkip(reason) {
114
+ if (!this.draining)
115
+ return false;
116
+ if (!this.skipRequested) {
117
+ this.logger.warn('Drain skipped on request; in-flight turns will be resumed after restart', { reason });
118
+ }
119
+ this.skipRequested = true;
120
+ this.wakeSleeper?.();
121
+ return true;
122
+ }
123
+ /**
124
+ * Register the counter used for `queued` in readiness.
125
+ *
126
+ * @param counter - Returns the number of messages on the persistent queues
127
+ */
128
+ setQueueCounter(counter) {
129
+ this.queueCounter = counter;
130
+ }
131
+ /**
132
+ * Register the server's graceful-shutdown entry point.
133
+ *
134
+ * @param handler - Runs the drained shutdown and exits the process
135
+ */
136
+ setShutdownHandler(handler) {
137
+ this.shutdownHandler = handler;
138
+ }
139
+ /**
140
+ * Run the server's graceful (drained) shutdown, if one is registered.
141
+ *
142
+ * @param request - Reason and exit code
143
+ * @returns True if a handler was registered and has been started
144
+ */
145
+ requestGracefulShutdown(request) {
146
+ if (!this.shutdownHandler)
147
+ return false;
148
+ void this.shutdownHandler(request).catch((error) => {
149
+ this.logger.error('Graceful shutdown handler failed', {
150
+ reason: request.reason,
151
+ error: error instanceof Error ? error.message : String(error),
152
+ });
153
+ });
154
+ return true;
155
+ }
156
+ /**
157
+ * Current restart readiness.
158
+ *
159
+ * @returns Busy agents, queued count, and whether a restart is safe now
160
+ */
161
+ getReadiness() {
162
+ const busy = this.tracker.getMidTurn();
163
+ let queued = 0;
164
+ try {
165
+ queued = this.queueCounter ? this.queueCounter() : 0;
166
+ }
167
+ catch {
168
+ queued = 0;
169
+ }
170
+ return {
171
+ safe: busy.length === 0,
172
+ busyAgents: busy.map(toBusyAgent),
173
+ queued,
174
+ draining: this.draining,
175
+ };
176
+ }
177
+ /**
178
+ * Wait until no agent is mid-turn, the timeout passes, or a skip arrives.
179
+ * Pauses delivery first (idempotent) so the set of turns can only shrink.
180
+ *
181
+ * @param options - Timeout and test hooks
182
+ * @returns How it ended and the turns still in flight
183
+ */
184
+ async drain(options) {
185
+ const now = options.now ?? Date.now;
186
+ const pollMs = options.pollMs ?? SAFE_RESTART.DRAIN_POLL_INTERVAL_MS;
187
+ const logIntervalMs = options.logIntervalMs ?? SAFE_RESTART.DRAIN_LOG_INTERVAL_MS;
188
+ const sleep = options.sleep ?? null;
189
+ const start = now();
190
+ this.pauseDelivery(this.pauseReason ?? 'drain');
191
+ if (options.timeoutMs <= 0) {
192
+ const remaining = this.tracker.getMidTurn(now());
193
+ this.logger.info('Restart drain disabled; not waiting for agents', {
194
+ envVar: SAFE_RESTART.DRAIN_ENV_VAR,
195
+ inFlight: remaining.map(describeTurn),
196
+ });
197
+ return { outcome: 'disabled', waitedMs: 0, remaining };
198
+ }
199
+ this.draining = true;
200
+ let lastLogAt = -Infinity;
201
+ let lastLoggedKey = '';
202
+ try {
203
+ for (;;) {
204
+ const t = now();
205
+ const busy = this.tracker.getMidTurn(t);
206
+ const waitedMs = t - start;
207
+ if (busy.length === 0) {
208
+ this.logger.info('Restart drain complete: no agent is mid-turn', { waitedMs });
209
+ return { outcome: 'drained', waitedMs, remaining: [] };
210
+ }
211
+ if (this.skipRequested) {
212
+ this.logger.warn('Restart drain skipped; these turns will be resumed after restart', {
213
+ waitedMs,
214
+ interrupted: busy.map(describeTurn),
215
+ });
216
+ return { outcome: 'skipped', waitedMs, remaining: busy };
217
+ }
218
+ if (waitedMs >= options.timeoutMs) {
219
+ this.logger.warn('Restart drain timed out; these turns will be resumed after restart', {
220
+ waitedMs,
221
+ timeoutMs: options.timeoutMs,
222
+ interrupted: busy.map(describeTurn),
223
+ });
224
+ return { outcome: 'timed-out', waitedMs, remaining: busy };
225
+ }
226
+ const key = busy.map((b) => b.sessionName).join(',');
227
+ if (key !== lastLoggedKey || t - lastLogAt >= logIntervalMs) {
228
+ this.logger.info('Restart drain: waiting for agents to finish their current turn', {
229
+ waitingOn: busy.map(describeTurn),
230
+ waitedMs,
231
+ timeoutMs: options.timeoutMs,
232
+ hint: 'send the signal again to stop waiting',
233
+ });
234
+ lastLoggedKey = key;
235
+ lastLogAt = t;
236
+ }
237
+ await this.sleepUnlessSkipped(sleep, Math.min(pollMs, options.timeoutMs - waitedMs));
238
+ }
239
+ }
240
+ finally {
241
+ this.draining = false;
242
+ this.wakeSleeper = null;
243
+ }
244
+ }
245
+ /**
246
+ * Sleep, but wake early when a skip is requested.
247
+ *
248
+ * @param sleep - Injected sleep (tests), or null for a cancellable timer
249
+ * @param ms - Duration
250
+ */
251
+ async sleepUnlessSkipped(sleep, ms) {
252
+ if (this.skipRequested)
253
+ return;
254
+ let timer = null;
255
+ const wait = sleep
256
+ ? sleep(Math.max(0, ms))
257
+ : new Promise((resolve) => {
258
+ timer = setTimeout(resolve, Math.max(0, ms));
259
+ });
260
+ try {
261
+ await Promise.race([
262
+ wait,
263
+ new Promise((resolve) => {
264
+ this.wakeSleeper = resolve;
265
+ }),
266
+ ]);
267
+ }
268
+ finally {
269
+ // A skip must not leave the poll timer holding the process open.
270
+ if (timer)
271
+ clearTimeout(timer);
272
+ }
273
+ }
274
+ }
275
+ /**
276
+ * Map an in-flight turn to the readiness shape.
277
+ *
278
+ * @param turn - Open turn
279
+ * @returns Busy-agent entry
280
+ */
281
+ function toBusyAgent(turn) {
282
+ const newest = turn.messages[turn.messages.length - 1];
283
+ return {
284
+ session: turn.sessionName,
285
+ since: new Date(turn.since).toISOString(),
286
+ messagePreview: newest?.preview ?? '',
287
+ };
288
+ }
289
+ /**
290
+ * Compact log description of a turn.
291
+ *
292
+ * @param turn - Open turn
293
+ * @returns Session, age and preview
294
+ */
295
+ function describeTurn(turn) {
296
+ return toBusyAgent(turn);
297
+ }
298
+ //# sourceMappingURL=restart-drain.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-drain.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/restart/restart-drain.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * node-pty install-state helpers (spawn-helper exec bit, native dirs).
3
+ *
4
+ * Crewly depends on node-pty's prebuilt binaries (`prebuilds/<platform>-<arch>/`)
5
+ * so `npm i -g crewly` works without a C/C++ toolchain (#778). On Unix the
6
+ * PTY fork goes through a small `spawn-helper` executable next to `pty.node`;
7
+ * if it loses its exec bit (node-pty 1.1.0's npm tarball shipped it as 0644,
8
+ * microsoft/node-pty#850/#919, and some package managers / copy steps still
9
+ * drop the mode) every spawn fails with a bare `posix_spawnp failed.` — which
10
+ * Crewly's retry loop would otherwise misreport as a process-table spike.
11
+ *
12
+ * Dependency-free (node builtins only): imported by the backend at spawn time
13
+ * and by the CLI's postinstall script, where no other dependency is guaranteed.
14
+ *
15
+ * @module services/session/pty/node-pty-install.utils
16
+ */
17
+ /** File name of node-pty's Unix fork helper. */
18
+ export declare const SPAWN_HELPER_NAME = "spawn-helper";
19
+ /**
20
+ * Directories node-pty's `loadNativeModule` searches for `pty.node`, in its
21
+ * lookup order (compiled build first, prebuild last). `spawn-helper` is read
22
+ * from whichever directory `pty.node` loaded from.
23
+ *
24
+ * @param packageDir - The node-pty package directory
25
+ * @param platform - Platform tag (defaults to the current one)
26
+ * @param arch - Arch tag (defaults to the current one)
27
+ * @returns Absolute candidate directories
28
+ */
29
+ export declare function nodePtyNativeDirs(packageDir: string, platform?: string, arch?: string): string[];
30
+ /** Result of {@link ensureSpawnHelperExecutable}. */
31
+ export interface SpawnHelperFixResult {
32
+ /** Helpers that were not executable and were chmod'ed to 0755. */
33
+ fixed: string[];
34
+ /** Helpers that are not executable and could not be fixed (e.g. read-only install). */
35
+ failed: Array<{
36
+ path: string;
37
+ error: string;
38
+ }>;
39
+ }
40
+ /**
41
+ * Make sure every `spawn-helper` node-pty may use is executable.
42
+ *
43
+ * No-op on Windows (ConPTY has no helper) and for directories without one
44
+ * (Linux prebuilds do not ship a helper).
45
+ *
46
+ * @param packageDir - The node-pty package directory
47
+ * @param platform - Platform tag (defaults to the current one)
48
+ * @param arch - Arch tag (defaults to the current one)
49
+ * @param chmod - chmod implementation (injectable for tests)
50
+ * @returns Which helpers were fixed and which could not be
51
+ */
52
+ export declare function ensureSpawnHelperExecutable(packageDir: string, platform?: string, arch?: string, chmod?: (file: string, mode: number) => void): SpawnHelperFixResult;
53
+ /**
54
+ * Locate the node-pty package directory through a resolver.
55
+ *
56
+ * @param resolve - A `require.resolve`-compatible function anchored where node-pty is installed
57
+ * @returns The package directory, or null when node-pty cannot be resolved
58
+ */
59
+ export declare function resolveNodePtyDir(resolve: (request: string) => string): string | null;
60
+ /**
61
+ * Locate the node-pty copy this process has ALREADY loaded, from the CJS
62
+ * module cache (Node records CJS modules there even when they were reached
63
+ * through an ESM `import`). Unlike resolving, this does not depend on where
64
+ * the entry script lives — `process.argv[1]` may be outside the package.
65
+ *
66
+ * @param cache - `require.cache` (shared across all `createRequire` instances)
67
+ * @returns The loaded package directory, or null when node-pty is not in the cache
68
+ */
69
+ export declare function findLoadedNodePtyDir(cache: Record<string, unknown> | undefined): string | null;
70
+ //# sourceMappingURL=node-pty-install.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-pty-install.utils.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/node-pty-install.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,GACzB,MAAM,EAAE,CAMV;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACpC,kEAAkE;IAClE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAC1C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,EAC3B,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAmB,GACxD,oBAAoB,CAoBtB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAMrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK9F"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * node-pty install-state helpers (spawn-helper exec bit, native dirs).
3
+ *
4
+ * Crewly depends on node-pty's prebuilt binaries (`prebuilds/<platform>-<arch>/`)
5
+ * so `npm i -g crewly` works without a C/C++ toolchain (#778). On Unix the
6
+ * PTY fork goes through a small `spawn-helper` executable next to `pty.node`;
7
+ * if it loses its exec bit (node-pty 1.1.0's npm tarball shipped it as 0644,
8
+ * microsoft/node-pty#850/#919, and some package managers / copy steps still
9
+ * drop the mode) every spawn fails with a bare `posix_spawnp failed.` — which
10
+ * Crewly's retry loop would otherwise misreport as a process-table spike.
11
+ *
12
+ * Dependency-free (node builtins only): imported by the backend at spawn time
13
+ * and by the CLI's postinstall script, where no other dependency is guaranteed.
14
+ *
15
+ * @module services/session/pty/node-pty-install.utils
16
+ */
17
+ import * as fs from 'fs';
18
+ import * as path from 'path';
19
+ /** File name of node-pty's Unix fork helper. */
20
+ export const SPAWN_HELPER_NAME = 'spawn-helper';
21
+ /**
22
+ * Directories node-pty's `loadNativeModule` searches for `pty.node`, in its
23
+ * lookup order (compiled build first, prebuild last). `spawn-helper` is read
24
+ * from whichever directory `pty.node` loaded from.
25
+ *
26
+ * @param packageDir - The node-pty package directory
27
+ * @param platform - Platform tag (defaults to the current one)
28
+ * @param arch - Arch tag (defaults to the current one)
29
+ * @returns Absolute candidate directories
30
+ */
31
+ export function nodePtyNativeDirs(packageDir, platform = process.platform, arch = process.arch) {
32
+ return [
33
+ path.join(packageDir, 'build', 'Release'),
34
+ path.join(packageDir, 'build', 'Debug'),
35
+ path.join(packageDir, 'prebuilds', `${platform}-${arch}`),
36
+ ];
37
+ }
38
+ /**
39
+ * Make sure every `spawn-helper` node-pty may use is executable.
40
+ *
41
+ * No-op on Windows (ConPTY has no helper) and for directories without one
42
+ * (Linux prebuilds do not ship a helper).
43
+ *
44
+ * @param packageDir - The node-pty package directory
45
+ * @param platform - Platform tag (defaults to the current one)
46
+ * @param arch - Arch tag (defaults to the current one)
47
+ * @param chmod - chmod implementation (injectable for tests)
48
+ * @returns Which helpers were fixed and which could not be
49
+ */
50
+ export function ensureSpawnHelperExecutable(packageDir, platform = process.platform, arch = process.arch, chmod = fs.chmodSync) {
51
+ const result = { fixed: [], failed: [] };
52
+ if (platform === 'win32')
53
+ return result;
54
+ for (const dir of nodePtyNativeDirs(packageDir, platform, arch)) {
55
+ const helper = path.join(dir, SPAWN_HELPER_NAME);
56
+ if (!fs.existsSync(helper))
57
+ continue;
58
+ try {
59
+ fs.accessSync(helper, fs.constants.X_OK);
60
+ continue;
61
+ }
62
+ catch {
63
+ // not executable — fix below
64
+ }
65
+ try {
66
+ chmod(helper, 0o755);
67
+ result.fixed.push(helper);
68
+ }
69
+ catch (error) {
70
+ result.failed.push({ path: helper, error: error instanceof Error ? error.message : String(error) });
71
+ }
72
+ }
73
+ return result;
74
+ }
75
+ /**
76
+ * Locate the node-pty package directory through a resolver.
77
+ *
78
+ * @param resolve - A `require.resolve`-compatible function anchored where node-pty is installed
79
+ * @returns The package directory, or null when node-pty cannot be resolved
80
+ */
81
+ export function resolveNodePtyDir(resolve) {
82
+ try {
83
+ return path.dirname(resolve('node-pty/package.json'));
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ /**
90
+ * Locate the node-pty copy this process has ALREADY loaded, from the CJS
91
+ * module cache (Node records CJS modules there even when they were reached
92
+ * through an ESM `import`). Unlike resolving, this does not depend on where
93
+ * the entry script lives — `process.argv[1]` may be outside the package.
94
+ *
95
+ * @param cache - `require.cache` (shared across all `createRequire` instances)
96
+ * @returns The loaded package directory, or null when node-pty is not in the cache
97
+ */
98
+ export function findLoadedNodePtyDir(cache) {
99
+ if (!cache)
100
+ return null;
101
+ const suffix = path.join('node-pty', 'lib', 'index.js');
102
+ const entry = Object.keys(cache).find((key) => key.endsWith(path.sep + suffix));
103
+ return entry ? path.dirname(path.dirname(entry)) : null;
104
+ }
105
+ //# sourceMappingURL=node-pty-install.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-pty-install.utils.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/node-pty-install.utils.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ declare class PtySpawnExhaustedError extends Error {
34
34
  platform: string;
35
35
  });
36
36
  }
37
+ /** Test affordance: forget the once-per-process spawn-helper check. */
38
+ export declare function _resetSpawnHelperCheckForTesting(): void;
37
39
  export { PtySpawnExhaustedError };
38
40
  /**
39
41
  * PTY Session implementation using node-pty.
@@ -1 +1 @@
1
- {"version":3,"file":"pty-session.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAchF,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,OAAO,GAAG,CAAC,KAAK,GACpB,MAAM,IAAI,CAMZ;AAsED;;;;;;GAMG;AACH,cAAM,sBAAuB,SAAQ,KAAK;aAGxB,WAAW,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KACjB;gBARD,OAAO,EAAE,MAAM,EACC,WAAW,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KACjB;CAKF;AA6DD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAW,YAAW,QAAQ;aAsDzB,IAAI,EAAE,MAAM;aACZ,GAAG,EAAE,MAAM;IAtD5B;;OAEG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0C;IAE/D;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0C;IAE/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;;;;;;;;;;;;;;;;;OAmBG;gBAEc,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EAC3B,OAAO,EAAE,cAAc;IAqExB;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAepD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAepD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAqBxC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB3B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,IAAI,IAAI;IAqBhB;;;;;;;;;;;;;OAaG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA+ChC;;;;OAIG;IACH,QAAQ,IAAI,OAAO;IAInB;;;;;;;;OAQG;IACH,mBAAmB,IAAI,OAAO;IAgB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6C1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,WAAW;CAanB"}
1
+ {"version":3,"file":"pty-session.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAoBhF,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,OAAO,GAAG,CAAC,KAAK,GACpB,MAAM,IAAI,CAMZ;AAsED;;;;;;GAMG;AACH,cAAM,sBAAuB,SAAQ,KAAK;aAGxB,WAAW,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KACjB;gBARD,OAAO,EAAE,MAAM,EACC,WAAW,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KACjB;CAKF;AA4CD,uEAAuE;AACvE,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAgED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAW,YAAW,QAAQ;aAsDzB,IAAI,EAAE,MAAM;aACZ,GAAG,EAAE,MAAM;IAtD5B;;OAEG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0C;IAE/D;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0C;IAE/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;;;;;;;;;;;;;;;;;OAmBG;gBAEc,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EAC3B,OAAO,EAAE,cAAc;IAqExB;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAepD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAepD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAqBxC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB3B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,IAAI,IAAI;IAqBhB;;;;;;;;;;;;;OAaG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA+ChC;;;;OAIG;IACH,QAAQ,IAAI,OAAO;IAInB;;;;;;;;OAQG;IACH,mBAAmB,IAAI,OAAO;IAgB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6C1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,WAAW;CAanB"}
@@ -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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"}