crewly 1.20.153 → 1.20.155

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 (773) hide show
  1. package/README.md +21 -3
  2. package/config/constants.ts +78 -0
  3. package/config/hooks/agent-status/report.sh +78 -0
  4. package/config/hooks/control-plane-guard/pretooluse-bash.sh +241 -0
  5. package/config/orchestrator_tasks/prompts/assign-task-orchestrator-prompt-template.md +19 -49
  6. package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +25 -125
  7. package/config/orchestrator_tasks/prompts/project-start-orchestrator-prompt-template.md +29 -100
  8. package/config/roles/orchestrator/prompt.md +18 -2
  9. package/config/roles/team-leader/prompt.md +13 -3
  10. package/config/roles/team-leader/role.json +1 -1
  11. package/config/roles/team-leader/tl-addon.md +12 -3
  12. package/config/skills/agent/core/complete-task/SKILL.md +1 -1
  13. package/config/skills/agent/core/project-tickets/SKILL.md +127 -0
  14. package/config/skills/agent/core/project-tickets/execute.sh +182 -0
  15. package/config/skills/agent/core/project-tickets/execute.test.sh +116 -0
  16. package/config/skills/agent/core/recall/SKILL.md +1 -1
  17. package/config/skills/agent/core/recall/execute.sh +7 -0
  18. package/config/skills/agent/core/report-status/SKILL.md +3 -2
  19. package/config/skills/agent/core/report-status/execute.sh +37 -15
  20. package/config/skills/agent/core/split-ticket/SKILL.md +62 -0
  21. package/config/skills/agent/core/split-ticket/execute.sh +87 -0
  22. package/config/skills/agent/core/split-ticket/execute.test.sh +77 -0
  23. package/config/skills/agent/core/standing-update/SKILL.md +96 -0
  24. package/config/skills/agent/core/standing-update/execute.sh +107 -0
  25. package/config/skills/agent/onboarding/materialize-team/SKILL.md +1 -1
  26. package/config/skills/agent/onboarding/recommend-team/SKILL.md +1 -1
  27. package/config/skills/orchestrator/delegate-task/SKILL.md +4 -3
  28. package/config/skills/orchestrator/render-verdict/SKILL.md +62 -0
  29. package/config/skills/orchestrator/render-verdict/execute.sh +47 -0
  30. package/config/skills/orchestrator/render-verdict/execute.test.sh +121 -0
  31. package/config/skills/orchestrator/wiki-migrate/SKILL.md +0 -1
  32. package/config/skills/team-leader/aggregate-results/SKILL.md +1 -1
  33. package/config/skills/team-leader/assign-ticket/SKILL.md +47 -0
  34. package/config/skills/team-leader/assign-ticket/execute.sh +59 -0
  35. package/config/skills/team-leader/assign-ticket/execute.test.sh +64 -0
  36. package/config/skills/team-leader/decompose-goal/SKILL.md +4 -4
  37. package/config/skills/team-leader/delegate-task/SKILL.md +1 -1
  38. package/config/skills/team-leader/delegate-task/execute.sh +17 -4
  39. package/config/skills/team-leader/verify-output/SKILL.md +2 -2
  40. package/config/sops/developer/git-workflow.md +1 -1
  41. package/dist/backend/backend/src/constants.d.ts +397 -1
  42. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  43. package/dist/backend/backend/src/constants.js +388 -2
  44. package/dist/backend/backend/src/constants.js.map +1 -1
  45. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +27 -0
  46. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -0
  47. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +55 -0
  48. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -0
  49. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.d.ts +13 -0
  50. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.d.ts.map +1 -0
  51. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.js +19 -0
  52. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.js.map +1 -0
  53. package/dist/backend/backend/src/controllers/api.controller.d.ts +0 -12
  54. package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -1
  55. package/dist/backend/backend/src/controllers/api.controller.js +0 -44
  56. package/dist/backend/backend/src/controllers/api.controller.js.map +1 -1
  57. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +27 -5
  58. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
  59. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +55 -15
  60. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
  61. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -1
  62. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +2 -0
  63. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -1
  64. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +13 -0
  65. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -1
  66. package/dist/backend/backend/src/controllers/expert/expert.controller.js +67 -9
  67. package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -1
  68. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +32 -0
  69. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  70. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +122 -8
  71. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  72. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts +41 -0
  73. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts.map +1 -0
  74. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js +146 -0
  75. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js.map +1 -0
  76. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.d.ts +20 -0
  77. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.d.ts.map +1 -0
  78. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.js +29 -0
  79. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.js.map +1 -0
  80. package/dist/backend/backend/src/controllers/project/project.controller.d.ts +2 -2
  81. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  82. package/dist/backend/backend/src/controllers/project/project.controller.js +24 -7
  83. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  84. package/dist/backend/backend/src/controllers/project/project.routes.d.ts +2 -2
  85. package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
  86. package/dist/backend/backend/src/controllers/project/project.routes.js +3 -36
  87. package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
  88. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +93 -0
  89. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -0
  90. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +252 -0
  91. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -0
  92. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +34 -0
  93. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -0
  94. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +51 -0
  95. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -0
  96. package/dist/backend/backend/src/controllers/request-types.d.ts +13 -0
  97. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  98. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts +49 -0
  99. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts.map +1 -0
  100. package/dist/backend/backend/src/controllers/standing/standing.controller.js +100 -0
  101. package/dist/backend/backend/src/controllers/standing/standing.controller.js.map +1 -0
  102. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +38 -0
  103. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  104. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +143 -8
  105. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  106. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
  107. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +6 -1
  108. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
  109. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +2 -0
  110. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  111. package/dist/backend/backend/src/controllers/team/team.controller.js +26 -6
  112. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  113. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts +18 -0
  114. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -1
  115. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +56 -0
  116. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -1
  117. package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts +1 -0
  118. package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts.map +1 -1
  119. package/dist/backend/backend/src/controllers/tickets/tickets.routes.js +3 -1
  120. package/dist/backend/backend/src/controllers/tickets/tickets.routes.js.map +1 -1
  121. package/dist/backend/backend/src/controllers/types.d.ts +1 -2
  122. package/dist/backend/backend/src/controllers/types.d.ts.map +1 -1
  123. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +2 -3
  124. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
  125. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +2 -3
  126. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
  127. package/dist/backend/backend/src/index.d.ts.map +1 -1
  128. package/dist/backend/backend/src/index.js +113 -7
  129. package/dist/backend/backend/src/index.js.map +1 -1
  130. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +29 -0
  131. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -1
  132. package/dist/backend/backend/src/middleware/api-token.middleware.js +38 -0
  133. package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -1
  134. package/dist/backend/backend/src/models/index.d.ts +0 -1
  135. package/dist/backend/backend/src/models/index.d.ts.map +1 -1
  136. package/dist/backend/backend/src/models/index.js +0 -1
  137. package/dist/backend/backend/src/models/index.js.map +1 -1
  138. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  139. package/dist/backend/backend/src/routes/api.routes.js +24 -3
  140. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  141. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts +6 -2
  142. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts.map +1 -1
  143. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js +6 -2
  144. package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js.map +1 -1
  145. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +43 -1
  146. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/agent/agent-registration.service.js +129 -34
  148. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  149. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +169 -0
  150. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -0
  151. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +231 -0
  152. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -0
  153. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +154 -2
  154. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  155. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +380 -22
  156. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  157. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +16 -0
  158. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  159. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +50 -0
  160. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  161. package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts +9 -1
  162. package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts.map +1 -1
  163. package/dist/backend/backend/src/services/agent/tmux-command.service.js +12 -2
  164. package/dist/backend/backend/src/services/agent/tmux-command.service.js.map +1 -1
  165. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  166. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +9 -8
  167. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  168. package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.d.ts +75 -0
  169. package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.d.ts.map +1 -0
  170. package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.js +89 -0
  171. package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.js.map +1 -0
  172. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +3 -0
  173. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +3 -0
  175. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  176. package/dist/backend/backend/src/services/ai/prompt-modules/project-reference.module.js +1 -1
  177. package/dist/backend/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -1
  178. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  179. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +12 -0
  180. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  181. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +14 -0
  182. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  183. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  184. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  185. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +11 -7
  186. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  187. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts +41 -0
  188. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts.map +1 -0
  189. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.js +44 -0
  190. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.js.map +1 -0
  191. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +67 -0
  192. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -0
  193. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js +146 -0
  194. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -0
  195. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts.map +1 -1
  196. package/dist/backend/backend/src/services/ai/prompt-template.service.js +9 -7
  197. package/dist/backend/backend/src/services/ai/prompt-template.service.js.map +1 -1
  198. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  199. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +7 -0
  200. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  201. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts +7 -0
  202. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
  203. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js +9 -1
  204. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
  205. package/dist/backend/backend/src/services/core/logger.service.d.ts +21 -0
  206. package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
  207. package/dist/backend/backend/src/services/core/logger.service.js +42 -4
  208. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
  209. package/dist/backend/backend/src/services/core/storage.service.d.ts +1 -5
  210. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  211. package/dist/backend/backend/src/services/core/storage.service.js +5 -162
  212. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  213. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  214. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +6 -0
  215. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  216. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  217. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +15 -9
  218. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  219. package/dist/backend/backend/src/services/index.d.ts +0 -4
  220. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  221. package/dist/backend/backend/src/services/index.js +0 -4
  222. package/dist/backend/backend/src/services/index.js.map +1 -1
  223. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +1 -1
  224. package/dist/backend/backend/src/services/intent-task/intent-task.service.js +1 -1
  225. package/dist/backend/backend/src/services/mcp-server.d.ts +19 -6
  226. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
  227. package/dist/backend/backend/src/services/mcp-server.js +46 -16
  228. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  229. package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
  230. package/dist/backend/backend/src/services/mcp-tool-definitions.js +3 -2
  231. package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
  232. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +247 -0
  233. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -0
  234. package/dist/backend/backend/src/services/memory/standing-answers.service.js +534 -0
  235. package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -0
  236. package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts +104 -0
  237. package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts.map +1 -0
  238. package/dist/backend/backend/src/services/memory/standing-refresh.service.js +218 -0
  239. package/dist/backend/backend/src/services/memory/standing-refresh.service.js.map +1 -0
  240. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -0
  241. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  242. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +99 -1
  243. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  244. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.d.ts +75 -0
  245. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.d.ts.map +1 -0
  246. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.js +80 -0
  247. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.js.map +1 -0
  248. package/dist/backend/backend/src/services/monitoring/agent-attention.d.ts +114 -0
  249. package/dist/backend/backend/src/services/monitoring/agent-attention.d.ts.map +1 -0
  250. package/dist/backend/backend/src/services/monitoring/agent-attention.js +165 -0
  251. package/dist/backend/backend/src/services/monitoring/agent-attention.js.map +1 -0
  252. package/dist/backend/backend/src/services/monitoring/agent-hook-state.d.ts +76 -0
  253. package/dist/backend/backend/src/services/monitoring/agent-hook-state.d.ts.map +1 -0
  254. package/dist/backend/backend/src/services/monitoring/agent-hook-state.js +96 -0
  255. package/dist/backend/backend/src/services/monitoring/agent-hook-state.js.map +1 -0
  256. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +1 -1
  257. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +1 -1
  258. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -1
  259. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +13 -3
  260. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -1
  261. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -1
  262. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +0 -4
  263. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -1
  264. package/dist/backend/backend/src/services/project/project-search.service.d.ts +22 -16
  265. package/dist/backend/backend/src/services/project/project-search.service.d.ts.map +1 -1
  266. package/dist/backend/backend/src/services/project/project-search.service.js +30 -53
  267. package/dist/backend/backend/src/services/project/project-search.service.js.map +1 -1
  268. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +381 -0
  269. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -0
  270. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +839 -0
  271. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -0
  272. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +214 -0
  273. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -0
  274. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +466 -0
  275. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -0
  276. package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts +121 -0
  277. package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -0
  278. package/dist/backend/backend/src/services/project-tickets/ticket-file.js +468 -0
  279. package/dist/backend/backend/src/services/project-tickets/ticket-file.js.map +1 -0
  280. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.d.ts +69 -0
  281. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.d.ts.map +1 -0
  282. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.js +194 -0
  283. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.js.map +1 -0
  284. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts +47 -0
  285. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -0
  286. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js +83 -0
  287. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js.map +1 -0
  288. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.d.ts +97 -0
  289. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.d.ts.map +1 -0
  290. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.js +201 -0
  291. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.js.map +1 -0
  292. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +86 -22
  293. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  294. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +173 -28
  295. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  296. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +19 -1
  297. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  298. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +33 -4
  299. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  300. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +24 -12
  301. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  302. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +87 -19
  303. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  304. package/dist/backend/backend/src/services/runtime-adapter.d.ts +1 -1
  305. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
  306. package/dist/backend/backend/src/services/runtime-adapter.js +5 -9
  307. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
  308. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +26 -1
  309. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  310. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +33 -2
  311. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  312. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +5 -0
  313. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  314. package/dist/backend/backend/src/services/session/pty/pty-session.js +8 -1
  315. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  316. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts +18 -0
  317. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
  318. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +23 -0
  319. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
  320. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +8 -0
  321. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  322. package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -1
  323. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +12 -2
  324. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  325. package/dist/backend/backend/src/services/session/session-command-helper.js +14 -2
  326. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  327. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts +239 -0
  328. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts.map +1 -0
  329. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js +395 -0
  330. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js.map +1 -0
  331. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.d.ts +53 -0
  332. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.d.ts.map +1 -0
  333. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.js +83 -0
  334. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.js.map +1 -0
  335. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.d.ts +93 -0
  336. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.d.ts.map +1 -0
  337. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.js +244 -0
  338. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.js.map +1 -0
  339. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +145 -19
  340. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  341. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +323 -53
  342. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  343. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  344. package/dist/backend/backend/src/services/template/template.service.js +11 -6
  345. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  346. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +21 -4
  347. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  348. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +53 -3
  349. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  350. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +85 -6
  351. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
  352. package/dist/backend/backend/src/services/v3/escalation-router.service.js +188 -9
  353. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
  354. package/dist/backend/backend/src/services/v3/escalation.service.js +1 -1
  355. package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
  356. package/dist/backend/backend/src/services/v3/mission-executor.service.js +2 -2
  357. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
  358. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.d.ts +184 -0
  359. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.d.ts.map +1 -0
  360. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.js +420 -0
  361. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.js.map +1 -0
  362. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts +61 -0
  363. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts.map +1 -0
  364. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js +100 -0
  365. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js.map +1 -0
  366. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.d.ts +36 -0
  367. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.d.ts.map +1 -0
  368. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.js +239 -0
  369. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.js.map +1 -0
  370. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts +152 -0
  371. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts.map +1 -0
  372. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js +209 -0
  373. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js.map +1 -0
  374. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts +194 -0
  375. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts.map +1 -0
  376. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js +85 -0
  377. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js.map +1 -0
  378. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +6 -4
  379. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  380. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +15 -6
  381. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  382. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
  383. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +14 -5
  384. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
  385. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
  386. package/dist/backend/backend/src/services/v3/request.service.js +2 -0
  387. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
  388. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.d.ts +82 -0
  389. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.d.ts.map +1 -0
  390. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.js +172 -0
  391. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.js.map +1 -0
  392. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
  393. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +2 -0
  394. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
  395. package/dist/backend/backend/src/services/v3/ticket-intake-log.d.ts +87 -0
  396. package/dist/backend/backend/src/services/v3/ticket-intake-log.d.ts.map +1 -0
  397. package/dist/backend/backend/src/services/v3/ticket-intake-log.js +116 -0
  398. package/dist/backend/backend/src/services/v3/ticket-intake-log.js.map +1 -0
  399. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +133 -15
  400. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
  401. package/dist/backend/backend/src/services/v3/ticket-intake.service.js +263 -45
  402. package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -1
  403. package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts +3 -1
  404. package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
  405. package/dist/backend/backend/src/services/v3/ticket-review.service.js +6 -2
  406. package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
  407. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  408. package/dist/backend/backend/src/services/v3/v3-data.service.js +9 -3
  409. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  410. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +88 -1
  411. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  412. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +169 -5
  413. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  414. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +13 -5
  415. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  416. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +10 -9
  417. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  418. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.d.ts +241 -0
  419. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.d.ts.map +1 -0
  420. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.js +511 -0
  421. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.js.map +1 -0
  422. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts +70 -0
  423. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts.map +1 -0
  424. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js +121 -0
  425. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js.map +1 -0
  426. package/dist/backend/backend/src/services/worktree/worktree-git.d.ts +260 -0
  427. package/dist/backend/backend/src/services/worktree/worktree-git.d.ts.map +1 -0
  428. package/dist/backend/backend/src/services/worktree/worktree-git.js +569 -0
  429. package/dist/backend/backend/src/services/worktree/worktree-git.js.map +1 -0
  430. package/dist/backend/backend/src/types/event-bus.types.d.ts +6 -1
  431. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  432. package/dist/backend/backend/src/types/event-bus.types.js +8 -0
  433. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  434. package/dist/backend/backend/src/types/index.d.ts +23 -18
  435. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  436. package/dist/backend/backend/src/types/index.js.map +1 -1
  437. package/dist/backend/backend/src/types/intent-task.types.d.ts +1 -1
  438. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
  439. package/dist/backend/backend/src/types/project-ticket.types.d.ts +132 -0
  440. package/dist/backend/backend/src/types/project-ticket.types.d.ts.map +1 -0
  441. package/dist/backend/backend/src/types/project-ticket.types.js +120 -0
  442. package/dist/backend/backend/src/types/project-ticket.types.js.map +1 -0
  443. package/dist/backend/backend/src/types/review-reason.types.d.ts +3 -1
  444. package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -1
  445. package/dist/backend/backend/src/types/review-reason.types.js +1 -0
  446. package/dist/backend/backend/src/types/review-reason.types.js.map +1 -1
  447. package/dist/backend/backend/src/types/v2/index.d.ts +2 -2
  448. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  449. package/dist/backend/backend/src/types/v2/index.js +1 -1
  450. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  451. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +7 -0
  452. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -1
  453. package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -1
  454. package/dist/backend/backend/src/types/v2/request.types.d.ts +18 -0
  455. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
  456. package/dist/backend/backend/src/types/v2/request.types.js +1 -0
  457. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
  458. package/dist/backend/backend/src/types/v2/ticket.types.d.ts +6 -2
  459. package/dist/backend/backend/src/types/v2/ticket.types.d.ts.map +1 -1
  460. package/dist/backend/backend/src/types/v2/ticket.types.js +1 -1
  461. package/dist/backend/backend/src/types/v2/ticket.types.js.map +1 -1
  462. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +169 -14
  463. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  464. package/dist/backend/backend/src/types/v2/work-item.types.js +263 -44
  465. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  466. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +33 -0
  467. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
  468. package/dist/backend/backend/src/utils/agent-caller.utils.js +37 -0
  469. package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
  470. package/dist/backend/backend/src/utils/secret-env.d.ts +61 -0
  471. package/dist/backend/backend/src/utils/secret-env.d.ts.map +1 -0
  472. package/dist/backend/backend/src/utils/secret-env.js +89 -0
  473. package/dist/backend/backend/src/utils/secret-env.js.map +1 -0
  474. package/dist/backend/build-info.json +2 -2
  475. package/dist/backend/config/constants.d.ts +71 -0
  476. package/dist/backend/config/constants.d.ts.map +1 -1
  477. package/dist/backend/config/constants.js +77 -0
  478. package/dist/backend/config/constants.js.map +1 -1
  479. package/dist/cli/backend/src/constants.d.ts +397 -1
  480. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  481. package/dist/cli/backend/src/constants.js +388 -2
  482. package/dist/cli/backend/src/constants.js.map +1 -1
  483. package/dist/cli/backend/src/models/index.d.ts +0 -1
  484. package/dist/cli/backend/src/models/index.d.ts.map +1 -1
  485. package/dist/cli/backend/src/models/index.js +0 -1
  486. package/dist/cli/backend/src/models/index.js.map +1 -1
  487. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +43 -1
  488. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  489. package/dist/cli/backend/src/services/agent/agent-registration.service.js +129 -34
  490. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  491. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +169 -0
  492. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -0
  493. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +231 -0
  494. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -0
  495. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +409 -0
  496. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -0
  497. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +961 -0
  498. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -0
  499. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +16 -0
  500. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  501. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +50 -0
  502. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  503. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  504. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +9 -8
  505. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  506. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.d.ts +75 -0
  507. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.d.ts.map +1 -0
  508. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.js +89 -0
  509. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.js.map +1 -0
  510. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +1 -1
  511. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -1
  512. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  513. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +12 -0
  514. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  515. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +14 -0
  516. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  517. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  518. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  519. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +11 -7
  520. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  521. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts +41 -0
  522. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts.map +1 -0
  523. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.js +44 -0
  524. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.js.map +1 -0
  525. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +67 -0
  526. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -0
  527. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js +146 -0
  528. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -0
  529. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts +7 -0
  530. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
  531. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js +9 -1
  532. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
  533. package/dist/cli/backend/src/services/core/logger.service.d.ts +21 -0
  534. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
  535. package/dist/cli/backend/src/services/core/logger.service.js +42 -4
  536. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
  537. package/dist/cli/backend/src/services/core/storage.service.d.ts +1 -5
  538. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  539. package/dist/cli/backend/src/services/core/storage.service.js +5 -162
  540. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  541. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  542. package/dist/cli/backend/src/services/event-bus/event-bus.service.js +6 -0
  543. package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  544. package/dist/cli/backend/src/services/mcp-server.d.ts +19 -6
  545. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
  546. package/dist/cli/backend/src/services/mcp-server.js +46 -16
  547. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  548. package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
  549. package/dist/cli/backend/src/services/mcp-tool-definitions.js +3 -2
  550. package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
  551. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +247 -0
  552. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -0
  553. package/dist/cli/backend/src/services/memory/standing-answers.service.js +534 -0
  554. package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -0
  555. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -0
  556. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  557. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +99 -1
  558. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  559. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.d.ts +75 -0
  560. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.d.ts.map +1 -0
  561. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.js +80 -0
  562. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.js.map +1 -0
  563. package/dist/cli/backend/src/services/monitoring/agent-attention.d.ts +114 -0
  564. package/dist/cli/backend/src/services/monitoring/agent-attention.d.ts.map +1 -0
  565. package/dist/cli/backend/src/services/monitoring/agent-attention.js +165 -0
  566. package/dist/cli/backend/src/services/monitoring/agent-attention.js.map +1 -0
  567. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +214 -0
  568. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -0
  569. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +466 -0
  570. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -0
  571. package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts +121 -0
  572. package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -0
  573. package/dist/cli/backend/src/services/project-tickets/ticket-file.js +468 -0
  574. package/dist/cli/backend/src/services/project-tickets/ticket-file.js.map +1 -0
  575. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.d.ts +69 -0
  576. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.d.ts.map +1 -0
  577. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.js +194 -0
  578. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.js.map +1 -0
  579. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts +47 -0
  580. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -0
  581. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js +83 -0
  582. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js.map +1 -0
  583. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.d.ts +97 -0
  584. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.d.ts.map +1 -0
  585. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.js +201 -0
  586. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.js.map +1 -0
  587. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +26 -1
  588. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  589. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +33 -2
  590. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  591. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +5 -0
  592. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  593. package/dist/cli/backend/src/services/session/pty/pty-session.js +8 -1
  594. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
  595. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +18 -0
  596. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
  597. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +23 -0
  598. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
  599. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +8 -0
  600. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  601. package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -1
  602. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +12 -2
  603. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  604. package/dist/cli/backend/src/services/session/session-command-helper.js +14 -2
  605. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  606. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +145 -19
  607. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  608. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +323 -53
  609. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  610. package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
  611. package/dist/cli/backend/src/services/template/template.service.js +11 -6
  612. package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
  613. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +85 -6
  614. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
  615. package/dist/cli/backend/src/services/v3/escalation-router.service.js +188 -9
  616. package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -1
  617. package/dist/cli/backend/src/services/v3/mission-executor.service.js +2 -2
  618. package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -1
  619. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +6 -4
  620. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  621. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +15 -6
  622. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  623. package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
  624. package/dist/cli/backend/src/services/v3/request.service.js +2 -0
  625. package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
  626. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.d.ts +82 -0
  627. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.d.ts.map +1 -0
  628. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.js +172 -0
  629. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.js.map +1 -0
  630. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
  631. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +2 -0
  632. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
  633. package/dist/cli/backend/src/services/v3/ticket-intake-log.d.ts +87 -0
  634. package/dist/cli/backend/src/services/v3/ticket-intake-log.d.ts.map +1 -0
  635. package/dist/cli/backend/src/services/v3/ticket-intake-log.js +116 -0
  636. package/dist/cli/backend/src/services/v3/ticket-intake-log.js.map +1 -0
  637. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +133 -15
  638. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
  639. package/dist/cli/backend/src/services/v3/ticket-intake.service.js +263 -45
  640. package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -1
  641. package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts +3 -1
  642. package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
  643. package/dist/cli/backend/src/services/v3/ticket-review.service.js +6 -2
  644. package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
  645. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  646. package/dist/cli/backend/src/services/v3/v3-data.service.js +9 -3
  647. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
  648. package/dist/cli/backend/src/services/worktree/worktree-git.d.ts +260 -0
  649. package/dist/cli/backend/src/services/worktree/worktree-git.d.ts.map +1 -0
  650. package/dist/cli/backend/src/services/worktree/worktree-git.js +569 -0
  651. package/dist/cli/backend/src/services/worktree/worktree-git.js.map +1 -0
  652. package/dist/cli/backend/src/types/event-bus.types.d.ts +6 -1
  653. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  654. package/dist/cli/backend/src/types/event-bus.types.js +8 -0
  655. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  656. package/dist/cli/backend/src/types/index.d.ts +23 -18
  657. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  658. package/dist/cli/backend/src/types/index.js.map +1 -1
  659. package/dist/cli/backend/src/types/intent-task.types.d.ts +1 -1
  660. package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -1
  661. package/dist/cli/backend/src/types/project-ticket.types.d.ts +132 -0
  662. package/dist/cli/backend/src/types/project-ticket.types.d.ts.map +1 -0
  663. package/dist/cli/backend/src/types/project-ticket.types.js +120 -0
  664. package/dist/cli/backend/src/types/project-ticket.types.js.map +1 -0
  665. package/dist/cli/backend/src/types/v2/index.d.ts +2 -2
  666. package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
  667. package/dist/cli/backend/src/types/v2/index.js +1 -1
  668. package/dist/cli/backend/src/types/v2/index.js.map +1 -1
  669. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +7 -0
  670. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -1
  671. package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -1
  672. package/dist/cli/backend/src/types/v2/request.types.d.ts +18 -0
  673. package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
  674. package/dist/cli/backend/src/types/v2/request.types.js +1 -0
  675. package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
  676. package/dist/cli/backend/src/types/v2/ticket.types.d.ts +6 -2
  677. package/dist/cli/backend/src/types/v2/ticket.types.d.ts.map +1 -1
  678. package/dist/cli/backend/src/types/v2/ticket.types.js +1 -1
  679. package/dist/cli/backend/src/types/v2/ticket.types.js.map +1 -1
  680. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +169 -14
  681. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  682. package/dist/cli/backend/src/types/v2/work-item.types.js +263 -44
  683. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  684. package/dist/cli/backend/src/utils/secret-env.d.ts +61 -0
  685. package/dist/cli/backend/src/utils/secret-env.d.ts.map +1 -0
  686. package/dist/cli/backend/src/utils/secret-env.js +89 -0
  687. package/dist/cli/backend/src/utils/secret-env.js.map +1 -0
  688. package/dist/cli/cli/src/commands/onboard.d.ts +1 -1
  689. package/dist/cli/cli/src/commands/onboard.js +3 -3
  690. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  691. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -1
  692. package/dist/cli/cli/src/commands/publish.js +4 -5
  693. package/dist/cli/cli/src/commands/publish.js.map +1 -1
  694. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  695. package/dist/cli/cli/src/commands/service.js +5 -2
  696. package/dist/cli/cli/src/commands/service.js.map +1 -1
  697. package/dist/cli/cli/src/commands/tickets.d.ts +60 -0
  698. package/dist/cli/cli/src/commands/tickets.d.ts.map +1 -0
  699. package/dist/cli/cli/src/commands/tickets.js +111 -0
  700. package/dist/cli/cli/src/commands/tickets.js.map +1 -0
  701. package/dist/cli/cli/src/index.js +12 -0
  702. package/dist/cli/cli/src/index.js.map +1 -1
  703. package/dist/cli/cli/src/utils/archive-creator.d.ts +7 -3
  704. package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -1
  705. package/dist/cli/cli/src/utils/archive-creator.js +17 -5
  706. package/dist/cli/cli/src/utils/archive-creator.js.map +1 -1
  707. package/dist/cli/cli/src/utils/cloud-submit.d.ts +1 -1
  708. package/dist/cli/cli/src/utils/cloud-submit.js +1 -1
  709. package/dist/cli/cli/src/utils/gh-submit.d.ts +10 -1
  710. package/dist/cli/cli/src/utils/gh-submit.d.ts.map +1 -1
  711. package/dist/cli/cli/src/utils/gh-submit.js +20 -4
  712. package/dist/cli/cli/src/utils/gh-submit.js.map +1 -1
  713. package/dist/cli/cli/src/utils/package-validator.d.ts +29 -6
  714. package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -1
  715. package/dist/cli/cli/src/utils/package-validator.js +88 -36
  716. package/dist/cli/cli/src/utils/package-validator.js.map +1 -1
  717. package/dist/cli/config/constants.d.ts +71 -0
  718. package/dist/cli/config/constants.d.ts.map +1 -1
  719. package/dist/cli/config/constants.js +77 -0
  720. package/dist/cli/config/constants.js.map +1 -1
  721. package/dist/cli/config/skills/marketplace-registry.d.ts +143 -0
  722. package/dist/cli/config/skills/marketplace-registry.d.ts.map +1 -0
  723. package/dist/cli/config/skills/marketplace-registry.js +192 -0
  724. package/dist/cli/config/skills/marketplace-registry.js.map +1 -0
  725. package/frontend/dist/assets/index-8d4b3ad2.js +4951 -0
  726. package/frontend/dist/assets/index-b6aded4c.css +42 -0
  727. package/frontend/dist/index.html +2 -2
  728. package/package.json +1 -1
  729. package/config/task_starters/build_e2e_test_plan_prompt.json +0 -51
  730. package/config/task_starters/build_tasks_prompt.json +0 -55
  731. package/config/task_starters/prompts/build_tasks_step1_milestone_structure.md +0 -274
  732. package/config/task_starters/prompts/e2e_test_plan_step1_build_tests.md +0 -391
  733. package/config/task_starters/prompts/e2e_test_plan_step2_run_tests.md +0 -240
  734. package/config/templates/customer-loyalty-team.json +0 -44
  735. package/config/templates/dtc-viral-content-team.json +0 -58
  736. package/config/templates/expert-innovation-team.json +0 -60
  737. package/config/templates/pragmatic-mvp-dev-team.json +0 -58
  738. package/config/templates/pro-sops/norms/content-production-pipeline.md +0 -39
  739. package/config/templates/pro-sops/norms/customer-onboarding-sop.md +0 -40
  740. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts +0 -13
  741. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts.map +0 -1
  742. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js +0 -214
  743. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js.map +0 -1
  744. package/dist/backend/backend/src/models/Ticket.d.ts +0 -24
  745. package/dist/backend/backend/src/models/Ticket.d.ts.map +0 -1
  746. package/dist/backend/backend/src/models/Ticket.js +0 -102
  747. package/dist/backend/backend/src/models/Ticket.js.map +0 -1
  748. package/dist/backend/backend/src/services/agent/task-planning.service.d.ts +0 -134
  749. package/dist/backend/backend/src/services/agent/task-planning.service.d.ts.map +0 -1
  750. package/dist/backend/backend/src/services/agent/task-planning.service.js +0 -291
  751. package/dist/backend/backend/src/services/agent/task-planning.service.js.map +0 -1
  752. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts +0 -71
  753. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts.map +0 -1
  754. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js +0 -304
  755. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js.map +0 -1
  756. package/dist/backend/backend/src/services/project/task-folder.service.d.ts +0 -48
  757. package/dist/backend/backend/src/services/project/task-folder.service.d.ts.map +0 -1
  758. package/dist/backend/backend/src/services/project/task-folder.service.js +0 -193
  759. package/dist/backend/backend/src/services/project/task-folder.service.js.map +0 -1
  760. package/dist/backend/backend/src/services/project/task.service.d.ts +0 -47
  761. package/dist/backend/backend/src/services/project/task.service.d.ts.map +0 -1
  762. package/dist/backend/backend/src/services/project/task.service.js +0 -253
  763. package/dist/backend/backend/src/services/project/task.service.js.map +0 -1
  764. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts +0 -130
  765. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts.map +0 -1
  766. package/dist/backend/backend/src/services/project/ticket-editor.service.js +0 -406
  767. package/dist/backend/backend/src/services/project/ticket-editor.service.js.map +0 -1
  768. package/dist/cli/backend/src/models/Ticket.d.ts +0 -24
  769. package/dist/cli/backend/src/models/Ticket.d.ts.map +0 -1
  770. package/dist/cli/backend/src/models/Ticket.js +0 -102
  771. package/dist/cli/backend/src/models/Ticket.js.map +0 -1
  772. package/frontend/dist/assets/index-2bdb57b9.css +0 -42
  773. package/frontend/dist/assets/index-54f1061c.js +0 -4963
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Control-plane guard for Claude Code agent sessions.
3
+ *
4
+ * Request 72c9427a, spec `specs/2026-09-24-control-plane-isolation.md` Part 3.
5
+ * The backend writes two files per session under
6
+ * `~/.crewly/runtime/control-plane/`:
7
+ *
8
+ * - `<session>.settings.json` — a Claude Code settings file with
9
+ * `permissions.deny` rules for the control-plane paths and a PreToolUse
10
+ * hook on the Bash tool. It is passed with `claude --settings <file>`.
11
+ * - `<session>.paths` — the protected-path list the hook script reads.
12
+ *
13
+ * Both files, and the hook script itself, are on their own deny list.
14
+ *
15
+ * Coverage (stated in the hook's output as well): this stops an agent editing
16
+ * the stop/start/config mechanisms with its normal tools, and accidental
17
+ * edits. It does NOT stop an interpreter one-liner, a runtime-built path, or a
18
+ * call to the loopback API. That needs OS-level isolation (spec Part 4).
19
+ */
20
+ /** Roots the protected paths are resolved against. */
21
+ export interface ControlPlaneRoots {
22
+ /** Crewly home directory (`~/.crewly`, or `$CREWLY_HOME`). */
23
+ crewlyHome: string;
24
+ /** Crewly install root (package dir or checkout) that holds `config/` and `dist/`. */
25
+ installRoot: string;
26
+ /** The agent's working directory / project path, when known. */
27
+ projectPath?: string;
28
+ }
29
+ /** Protected paths, split by what is denied. */
30
+ export interface ControlPlanePaths {
31
+ /** Paths agents may not write. Directories protect their whole subtree. */
32
+ writeDenied: Array<{
33
+ path: string;
34
+ isDirectory: boolean;
35
+ }>;
36
+ /** Files agents may not read with the built-in Read/Grep/Glob tools. */
37
+ readDenied: string[];
38
+ }
39
+ /** One Claude Code hook group: an optional tool matcher and its commands. */
40
+ export interface HookGroup {
41
+ matcher?: string;
42
+ hooks: Array<{
43
+ type: 'command';
44
+ command: string;
45
+ }>;
46
+ }
47
+ /** Shape of the generated Claude Code settings file (the subset we write). */
48
+ export interface ControlPlaneSettings {
49
+ permissions: {
50
+ deny: string[];
51
+ };
52
+ hooks: {
53
+ /** The control-plane guard's Bash hook. Nothing else is ever added here. */
54
+ PreToolUse: Array<HookGroup & {
55
+ matcher: string;
56
+ }>;
57
+ /** Agent-status hook events (#815), present only when a status hook is given. */
58
+ [event: string]: HookGroup[];
59
+ };
60
+ }
61
+ /** Result of preparing the guard for one session. */
62
+ export type ControlPlaneGuardResult = {
63
+ enabled: true;
64
+ settingsPath: string;
65
+ pathsPath: string;
66
+ protectedCount: number;
67
+ } | {
68
+ enabled: false;
69
+ reason: string;
70
+ };
71
+ /**
72
+ * Whether the guard is on for sessions launched by this backend.
73
+ *
74
+ * Read from the backend's own environment at launch, so an agent session
75
+ * cannot switch it off: exporting the variable inside a session changes that
76
+ * shell, not the backend.
77
+ *
78
+ * @param env - Environment to read (defaults to the backend's process.env)
79
+ * @returns false only when `CREWLY_CONTROL_PLANE_GUARD=0`
80
+ */
81
+ export declare function isControlPlaneGuardEnabled(env?: NodeJS.ProcessEnv): boolean;
82
+ /**
83
+ * Resolve every control-plane path (spec Part 2 table) to an absolute path.
84
+ *
85
+ * Duplicates are dropped, e.g. when the project path is the install root.
86
+ *
87
+ * @param roots - Crewly home, install root and optional project path
88
+ * @param existingTeamIds - Team directory names to protect `config.json` for
89
+ * (spec Part 2 protects `teams/*\/config.json`, not the whole `teams/`
90
+ * subtree — a team directory also holds `norms/`, `wiki/`, `prompts/`,
91
+ * `sops/` and `cron-tasks.json`, which agents write routinely). Pass the
92
+ * ids returned by {@link listExistingTeamIds}; defaults to none, so
93
+ * calling this without them protects no team config (documented, not a
94
+ * silent gap — `prepareControlPlaneGuard` always supplies them).
95
+ * @returns Write-denied paths (with a directory flag) and read-denied files
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const { writeDenied } = resolveControlPlanePaths(
100
+ * { crewlyHome: '/h/.crewly', installRoot: '/opt/crewly' },
101
+ * ['team-0001'],
102
+ * );
103
+ * // writeDenied includes { path: '/h/.crewly/teams/team-0001/config.json', isDirectory: false }
104
+ * // writeDenied does NOT include '/h/.crewly/teams' itself — reads and
105
+ * // writes to team-0001/wiki, norms, prompts, sops, cron-tasks.json stay allowed.
106
+ * ```
107
+ */
108
+ export declare function resolveControlPlanePaths(roots: ControlPlaneRoots, existingTeamIds?: readonly string[]): ControlPlanePaths;
109
+ /**
110
+ * Format an absolute path as a Claude Code permission-rule specifier.
111
+ *
112
+ * In Claude Code rules `//x` is an absolute path, while `/x` is relative to
113
+ * the settings file, so an absolute path gets one extra leading slash.
114
+ *
115
+ * @param absPath - Absolute filesystem path
116
+ * @param isDirectory - Append `/**` to cover the subtree
117
+ * @returns Specifier such as `//Users/me/.crewly/teams/**`
118
+ */
119
+ export declare function toRuleSpecifier(absPath: string, isDirectory: boolean): string;
120
+ /**
121
+ * Build the Claude Code settings object for one session.
122
+ *
123
+ * Deny rules use `Edit(...)`, which Claude Code applies to every built-in
124
+ * file-editing tool (Edit, Write, NotebookEdit), and `Read(...)` for the API
125
+ * token. Only documented rule forms are emitted: an invalid rule could get
126
+ * the whole settings file rejected, and the Bash hook with it.
127
+ *
128
+ * The agent-status hook (#815) is merged into the same file, because Claude
129
+ * Code takes one `--settings`. It is registered only on its own events
130
+ * (Notification, PermissionRequest, Stop, UserPromptSubmit, PostToolUse) and
131
+ * never on PreToolUse, so the guard's entry and the deny list are identical
132
+ * with or without it.
133
+ *
134
+ * @param paths - Resolved control-plane paths
135
+ * @param hookCommand - Shell command that runs the PreToolUse Bash hook
136
+ * @param statusHookCommand - Shell command that runs the agent-status hook; omit to leave it out
137
+ * @returns Settings object ready to serialise
138
+ */
139
+ export declare function buildControlPlaneSettings(paths: ControlPlanePaths, hookCommand: string, statusHookCommand?: string): ControlPlaneSettings;
140
+ /**
141
+ * Make a session name safe to use as a file name.
142
+ *
143
+ * @param sessionName - Crewly session name
144
+ * @returns Name with anything outside `[A-Za-z0-9._-]` replaced by `_`
145
+ */
146
+ export declare function toSafeFileStem(sessionName: string): string;
147
+ /**
148
+ * Write the per-session settings file and protected-path list.
149
+ *
150
+ * @param sessionName - Crewly session name (used for the file names)
151
+ * @param roots - Crewly home, install root and optional project path
152
+ * @param env - Environment holding the kill switch (defaults to process.env)
153
+ * @returns Where the files were written, or why the guard is off
154
+ * @throws When the files cannot be written (the caller decides whether to launch unguarded)
155
+ */
156
+ export declare function prepareControlPlaneGuard(sessionName: string, roots: ControlPlaneRoots, env?: NodeJS.ProcessEnv): Promise<ControlPlaneGuardResult>;
157
+ /**
158
+ * Append `--settings <file>` to a Claude Code launch command.
159
+ *
160
+ * Only commands that carry `--dangerously-skip-permissions` (the Crewly agent
161
+ * launch line) are changed. A command that already passes `--settings` is
162
+ * left alone: the owner configured their own, and Claude Code takes one.
163
+ *
164
+ * @param cmd - Launch command line
165
+ * @param settingsPath - Generated settings file
166
+ * @returns The command with the flag appended, or unchanged
167
+ */
168
+ export declare function applyControlPlaneSettingsFlag(cmd: string, settingsPath: string): string;
169
+ //# sourceMappingURL=control-plane-guard.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-plane-guard.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/control-plane-guard.service.ts"],"names":[],"mappings":"AA2BA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IACjC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IACjC,2EAA2E;IAC3E,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3D,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACpC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChC,KAAK,EAAE;QACN,4EAA4E;QAC5E,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnD,iFAAiF;QACjF,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;KAC7B,CAAC;CACF;AAED,qDAAqD;AACrD,MAAM,MAAM,uBAAuB,GAChC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAExF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,iBAAiB,EACxB,eAAe,GAAE,SAAS,MAAM,EAAO,GACrC,iBAAiB,CAwBnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CAG7E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACxB,oBAAoB,CA4BtB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG1D;AAYD;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC7C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,iBAAiB,EACxB,GAAG,GAAE,MAAM,CAAC,UAAwB,GAClC,OAAO,CAAC,uBAAuB,CAAC,CAgClC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKvF"}
@@ -0,0 +1,231 @@
1
+ import { promises as fs } from 'fs';
2
+ import * as path from 'path';
3
+ import { CONTROL_PLANE_GUARD_CONSTANTS, AGENT_STATUS_HOOK_CONSTANTS } from '../../constants.js';
4
+ /**
5
+ * List the team directories that exist under `<crewlyHome>/teams` right now.
6
+ *
7
+ * The Bash hook needs literal paths, not globs, so protecting exactly
8
+ * `teams/*\/config.json` (spec Part 2) means resolving the `*` at guard-prep
9
+ * time against whatever teams already exist. A team created after this
10
+ * session launched is not yet in the list — out of scope for this fix,
11
+ * flagged in specs/2026-09-24-control-plane-isolation.md's coverage limits.
12
+ *
13
+ * @param crewlyHome - Crewly home directory (`~/.crewly`, or `$CREWLY_HOME`)
14
+ * @returns Directory names under `teams/` (team ids); empty if the directory
15
+ * does not exist yet (a fresh install with no teams) or cannot be read
16
+ */
17
+ async function listExistingTeamIds(crewlyHome) {
18
+ const teamsDir = path.join(crewlyHome, CONTROL_PLANE_GUARD_CONSTANTS.TEAMS_DIR_NAME);
19
+ try {
20
+ const entries = await fs.readdir(teamsDir, { withFileTypes: true });
21
+ return entries.filter((e) => e.isDirectory()).map((e) => e.name);
22
+ }
23
+ catch {
24
+ return [];
25
+ }
26
+ }
27
+ /**
28
+ * Whether the guard is on for sessions launched by this backend.
29
+ *
30
+ * Read from the backend's own environment at launch, so an agent session
31
+ * cannot switch it off: exporting the variable inside a session changes that
32
+ * shell, not the backend.
33
+ *
34
+ * @param env - Environment to read (defaults to the backend's process.env)
35
+ * @returns false only when `CREWLY_CONTROL_PLANE_GUARD=0`
36
+ */
37
+ export function isControlPlaneGuardEnabled(env = process.env) {
38
+ return env[CONTROL_PLANE_GUARD_CONSTANTS.KILL_SWITCH_ENV] !== CONTROL_PLANE_GUARD_CONSTANTS.KILL_SWITCH_OFF_VALUE;
39
+ }
40
+ /**
41
+ * Resolve every control-plane path (spec Part 2 table) to an absolute path.
42
+ *
43
+ * Duplicates are dropped, e.g. when the project path is the install root.
44
+ *
45
+ * @param roots - Crewly home, install root and optional project path
46
+ * @param existingTeamIds - Team directory names to protect `config.json` for
47
+ * (spec Part 2 protects `teams/*\/config.json`, not the whole `teams/`
48
+ * subtree — a team directory also holds `norms/`, `wiki/`, `prompts/`,
49
+ * `sops/` and `cron-tasks.json`, which agents write routinely). Pass the
50
+ * ids returned by {@link listExistingTeamIds}; defaults to none, so
51
+ * calling this without them protects no team config (documented, not a
52
+ * silent gap — `prepareControlPlaneGuard` always supplies them).
53
+ * @returns Write-denied paths (with a directory flag) and read-denied files
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const { writeDenied } = resolveControlPlanePaths(
58
+ * { crewlyHome: '/h/.crewly', installRoot: '/opt/crewly' },
59
+ * ['team-0001'],
60
+ * );
61
+ * // writeDenied includes { path: '/h/.crewly/teams/team-0001/config.json', isDirectory: false }
62
+ * // writeDenied does NOT include '/h/.crewly/teams' itself — reads and
63
+ * // writes to team-0001/wiki, norms, prompts, sops, cron-tasks.json stay allowed.
64
+ * ```
65
+ */
66
+ export function resolveControlPlanePaths(roots, existingTeamIds = []) {
67
+ const C = CONTROL_PLANE_GUARD_CONSTANTS;
68
+ const seen = new Set();
69
+ const writeDenied = [];
70
+ const add = (p, isDirectory) => {
71
+ const abs = path.resolve(p);
72
+ if (seen.has(abs))
73
+ return;
74
+ seen.add(abs);
75
+ writeDenied.push({ path: abs, isDirectory });
76
+ };
77
+ for (const d of C.CREWLY_HOME_DIRS)
78
+ add(path.join(roots.crewlyHome, d), true);
79
+ for (const f of C.CREWLY_HOME_FILES)
80
+ add(path.join(roots.crewlyHome, f), false);
81
+ for (const teamId of existingTeamIds) {
82
+ add(path.join(roots.crewlyHome, C.TEAMS_DIR_NAME, teamId, C.TEAM_CONFIG_FILE_NAME), false);
83
+ }
84
+ for (const d of C.INSTALL_DIRS)
85
+ add(path.join(roots.installRoot, d), true);
86
+ for (const f of C.INSTALL_FILES)
87
+ add(path.join(roots.installRoot, f), false);
88
+ if (roots.projectPath) {
89
+ for (const d of C.PROJECT_DIRS)
90
+ add(path.join(roots.projectPath, d), true);
91
+ }
92
+ const readDenied = C.CREWLY_HOME_READ_DENIED_FILES.map((f) => path.resolve(roots.crewlyHome, f));
93
+ return { writeDenied, readDenied };
94
+ }
95
+ /**
96
+ * Format an absolute path as a Claude Code permission-rule specifier.
97
+ *
98
+ * In Claude Code rules `//x` is an absolute path, while `/x` is relative to
99
+ * the settings file, so an absolute path gets one extra leading slash.
100
+ *
101
+ * @param absPath - Absolute filesystem path
102
+ * @param isDirectory - Append `/**` to cover the subtree
103
+ * @returns Specifier such as `//Users/me/.crewly/teams/**`
104
+ */
105
+ export function toRuleSpecifier(absPath, isDirectory) {
106
+ const base = `/${absPath}`;
107
+ return isDirectory ? `${base}/**` : base;
108
+ }
109
+ /**
110
+ * Build the Claude Code settings object for one session.
111
+ *
112
+ * Deny rules use `Edit(...)`, which Claude Code applies to every built-in
113
+ * file-editing tool (Edit, Write, NotebookEdit), and `Read(...)` for the API
114
+ * token. Only documented rule forms are emitted: an invalid rule could get
115
+ * the whole settings file rejected, and the Bash hook with it.
116
+ *
117
+ * The agent-status hook (#815) is merged into the same file, because Claude
118
+ * Code takes one `--settings`. It is registered only on its own events
119
+ * (Notification, PermissionRequest, Stop, UserPromptSubmit, PostToolUse) and
120
+ * never on PreToolUse, so the guard's entry and the deny list are identical
121
+ * with or without it.
122
+ *
123
+ * @param paths - Resolved control-plane paths
124
+ * @param hookCommand - Shell command that runs the PreToolUse Bash hook
125
+ * @param statusHookCommand - Shell command that runs the agent-status hook; omit to leave it out
126
+ * @returns Settings object ready to serialise
127
+ */
128
+ export function buildControlPlaneSettings(paths, hookCommand, statusHookCommand) {
129
+ const deny = [];
130
+ for (const { path: p, isDirectory } of paths.writeDenied) {
131
+ deny.push(`Edit(${toRuleSpecifier(p, false)})`);
132
+ if (isDirectory)
133
+ deny.push(`Edit(${toRuleSpecifier(p, true)})`);
134
+ }
135
+ for (const p of paths.readDenied)
136
+ deny.push(`Read(${toRuleSpecifier(p, false)})`);
137
+ const settings = {
138
+ permissions: { deny },
139
+ hooks: {
140
+ PreToolUse: [
141
+ {
142
+ matcher: CONTROL_PLANE_GUARD_CONSTANTS.HOOK_TOOL_MATCHER,
143
+ hooks: [{ type: 'command', command: hookCommand }],
144
+ },
145
+ ],
146
+ },
147
+ };
148
+ if (statusHookCommand) {
149
+ const S = AGENT_STATUS_HOOK_CONSTANTS;
150
+ for (const event of S.EVENTS) {
151
+ const group = { hooks: [{ type: 'command', command: statusHookCommand }] };
152
+ if (S.TOOL_EVENTS.includes(event))
153
+ group.matcher = S.ALL_TOOLS_MATCHER;
154
+ settings.hooks[event] = [group];
155
+ }
156
+ }
157
+ return settings;
158
+ }
159
+ /**
160
+ * Make a session name safe to use as a file name.
161
+ *
162
+ * @param sessionName - Crewly session name
163
+ * @returns Name with anything outside `[A-Za-z0-9._-]` replaced by `_`
164
+ */
165
+ export function toSafeFileStem(sessionName) {
166
+ const stem = sessionName.replace(/[^A-Za-z0-9._-]/g, '_').replace(/^\.+/, '_');
167
+ return stem.length > 0 ? stem : '_';
168
+ }
169
+ /**
170
+ * Quote a value for a POSIX shell command line.
171
+ *
172
+ * @param value - Raw string
173
+ * @returns Single-quoted string with embedded quotes escaped
174
+ */
175
+ function shellQuote(value) {
176
+ return `'${value.replace(/'/g, `'\\''`)}'`;
177
+ }
178
+ /**
179
+ * Write the per-session settings file and protected-path list.
180
+ *
181
+ * @param sessionName - Crewly session name (used for the file names)
182
+ * @param roots - Crewly home, install root and optional project path
183
+ * @param env - Environment holding the kill switch (defaults to process.env)
184
+ * @returns Where the files were written, or why the guard is off
185
+ * @throws When the files cannot be written (the caller decides whether to launch unguarded)
186
+ */
187
+ export async function prepareControlPlaneGuard(sessionName, roots, env = process.env) {
188
+ const C = CONTROL_PLANE_GUARD_CONSTANTS;
189
+ if (!isControlPlaneGuardEnabled(env)) {
190
+ return { enabled: false, reason: `${C.KILL_SWITCH_ENV}=${C.KILL_SWITCH_OFF_VALUE}` };
191
+ }
192
+ const existingTeamIds = await listExistingTeamIds(roots.crewlyHome);
193
+ const paths = resolveControlPlanePaths(roots, existingTeamIds);
194
+ const dir = path.join(roots.crewlyHome, C.RUNTIME_DIR);
195
+ const stem = toSafeFileStem(sessionName);
196
+ const settingsPath = path.join(dir, `${stem}${C.SETTINGS_FILE_SUFFIX}`);
197
+ const pathsPath = path.join(dir, `${stem}${C.PATHS_FILE_SUFFIX}`);
198
+ const hookScript = path.join(roots.installRoot, C.HOOK_SCRIPT);
199
+ const hookCommand = `bash ${shellQuote(hookScript)} ${shellQuote(pathsPath)}`;
200
+ const statusHookCommand = `bash ${shellQuote(path.join(roots.installRoot, AGENT_STATUS_HOOK_CONSTANTS.HOOK_SCRIPT))}`;
201
+ const pathsBody = [
202
+ `# Crewly control-plane guard — protected paths for ${sessionName}`,
203
+ '# Generated by the backend at launch; one absolute path per line.',
204
+ ...paths.writeDenied.map((p) => p.path),
205
+ '',
206
+ ].join('\n');
207
+ await fs.mkdir(dir, { recursive: true });
208
+ await fs.writeFile(pathsPath, pathsBody, 'utf-8');
209
+ await fs.writeFile(settingsPath, `${JSON.stringify(buildControlPlaneSettings(paths, hookCommand, statusHookCommand), null, 2)}\n`, 'utf-8');
210
+ return { enabled: true, settingsPath, pathsPath, protectedCount: paths.writeDenied.length };
211
+ }
212
+ /**
213
+ * Append `--settings <file>` to a Claude Code launch command.
214
+ *
215
+ * Only commands that carry `--dangerously-skip-permissions` (the Crewly agent
216
+ * launch line) are changed. A command that already passes `--settings` is
217
+ * left alone: the owner configured their own, and Claude Code takes one.
218
+ *
219
+ * @param cmd - Launch command line
220
+ * @param settingsPath - Generated settings file
221
+ * @returns The command with the flag appended, or unchanged
222
+ */
223
+ export function applyControlPlaneSettingsFlag(cmd, settingsPath) {
224
+ const flag = CONTROL_PLANE_GUARD_CONSTANTS.SETTINGS_FLAG;
225
+ if (!cmd.includes('--dangerously-skip-permissions'))
226
+ return cmd;
227
+ if (new RegExp(`(^|\\s)${flag}(\\s|=|$)`).test(cmd))
228
+ return cmd;
229
+ return `${cmd} ${flag} "${settingsPath.replace(/["`$\\]/g, '')}"`;
230
+ }
231
+ //# sourceMappingURL=control-plane-guard.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-plane-guard.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/control-plane-guard.service.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,15 @@
26
26
  * idle and nobody else just wrote to it; any failure falls back to plain
