crewly 1.20.356 → 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 (252) hide show
  1. package/config/constants.ts +11 -0
  2. package/dist/backend/backend/src/constants.d.ts +254 -17
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +257 -17
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/index.d.ts.map +1 -1
  7. package/dist/backend/backend/src/index.js +70 -4
  8. package/dist/backend/backend/src/index.js.map +1 -1
  9. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +10 -2
  10. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  11. package/dist/backend/backend/src/services/agent/agent-registration.service.js +27 -2
  12. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  13. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
  14. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  15. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
  16. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  17. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +8 -0
  18. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/agent/idle-detection.service.js +26 -2
  20. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +9 -0
  22. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  23. package/dist/backend/backend/src/services/agent/resource-mode.service.js +16 -0
  24. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
  25. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
  26. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +126 -11
  28. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  29. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
  30. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
  32. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts +150 -0
  34. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts.map +1 -0
  35. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js +319 -0
  36. package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js.map +1 -0
  37. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +9 -7
  38. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -1
  39. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +19 -17
  40. package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -1
  41. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/memory/memory.service.js +11 -0
  43. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
  45. package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
  46. package/dist/backend/backend/src/services/memory/startup-briefing.service.js +302 -0
  47. package/dist/backend/backend/src/services/memory/startup-briefing.service.js.map +1 -0
  48. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
  49. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
  51. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
  52. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts +24 -1
  53. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js +54 -3
  55. package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js.map +1 -1
  56. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +9 -0
  57. package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +16 -2
  59. package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts +30 -0
  61. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts.map +1 -0
  62. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js +48 -0
  63. package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js.map +1 -0
  64. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +8 -0
  65. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +29 -8
  67. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  68. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +27 -0
  69. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  70. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +78 -24
  71. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  72. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +23 -0
  73. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  74. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +38 -1
  75. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  76. package/dist/backend/backend/src/services/slack/agent-coordination.d.ts +119 -0
  77. package/dist/backend/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
  78. package/dist/backend/backend/src/services/slack/agent-coordination.js +174 -0
  79. package/dist/backend/backend/src/services/slack/agent-coordination.js.map +1 -0
  80. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -0
  82. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  83. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
  84. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +619 -9
  86. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  87. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
  88. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +49 -12
  90. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
  92. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  93. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
  94. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  95. package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts +21 -1
  96. package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts.map +1 -1
  97. package/dist/backend/backend/src/services/team-move/team-move-chat.js +54 -2
  98. package/dist/backend/backend/src/services/team-move/team-move-chat.js.map +1 -1
  99. package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts +9 -4
  100. package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts.map +1 -1
  101. package/dist/backend/backend/src/services/team-move/team-move-exporter.js +32 -10
  102. package/dist/backend/backend/src/services/team-move/team-move-exporter.js.map +1 -1
  103. package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts +19 -0
  104. package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts.map +1 -1
  105. package/dist/backend/backend/src/services/team-move/team-move-importer.js +78 -3
  106. package/dist/backend/backend/src/services/team-move/team-move-importer.js.map +1 -1
  107. package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts.map +1 -1
  108. package/dist/backend/backend/src/services/team-move/team-move-runtime.js +8 -0
  109. package/dist/backend/backend/src/services/team-move/team-move-runtime.js.map +1 -1
  110. package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts +106 -0
  111. package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts.map +1 -0
  112. package/dist/backend/backend/src/services/team-move/team-move-transcripts.js +212 -0
  113. package/dist/backend/backend/src/services/team-move/team-move-transcripts.js.map +1 -0
  114. package/dist/backend/backend/src/services/team-move/team-move.types.d.ts +20 -0
  115. package/dist/backend/backend/src/services/team-move/team-move.types.d.ts.map +1 -1
  116. package/dist/backend/backend/src/services/team-move/team-move.types.js.map +1 -1
  117. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -2
  118. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  119. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +11 -4
  120. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  121. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -1
  122. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +3 -0
  123. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -1
  124. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts.map +1 -1
  125. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js +4 -1
  126. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -1
  127. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
  128. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +4 -0
  129. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
  130. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
  131. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  132. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js +75 -7
  133. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  134. package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +3 -1
  136. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts +116 -0
  138. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts.map +1 -0
  139. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js +227 -0
  140. package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js.map +1 -0
  141. package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
  142. package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
  143. package/dist/backend/backend/src/services/wiki/wiki-log-entries.js +222 -0
  144. package/dist/backend/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
  145. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts +93 -0
  146. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts.map +1 -0
  147. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js +142 -0
  148. package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js.map +1 -0
  149. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts +104 -0
  150. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts.map +1 -0
  151. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js +192 -0
  152. package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js.map +1 -0
  153. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +3 -2
  154. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
  155. package/dist/backend/backend/src/services/wiki/wiki-query.service.js +23 -39
  156. package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
  157. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts +105 -0
  158. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts.map +1 -0
  159. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js +195 -0
  160. package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js.map +1 -0
  161. package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -1
  162. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +3 -0
  163. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -1
  164. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
  165. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  166. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +96 -25
  167. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  168. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
  169. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
  170. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js +17 -1
  171. package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
  172. package/dist/backend/build-info.json +2 -2
  173. package/dist/backend/config/constants.d.ts +11 -0
  174. package/dist/backend/config/constants.d.ts.map +1 -1
  175. package/dist/backend/config/constants.js +11 -0
  176. package/dist/backend/config/constants.js.map +1 -1
  177. package/dist/cli/backend/src/constants.d.ts +254 -17
  178. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  179. package/dist/cli/backend/src/constants.js +257 -17
  180. package/dist/cli/backend/src/constants.js.map +1 -1
  181. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +10 -2
  182. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  183. package/dist/cli/backend/src/services/agent/agent-registration.service.js +27 -2
  184. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  185. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
  186. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  187. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
  188. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  189. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +9 -0
  190. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  191. package/dist/cli/backend/src/services/agent/resource-mode.service.js +16 -0
  192. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
  193. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
  194. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  195. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +126 -11
  196. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  197. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
  198. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  199. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
  200. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  201. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  202. package/dist/cli/backend/src/services/memory/memory.service.js +11 -0
  203. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  204. package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
  205. package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
  206. package/dist/cli/backend/src/services/memory/startup-briefing.service.js +302 -0
  207. package/dist/cli/backend/src/services/memory/startup-briefing.service.js.map +1 -0
  208. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
  209. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
  210. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
  211. package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
  212. package/dist/cli/backend/src/services/slack/agent-coordination.d.ts +119 -0
  213. package/dist/cli/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
  214. package/dist/cli/backend/src/services/slack/agent-coordination.js +174 -0
  215. package/dist/cli/backend/src/services/slack/agent-coordination.js.map +1 -0
  216. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
  217. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  218. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +619 -9
  219. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  220. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
  221. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  222. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +49 -12
  223. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  224. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
  225. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  226. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
  227. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  228. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
  229. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  230. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +75 -7
  231. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  232. package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
  233. package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
  234. package/dist/cli/backend/src/services/wiki/wiki-log-entries.js +222 -0
  235. package/dist/cli/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
  236. package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
  237. package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
  238. package/dist/cli/backend/src/services/wiki/wiki-recent.service.js +105 -0
  239. package/dist/cli/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
  240. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
  241. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  242. package/dist/cli/backend/src/services/wiki/wiki-search.service.js +96 -25
  243. package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  244. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
  245. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
  246. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js +17 -1
  247. package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
  248. package/dist/cli/config/constants.d.ts +11 -0
  249. package/dist/cli/config/constants.d.ts.map +1 -1
  250. package/dist/cli/config/constants.js +11 -0
  251. package/dist/cli/config/constants.js.map +1 -1
  252. package/package.json +1 -1
