crewly 1.20.355 → 1.20.358

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 (393) hide show
  1. package/config/constants.ts +11 -0
  2. package/config/roles/team-leader/prompt.md +1 -1
  3. package/config/roles/team-leader/tl-addon.md +1 -1
  4. package/config/skills/team-leader/delegate-task/SKILL.md +23 -1
  5. package/config/skills/team-leader/delegate-task/execute.sh +44 -1
  6. package/config/skills/team-leader/delegate-task/execute.test.sh +95 -1
  7. package/dist/backend/backend/src/constants.d.ts +319 -17
  8. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  9. package/dist/backend/backend/src/constants.js +322 -17
  10. package/dist/backend/backend/src/constants.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +10 -0
  13. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  15. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +7 -0
  16. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/team/team.controller.js +5 -0
  19. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  20. package/dist/backend/backend/src/index.d.ts +15 -0
  21. package/dist/backend/backend/src/index.d.ts.map +1 -1
  22. package/dist/backend/backend/src/index.js +138 -15
  23. package/dist/backend/backend/src/index.js.map +1 -1
  24. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +21 -2
  25. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/agent/agent-registration.service.js +100 -3
  27. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
  29. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
  31. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +8 -0
  33. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/agent/idle-detection.service.js +26 -2
  35. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  37. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  39. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +22 -0
  41. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/agent/resource-mode-protection.js +33 -0
  43. package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
  44. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +59 -3
  45. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/agent/resource-mode.service.js +108 -10
  47. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
  49. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +126 -11
  51. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  52. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
  53. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
  55. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  56. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  57. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +47 -6
  59. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts +150 -0
  61. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts.map +1 -0
  62. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js +319 -0
  63. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js.map +1 -0
  64. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +9 -7
  65. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +19 -17
  67. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -1
  68. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/memory/memory.service.js +11 -0
  70. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  71. package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
  72. package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
  73. package/dist/backend/backend/src/services/memory/startup-briefing.service.js +302 -0
  74. package/dist/backend/backend/src/services/memory/startup-briefing.service.js.map +1 -0
  75. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts +14 -2
  76. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js +21 -4
  78. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js.map +1 -1
  79. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
  80. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
  82. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts +24 -1
  84. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js +54 -3
  86. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js.map +1 -1
  87. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +10 -1
  89. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  90. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +8 -0
  91. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/open-items/open-items.service.js +33 -0
  93. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  94. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +2 -2
  95. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  96. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  97. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  98. package/dist/backend/backend/src/services/open-items/question-card-gate.js +77 -0
  99. package/dist/backend/backend/src/services/open-items/question-card-gate.js.map +1 -0
  100. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +9 -0
  101. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +16 -2
  103. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
  104. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  105. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +10 -0
  106. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  107. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  108. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  110. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  111. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  112. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  114. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  115. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts +30 -0
  116. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts.map +1 -0
  117. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js +48 -0
  118. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js.map +1 -0
  119. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +8 -0
  120. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +29 -8
  122. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  123. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  124. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  125. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  126. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  127. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  128. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  129. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +3 -2
  130. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  131. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +128 -5
  132. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  133. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +320 -38
  134. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  135. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +23 -0
  136. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  137. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +48 -3
  138. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  139. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  140. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  141. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  142. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  143. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  144. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  145. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  146. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  147. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  148. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  149. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  150. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  151. package/dist/backend/backend/src/services/slack/agent-coordination.d.ts +119 -0
  152. package/dist/backend/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
  153. package/dist/backend/backend/src/services/slack/agent-coordination.js +174 -0
  154. package/dist/backend/backend/src/services/slack/agent-coordination.js.map +1 -0
  155. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  156. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -0
  157. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
  159. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  160. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +619 -9
  161. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  162. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
  163. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  164. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +49 -12
  165. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  166. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
  167. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  168. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
  169. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  170. package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts +21 -1
  171. package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts.map +1 -1
  172. package/dist/backend/backend/src/services/team-move/team-move-chat.js +54 -2
  173. package/dist/backend/backend/src/services/team-move/team-move-chat.js.map +1 -1
  174. package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts +9 -4
  175. package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts.map +1 -1
  176. package/dist/backend/backend/src/services/team-move/team-move-exporter.js +32 -10
  177. package/dist/backend/backend/src/services/team-move/team-move-exporter.js.map +1 -1
  178. package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts +19 -0
  179. package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts.map +1 -1
  180. package/dist/backend/backend/src/services/team-move/team-move-importer.js +78 -3
  181. package/dist/backend/backend/src/services/team-move/team-move-importer.js.map +1 -1
  182. package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts.map +1 -1
  183. package/dist/backend/backend/src/services/team-move/team-move-runtime.js +8 -0
  184. package/dist/backend/backend/src/services/team-move/team-move-runtime.js.map +1 -1
  185. package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts +106 -0
  186. package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts.map +1 -0
  187. package/dist/backend/backend/src/services/team-move/team-move-transcripts.js +212 -0
  188. package/dist/backend/backend/src/services/team-move/team-move-transcripts.js.map +1 -0
  189. package/dist/backend/backend/src/services/team-move/team-move.types.d.ts +20 -0
  190. package/dist/backend/backend/src/services/team-move/team-move.types.d.ts.map +1 -1
  191. package/dist/backend/backend/src/services/team-move/team-move.types.js.map +1 -1
  192. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -2
  193. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  194. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +11 -4
  195. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  196. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  197. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +13 -0
  198. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  199. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +3 -0
  201. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -1
  202. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts.map +1 -1
  203. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js +4 -1
  204. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -1
  205. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
  206. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +4 -0
  207. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
  208. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
  209. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  210. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js +75 -7
  211. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  212. package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -1
  213. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +3 -1
  214. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -1
  215. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts +116 -0
  216. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts.map +1 -0
  217. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js +227 -0
  218. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js.map +1 -0
  219. package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
  220. package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
  221. package/dist/backend/backend/src/services/wiki/wiki-log-entries.js +222 -0
  222. package/dist/backend/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
  223. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts +93 -0
  224. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts.map +1 -0
  225. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js +142 -0
  226. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js.map +1 -0
  227. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts +104 -0
  228. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts.map +1 -0
  229. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js +192 -0
  230. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js.map +1 -0
  231. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +3 -2
  232. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
  233. package/dist/backend/backend/src/services/wiki/wiki-query.service.js +23 -39
  234. package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
  235. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts +105 -0
  236. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts.map +1 -0
  237. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js +195 -0
  238. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js.map +1 -0
  239. package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -1
  240. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +3 -0
  241. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -1
  242. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
  243. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  244. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +96 -25
  245. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  246. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
  247. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
  248. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js +17 -1
  249. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
  250. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +22 -0
  251. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  252. package/dist/backend/backend/src/services/workflow/scheduler.service.js +35 -1
  253. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  254. package/dist/backend/backend/src/types/index.d.ts +12 -0
  255. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  256. package/dist/backend/backend/src/types/index.js.map +1 -1
  257. package/dist/backend/backend/src/types/team-template.types.d.ts +1 -0
  258. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  259. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  260. package/dist/backend/build-info.json +2 -2
  261. package/dist/backend/config/constants.d.ts +11 -0
  262. package/dist/backend/config/constants.d.ts.map +1 -1
  263. package/dist/backend/config/constants.js +11 -0
  264. package/dist/backend/config/constants.js.map +1 -1
  265. package/dist/cli/backend/src/constants.d.ts +319 -17
  266. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  267. package/dist/cli/backend/src/constants.js +322 -17
  268. package/dist/cli/backend/src/constants.js.map +1 -1
  269. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +21 -2
  270. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  271. package/dist/cli/backend/src/services/agent/agent-registration.service.js +100 -3
  272. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  273. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
  274. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  275. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
  276. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  277. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  278. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  279. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  280. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  281. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +59 -3
  282. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  283. package/dist/cli/backend/src/services/agent/resource-mode.service.js +108 -10
  284. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
  285. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
  286. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  287. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +126 -11
  288. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  289. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
  290. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  291. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
  292. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  293. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  294. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  295. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +47 -6
  296. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  297. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  298. package/dist/cli/backend/src/services/memory/memory.service.js +11 -0
  299. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  300. package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
  301. package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
  302. package/dist/cli/backend/src/services/memory/startup-briefing.service.js +302 -0
  303. package/dist/cli/backend/src/services/memory/startup-briefing.service.js.map +1 -0
  304. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
  305. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
  306. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
  307. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
  308. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  309. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +10 -1
  310. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  311. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +8 -0
  312. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  313. package/dist/cli/backend/src/services/open-items/open-items.service.js +33 -0
  314. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  315. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  316. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  317. package/dist/cli/backend/src/services/open-items/question-card-gate.js +77 -0
  318. package/dist/cli/backend/src/services/open-items/question-card-gate.js.map +1 -0
  319. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  320. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  321. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  322. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  323. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  324. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  325. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  326. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  327. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  328. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  329. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  330. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  331. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  332. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  333. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js +3 -2
  334. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  335. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  336. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  337. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  338. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  339. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  340. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  341. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  342. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  343. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  344. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  345. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  346. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  347. package/dist/cli/backend/src/services/slack/agent-coordination.d.ts +119 -0
  348. package/dist/cli/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
  349. package/dist/cli/backend/src/services/slack/agent-coordination.js +174 -0
  350. package/dist/cli/backend/src/services/slack/agent-coordination.js.map +1 -0
  351. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
  352. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  353. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +619 -9
  354. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  355. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
  356. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  357. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +49 -12
  358. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  359. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
  360. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  361. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
  362. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  363. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
  364. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  365. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +75 -7
  366. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  367. package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
  368. package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
  369. package/dist/cli/backend/src/services/wiki/wiki-log-entries.js +222 -0
  370. package/dist/cli/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
  371. package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
  372. package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
  373. package/dist/cli/backend/src/services/wiki/wiki-recent.service.js +105 -0
  374. package/dist/cli/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
  375. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
  376. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  377. package/dist/cli/backend/src/services/wiki/wiki-search.service.js +96 -25
  378. package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  379. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
  380. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
  381. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js +17 -1
  382. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
  383. package/dist/cli/backend/src/types/index.d.ts +12 -0
  384. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  385. package/dist/cli/backend/src/types/index.js.map +1 -1
  386. package/dist/cli/backend/src/types/team-template.types.d.ts +1 -0
  387. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  388. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  389. package/dist/cli/config/constants.d.ts +11 -0
  390. package/dist/cli/config/constants.d.ts.map +1 -1
  391. package/dist/cli/config/constants.js +11 -0
  392. package/dist/cli/config/constants.js.map +1 -1
  393. package/package.json +1 -1