27
27
  * delivery — nothing here throws into dispatch.
28
28
  *
29
+ * Idle-boundary context cap: one task can run for 1000+ turns, so a new root
30
+ * alone does not bound the context. A periodic sweep
31
+ * ({@link FreshTaskConversationService.startContextCapSweep}) saves and
32
+ * clears an idle Claude Code member whose last turn carried more than
33
+ * `CREWLY_MEMBER_CONTEXT_CAP_TOKENS` (300k by default, `0` disables), then
34
+ * writes one line naming its active WorkItem and the handover. Same safety
35
+ * rules — never the orchestrator, never mid-turn, never while a message is
36
+ * queued for or being delivered to it — plus at most one cap per 20 minutes.
37
+ *
29
38
  * @module services/agent/fresh-task-conversation.service
30
39
  */
31
40
  import type { WorkItem } from '../../types/v2/work-item.types.js';
@@ -98,6 +107,60 @@ export declare function decideFreshConversation(input: FreshTaskDecisionInput):
98
107
  * @returns One line
99
108
  */
100
109
  export declare function freshConversationNote(handoverPath: string): string;
110
+ /**
111
+ * The context cap for members, from the environment.
112
+ *
113
+ * @param env - Environment (tests)
114
+ * @returns Tokens; 0 means the cap is off. Unset or invalid → the default.
115
+ */
116
+ export declare function memberContextCapTokens(env?: NodeJS.ProcessEnv): number;
117
+ /** Everything the idle-boundary context-cap decision depends on. */
118
+ export interface ContextCapDecisionInput {
119
+ /** Agent session */
120
+ sessionName: string;
121
+ /** Its runtime */
122
+ runtimeType?: string;
123
+ /** Cap in tokens (0 = off) */
124
+ capTokens: number;
125
+ /** Env + settings kill-switch of the fresh-conversation feature */
126
+ enabled: boolean;
127
+ /** Last turn's context, or null when unknown */
128
+ contextTokens: number | null;
129
+ /** Agent is mid-turn */
130
+ busy: boolean;
131
+ /** How long the PTY has been quiet (null = unknown) */
132
+ quietMs: number | null;
133
+ /** A message is being delivered, was just delivered, or a prepare/clear is running */
134
+ deliveryActive: boolean;
135
+ /** Messages are queued for the agent */
136
+ queuedMessages: boolean;
137
+ /** When the session was last capped (ms), if ever */
138
+ lastCapAt: number | null;
139
+ /** Now (ms) */
140
+ now: number;
141
+ /** Id of the WorkItem the agent is on (null = none) */
142
+ activeWorkItemId: string | null;
143
+ }
144
+ /**
145
+ * Decide whether to cap (save + clear + re-orient) a member's conversation.
146
+ * Pure; the order of checks is also the order of the logged reasons.
147
+ *
148
+ * @param input - Decision inputs
149
+ * @returns The decision
150
+ */
151
+ export declare function decideContextCap(input: ContextCapDecisionInput): FreshTaskDecision;
152
+ /**
153
+ * The one line written after a context-cap clear. It must carry the WorkItem
154
+ * id: the new conversation id is found by it.
155
+ *
156
+ * @param args - WorkItem, handover file and the old context size
157
+ * @returns One line
158
+ */
159
+ export declare function contextCapReorientation(args: {
160
+ workItem: Pick<WorkItem, 'id' | 'title'>;
161
+ handoverPath: string;
162
+ contextTokens: number;
163
+ }): string;
101
164
  /** What the service needs to know about a session. */