@@ -1692,6 +1692,119 @@ export const WIKI_QUEUE_CONSTANTS = {
1692
1692
  CLAIM_TIMEOUT_MS: WIKI_QUEUE_DAY_MS,
1693
1693
  /** Sub-folder of the queue root that holds expired items (kept, never deleted). */
1694
1694
  DEAD_LETTER_DIR: 'dead-letter',
1695
+ /**
1696
+ * Code drain (#1345): a pending item nobody claimed within this age is
1697
+ * filed into the vault's `log.md` by the backend, without an LLM.
1698
+ */
1699
+ DRAIN_MIN_AGE_MS: WIKI_QUEUE_DAY_MS,
1700
+ /** Items filed per drain pass (the pass runs hourly, so a backlog of hundreds clears within a day). */
1701
+ DRAIN_BATCH_SIZE: 100,
1702
+ /** Pause between two filed items, so a long backlog does not saturate disk I/O. */
1703
+ DRAIN_ITEM_PAUSE_MS: 25,
1704
+ /** `claimedBy` / caller the drain stamps on items it files. */
1705
+ DRAIN_CLAIMANT: 'system:wiki-queue-drain',
1706
+ };
1707
+ /**
1708
+ * The vault activity log (`llm-curated/log.md`) and what the backend does
1709
+ * with it (#1345): dedupe on append, rotation into an archive, recent
1710
+ * entries in search, and a weekly digest page compiled from them.
1711
+ */
1712
+ export const WIKI_LOG_CONSTANTS = {
1713
+ /** Vault-relative path of the activity log. */
1714
+ LOG_RELATIVE_PATH: 'llm-curated/log.md',
1715
+ /** Vault-relative folder rotated logs move to (`log-YYYY-MM-DD.md`). Never read by search. */
1716
+ ARCHIVE_DIR: 'llm-curated/log-archive',
1717
+ /** Rotate when the log is larger than this. */
1718
+ ROTATE_MAX_BYTES: 2 * 1024 * 1024,
1719
+ /** Rotate when the log holds more entries than this. */
1720
+ ROTATE_MAX_ENTRIES: 2000,
1721
+ /** After a rotation the fresh log keeps the non-noise entries from this many days. */
1722
+ CARRY_FORWARD_DAYS: 30,
1723
+ /** Cap on entries carried into the fresh log. */
1724
+ CARRY_FORWARD_MAX_ENTRIES: 500,
1725
+ /** Search/recall index the entries from this many days. */
1726
+ SEARCH_WINDOW_DAYS: 30,
1727
+ /** Cap on log entries one vault contributes to a search. */
1728
+ SEARCH_MAX_ENTRIES_PER_VAULT: 300,
1729
+ /** BM25 score multiplier for a log entry (pages rank above entries of equal relevance). */
1730
+ SEARCH_ENTRY_WEIGHT: 0.6,
1731
+ /** Separator between the log path and an entry's timestamp in a search hit path. */
1732
+ ENTRY_PATH_SEPARATOR: '#',
1733
+ /** Recent entry bodies remembered per vault to drop an identical append. */
1734
+ DEDUPE_RECENT_ENTRIES: 500,
1735
+ /** Bytes of the log tail read once to seed the dedupe set. */
1736
+ DEDUPE_SEED_TAIL_BYTES: 256 * 1024,
1737
+ /** The digest compiles the uncompiled non-noise entries from this many days. */
1738
+ COMPILE_WINDOW_DAYS: 7,
1739
+ /** Fewer uncompiled entries than this: no digest page is written. */
1740
+ COMPILE_MIN_ENTRIES: 3,
1741
+ /** Cap on entries one digest page takes (the rest wait for the next run). */
1742
+ COMPILE_MAX_ENTRIES: 150,
1743
+ /** Characters of an entry body quoted in the digest. */
1744
+ COMPILE_ENTRY_MAX_CHARS: 400,
1745
+ /** Vault-relative folder of digest pages. */
1746
+ COMPILE_DIR: 'llm-curated/digests',
1747
+ /** Vault-root file remembering which entries were compiled (dot-file: walkers skip it). */
1748
+ COMPILE_STATE_FILE: '.wiki-compile-state.json',
1749
+ /** Cap on remembered compiled entry keys per vault. */
1750
+ COMPILE_STATE_MAX_KEYS: 5000,
1751
+ /** Hourly maintenance tick (drain every tick; rotation + compile once per day). */
1752
+ MAINTENANCE_INTERVAL_MS: 60 * 60 * 1000,
1753
+ /** Rotation + compile run at most this often. */
1754
+ MAINTENANCE_DAILY_MS: 24 * 60 * 60 * 1000,
1755
+ /** Delay before the boot-time pass, so boot I/O settles first. */
1756
+ MAINTENANCE_BOOT_DELAY_MS: 90 * 1000,
1757
+ /** Maintenance bookkeeping (last daily pass), under CREWLY_HOME. */
1758
+ MAINTENANCE_STATE_FILE: 'wiki-maintenance-state.json',
1759
+ /** Kill switch env var; the value `false` disables all wiki maintenance. */
1760
+ MAINTENANCE_ENV_KILL_SWITCH: 'CREWLY_WIKI_MAINTENANCE',
1761
+ };
1762
+ /**
1763
+ * Daily agent-memory refresh (#1345): what an agent recorded in the wiki
1764
+ * log is reflected into its `memory.json` and the project's memory.
1765
+ */
1766
+ export const AGENT_MEMORY_REFRESH_CONSTANTS = {
1767
+ INTERVAL_MS: 24 * 60 * 60 * 1000,
1768
+ /** Delay before the boot-time catch-up run. */
1769
+ BOOT_DELAY_MS: 2 * 60 * 1000,
1770
+ /** Entries newer than this are considered on the first run (later runs use the last-run watermark). */
1771
+ LOOKBACK_MS: 24 * 60 * 60 * 1000,
1772
+ /** Cap on role-knowledge entries added per agent per run. */
1773
+ MAX_ENTRIES_PER_AGENT: 10,
1774
+ /** Cap on characters of one entry kept as knowledge. */
1775
+ ENTRY_MAX_CHARS: 600,
1776
+ /** Confidence of a knowledge entry derived from the agent's own log entries. */
1777
+ CONFIDENCE: 0.5,
1778
+ /** State file (last run per agent), under CREWLY_HOME. */
1779
+ STATE_FILE: 'agent-memory-refresh-state.json',
1780
+ /** Kill switch env var; the value `false` disables the refresh. */
1781
+ ENV_KILL_SWITCH: 'CREWLY_AGENT_MEMORY_REFRESH',
1782
+ };
1783
+ /**
1784
+ * Startup briefing content (#1345): wiki pages, recent lessons and open
1785
+ * owner threads an agent gets at registration, on top of its session memory.
1786
+ */
1787
+ export const STARTUP_BRIEFING_CONSTANTS = {
1788
+ /** Hard cap on the whole section. */
1789
+ MAX_CHARS: 12_000,
1790
+ /** Cap on the wiki index excerpt. */
1791
+ INDEX_MAX_CHARS: 4_000,
1792
+ /** Most-recently-changed topic pages listed. */
1793
+ RECENT_PAGES: 5,
1794
+ /** Characters of a page summary shown. */
1795
+ PAGE_SUMMARY_MAX_CHARS: 240,
1796
+ /** Lessons from this many days back. */
1797
+ LESSONS_DAYS: 7,
1798
+ /** Cap on lessons listed. */
1799
+ LESSONS_MAX: 12,
1800
+ /** Characters of one lesson shown. */
1801
+ LESSON_MAX_CHARS: 300,
1802
+ /** Cap on owner threads listed. */
1803
+ THREADS_MAX: 5,
1804
+ /** Characters of a thread preview shown. */
1805
+ THREAD_PREVIEW_MAX_CHARS: 160,
1806
+ /** Section heading. */
1807
+ HEADING: '## Your Project Knowledge',
1695
1808
  };