@@ -30,6 +30,28 @@ export const RESOURCE_MODE_CONSTANTS = {
30
30
  * blocked forever.
31
31
  */
32
32
  RELAX_AFTER_MS: 3 * 60_000,
33
+ /**
34
+ * An agent started less than this long ago is never stopped to free a slot
35
+ * (except at critical memory). Starting an agent and stopping it minutes
36
+ * later wastes the whole start and releases its work back to the pool
37
+ * (2026-10-16: Luna stopped 8 times in 2 h, some after 0-3 min idle).
38
+ */
39
+ MIN_RUN_BEFORE_EVICT_MS: 10 * 60_000,
40
+ /**
41
+ * Hysteresis: for this long after A was stopped to start B, A's own start
42
+ * may not stop B (2026-10-16: Luna and Max evicted each other back and forth).
43
+ * Longer than MIN_RUN_BEFORE_EVICT_MS so it still holds once B's own start
44
+ * protection has run out.
45
+ */
46
+ DISPLACED_GUARD_MS: 30 * 60_000,
47
+ /**
48
+ * An agent idle for less than this is never stopped to free a slot — not
49
+ * for an owner-message waiter, not when the rules relax — unless memory is
50
+ * critical. Eviction at `idleMinutes: 0` (32 slot stops in 9 h on
51
+ * 2026-10-16, Luna and Max taking turns) throws away an agent that just
52
+ * finished a turn and is about to get the next one (crewly#1344).
53
+ */
54
+ MIN_IDLE_BEFORE_EVICT_MS: 5 * 60_000,
33
55
  /** A wait record older than this since its last touch is a new wait */
34
56
  WAIT_RECORD_TTL_MS: 10 * 60_000,
35
57
  /** A started agent counts against the cap even before it shows as running */
@@ -76,6 +98,10 @@ export class ResourceModeService {
76
98
  /** Agents seen busy by a pump (their idle time starts at that sighting at the earliest) */
77
99
  lastSeenBusy = new Map();
78
100
  lastCap = RESOURCE_MODE_CONSTANTS.DEFAULT_MAX_RUNNING_AGENTS;
101
+ /** When each agent's start was last allowed (it counts as freshly started for MIN_RUN_BEFORE_EVICT_MS) */
102
+ startedAt = new Map();
103
+ /** Who displaced each agent stopped for a slot, and when (hysteresis, DISPLACED_GUARD_MS) */
104
+ displacedBy = new Map();
79
105
  /** Readings, overridable in tests. */
80
106
  memoryStats = getMemoryStats;
81
107
  loadAvg = () => os.loadavg()[1];
@@ -228,8 +254,10 @@ export class ResourceModeService {
228
254
  * @returns True when the start may proceed
229
255
  */
230
256
  async requestStart(sessionName, ownerTriggered) {
231
- if (this.mode !== 'pressure' || !this.deps)
257
+ if (this.mode !== 'pressure' || !this.deps) {
258
+ this.startedAt.set(sessionName, Date.now());
232
259
  return true;
260
+ }
233
261
  // One place in line per agent (CREW-304): a second request for an agent
234
262
  // already waiting joins that wait instead of queuing it twice. An owner
235
263
  // message moves the existing place to the front.
@@ -292,6 +320,12 @@ export class ResourceModeService {
292
320
  for (const [n, at] of this.admitted)
293
321
  if (now - at > RESOURCE_MODE_CONSTANTS.ADMIT_TTL_MS)
294
322
  this.admitted.delete(n);
323
+ for (const [n, at] of this.startedAt)
324
+ if (now - at >= RESOURCE_MODE_CONSTANTS.MIN_RUN_BEFORE_EVICT_MS)
325
+ this.startedAt.delete(n);
326
+ for (const [n, d] of this.displacedBy)
327
+ if (now - d.at >= RESOURCE_MODE_CONSTANTS.DISPLACED_GUARD_MS)
328
+ this.displacedBy.delete(n);
295
329
  const { maxRunning, idleTimeoutMinutes } = await this.deps.limits();
296
330
  this.lastCap = maxRunning;
297
331
  const running = this.withHonestIdle(await this.deps.listRunning(), now);
@@ -308,7 +342,9 @@ export class ResourceModeService {
308
342
  }
309
343
  while (this.waiters.length > 0) {
310
344
  if (this.mode !== 'pressure') {
311
- this.release(this.waiters.shift());
345
+ const w = this.waiters.shift();
346
+ this.startedAt.set(w.name, Date.now());
347
+ this.release(w);
312
348
  continue;
313
349
  }
314
350
  if (count >= maxRunning) {
@@ -317,7 +353,7 @@ export class ResourceModeService {
317
353
  if (rec)
318
354
  rec.touched = now;
319
355
  const waitedMs = rec ? now - rec.since : 0;
320
- const { victim, skipped, relaxedBecause } = await this.pickVictim(pool, idleTimeoutMinutes, waitedMs >= RESOURCE_MODE_CONSTANTS.RELAX_AFTER_MS, head.owner);
356
+ const { victim, skipped, relaxedBecause } = await this.pickVictim(pool, idleTimeoutMinutes, waitedMs >= RESOURCE_MODE_CONSTANTS.RELAX_AFTER_MS, head.owner, head.name, now);
321
357
  if (victim && relaxedBecause !== undefined) {
322
358
  this.logger.warn('A start has waited too long for a slot; relaxing the eviction rules', {
323
359
  waiter: head.name,
@@ -342,6 +378,8 @@ export class ResourceModeService {
342
378
  }
343
379
  pool = pool.filter((r) => r !== victim);
344
380
  count--;
381
+ this.displacedBy.set(victim.sessionName, { by: head.name, at: Date.now() });
382
+ this.startedAt.delete(victim.sessionName);
345
383
  try {
346
384
  this.deps.onStoppedForSlot?.(victim.sessionName);
347
385
  }
@@ -349,6 +387,7 @@ export class ResourceModeService {
349
387
  }
350
388
  const w = this.waiters.shift();
351
389
  this.admitted.set(w.name, Date.now());
390
+ this.startedAt.set(w.name, Date.now());
352
391
  count++;
353
392
  this.release(w);
354
393
  }
@@ -367,18 +406,33 @@ export class ResourceModeService {
367
406
  * Longest-idle agent that may be stopped for a slot. Never one that is
368
407
  * busy, waiting for a start itself, always-on, holding an owner message,
369
408
  * Drive-warm, idle for less than the pressure idle timeout, or protected
370
- * by {@link ResourceModeDeps.protectedReason} (pending work, an open
371
- * ticket, an open delegation). An agent that owes the owner is never picked
372
- * unless memory is critical.
409
+ * by {@link ResourceModeDeps.protectedReason} (queued messages, pending
410
+ * work, an open ticket, an open delegation). An agent that owes the owner
411
+ * is never picked unless memory is critical.
412
+ *
413
+ * Anti-thrash rules (2026-10-16, Luna and Max evicting each other), which
414
+ * hold in every mode, relaxed included, unless memory is critical:
415
+ * - an agent idle for less than MIN_IDLE_BEFORE_EVICT_MS is kept (also for an owner-message waiter),
416
+ * - an agent started less than MIN_RUN_BEFORE_EVICT_MS ago is kept,
417
+ * - an agent whose work the waiter waits on ({@link ResourceModeDeps.waitsOn}) is kept,
418
+ * - an agent that displaced the waiter less than DISPLACED_GUARD_MS ago is kept (hysteresis).
419
+ * An owner-message waiter skips the first and last rule (owner messages are
420
+ * rare, so they cannot thrash, and the owner must never wait); it keeps only
421
+ * the waits-on rule and the protections above.
422
+ * Relaxing only lifts the idle timeout; protected agents are never stopped.
423
+ * When no agent qualifies, the waiter waits.
373
424
  *
374
425
  * @param running - Running agents
375
426
  * @param idleTimeoutMinutes - Pressure idle timeout; a younger idle is never stopped
376
427
  * @param relax - The first waiter has waited past RELAX_AFTER_MS: when no agent passes the rules, stop the best one anyway
377
428
  * @param ownerWaiter - The first waiter carries an owner message: the idle timeout does not protect an agent (the longest-idle one goes at once); busy, owner-message, Drive-warm and pending-work/ticket/delegation protections still apply
429
+ * @param waiterName - The first waiter (for the waits-on and hysteresis rules)
430
+ * @param now - Epoch ms of this pump
378
431
  * @returns The victim (if any), why each skipped agent was kept, and, when the rules were relaxed, why the victim had been kept
379
432
  */
380
- async pickVictim(running, idleTimeoutMinutes, relax = false, ownerWaiter = false) {
433
+ async pickVictim(running, idleTimeoutMinutes, relax = false, ownerWaiter = false, waiterName = '', now = Date.now()) {
381
434
  const waiting = new Set(this.waiters.map((w) => w.name));
435
+ const critical = this.memoryCritical();
382
436
  const minIdleMs = ownerWaiter ? 0 : Math.max(0, idleTimeoutMinutes) * 60_000;
383
437
  const skipped = [];
384
438
  const ordered = running
@@ -393,6 +447,18 @@ export class ResourceModeService {
393
447
  const keptBecause = new Map();
394
448
  const unprotected = [];
395
449
  for (const r of ordered) {
450
+ // Floor under every rule (owner waiter and relaxed included): an agent
451
+ // that went idle moments ago is not a slot, it is the next turn's
452
+ // agent (crewly#1344). Only critical memory overrides it.
453
+ if (!critical && r.idleMs < RESOURCE_MODE_CONSTANTS.MIN_IDLE_BEFORE_EVICT_MS) {
454
+ skipped.push(`${r.sessionName}: idle ${Math.round(r.idleMs / 60000)} min, under the ${RESOURCE_MODE_CONSTANTS.MIN_IDLE_BEFORE_EVICT_MS / 60000} min eviction floor`);
455
+ continue;
456
+ }
457
+ const thrash = critical ? null : await this.thrashReason(r.sessionName, waiterName, now, ownerWaiter);
458
+ if (thrash) {
459
+ skipped.push(`${r.sessionName}: ${thrash}`);
460
+ continue;
461
+ }
396
462
  let why;
397
463
  try {
398
464
  why = await this.deps.protectedReason?.(r.sessionName);
@@ -411,7 +477,6 @@ export class ResourceModeService {
411
477
  }
412
478
  candidates.push(r);
413
479
  }
414
- const critical = this.memoryCritical();
415
480
  const owes = (r) => {
416
481
  try {
417
482
  return this.deps.owesOwnerThread?.(r.sessionName) === true;
@@ -434,10 +499,43 @@ export class ResourceModeService {
434
499
  const victim = choose(candidates);
435
500
  if (victim || !relax)
436
501
  return { victim, skipped };
437
- // Relaxed: agents kept only by the idle timeout first, then the rest; longest idle within each.
438
- const fallback = choose(unprotected) ?? choose(ordered);
502
+ // Relaxed: only agents kept by nothing but the idle timeout; longest idle
503
+ // first. A protected agent (queued messages, work in hand, an open
504
+ // ticket or delegation) is never stopped: the waiter waits instead.
505
+ const fallback = choose(unprotected);
439
506
  return fallback ? { victim: fallback, skipped, relaxedBecause: keptBecause.get(fallback) ?? '' } : { skipped };
440
507
  }
508
+ /**
509
+ * Why stopping this agent for the waiter would thrash, or null when it would not.
510
+ *
511
+ * @param candidate - Running agent considered as a victim
512
+ * @param waiter - First waiting start
513
+ * @param now - Epoch ms of this pump
514
+ * @param ownerWaiter - The waiter carries an owner message: the start window and the hysteresis do not apply (waits-on still does)
515
+ * @returns English reason, or null
516
+ */
517
+ async thrashReason(candidate, waiter, now, ownerWaiter = false) {
518
+ const started = this.startedAt.get(candidate);
519
+ if (!ownerWaiter && started !== undefined && now - started < RESOURCE_MODE_CONSTANTS.MIN_RUN_BEFORE_EVICT_MS) {
520
+ return `started ${Math.round((now - started) / 60000)} min ago, under the ${RESOURCE_MODE_CONSTANTS.MIN_RUN_BEFORE_EVICT_MS / 60000} min protection window`;
521
+ }
522
+ const displaced = this.displacedBy.get(waiter);
523
+ if (!ownerWaiter && displaced && displaced.by === candidate && now - displaced.at < RESOURCE_MODE_CONSTANTS.DISPLACED_GUARD_MS) {
524
+ return `it displaced ${waiter} ${Math.round((now - displaced.at) / 60000)} min ago (no ping-pong)`;
525
+ }
526
+ if (waiter && this.deps?.waitsOn) {
527
+ let dependsOn = false;
528
+ try {
529
+ dependsOn = await this.deps.waitsOn(waiter, candidate);
530
+ }
531
+ catch {
532
+ dependsOn = false;
533
+ }
534
+ if (dependsOn)
535
+ return `${waiter} is waiting on its work`;
536
+ }
537
+ return null;
538
+ }
441
539
  /** Log why a waiting start got no slot (at most once a minute per agent). */
442
540
  logNoSlot(waiter, running, cap, idleTimeoutMinutes, skipped) {
443
541
  const now = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"resource-mode.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/resource-mode.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-mode.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/resource-mode.service.ts"],"names":[],"mappings":"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"}
@@ -242,14 +242,55 @@ export declare function findClaudeTranscript(args: {
242
242
  */
243
243
  export declare function lastTurnContextTokens(filePath: string): number | null;
244
244
  /**
245
- * The plain words at the end of a conversation — what was said to the agent
246
- * and what it answered, without tool calls or tool output — for the file a
247
- * fresh conversation starts from.
245
+ * What was said and done at the end of a conversation, for the file a fresh
246
+ * conversation starts from: the plain words delivered to the agent and its
247
+ * answers, plus one line per tool call and tool result (tool name and the
248
+ * first {@link ORC_CONVERSATION_CONSTANTS.HANDOVER_TOOL_RESULT_CHARS}
249
+ * characters of its input / output) so the new conversation knows which files
250
+ * were read and which commands ran, not only what was said about them
251
+ * (crewly#1344). Images are a described placeholder, never copied. System
252
+ * reminders and command wrappers are left out.
248
253
  *
249
254
  * @param filePath - Transcript path
250
255
  * @returns Markdown, newest last; empty when nothing readable was found
251
256
  */
252
257
  export declare function buildHandoverSummary(filePath: string): string;
258
+ /** Outcome of {@link copyClaudeConversation}. */
259
+ export interface CopiedClaudeConversation {
260
+ /** The transcript the copy was made from */
261
+ source: string;
262
+ /** The transcript written under the target home */
263
+ target: string;
264
+ /** Files and folders written (the transcript, and its sidecar folder when it has one) */
265
+ copied: string[];
266
+ }
267
+ /**
268
+ * Copy a Claude Code conversation from one Claude home to another so that
269
+ * `claude --resume <id>` finds it there (crewly#1344).
270
+ *
271
+ * Claude Code keeps a conversation as `<home>/projects/<cwd slug>/<id>.jsonl`
272
+ * and, for conversations that ran subagents, a sidecar folder
273
+ * `<home>/projects/<cwd slug>/<id>/`. Both are copied, under the same slug,
274
+ * so a session the runtime fallback moves to another of the owner's Claude
275
+ * Code accounts (a different `CLAUDE_CONFIG_DIR`) keeps its conversation
276
+ * instead of starting fresh with a handover tail. The copy overwrites an
277
+ * older copy on the target (the source is the live one). Nothing else of the
278
+ * account — credentials, settings, history — is touched.
279
+ *
280
+ * @param args - Conversation id, the agent's cwd, the homes it may be under (current first) and the home to copy into
281
+ * @returns What was copied, or null when the transcript was not found or the copy failed
282
+ *
283
+ * @example
284
+ * ```typescript
285
+ * copyClaudeConversation({ sessionId, cwd, fromHomes: [defaultClaudeHome()], toHome: claudeAccountConfigDir('work') });
286
+ * ```
287
+ */
288
+ export declare function copyClaudeConversation(args: {
289
+ sessionId: string;
290
+ cwd: string;
291
+ fromHomes: readonly string[];
292
+ toHome: string;
293
+ }): CopiedClaudeConversation | null;
253
294
  /**
254
295
  * The threshold at which the orchestrator starts a fresh conversation.
255
296
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-session-recovery.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/runtime-session-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAU3D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAInG;AAED,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+EAA+E;IAC/E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB,GAAG,kBAAkB,CAuCrB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,6DAA6D;AAC7D,MAAM,WAAW,2BAA2B;IAC1C,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2DD;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,2BAA2B,GAAG,MAAM,GAAG,IAAI,CA2ClG;AAED;;;;;GAKG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,2BAA2B,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GACrH,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAI/E;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B,GAAG,gBAAgB,GAAG,IAAI,CAgC1B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GACtI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAUlC;AAoED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG,OAAO,CAiCV;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAM1G;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAS5H;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCrE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwD7D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGlF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGrF;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAuBjH;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAW1E;AAED,+DAA+D;AAC/D,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,GAAG,0BAA0B,GAAG,IAAI,CA6CpC;AAyCD,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAgB9G;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAQpG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,qBAAqB,GAAG,IAAI,CAQ/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqCnE"}
1
+ {"version":3,"file":"runtime-session-recovery.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/runtime-session-recovery.ts"],"names":[],"mappings":"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"}
@@ -582,9 +582,47 @@ export function lastTurnContextTokens(filePath) {
582
582
  return null;
583
583
  }
584
584
  /**
585
- * The plain words at the end of a conversation — what was said to the agent
586
- * and what it answered, without tool calls or tool output — for the file a
587
- * fresh conversation starts from.
585
+ * Clip to one line of at most `max` characters.
586
+ *
587
+ * @param text - Text
588
+ * @param max - Limit
589
+ * @returns One line
590
+ */
591
+ function oneLine(text, max) {
592
+ const flat = text.replace(/\s+/g, ' ').trim();
593
+ return flat.length > max ? `${flat.slice(0, max)}…` : flat;
594
+ }
595
+ /**
596
+ * The text of a tool result block: its string content, or the text parts of
597
+ * its array content, with images named rather than copied.
598
+ *
599
+ * @param content - `tool_result.content`
600
+ * @returns Text (may be empty), and whether an image was among the parts
601
+ */
602
+ function toolResultText(content) {
603
+ if (typeof content === 'string')
604
+ return { text: content, images: 0 };
605
+ let images = 0;
606
+ const parts = [];
607
+ if (Array.isArray(content)) {
608
+ for (const part of content) {
609
+ if (part?.type === 'text' && typeof part.text === 'string')
610
+ parts.push(part.text);
611
+ else if (part?.type === 'image')
612
+ images += 1;
613
+ }
614
+ }
615
+ return { text: parts.join(' '), images };
616
+ }
617
+ /**
618
+ * What was said and done at the end of a conversation, for the file a fresh
619
+ * conversation starts from: the plain words delivered to the agent and its
620
+ * answers, plus one line per tool call and tool result (tool name and the
621
+ * first {@link ORC_CONVERSATION_CONSTANTS.HANDOVER_TOOL_RESULT_CHARS}
622
+ * characters of its input / output) so the new conversation knows which files
623
+ * were read and which commands ran, not only what was said about them
624
+ * (crewly#1344). Images are a described placeholder, never copied. System
625
+ * reminders and command wrappers are left out.
588
626
  *
589
627
  * @param filePath - Transcript path
590
628
  * @returns Markdown, newest last; empty when nothing readable was found
@@ -607,6 +645,9 @@ export function buildHandoverSummary(filePath) {
607
645
  catch {
608
646
  return '';
609
647
  }
648
+ const clip = ORC_CONVERSATION_CONSTANTS.HANDOVER_MESSAGE_CHARS;
649
+ const toolClip = ORC_CONVERSATION_CONSTANTS.HANDOVER_TOOL_RESULT_CHARS;
650
+ const toolNames = new Map();
610
651
  const said = [];
611
652
  for (const line of text.split('\n')) {
612
653
  if (!line.trim())
@@ -621,24 +662,52 @@ export function buildHandoverSummary(filePath) {
621
662
  if ((entry.type !== 'user' && entry.type !== 'assistant') || entry.isMeta)
622
663
  continue;
623
664
  const content = entry.message?.content;
624
- const parts = [];
665
+ const words = [];
666
+ const tools = [];
625
667
  if (typeof content === 'string')
626
- parts.push(content);
668
+ words.push(content);
627
669
  else if (Array.isArray(content)) {
628
670
  for (const block of content) {
629
- if (block?.type === 'text' && typeof block.text === 'string')
630
- parts.push(block.text);
671
+ if (!block)
672
+ continue;
673
+ if (block.type === 'text' && typeof block.text === 'string')
674
+ words.push(block.text);
675
+ else if (block.type === 'image')
676
+ tools.push('↳ [image attached]');
677
+ else if (block.type === 'tool_use') {
678
+ const name = typeof block.name === 'string' ? block.name : 'tool';
679
+ if (typeof block.id === 'string')
680
+ toolNames.set(block.id, name);
681
+ let input = '';
682
+ try {
683
+ input = typeof block.input === 'string' ? block.input : JSON.stringify(block.input ?? '');
684
+ }
685
+ catch {
686
+ input = '';
687
+ }
688
+ tools.push(`↳ ${name}: ${oneLine(input, toolClip)}`);
689
+ }
690
+ else if (block.type === 'tool_result') {
691
+ const name = (typeof block.tool_use_id === 'string' && toolNames.get(block.tool_use_id)) || 'tool';
692
+ const result = toolResultText(block.content);
693
+ const parts = [result.text ? oneLine(result.text, toolClip) : '', result.images > 0 ? `[${result.images} image${result.images === 1 ? '' : 's'} returned]` : '']
694
+ .filter(Boolean)
695
+ .join(' ');
696
+ tools.push(`↳ ${name} result: ${parts || '(empty)'}`);
697
+ }
631
698
  }
632
699
  }
633
- const joined = parts.join('\n').trim();
700
+ let joined = words.join('\n').trim();
634
701
  // System reminders and command wrappers are not conversation.
635
- if (!joined || joined.startsWith('<'))
702
+ if (joined.startsWith('<'))
703
+ joined = '';
704
+ if (!joined && tools.length === 0)
636
705
  continue;
637
- const clip = ORC_CONVERSATION_CONSTANTS.HANDOVER_MESSAGE_CHARS;
706
+ const body = [joined ? (joined.length > clip ? `${joined.slice(0, clip)}…` : joined) : '', ...tools].filter(Boolean).join('\n');
638
707
  said.push({
639
708
  who: entry.type === 'user' ? 'Delivered to you' : 'You',
640
709
  when: entry.timestamp ?? '',
641
- text: joined.length > clip ? `${joined.slice(0, clip)}…` : joined,
710
+ text: body,
642
711
  });
643
712
  }
644
713
  const kept = said.slice(-ORC_CONVERSATION_CONSTANTS.HANDOVER_MESSAGES);
@@ -655,6 +724,52 @@ export function buildHandoverSummary(filePath) {
655
724
  // (and from there into every later handover).
656
725
  return redactHandoverText(blocks.join('\n\n'));
657
726
  }
727
+ /**
728
+ * Copy a Claude Code conversation from one Claude home to another so that
729
+ * `claude --resume <id>` finds it there (crewly#1344).
730
+ *
731
+ * Claude Code keeps a conversation as `<home>/projects/<cwd slug>/<id>.jsonl`
732
+ * and, for conversations that ran subagents, a sidecar folder
733
+ * `<home>/projects/<cwd slug>/<id>/`. Both are copied, under the same slug,
734
+ * so a session the runtime fallback moves to another of the owner's Claude
735
+ * Code accounts (a different `CLAUDE_CONFIG_DIR`) keeps its conversation
736
+ * instead of starting fresh with a handover tail. The copy overwrites an
737
+ * older copy on the target (the source is the live one). Nothing else of the
738
+ * account — credentials, settings, history — is touched.
739
+ *
740
+ * @param args - Conversation id, the agent's cwd, the homes it may be under (current first) and the home to copy into
741
+ * @returns What was copied, or null when the transcript was not found or the copy failed
742
+ *
743
+ * @example
744
+ * ```typescript
745
+ * copyClaudeConversation({ sessionId, cwd, fromHomes: [defaultClaudeHome()], toHome: claudeAccountConfigDir('work') });
746
+ * ```
747
+ */
748
+ export function copyClaudeConversation(args) {
749
+ const source = findClaudeTranscript({ sessionId: args.sessionId, cwd: args.cwd, claudeHomes: args.fromHomes });
750
+ if (!source)
751
+ return null;
752
+ const slug = path.basename(path.dirname(source));
753
+ const targetDir = path.join(args.toHome, 'projects', slug);
754
+ const target = path.join(targetDir, `${args.sessionId}.jsonl`);
755
+ if (path.resolve(target) === path.resolve(source))
756
+ return { source, target, copied: [] };
757
+ try {
758
+ fs.mkdirSync(targetDir, { recursive: true });
759
+ fs.copyFileSync(source, target);
760
+ const copied = [target];
761
+ const sidecar = path.join(path.dirname(source), args.sessionId);
762
+ if (fs.existsSync(sidecar) && fs.statSync(sidecar).isDirectory()) {
763
+ const sidecarTarget = path.join(targetDir, args.sessionId);
764
+ fs.cpSync(sidecar, sidecarTarget, { recursive: true, force: true });
765
+ copied.push(sidecarTarget);
766
+ }
767
+ return { source, target, copied };
768
+ }
769
+ catch {
770
+ return null;
771
+ }
772
+ }
658
773
  /**
659
774
  * The threshold at which the orchestrator starts a fresh conversation.
660
775
  *