102
165
  export interface FreshTaskSessionInfo {
103
166
  /** Runtime */
@@ -142,6 +205,14 @@ export interface FreshTaskDeps {
142
205
  sleep: (ms: number) => Promise<void>;
143
206
  /** Environment */
144
207
  env: NodeJS.ProcessEnv;
208
+ /** Registered agent sessions (context-cap sweep) */
209
+ listSessions: () => string[];
210
+ /** Messages are queued for the session and not yet written */
211
+ hasQueuedMessages: (sessionName: string) => boolean;
212
+ /** How long the session's PTY has been quiet (ms), or null when unknown */
213
+ getQuietMs: (sessionName: string) => number | null;
214
+ /** Write one message into the session (paste + Enter); false when the session is gone */
215
+ sendMessage: (sessionName: string, text: string) => Promise<boolean>;
145
216
  }
146
217
  /** Result of {@link FreshTaskConversationService.prepareForTask}. */
147
218
  export interface PrepareForTaskResult {
@@ -150,8 +221,20 @@ export interface PrepareForTaskResult {
150
221
  /** Handover file for the old conversation (when cleared) */
151
222
  handoverPath?: string;
152
223
  }
224
+ /** Result of {@link FreshTaskConversationService.capContextIfNeeded}. */
225
+ export interface ContextCapResult {
226
+ /** The conversation was saved, cleared and the agent re-oriented */
227
+ capped: boolean;
228
+ /** Why (logged; the decision reason when not capped) */
229
+ reason: string;
230
+ /** Handover file for the old conversation (when capped) */
231
+ handoverPath?: string;
232
+ /** WorkItem the agent was re-oriented on (when capped) */
233
+ workItemId?: string;
234
+ }
153
235
  /**
154
- * Singleton that starts a fresh Claude Code conversation per new task.
236
+ * Singleton that starts a fresh Claude Code conversation per new task, and
237
+ * caps a long task's conversation at idle boundaries.
155
238
  */
156
239
  export declare class FreshTaskConversationService {
157
240
  private static instance;
@@ -162,6 +245,14 @@ export declare class FreshTaskConversationService {
162
245
  private readonly inFlight;
163
246
  /** Last time a message was written to a session (terminal write / deliver) */
164
247
  private readonly lastDelivery;
248
+ /** Deliveries currently being written to a session (see {@link beginDelivery}) */
249
+ private readonly deliveriesInFlight;
250
+ /** Last context-cap clear per session (rate limit) */
251
+ private readonly lastCapAt;
252
+ /** Context-cap sweep timer */
253
+ private capSweepTimer;
254
+ /** A sweep is running (sweeps never overlap) */
255
+ private capSweepRunning;
165
256
  private constructor();
166
257
  /**
167
258
  * @returns The singleton
@@ -176,6 +267,22 @@ export declare class FreshTaskConversationService {
176
267
  static createForTesting(deps: Partial<FreshTaskDeps>): FreshTaskConversationService;
177
268
  /** Drop the singleton (tests). */
178
269
  static resetInstance(): void;
270
+ /**
271
+ * Mark a delivery to a session as in progress until the returned function
272
+ * is called. Neither a new-task clear nor a context-cap clear starts while
273
+ * one is running: it would wipe the message before the agent reads it.
274
+ *
275
+ * @param sessionName - Session being written to
276
+ * @returns Call when the delivery has finished (idempotent)
277
+ */
278
+ beginDelivery(sessionName: string): () => void;
279
+ /**
280
+ * Whether a delivery is being written to the session right now.
281
+ *
282
+ * @param sessionName - Session
283
+ * @returns True while a {@link beginDelivery} is open
284
+ */
285
+ isDelivering(sessionName: string): boolean;
179
286
  /**
180
287
  * Record that a message is being written to a session. A clear right after
181
288
  * would wipe it before the agent reads it, so {@link prepareForTask} skips
@@ -209,8 +316,53 @@ export declare class FreshTaskConversationService {
209
316
  * @param workItem - Task being delivered
210
317
  * @returns Whether it cleared, and the handover file when it did
211
318
  */
212
- prepareForTask(sessionName: string, workItem: Pick<WorkItem, 'id'>): Promise<PrepareForTaskResult>;
319
+ prepareForTask(sessionName: string, workItem: Pick<WorkItem, 'id' | 'metadata'>): Promise<PrepareForTaskResult>;
320
+ /**
321
+ * Start the periodic context-cap sweep (idempotent). The timer is unref'd
322
+ * so it never keeps the process alive.
323
+ *
324
+ * @param intervalMs - Sweep interval
325
+ */
326
+ startContextCapSweep(intervalMs?: number): void;
327
+ /** Stop the periodic context-cap sweep. */
328
+ stopContextCapSweep(): void;
329
+ /**
330
+ * Check every registered session once. Sessions are handled one after
331
+ * another and sweeps never overlap. Never throws.
332
+ *
333
+ * @returns Per-session results (sessions skipped cheaply are omitted)
334
+ */
335
+ runContextCapSweep(): Promise<Record<string, ContextCapResult>>;
336
+ /**
337
+ * If the member is idle between turns and its last turn carried more than
338
+ * the cap, save the conversation (handover file + wiki), `/clear` it and
339
+ * write one line naming its WorkItem and the handover. Runs in the same
340
+ * per-session chain as {@link prepareForTask}, so terminal writes wait for
341
+ * it. Never throws.
342
+ *
343
+ * @param sessionName - Member session
344
+ * @returns What happened
345
+ */
346
+ capContextIfNeeded(sessionName: string): Promise<ContextCapResult>;
347
+ private doCapContext;
348
+ /**
349
+ * The WorkItem a member is on: running before accepted before proposed,
350
+ * then the most recently started.
351
+ */
352
+ private pickCurrentItem;
213
353
  private doPrepare;
354
+ /**
355
+ * Save the current conversation (handover file + memory/wiki copy, no
356
+ * agent turn) and write `/clear`. Shared by the new-task and the
357
+ * context-cap paths.
358
+ *
359
+ * @param sessionName - Agent session
360
+ * @param conv - Its cwd and current conversation id
361
+ * @param handover - Task the old conversation was on, and why it closed
362
+ * @returns The handover file and the time `/clear` was written, or null
363
+ * when nothing was cleared (transcript missing, session gone)
364
+ */
365
+ private saveAndClear;
214
366
  /**
215
367
  * Write the handover file (same shape as the orchestrator's restart handover).
216
368
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fresh-task-conversation.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/fresh-task-conversation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fresh-task-conversation.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/fresh-task-conversation.service.ts"],"names":[],"mappings":"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"}