1696
1809
  /**
1697
1810
  * Standing-answer pages (#816): a few question-anchored pages per scope,
@@ -1818,6 +1931,10 @@ export const SLACK_TYPING_CONSTANTS = {
1818
1931
  TIMEOUT_TEXT: '⏱ {name} is still working on this — the reply will follow.',
1819
1932
  /** How long a placeholder waits for the reply before it is edited to TIMEOUT_TEXT */
1820
1933
  TIMEOUT_MS: 5 * 60 * 1000,
1934
+ /** Slack errors meaning the agent's bot cannot post in that channel at all (not a member of a private channel, or gone) */
1935
+ UNREACHABLE_CHANNEL_ERROR: /\b(channel_not_found|not_in_channel|is_archived)\b/,
1936
+ /** After such an error, no placeholder is tried for that agent in that channel for this long (ms) */
1937
+ UNREACHABLE_CHANNEL_MS: 60 * 60 * 1000,
1821
1938
  /** A timed-out placeholder is still removed by a reply arriving within this long (ms) */
1822
1939
  EXPIRED_KEEP_MS: 24 * 60 * 60 * 1000,
1823
1940
  /**
@@ -1902,9 +2019,15 @@ export const SLACK_THREAD_CONTEXT_CONSTANTS = {
1902
2019
  /** Whether the Slack context block is fetched at all */
1903
2020
  ENABLED: true,
1904
2021
  /** Most messages shown (newest kept) */
1905
- MAX_MESSAGES: 30,
1906
- /** Character budget of the whole block's message lines (newest kept) */
1907
- MAX_CHARS: 5_000,
2022
+ MAX_MESSAGES: 40,
2023
+ /**
2024
+ * Character budget of the whole block's message lines (newest kept).
2025
+ * 5 000 → 12 000 (crewly#1344): with the thread root always shown and
2026
+ * 1 500 characters per message, eight messages no longer fit in 5 000,
2027
+ * and the owner approved the larger prompt over agents that could not see
2028
+ * what the thread was about.
2029
+ */
2030
+ MAX_CHARS: 12_000,
1908
2031
  /** Characters kept per message before clipping */
1909
2032
  PER_MESSAGE_CHARS: 4_000,
1910
2033
  /**
@@ -1912,11 +2035,18 @@ export const SLACK_THREAD_CONTEXT_CONSTANTS = {
1912
2035
  * compact "thread so far", not a transcript: a 4 000-char draft pasted in
1913
2036
  * the thread made the prompt 13.5k chars, the busy-agent note cut it at
1914
2037
  * 6 000, and the newest posts and the owner's ping were the part cut
1915
- * (2026-10-08, #content-team).
2038
+ * (2026-10-08, #content-team). 500 → 1 500 (crewly#1344): 500 cut most
2039
+ * owner briefs mid-sentence; the busy-agent note now keeps the block's end.
1916
2040
  */
1917
- BLOCK_PER_MESSAGE_CHARS: 500,
2041
+ BLOCK_PER_MESSAGE_CHARS: 1_500,
1918
2042
  /** The block shows at least this many of the newest messages, or everything since the agent's own last post when that is more */
1919
2043
  BLOCK_RECENT_MESSAGES: 8,
2044
+ /**
2045
+ * The thread's root message is always in the block, even when it is
2046
+ * older than the window — it says what the thread is about (crewly#1344).
2047
+ * Shown with this marker and a line saying how many messages were skipped.
2048
+ */
2049
+ ROOT_MARK: '(thread root)',
1920
2050
  /** Marks a line addressed to the agent (or a person's post) after its last post in the thread */
1921
2051
  UNANSWERED_MARK: '⟵ not answered by you yet',
1922
2052
  /**
@@ -3092,12 +3222,24 @@ export const ORC_CONVERSATION_CONSTANTS = {
3092
3222
  FRESH_CONTEXT_TOKENS: 300_000,
3093
3223
  /** How much of the old transcript's end is read to find the last turn's size */
3094
3224
  TAIL_BYTES: 2 * 1024 * 1024,
3095
- /** Messages kept in the handover file, newest last */
3096
- HANDOVER_MESSAGES: 40,
3225
+ /**
3226
+ * Messages kept in the handover file, newest last. Raised 40 → 60 with
3227
+ * the per-message and total caps (crewly#1344): a 16k-character tail of
3228
+ * plain words lost the tool traffic entirely, and agents that were reset
3229
+ * several times a day "remembered worse" than plain Claude Code.
3230
+ */
3231
+ HANDOVER_MESSAGES: 60,
3097
3232
  /** Characters kept per handover message */
3098
- HANDOVER_MESSAGE_CHARS: 800,
3099
- /** Total cap on the handover file's body */
3100
- HANDOVER_MAX_CHARS: 16_000,
3233
+ HANDOVER_MESSAGE_CHARS: 2_000,
3234
+ /** Total cap on the handover file's body (~40k characters, ~10k tokens) */
3235
+ HANDOVER_MAX_CHARS: 40_000,
3236
+ /**
3237
+ * Characters kept of each tool call / tool result in a handover: the tool
3238
+ * name plus the start of its input or output, one line each, so the new
3239
+ * conversation knows WHAT was done (files read, commands run), not just
3240
+ * what was said about it. Images stay a described placeholder.
3241
+ */
3242
+ HANDOVER_TOOL_RESULT_CHARS: 200,
3101
3243
  /** Directory under CREWLY_HOME for handover files */
3102
3244
  HANDOVER_DIR: 'handover',
3103
3245
  /** A plain restart hands over the previous conversation only when its transcript was written within this window */
@@ -3107,7 +3249,7 @@ export const ORC_CONVERSATION_CONSTANTS = {
3107
3249
  /** How much of a transcript's start is read to check it belongs to a session (cwd-wide fallback) */
3108
3250
  OWNERSHIP_HEAD_BYTES: 256 * 1024,
3109
3251
  /** Most of an earlier handover carried into a new one when the source conversation is unreadable */
3110
- CHAINED_HANDOVER_MAX_CHARS: 16_000,
3252
+ CHAINED_HANDOVER_MAX_CHARS: 40_000,
3111
3253
  };
3112
3254
  /** Pointer header (open work, suggested skills) written at the top of a handover file. */
3113
3255
  export const HANDOVER_POINTERS_CONSTANTS = {
@@ -3169,17 +3311,43 @@ export const FRESH_TASK_CONVERSATION_CONSTANTS = {
3169
3311
  NEW_SESSION_POLL_MS: 1_000,
3170
3312
  /** Cap on the handover text stored through memory (mirrored into the wiki) */
3171
3313
  MEMORY_MAX_CHARS: 4_000,
3172
- /** Members start fresh at launch when their last turn carried this many tokens. Env: CREWLY_MEMBER_FRESH_CONTEXT_TOKENS */
3173
- MEMBER_FRESH_CONTEXT_TOKENS: 150_000,
3314
+ /**
3315
+ * Members start fresh at launch when their last turn carried this many
3316
+ * tokens. Env: CREWLY_MEMBER_FRESH_CONTEXT_TOKENS.
3317
+ *
3318
+ * Above Claude Code's own auto-compact window (CLAUDE_CODE_CONTEXT, 350k)
3319
+ * on purpose (crewly#1344): Claude compacts its conversation itself and
3320
+ * keeps a far better summary than a handover tail, so Crewly's reset is
3321
+ * only a safety net for a conversation that compaction did not bring
3322
+ * down. At the old 150k the audit of 2026-10-16 counted 58 fresh starts
3323
+ * in 48 h, every one of them replacing a live conversation with 16k
3324
+ * characters of tail.
3325
+ */
3326
+ MEMBER_FRESH_CONTEXT_TOKENS: 400_000,
3327
+ /**
3328
+ * The smallest conversation a new-task `/clear` may close (last-turn
3329
+ * tokens): the same as {@link MEMBER_FRESH_CONTEXT_TOKENS}, read through
3330
+ * `memberFreshContextTokens()` so the env override applies to both. A
3331
+ * conversation under it is cheap to keep and is what the agent remembers
3332
+ * by; 137 clears in 48 h, some at 56k, were the cost of not having a floor.
3333
+ */
3334
+ MIN_CLEAR_CONTEXT_TOKENS: 400_000,
3335
+ /**
3336
+ * A member the owner spoke to this recently (an owner thread the sentinel
3337
+ * watches: the owner's last message, or an open promise) is never cleared
3338
+ * for a new task — the clear would wipe the conversation the owner is in.
3339
+ */
3340
+ OWNER_CONVERSATION_ACTIVE_MS: 2 * 60 * 60 * 1000,
3174
3341
  /**
3175
3342
  * Idle-boundary context cap: a Claude Code member (never the orchestrator)
3176
3343
  * whose last turn carried more than this many tokens is saved (handover +
3177
3344
  * wiki) and cleared between turns, then re-oriented on its WorkItem. One
3178
- * long task can otherwise run 1000+ turns at 650k–965k context. Matches
3179
- * the 200k context ceiling the monitor alerts at, so a member never sits
3180
- * in "critical" between turns.
3345
+ * long task can otherwise run 1000+ turns at 650k–965k context. Above the
3346
+ * fresh-start threshold and Claude Code's 350k auto-compact (crewly#1344),
3347
+ * so compaction runs first and this only catches a conversation that kept
3348
+ * growing through it.
3181
3349
  */
3182
- MEMBER_CONTEXT_CAP_TOKENS: 200_000,
3350
+ MEMBER_CONTEXT_CAP_TOKENS: 450_000,
3183
3351
  /** Env override for {@link MEMBER_CONTEXT_CAP_TOKENS}; `0` disables the cap */
3184
3352
  MEMBER_CONTEXT_CAP_ENV: 'CREWLY_MEMBER_CONTEXT_CAP_TOKENS',
3185
3353
  /** At most one context-cap clear per session in this window */
@@ -7065,6 +7233,48 @@ export const TL_DELEGATION_CONSTANTS = {
7065
7233
  /** Accepted tool_name from the hook */
7066
7234
  TOOL_NAME_PATTERN: /^[A-Za-z0-9_-]{1,64}$/,
7067
7235
  };
7236
+ /**
7237
+ * Agent-to-agent coordination in Slack rooms (crewly#1340): local
7238
+ * coordination stays inside Crewly, cross-machine coordination goes in a
7239
+ * thread, ticket ids never reach Slack, near-identical repeats are dropped.
7240
+ */
7241
+ export const AGENT_COORDINATION_CONSTANTS = {
7242
+ /** chat-v2 message metadata: this agent post was delivered inside Crewly only (value: the reason) */
7243
+ INTERNAL_METADATA_KEY: 'agentCoordinationInternal',
7244
+ /** A repeat to the same recipients in the same room within this window is dropped (ms) */
7245
+ DUPLICATE_WINDOW_MS: 15 * 60 * 1000,
7246
+ /** Character-bigram similarity at which two messages count as the same message */
7247
+ DUPLICATE_SIMILARITY: 0.85,
7248
+ /** Messages remembered per sender/recipients/room */
7249
+ DUPLICATE_HISTORY: 10,
7250
+ /** Sender/recipients/room keys remembered at most */
7251
+ DUPLICATE_MAX_KEYS: 500,
7252
+ /** Request ticket prefix — always internal (`TKT-187`) */
7253
+ REQUEST_TICKET_PREFIX: 'TKT',
7254
+ /** Ticket prefixes are re-read at most this often (ms) */
7255
+ TICKET_PREFIX_CACHE_MS: 10 * 60 * 1000,
7256
+ /** Who asked a helper is remembered this long, to hand back a reply it cannot post (ms) */
7257
+ ASKED_BY_TTL_MS: 6 * 60 * 60 * 1000,
7258
+ /** Entries of the asked-by map at most */
7259
+ ASKED_BY_MAX: 500,
7260
+ /** Longest wait for the directory when telling agents elsewhere from people (ms) */
7261
+ DIRECTORY_LOOKUP_MS: 2000,
7262
+ /** Coordination threads (one per room per UTC day) remembered at most */
7263
+ COORDINATION_THREADS_MAX: 200,
7264
+ /**
7265
+ * Rules for every agent prompted from a Slack room. 2026-10-16: three
7266
+ * agents on one machine flooded #content-team with top-level coordination,
7267
+ * repeated one conclusion three times, quoted ticket ids, and promised to
7268
+ * watch a log "every 3h".
7269
+ */
7270
+ PROMPT_RULES: 'Working with colleagues: when you need a colleague\'s help, @ them — if everyone you @ is an agent on this machine, it reaches them inside Crewly and is not posted to Slack. ' +
7271
+ 'Helpers answer whoever asked them, not the room; the agent the room asked posts one consolidated update in the original thread once the result is in. ' +
7272
+ 'Do not resend an answer you already gave the same colleague — point to it in one line. ' +
7273
+ 'Never promise to poll or watch something periodically ("I\'ll check the log every 3h"): ask to be pinged, or rely on the event that tells you. ' +
7274
+ 'Ticket ids (e.g. CREW-12) and ticket mechanics are internal: never write them in anything people read.',
7275
+ /** Added when the message came from a colleague inside Crewly (never in Slack). */
7276
+ INTERNAL_PROMPT_LINE: 'This message came from a colleague inside Crewly and is not in Slack: reply with the command above — your answer goes to them, not to the room.',
7277
+ };
7068
7278
  /**
7069
7279
  * Harness-owned reply routing (specs/2026-10-02-harness-owned-routing.md).
7070
7280
  */
@@ -7923,6 +8133,19 @@ export const OWNER_THREAD_SENTINEL_CONSTANTS = {
7923
8133
  BOOT_CARD_MAX_AGE_MS: 24 * 60 * 60 * 1000,
7924
8134
  /** A card goes into an owner thread only when that thread was active this recently */
7925
8135
  CARD_THREAD_MAX_AGE_MS: 2 * 60 * 60 * 1000,
8136
+ /**
8137
+ * A watched thread with no owner activity for this long is dropped at
8138
+ * load and never counted as owed again (crewly#1344): a thread from 10-07
8139
+ * whose owner last wrote on 10-08 was re-stamped "restarted" on every boot
8140
+ * and listed as "work in hand" for ten days.
8141
+ */
8142
+ STALE_AFTER_MS: 3 * 24 * 60 * 60 * 1000,
8143
+ /**
8144
+ * An agent counts as "in an owner conversation" while the owner wrote to
8145
+ * it (or it promised the owner something) in a watched thread within this
8146
+ * window — the per-task clear and the slot-cap eviction spare it (crewly#1344).
8147
+ */
8148
+ OWNER_ACTIVE_MS: 2 * 60 * 60 * 1000,
7926
8149
  };
7927
8150
  /**
7928
8151
  * Drive mode briefing (specs/2026-10-08-drive-mode.md): the owner's queue of
@@ -8282,6 +8505,23 @@ export const TEAM_MOVE_CONSTANTS = {
8282
8505
  NON_MACHINE_INSTANCE_PATTERN: '^crewly-cloud',
8283
8506
  /** Newest handover notes kept per agent. */
8284
8507
  HANDOVERS_PER_AGENT: 10,
8508
+ /**
8509
+ * Largest Claude Code transcript (the agent's current conversation) that
8510
+ * travels with a move, per agent (crewly#1344). Only the latest
8511
+ * conversation per agent is packaged, under `transcripts/<session>/`, and
8512
+ * resumed on the target; a bigger one is left behind and listed.
8513
+ */
8514
+ TRANSCRIPT_MAX_BYTES: 64 * 1024 * 1024,
8515
+ /** Newest chat-v2 messages of the team's Slack room carried in the package (per channel). */
8516
+ CHAT_MESSAGES_PER_CHANNEL: 500,
8517
+ /** Total cap on carried chat messages' content (bytes), all channels together. */
8518
+ CHAT_MESSAGES_MAX_BYTES: 4 * 1024 * 1024,
8519
+ /**
8520
+ * Suffix of the folder a project is given on the target when the team
8521
+ * lists a project the package did not carry: a clearly flagged placeholder
8522
+ * the owner is told to re-point (never silently dropped, crewly#1344).
8523
+ */
8524
+ PLACEHOLDER_PROJECT_SUFFIX: '-NEEDS-PATH',
8285
8525
  /** Largest text file that is path-rewritten and secret-scanned in memory. */
8286
8526
  TEXT_FILE_MAX_BYTES: 8 * 1024 * 1024,
8287
8527
  /** Free disk the target needs beyond the package (bytes): 2x package + this. */