crewly 1.20.152 → 1.20.154

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 (804) 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 +25 -2
  9. package/config/roles/team-leader/prompt.md +19 -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/verify-output/SKILL.md +2 -2
  39. package/config/sops/developer/git-workflow.md +2 -1
  40. package/dist/backend/backend/src/constants.d.ts +451 -1
  41. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  42. package/dist/backend/backend/src/constants.js +442 -2
  43. package/dist/backend/backend/src/constants.js.map +1 -1
  44. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +27 -0
  45. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -0
  46. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +55 -0
  47. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -0
  48. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.d.ts +13 -0
  49. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.d.ts.map +1 -0
  50. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.js +19 -0
  51. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.js.map +1 -0
  52. package/dist/backend/backend/src/controllers/api.controller.d.ts +0 -12
  53. package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -1
  54. package/dist/backend/backend/src/controllers/api.controller.js +0 -44
  55. package/dist/backend/backend/src/controllers/api.controller.js.map +1 -1
  56. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +27 -5
  57. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
  58. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +55 -15
  59. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
  60. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -1
  61. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +2 -0
  62. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -1
  63. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +13 -0
  64. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -1
  65. package/dist/backend/backend/src/controllers/expert/expert.controller.js +67 -9
  66. package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -1
  67. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts +41 -0
  68. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts.map +1 -0
  69. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js +146 -0
  70. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js.map +1 -0
  71. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.d.ts +20 -0
  72. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.d.ts.map +1 -0
  73. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.js +29 -0
  74. package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.js.map +1 -0
  75. package/dist/backend/backend/src/controllers/project/project.controller.d.ts +2 -2
  76. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  77. package/dist/backend/backend/src/controllers/project/project.controller.js +24 -7
  78. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  79. package/dist/backend/backend/src/controllers/project/project.routes.d.ts +2 -2
  80. package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
  81. package/dist/backend/backend/src/controllers/project/project.routes.js +3 -36
  82. package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
  83. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +93 -0
  84. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -0
  85. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +252 -0
  86. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -0
  87. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +34 -0
  88. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -0
  89. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +51 -0
  90. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -0
  91. package/dist/backend/backend/src/controllers/request-types.d.ts +13 -0
  92. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  93. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts +49 -0
  94. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts.map +1 -0
  95. package/dist/backend/backend/src/controllers/standing/standing.controller.js +100 -0
  96. package/dist/backend/backend/src/controllers/standing/standing.controller.js.map +1 -0
  97. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +38 -0
  98. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  99. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +143 -8
  100. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  101. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
  102. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +6 -1
  103. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
  104. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +2 -0
  105. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  106. package/dist/backend/backend/src/controllers/team/team.controller.js +26 -6
  107. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  108. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts +18 -0
  109. package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -1
  110. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +56 -0
  111. package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -1
  112. package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts +1 -0
  113. package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts.map +1 -1
  114. package/dist/backend/backend/src/controllers/tickets/tickets.routes.js +3 -1
  115. package/dist/backend/backend/src/controllers/tickets/tickets.routes.js.map +1 -1
  116. package/dist/backend/backend/src/controllers/types.d.ts +1 -2
  117. package/dist/backend/backend/src/controllers/types.d.ts.map +1 -1
  118. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +2 -3
  119. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
  120. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +2 -3
  121. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
  122. package/dist/backend/backend/src/controllers/worktree-janitor/worktree-janitor.routes.d.ts +29 -0
  123. package/dist/backend/backend/src/controllers/worktree-janitor/worktree-janitor.routes.d.ts.map +1 -0
  124. package/dist/backend/backend/src/controllers/worktree-janitor/worktree-janitor.routes.js +63 -0
  125. package/dist/backend/backend/src/controllers/worktree-janitor/worktree-janitor.routes.js.map +1 -0
  126. package/dist/backend/backend/src/index.d.ts +7 -0
  127. package/dist/backend/backend/src/index.d.ts.map +1 -1
  128. package/dist/backend/backend/src/index.js +214 -9
  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 +27 -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 +28 -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 +93 -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 +1 -1
  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 +9 -0
  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/decision-rights.module.d.ts +18 -3
  173. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js +28 -4
  175. package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -1
  176. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +3 -0
  177. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  178. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +3 -0
  179. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  180. package/dist/backend/backend/src/services/ai/prompt-modules/project-reference.module.js +1 -1
  181. package/dist/backend/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -1
  182. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  183. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +12 -0
  184. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  185. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +14 -0
  186. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  187. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  188. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  189. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +11 -7
  190. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  191. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts +41 -0
  192. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts.map +1 -0
  193. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.js +44 -0
  194. package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.js.map +1 -0
  195. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +67 -0
  196. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -0
  197. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js +146 -0
  198. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -0
  199. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/ai/prompt-template.service.js +9 -7
  201. package/dist/backend/backend/src/services/ai/prompt-template.service.js.map +1 -1
  202. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  203. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  204. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +1 -0
  205. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  206. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  207. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +7 -0
  208. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  209. package/dist/backend/backend/src/services/cloud/waiting-actions-inbound.service.d.ts +128 -0
  210. package/dist/backend/backend/src/services/cloud/waiting-actions-inbound.service.d.ts.map +1 -0
  211. package/dist/backend/backend/src/services/cloud/waiting-actions-inbound.service.js +279 -0
  212. package/dist/backend/backend/src/services/cloud/waiting-actions-inbound.service.js.map +1 -0
  213. package/dist/backend/backend/src/services/cloud/waiting-items-sync.service.d.ts +122 -0
  214. package/dist/backend/backend/src/services/cloud/waiting-items-sync.service.d.ts.map +1 -0
  215. package/dist/backend/backend/src/services/cloud/waiting-items-sync.service.js +261 -0
  216. package/dist/backend/backend/src/services/cloud/waiting-items-sync.service.js.map +1 -0
  217. package/dist/backend/backend/src/services/cloud/waiting-items.contract.d.ts +101 -0
  218. package/dist/backend/backend/src/services/cloud/waiting-items.contract.d.ts.map +1 -0
  219. package/dist/backend/backend/src/services/cloud/waiting-items.contract.js +113 -0
  220. package/dist/backend/backend/src/services/cloud/waiting-items.contract.js.map +1 -0
  221. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts +7 -0
  222. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
  223. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js +9 -1
  224. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
  225. package/dist/backend/backend/src/services/core/logger.service.d.ts +21 -0
  226. package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
  227. package/dist/backend/backend/src/services/core/logger.service.js +42 -4
  228. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
  229. package/dist/backend/backend/src/services/core/storage.service.d.ts +1 -5
  230. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  231. package/dist/backend/backend/src/services/core/storage.service.js +5 -162
  232. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  233. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  234. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +15 -9
  235. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  236. package/dist/backend/backend/src/services/index.d.ts +0 -4
  237. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  238. package/dist/backend/backend/src/services/index.js +0 -4
  239. package/dist/backend/backend/src/services/index.js.map +1 -1
  240. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +1 -1
  241. package/dist/backend/backend/src/services/intent-task/intent-task.service.js +1 -1
  242. package/dist/backend/backend/src/services/mcp-server.d.ts +19 -6
  243. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
  244. package/dist/backend/backend/src/services/mcp-server.js +46 -16
  245. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  246. package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
  247. package/dist/backend/backend/src/services/mcp-tool-definitions.js +3 -2
  248. package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
  249. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +247 -0
  250. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -0
  251. package/dist/backend/backend/src/services/memory/standing-answers.service.js +534 -0
  252. package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -0
  253. package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts +104 -0
  254. package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts.map +1 -0
  255. package/dist/backend/backend/src/services/memory/standing-refresh.service.js +218 -0
  256. package/dist/backend/backend/src/services/memory/standing-refresh.service.js.map +1 -0
  257. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -0
  258. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  259. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +99 -1
  260. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  261. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.d.ts +75 -0
  262. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.d.ts.map +1 -0
  263. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.js +80 -0
  264. package/dist/backend/backend/src/services/monitoring/agent-attention-registry.js.map +1 -0
  265. package/dist/backend/backend/src/services/monitoring/agent-attention.d.ts +114 -0
  266. package/dist/backend/backend/src/services/monitoring/agent-attention.d.ts.map +1 -0
  267. package/dist/backend/backend/src/services/monitoring/agent-attention.js +165 -0
  268. package/dist/backend/backend/src/services/monitoring/agent-attention.js.map +1 -0
  269. package/dist/backend/backend/src/services/monitoring/agent-hook-state.d.ts +76 -0
  270. package/dist/backend/backend/src/services/monitoring/agent-hook-state.d.ts.map +1 -0
  271. package/dist/backend/backend/src/services/monitoring/agent-hook-state.js +96 -0
  272. package/dist/backend/backend/src/services/monitoring/agent-hook-state.js.map +1 -0
  273. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +1 -1
  274. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +1 -1
  275. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -1
  276. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +13 -3
  277. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -1
  278. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -1
  279. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +0 -4
  280. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -1
  281. package/dist/backend/backend/src/services/project/project-search.service.d.ts +22 -16
  282. package/dist/backend/backend/src/services/project/project-search.service.d.ts.map +1 -1
  283. package/dist/backend/backend/src/services/project/project-search.service.js +30 -53
  284. package/dist/backend/backend/src/services/project/project-search.service.js.map +1 -1
  285. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +381 -0
  286. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -0
  287. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +839 -0
  288. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -0
  289. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +214 -0
  290. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -0
  291. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +466 -0
  292. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -0
  293. package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts +121 -0
  294. package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -0
  295. package/dist/backend/backend/src/services/project-tickets/ticket-file.js +468 -0
  296. package/dist/backend/backend/src/services/project-tickets/ticket-file.js.map +1 -0
  297. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.d.ts +69 -0
  298. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.d.ts.map +1 -0
  299. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.js +194 -0
  300. package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.js.map +1 -0
  301. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts +47 -0
  302. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -0
  303. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js +83 -0
  304. package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js.map +1 -0
  305. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.d.ts +97 -0
  306. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.d.ts.map +1 -0
  307. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.js +201 -0
  308. package/dist/backend/backend/src/services/project-tickets/v1-task-migration.js.map +1 -0
  309. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +86 -22
  310. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  311. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +173 -28
  312. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  313. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +19 -1
  314. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  315. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +33 -4
  316. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  317. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +24 -12
  318. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  319. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +87 -19
  320. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  321. package/dist/backend/backend/src/services/runtime-adapter.d.ts +1 -1
  322. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
  323. package/dist/backend/backend/src/services/runtime-adapter.js +5 -9
  324. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
  325. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +26 -1
  326. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  327. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +33 -2
  328. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  329. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +5 -0
  330. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  331. package/dist/backend/backend/src/services/session/pty/pty-session.js +8 -1
  332. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  333. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts +18 -0
  334. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
  335. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +23 -0
  336. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
  337. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +8 -0
  338. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  339. package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -1
  340. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +12 -2
  341. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  342. package/dist/backend/backend/src/services/session/session-command-helper.js +14 -2
  343. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  344. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  345. package/dist/backend/backend/src/services/slack/slack-initializer.js +2 -1
  346. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  347. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts +239 -0
  348. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts.map +1 -0
  349. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js +395 -0
  350. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js.map +1 -0
  351. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.d.ts +53 -0
  352. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.d.ts.map +1 -0
  353. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.js +83 -0
  354. package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.js.map +1 -0
  355. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.d.ts +93 -0
  356. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.d.ts.map +1 -0
  357. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.js +244 -0
  358. package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.js.map +1 -0
  359. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +145 -19
  360. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  361. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +321 -53
  362. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  363. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  364. package/dist/backend/backend/src/services/template/template.service.js +11 -6
  365. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  366. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +21 -4
  367. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  368. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +53 -3
  369. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  370. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +85 -6
  371. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
  372. package/dist/backend/backend/src/services/v3/escalation-router.service.js +188 -9
  373. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
  374. package/dist/backend/backend/src/services/v3/escalation.service.js +1 -1
  375. package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
  376. package/dist/backend/backend/src/services/v3/mission-executor.service.js +2 -2
  377. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
  378. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.d.ts +184 -0
  379. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.d.ts.map +1 -0
  380. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.js +420 -0
  381. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.js.map +1 -0
  382. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts +61 -0
  383. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts.map +1 -0
  384. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js +100 -0
  385. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js.map +1 -0
  386. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.d.ts +36 -0
  387. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.d.ts.map +1 -0
  388. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.js +239 -0
  389. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.js.map +1 -0
  390. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts +152 -0
  391. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts.map +1 -0
  392. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js +209 -0
  393. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js.map +1 -0
  394. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts +194 -0
  395. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts.map +1 -0
  396. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js +85 -0
  397. package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js.map +1 -0
  398. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +6 -4
  399. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  400. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +15 -6
  401. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  402. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
  403. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +14 -5
  404. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
  405. package/dist/backend/backend/src/services/v3/request.service.d.ts +19 -0
  406. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
  407. package/dist/backend/backend/src/services/v3/request.service.js +38 -0
  408. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
  409. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.d.ts +82 -0
  410. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.d.ts.map +1 -0
  411. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.js +172 -0
  412. package/dist/backend/backend/src/services/v3/ticket-ask-classifier.js.map +1 -0
  413. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
  414. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +2 -0
  415. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
  416. package/dist/backend/backend/src/services/v3/ticket-intake-log.d.ts +87 -0
  417. package/dist/backend/backend/src/services/v3/ticket-intake-log.d.ts.map +1 -0
  418. package/dist/backend/backend/src/services/v3/ticket-intake-log.js +116 -0
  419. package/dist/backend/backend/src/services/v3/ticket-intake-log.js.map +1 -0
  420. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +133 -15
  421. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
  422. package/dist/backend/backend/src/services/v3/ticket-intake.service.js +263 -45
  423. package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -1
  424. package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts +3 -1
  425. package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
  426. package/dist/backend/backend/src/services/v3/ticket-review.service.js +6 -2
  427. package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
  428. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  429. package/dist/backend/backend/src/services/v3/v3-data.service.js +9 -3
  430. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  431. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +41 -1
  432. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  433. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +51 -2
  434. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  435. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +13 -5
  436. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  437. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +10 -9
  438. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  439. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.d.ts +241 -0
  440. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.d.ts.map +1 -0
  441. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.js +511 -0
  442. package/dist/backend/backend/src/services/worktree/workitem-worktree.service.js.map +1 -0
  443. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts +70 -0
  444. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts.map +1 -0
  445. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js +121 -0
  446. package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js.map +1 -0
  447. package/dist/backend/backend/src/services/worktree/worktree-git.d.ts +260 -0
  448. package/dist/backend/backend/src/services/worktree/worktree-git.d.ts.map +1 -0
  449. package/dist/backend/backend/src/services/worktree/worktree-git.js +569 -0
  450. package/dist/backend/backend/src/services/worktree/worktree-git.js.map +1 -0
  451. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.d.ts +131 -0
  452. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.d.ts.map +1 -0
  453. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.js +238 -0
  454. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.js.map +1 -0
  455. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +241 -0
  456. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -0
  457. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +504 -0
  458. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -0
  459. package/dist/backend/backend/src/types/event-bus.types.d.ts +1 -1
  460. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  461. package/dist/backend/backend/src/types/event-bus.types.js +8 -0
  462. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  463. package/dist/backend/backend/src/types/index.d.ts +23 -18
  464. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  465. package/dist/backend/backend/src/types/index.js.map +1 -1
  466. package/dist/backend/backend/src/types/intent-task.types.d.ts +1 -1
  467. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
  468. package/dist/backend/backend/src/types/project-ticket.types.d.ts +132 -0
  469. package/dist/backend/backend/src/types/project-ticket.types.d.ts.map +1 -0
  470. package/dist/backend/backend/src/types/project-ticket.types.js +120 -0
  471. package/dist/backend/backend/src/types/project-ticket.types.js.map +1 -0
  472. package/dist/backend/backend/src/types/review-reason.types.d.ts +3 -1
  473. package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -1
  474. package/dist/backend/backend/src/types/review-reason.types.js +1 -0
  475. package/dist/backend/backend/src/types/review-reason.types.js.map +1 -1
  476. package/dist/backend/backend/src/types/v2/index.d.ts +2 -2
  477. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  478. package/dist/backend/backend/src/types/v2/index.js +1 -1
  479. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  480. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +7 -0
  481. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -1
  482. package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -1
  483. package/dist/backend/backend/src/types/v2/request.types.d.ts +18 -0
  484. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
  485. package/dist/backend/backend/src/types/v2/request.types.js +1 -0
  486. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
  487. package/dist/backend/backend/src/types/v2/ticket.types.d.ts +6 -2
  488. package/dist/backend/backend/src/types/v2/ticket.types.d.ts.map +1 -1
  489. package/dist/backend/backend/src/types/v2/ticket.types.js +1 -1
  490. package/dist/backend/backend/src/types/v2/ticket.types.js.map +1 -1
  491. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +169 -14
  492. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  493. package/dist/backend/backend/src/types/v2/work-item.types.js +263 -44
  494. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  495. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +33 -0
  496. package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
  497. package/dist/backend/backend/src/utils/agent-caller.utils.js +37 -0
  498. package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
  499. package/dist/backend/backend/src/utils/secret-env.d.ts +61 -0
  500. package/dist/backend/backend/src/utils/secret-env.d.ts.map +1 -0
  501. package/dist/backend/backend/src/utils/secret-env.js +89 -0
  502. package/dist/backend/backend/src/utils/secret-env.js.map +1 -0
  503. package/dist/backend/build-info.json +2 -2
  504. package/dist/backend/config/constants.d.ts +71 -0
  505. package/dist/backend/config/constants.d.ts.map +1 -1
  506. package/dist/backend/config/constants.js +77 -0
  507. package/dist/backend/config/constants.js.map +1 -1
  508. package/dist/cli/backend/src/constants.d.ts +451 -1
  509. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  510. package/dist/cli/backend/src/constants.js +442 -2
  511. package/dist/cli/backend/src/constants.js.map +1 -1
  512. package/dist/cli/backend/src/models/index.d.ts +0 -1
  513. package/dist/cli/backend/src/models/index.d.ts.map +1 -1
  514. package/dist/cli/backend/src/models/index.js +0 -1
  515. package/dist/cli/backend/src/models/index.js.map +1 -1
  516. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +28 -1
  517. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  518. package/dist/cli/backend/src/services/agent/agent-registration.service.js +93 -34
  519. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  520. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +169 -0
  521. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -0
  522. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +231 -0
  523. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -0
  524. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +16 -0
  525. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  526. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +50 -0
  527. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  528. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  529. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +9 -8
  530. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  531. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.d.ts +75 -0
  532. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.d.ts.map +1 -0
  533. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.js +89 -0
  534. package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.js.map +1 -0
  535. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +18 -3
  536. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -1
  537. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js +28 -4
  538. package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -1
  539. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +1 -1
  540. package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -1
  541. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  542. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +12 -0
  543. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  544. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +14 -0
  545. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  546. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  547. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  548. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +11 -7
  549. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  550. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts +41 -0
  551. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts.map +1 -0
  552. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.js +44 -0
  553. package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.js.map +1 -0
  554. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +67 -0
  555. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -0
  556. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js +146 -0
  557. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -0
  558. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  559. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  560. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js +1 -0
  561. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  562. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts +7 -0
  563. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
  564. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js +9 -1
  565. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
  566. package/dist/cli/backend/src/services/core/logger.service.d.ts +21 -0
  567. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
  568. package/dist/cli/backend/src/services/core/logger.service.js +42 -4
  569. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
  570. package/dist/cli/backend/src/services/core/storage.service.d.ts +1 -5
  571. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  572. package/dist/cli/backend/src/services/core/storage.service.js +5 -162
  573. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  574. package/dist/cli/backend/src/services/mcp-server.d.ts +19 -6
  575. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
  576. package/dist/cli/backend/src/services/mcp-server.js +46 -16
  577. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  578. package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
  579. package/dist/cli/backend/src/services/mcp-tool-definitions.js +3 -2
  580. package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
  581. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +247 -0
  582. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -0
  583. package/dist/cli/backend/src/services/memory/standing-answers.service.js +534 -0
  584. package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -0
  585. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -0
  586. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  587. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +99 -1
  588. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  589. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.d.ts +75 -0
  590. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.d.ts.map +1 -0
  591. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.js +80 -0
  592. package/dist/cli/backend/src/services/monitoring/agent-attention-registry.js.map +1 -0
  593. package/dist/cli/backend/src/services/monitoring/agent-attention.d.ts +114 -0
  594. package/dist/cli/backend/src/services/monitoring/agent-attention.d.ts.map +1 -0
  595. package/dist/cli/backend/src/services/monitoring/agent-attention.js +165 -0
  596. package/dist/cli/backend/src/services/monitoring/agent-attention.js.map +1 -0
  597. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +214 -0
  598. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -0
  599. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +466 -0
  600. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -0
  601. package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts +121 -0
  602. package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -0
  603. package/dist/cli/backend/src/services/project-tickets/ticket-file.js +468 -0
  604. package/dist/cli/backend/src/services/project-tickets/ticket-file.js.map +1 -0
  605. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.d.ts +69 -0
  606. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.d.ts.map +1 -0
  607. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.js +194 -0
  608. package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.js.map +1 -0
  609. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts +47 -0
  610. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -0
  611. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js +83 -0
  612. package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js.map +1 -0
  613. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.d.ts +97 -0
  614. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.d.ts.map +1 -0
  615. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.js +201 -0
  616. package/dist/cli/backend/src/services/project-tickets/v1-task-migration.js.map +1 -0
  617. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +26 -1
  618. package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  619. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +33 -2
  620. package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  621. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +5 -0
  622. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  623. package/dist/cli/backend/src/services/session/pty/pty-session.js +8 -1
  624. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
  625. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +18 -0
  626. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
  627. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +23 -0
  628. package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
  629. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +8 -0
  630. package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  631. package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -1
  632. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +12 -2
  633. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  634. package/dist/cli/backend/src/services/session/session-command-helper.js +14 -2
  635. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  636. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +145 -19
  637. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  638. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +321 -53
  639. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  640. package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
  641. package/dist/cli/backend/src/services/template/template.service.js +11 -6
  642. package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
  643. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +85 -6
  644. package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
  645. package/dist/cli/backend/src/services/v3/escalation-router.service.js +188 -9
  646. package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -1
  647. package/dist/cli/backend/src/services/v3/mission-executor.service.js +2 -2
  648. package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -1
  649. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +6 -4
  650. package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  651. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +15 -6
  652. package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  653. package/dist/cli/backend/src/services/v3/request.service.d.ts +19 -0
  654. package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
  655. package/dist/cli/backend/src/services/v3/request.service.js +38 -0
  656. package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
  657. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.d.ts +82 -0
  658. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.d.ts.map +1 -0
  659. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.js +172 -0
  660. package/dist/cli/backend/src/services/v3/ticket-ask-classifier.js.map +1 -0
  661. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
  662. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +2 -0
  663. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
  664. package/dist/cli/backend/src/services/v3/ticket-intake-log.d.ts +87 -0
  665. package/dist/cli/backend/src/services/v3/ticket-intake-log.d.ts.map +1 -0
  666. package/dist/cli/backend/src/services/v3/ticket-intake-log.js +116 -0
  667. package/dist/cli/backend/src/services/v3/ticket-intake-log.js.map +1 -0
  668. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +133 -15
  669. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
  670. package/dist/cli/backend/src/services/v3/ticket-intake.service.js +263 -45
  671. package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -1
  672. package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts +3 -1
  673. package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
  674. package/dist/cli/backend/src/services/v3/ticket-review.service.js +6 -2
  675. package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
  676. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  677. package/dist/cli/backend/src/services/v3/v3-data.service.js +9 -3
  678. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
  679. package/dist/cli/backend/src/services/worktree/worktree-git.d.ts +260 -0
  680. package/dist/cli/backend/src/services/worktree/worktree-git.d.ts.map +1 -0
  681. package/dist/cli/backend/src/services/worktree/worktree-git.js +569 -0
  682. package/dist/cli/backend/src/services/worktree/worktree-git.js.map +1 -0
  683. package/dist/cli/backend/src/types/event-bus.types.d.ts +1 -1
  684. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  685. package/dist/cli/backend/src/types/event-bus.types.js +8 -0
  686. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  687. package/dist/cli/backend/src/types/index.d.ts +23 -18
  688. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  689. package/dist/cli/backend/src/types/index.js.map +1 -1
  690. package/dist/cli/backend/src/types/intent-task.types.d.ts +1 -1
  691. package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -1
  692. package/dist/cli/backend/src/types/project-ticket.types.d.ts +132 -0
  693. package/dist/cli/backend/src/types/project-ticket.types.d.ts.map +1 -0
  694. package/dist/cli/backend/src/types/project-ticket.types.js +120 -0
  695. package/dist/cli/backend/src/types/project-ticket.types.js.map +1 -0
  696. package/dist/cli/backend/src/types/v2/index.d.ts +2 -2
  697. package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
  698. package/dist/cli/backend/src/types/v2/index.js +1 -1
  699. package/dist/cli/backend/src/types/v2/index.js.map +1 -1
  700. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +7 -0
  701. package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -1
  702. package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -1
  703. package/dist/cli/backend/src/types/v2/request.types.d.ts +18 -0
  704. package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
  705. package/dist/cli/backend/src/types/v2/request.types.js +1 -0
  706. package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
  707. package/dist/cli/backend/src/types/v2/ticket.types.d.ts +6 -2
  708. package/dist/cli/backend/src/types/v2/ticket.types.d.ts.map +1 -1
  709. package/dist/cli/backend/src/types/v2/ticket.types.js +1 -1
  710. package/dist/cli/backend/src/types/v2/ticket.types.js.map +1 -1
  711. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +169 -14
  712. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  713. package/dist/cli/backend/src/types/v2/work-item.types.js +263 -44
  714. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  715. package/dist/cli/backend/src/utils/secret-env.d.ts +61 -0
  716. package/dist/cli/backend/src/utils/secret-env.d.ts.map +1 -0
  717. package/dist/cli/backend/src/utils/secret-env.js +89 -0
  718. package/dist/cli/backend/src/utils/secret-env.js.map +1 -0
  719. package/dist/cli/cli/src/commands/onboard.d.ts +1 -1
  720. package/dist/cli/cli/src/commands/onboard.js +3 -3
  721. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  722. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -1
  723. package/dist/cli/cli/src/commands/publish.js +4 -5
  724. package/dist/cli/cli/src/commands/publish.js.map +1 -1
  725. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  726. package/dist/cli/cli/src/commands/service.js +5 -2
  727. package/dist/cli/cli/src/commands/service.js.map +1 -1
  728. package/dist/cli/cli/src/commands/tickets.d.ts +60 -0
  729. package/dist/cli/cli/src/commands/tickets.d.ts.map +1 -0
  730. package/dist/cli/cli/src/commands/tickets.js +111 -0
  731. package/dist/cli/cli/src/commands/tickets.js.map +1 -0
  732. package/dist/cli/cli/src/index.js +12 -0
  733. package/dist/cli/cli/src/index.js.map +1 -1
  734. package/dist/cli/cli/src/utils/archive-creator.d.ts +7 -3
  735. package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -1
  736. package/dist/cli/cli/src/utils/archive-creator.js +17 -5
  737. package/dist/cli/cli/src/utils/archive-creator.js.map +1 -1
  738. package/dist/cli/cli/src/utils/cloud-submit.d.ts +1 -1
  739. package/dist/cli/cli/src/utils/cloud-submit.js +1 -1
  740. package/dist/cli/cli/src/utils/gh-submit.d.ts +10 -1
  741. package/dist/cli/cli/src/utils/gh-submit.d.ts.map +1 -1
  742. package/dist/cli/cli/src/utils/gh-submit.js +20 -4
  743. package/dist/cli/cli/src/utils/gh-submit.js.map +1 -1
  744. package/dist/cli/cli/src/utils/package-validator.d.ts +29 -6
  745. package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -1
  746. package/dist/cli/cli/src/utils/package-validator.js +88 -36
  747. package/dist/cli/cli/src/utils/package-validator.js.map +1 -1
  748. package/dist/cli/config/constants.d.ts +71 -0
  749. package/dist/cli/config/constants.d.ts.map +1 -1
  750. package/dist/cli/config/constants.js +77 -0
  751. package/dist/cli/config/constants.js.map +1 -1
  752. package/dist/cli/config/skills/marketplace-registry.d.ts +143 -0
  753. package/dist/cli/config/skills/marketplace-registry.d.ts.map +1 -0
  754. package/dist/cli/config/skills/marketplace-registry.js +192 -0
  755. package/dist/cli/config/skills/marketplace-registry.js.map +1 -0
  756. package/frontend/dist/assets/index-8d4b3ad2.js +4951 -0
  757. package/frontend/dist/assets/index-b6aded4c.css +42 -0
  758. package/frontend/dist/index.html +2 -2
  759. package/package.json +1 -1
  760. package/config/task_starters/build_e2e_test_plan_prompt.json +0 -51
  761. package/config/task_starters/build_tasks_prompt.json +0 -55
  762. package/config/task_starters/prompts/build_tasks_step1_milestone_structure.md +0 -274
  763. package/config/task_starters/prompts/e2e_test_plan_step1_build_tests.md +0 -391
  764. package/config/task_starters/prompts/e2e_test_plan_step2_run_tests.md +0 -240
  765. package/config/templates/customer-loyalty-team.json +0 -44
  766. package/config/templates/dtc-viral-content-team.json +0 -58
  767. package/config/templates/expert-innovation-team.json +0 -60
  768. package/config/templates/pragmatic-mvp-dev-team.json +0 -58
  769. package/config/templates/pro-sops/norms/content-production-pipeline.md +0 -39
  770. package/config/templates/pro-sops/norms/customer-onboarding-sop.md +0 -40
  771. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts +0 -13
  772. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts.map +0 -1
  773. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js +0 -214
  774. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js.map +0 -1
  775. package/dist/backend/backend/src/models/Ticket.d.ts +0 -24
  776. package/dist/backend/backend/src/models/Ticket.d.ts.map +0 -1
  777. package/dist/backend/backend/src/models/Ticket.js +0 -102
  778. package/dist/backend/backend/src/models/Ticket.js.map +0 -1
  779. package/dist/backend/backend/src/services/agent/task-planning.service.d.ts +0 -134
  780. package/dist/backend/backend/src/services/agent/task-planning.service.d.ts.map +0 -1
  781. package/dist/backend/backend/src/services/agent/task-planning.service.js +0 -291
  782. package/dist/backend/backend/src/services/agent/task-planning.service.js.map +0 -1
  783. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts +0 -71
  784. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts.map +0 -1
  785. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js +0 -304
  786. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js.map +0 -1
  787. package/dist/backend/backend/src/services/project/task-folder.service.d.ts +0 -48
  788. package/dist/backend/backend/src/services/project/task-folder.service.d.ts.map +0 -1
  789. package/dist/backend/backend/src/services/project/task-folder.service.js +0 -193
  790. package/dist/backend/backend/src/services/project/task-folder.service.js.map +0 -1
  791. package/dist/backend/backend/src/services/project/task.service.d.ts +0 -47
  792. package/dist/backend/backend/src/services/project/task.service.d.ts.map +0 -1
  793. package/dist/backend/backend/src/services/project/task.service.js +0 -253
  794. package/dist/backend/backend/src/services/project/task.service.js.map +0 -1
  795. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts +0 -130
  796. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts.map +0 -1
  797. package/dist/backend/backend/src/services/project/ticket-editor.service.js +0 -406
  798. package/dist/backend/backend/src/services/project/ticket-editor.service.js.map +0 -1
  799. package/dist/cli/backend/src/models/Ticket.d.ts +0 -24
  800. package/dist/cli/backend/src/models/Ticket.d.ts.map +0 -1
  801. package/dist/cli/backend/src/models/Ticket.js +0 -102
  802. package/dist/cli/backend/src/models/Ticket.js.map +0 -1
  803. package/frontend/dist/assets/index-2bdb57b9.css +0 -42
  804. package/frontend/dist/assets/index-54f1061c.js +0 -4963
@@ -3,9 +3,11 @@
3
3
  * Re-exported from the main config constants for backend use
4
4
  */
5
5
  // Import from config directory for cross-domain constants
6
- import { CREWLY_CONSTANTS as CONFIG_CREWLY_CONSTANTS, AGENT_IDENTITY_CONSTANTS as CONFIG_AGENT_IDENTITY_CONSTANTS, TIMING_CONSTANTS as CONFIG_TIMING_CONSTANTS, MEMORY_CONSTANTS as CONFIG_MEMORY_CONSTANTS, CONTINUATION_CONSTANTS as CONFIG_CONTINUATION_CONSTANTS, ORCHESTRATOR_RESTART_CONSTANTS as CONFIG_ORCHESTRATOR_RESTART_CONSTANTS, AGENT_SUSPEND_CONSTANTS as CONFIG_AGENT_SUSPEND_CONSTANTS, VERSION_CHECK_CONSTANTS as CONFIG_VERSION_CHECK_CONSTANTS, AUTO_UPDATE_CONSTANTS as CONFIG_AUTO_UPDATE_CONSTANTS, CLOUD_DISCONNECT_NOTICE_CONSTANTS as CONFIG_CLOUD_DISCONNECT_NOTICE_CONSTANTS, AGENT_HEARTBEAT_MONITOR_CONSTANTS as CONFIG_AGENT_HEARTBEAT_MONITOR_CONSTANTS, ORCHESTRATOR_HEARTBEAT_CONSTANTS as CONFIG_ORCHESTRATOR_HEARTBEAT_CONSTANTS, MARKETPLACE_CONSTANTS as CONFIG_MARKETPLACE_CONSTANTS, TEMPLATE_MARKETPLACE_CONSTANTS as CONFIG_TEMPLATE_MARKETPLACE_CONSTANTS, ADDON_CONSTANTS as CONFIG_ADDON_CONSTANTS, AUDITOR_CONSTANTS as CONFIG_AUDITOR_CONSTANTS, PROCESS_EXIT_CODES as CONFIG_PROCESS_EXIT_CODES, SAFE_RESTART_CONSTANTS as CONFIG_SAFE_RESTART_CONSTANTS, WEB_CONSTANTS as CONFIG_WEB_CONSTANTS, API_SECURITY_CONSTANTS as CONFIG_API_SECURITY_CONSTANTS, } from '../../config/constants.js';
6
+ import { CREWLY_CONSTANTS as CONFIG_CREWLY_CONSTANTS, AGENT_IDENTITY_CONSTANTS as CONFIG_AGENT_IDENTITY_CONSTANTS, TIMING_CONSTANTS as CONFIG_TIMING_CONSTANTS, MEMORY_CONSTANTS as CONFIG_MEMORY_CONSTANTS, CONTINUATION_CONSTANTS as CONFIG_CONTINUATION_CONSTANTS, ORCHESTRATOR_RESTART_CONSTANTS as CONFIG_ORCHESTRATOR_RESTART_CONSTANTS, AGENT_SUSPEND_CONSTANTS as CONFIG_AGENT_SUSPEND_CONSTANTS, VERSION_CHECK_CONSTANTS as CONFIG_VERSION_CHECK_CONSTANTS, AUTO_UPDATE_CONSTANTS as CONFIG_AUTO_UPDATE_CONSTANTS, CLOUD_DISCONNECT_NOTICE_CONSTANTS as CONFIG_CLOUD_DISCONNECT_NOTICE_CONSTANTS, AGENT_HEARTBEAT_MONITOR_CONSTANTS as CONFIG_AGENT_HEARTBEAT_MONITOR_CONSTANTS, ORCHESTRATOR_HEARTBEAT_CONSTANTS as CONFIG_ORCHESTRATOR_HEARTBEAT_CONSTANTS, MARKETPLACE_CONSTANTS as CONFIG_MARKETPLACE_CONSTANTS, TEMPLATE_MARKETPLACE_CONSTANTS as CONFIG_TEMPLATE_MARKETPLACE_CONSTANTS, ADDON_CONSTANTS as CONFIG_ADDON_CONSTANTS, AUDITOR_CONSTANTS as CONFIG_AUDITOR_CONSTANTS, PROCESS_EXIT_CODES as CONFIG_PROCESS_EXIT_CODES, SAFE_RESTART_CONSTANTS as CONFIG_SAFE_RESTART_CONSTANTS, WEB_CONSTANTS as CONFIG_WEB_CONSTANTS, API_SECURITY_CONSTANTS as CONFIG_API_SECURITY_CONSTANTS, PROJECT_TICKET_CONSTANTS as CONFIG_PROJECT_TICKET_CONSTANTS, } from '../../config/constants.js';
7
7
  // Re-export the cross-domain constants for backend use
8
8
  export const PROCESS_EXIT_CODES = CONFIG_PROCESS_EXIT_CODES;
9
+ /** Project tickets (specs/2026-09-28-project-tickets.md) — see config/constants.ts. */
10
+ export const PROJECT_TICKET_CONSTANTS = CONFIG_PROJECT_TICKET_CONSTANTS;
9
11
  /**
10
12
  * Safe restart: drain in-flight agent turns before a shutdown kills the PTYs,
11
13
  * and resume the ones that were cut off after the next boot.
@@ -247,6 +249,111 @@ export const PTY_CONSTANTS = {
247
249
  */
248
250
  ORPHAN_REAPER_INTERVAL_MS: 5 * 60 * 1000,
249
251
  };
252
+ /**
253
+ * Control-plane guard for Claude Code agent sessions (Request 72c9427a,
254
+ * specs/2026-09-24-control-plane-isolation.md Part 3).
255
+ *
256
+ * The backend writes a per-session settings file (permissions.deny + a
257
+ * PreToolUse Bash hook) and passes it with `--settings`, so an agent cannot
258
+ * edit the files that stop, start and configure agents. All paths are
259
+ * relative to the root named by the group: CREWLY_HOME (`~/.crewly`), the
260
+ * install root (the Crewly package / checkout), or the agent's project path.
261
+ */
262
+ export const CONTROL_PLANE_GUARD_CONSTANTS = {
263
+ /** Backend env var; `0` turns the guard off for every session launched by this backend. */
264
+ KILL_SWITCH_ENV: 'CREWLY_CONTROL_PLANE_GUARD',
265
+ /** Value of KILL_SWITCH_ENV that disables the guard. Any other value (or unset) keeps it on. */
266
+ KILL_SWITCH_OFF_VALUE: '0',
267
+ /** Directory under CREWLY_HOME that holds the generated per-session files. */
268
+ RUNTIME_DIR: 'runtime/control-plane',
269
+ /** Suffix of the generated Claude Code settings file (`<session><suffix>`). */
270
+ SETTINGS_FILE_SUFFIX: '.settings.json',
271
+ /** Suffix of the protected-paths list the Bash hook reads (`<session><suffix>`). */
272
+ PATHS_FILE_SUFFIX: '.paths',
273
+ /** The PreToolUse Bash hook, relative to the install root. */
274
+ HOOK_SCRIPT: 'config/hooks/control-plane-guard/pretooluse-bash.sh',
275
+ /** CLI flag the settings file is passed with. */
276
+ SETTINGS_FLAG: '--settings',
277
+ /** Claude Code tool the PreToolUse hook is attached to. */
278
+ HOOK_TOOL_MATCHER: 'Bash',
279
+ /**
280
+ * Write-protected directories under CREWLY_HOME (whole subtree).
281
+ *
282
+ * `teams` is deliberately NOT here (WorkItem 70e54fbc / #798 review):
283
+ * specs/2026-09-24-control-plane-isolation.md Part 2 protects only
284
+ * `teams/*\/config.json`, not the whole subtree. A team directory also
285
+ * holds `norms/`, `wiki/`, `prompts/`, `sops/` and `cron-tasks.json` —
286
+ * files agents write routinely (`remember`, `record-learning`,
287
+ * norm/SOP authoring, follow-up scheduling). Blanket-protecting `teams`
288
+ * would block all of that. See TEAM_CONFIG_FILE_NAME below for how the
289
+ * narrower rule is built (one entry per existing team, resolved at
290
+ * guard-prep time since the hook needs literal paths, not globs).
291
+ */
292
+ CREWLY_HOME_DIRS: ['triggers', 'runtime/control-plane'],
293
+ /**
294
+ * Directory under CREWLY_HOME holding one subdirectory per team, each
295
+ * expected to contain a `config.json` (see TEAM_CONFIG_FILE_NAME).
296
+ */
297
+ TEAMS_DIR_NAME: 'teams',
298
+ /** File name, within each team's directory, that the guard protects. */
299
+ TEAM_CONFIG_FILE_NAME: 'config.json',
300
+ /** Write-protected files under CREWLY_HOME. */
301
+ CREWLY_HOME_FILES: [
302
+ 'recurring-checks.json',
303
+ 'one-time-checks.json',
304
+ 'scheduled-messages.json',
305
+ 'settings.json',
306
+ 'runtime-pids.json',
307
+ 'session-state.json',
308
+ 'api-token',
309
+ ],
310
+ /** Files under CREWLY_HOME that agents must not read with the built-in tools either. */
311
+ CREWLY_HOME_READ_DENIED_FILES: ['api-token'],
312
+ /** Write-protected directories under the install root (whole subtree). */
313
+ INSTALL_DIRS: [
314
+ 'config/skills/orchestrator/stop-agent',
315
+ 'config/skills/orchestrator/start-agent',
316
+ 'config/skills/orchestrator/terminate-agent',
317
+ 'config/skills/orchestrator/stop-team',
318
+ 'config/skills/orchestrator/start-team',
319
+ 'config/skills/orchestrator/restart-crewly',
320
+ 'config/hooks/control-plane-guard',
321
+ // #815: the agent-status hook runs on every tool call; an agent must not
322
+ // be able to silence or rewrite it.
323
+ 'config/hooks/agent-status',
324
+ 'dist',
325
+ ],
326
+ /** Write-protected files under the install root. */
327
+ INSTALL_FILES: ['config/skills/_common/lib.sh'],
328
+ /** Write-protected directories under the agent's project path (whole subtree). */
329
+ PROJECT_DIRS: ['.claude/agents', '.crewly/triggers'],
330
+ };
331
+ /**
332
+ * Agent-status hook (#815, specs/2026-09-26-agent-waiting-on-human.md): Claude
333
+ * Code hook events that tell the backend when an agent waits on the user.
334
+ * Registered in the control-plane guard's per-session settings file, never as
335
+ * a second settings file, and never on PreToolUse (that event is the guard's).
336
+ */
337
+ export const AGENT_STATUS_HOOK_CONSTANTS = {
338
+ /** Hook script, relative to the install root. */
339
+ HOOK_SCRIPT: 'config/hooks/agent-status/report.sh',
340
+ /** Hook events the script is registered for. */
341
+ EVENTS: ['Notification', 'PermissionRequest', 'Stop', 'UserPromptSubmit', 'PostToolUse'],
342
+ /** Events that carry a tool matcher; they match every tool. */
343
+ TOOL_EVENTS: ['PermissionRequest', 'PostToolUse'],
344
+ /** Matcher that selects every tool. */
345
+ ALL_TOOLS_MATCHER: '*',
346
+ /** Notification types that mean "waiting on the user". */
347
+ WAITING_NOTIFICATION_TYPES: ['permission_prompt', 'elicitation_dialog'],
348
+ /** Every notification type the endpoint accepts (others are rejected). */
349
+ KNOWN_NOTIFICATION_TYPES: ['permission_prompt', 'elicitation_dialog', 'idle_prompt', 'auth_success'],
350
+ /** Max length of an accepted event or notification-type identifier. */
351
+ MAX_IDENTIFIER_LENGTH: 64,
352
+ /** Sessions whose latest hook signal is kept in memory (oldest dropped past this). */
353
+ MAX_TRACKED_SESSIONS: 500,
354
+ /** Accepted X-Agent-Session header value. */
355
+ SESSION_NAME_PATTERN: /^[A-Za-z0-9._-]{1,128}$/,
356
+ };
250
357
  /**
251
358
  * Session recreation (Step 2 full recreation in AgentRegistrationService).
252
359
  *
@@ -580,6 +687,44 @@ export const ACTIVITY_MONITOR_CONSTANTS = {
580
687
  * (spinners, TUI re-renders). Default: 15 minutes. */
581
688
  MAX_IN_PROGRESS_MS: 900_000,
582
689
  };
690
+ /**
691
+ * Give-up recovery (#841, specs/2026-09-27-give-up-recovery.md): when a worker
692
+ * stops on a feasibility give-up, queue a retry with a different approach,
693
+ * bounded per root WorkItem, then one escalation to the team lead.
694
+ */
695
+ export const GIVE_UP_RECOVERY_CONSTANTS = {
696
+ /** Retries per root WorkItem when the team sets no recoveryPolicy. */
697
+ DEFAULT_MAX_RETRIES: 2,
698
+ /** Retry WorkItem id: `${rootId}${RETRY_ID_INFIX}${attempt}`. */
699
+ RETRY_ID_INFIX: ':giveup:',
700
+ /** Escalation review WorkItem id: `${rootId}${REVIEW_ID_SUFFIX}`. */
701
+ REVIEW_ID_SUFFIX: ':review:gave_up',
702
+ /** WorkItem.metadata key for the recorded stop classification. */
703
+ STOP_METADATA_KEY: 'stop',
704
+ /** WorkItem.metadata key for the attempt log carried by retries. */
705
+ GIVE_UP_METADATA_KEY: 'giveUp',
706
+ /** Characters of stop text kept per attempt. */
707
+ MAX_REASON_CHARS: 2000,
708
+ /** Audit label for transitions this feature makes. */
709
+ ACTOR_VIA: 'give-up-recovery',
710
+ };
711
+ /**
712
+ * Constants for the waiting_on_human attention verdict (#815).
713
+ * See specs/2026-09-26-agent-waiting-on-human.md.
714
+ */
715
+ export const AGENT_ATTENTION_CONSTANTS = {
716
+ /** Non-empty lines at the bottom of the screen the dialog rules examine.
717
+ * Dialogs render at the bottom; older answered dialogs sit above it. */
718
+ BOTTOM_LINES: 20,
719
+ /** Lines captured from the terminal buffer for the verdict (more than the
720
+ * 5 lines the activity diff uses, because a dialog spans ~15 lines). */
721
+ CAPTURE_LINES: 60,
722
+ /** How long an agent must stay waiting_on_human before the reconciler moves
723
+ * its running WorkItems to blocked (5 minutes). */
724
+ BLOCK_WORK_ITEM_AFTER_MS: 300_000,
725
+ /** WorkItem blockedReason / escalation reason used for this state. */
726
+ BLOCKED_REASON: 'waiting_on_human',
727
+ };
583
728
  /**
584
729
  * Event bus constants for the agent event pub/sub system.
585
730
  * Used by EventBusService for subscription management and notification delivery.
@@ -701,6 +846,94 @@ export const WIKI_KB_CONSTANTS = {
701
846
  /** Frontmatter keys agents may set. */
702
847
  FRONTMATTER_KEYS: ['title', 'summary', 'keep_because', 'tags', 'visibility', 'source', 'caller', 'recorded', 'updated', 'superseded_by', 'superseded_at', 'superseded_reason', 'proposed_by'],
703
848
  };
849
+ /**
850
+ * Standing-answer pages (#816): a few question-anchored pages per scope,
851
+ * read at boot as a plain file read (no retrieval, no LLM) and refreshed by
852
+ * an agent only when the memory behind them has moved.
853
+ */
854
+ export const STANDING_ANSWERS_CONSTANTS = {
855
+ /** Project pages live here, under the project's `.crewly` data dir. */
856
+ PROJECT_DIR: 'wiki/llm-curated/standing',
857
+ /** The agent page, under `<CREWLY_HOME>/agents/<session>/`. */
858
+ AGENT_FILE: 'standing.md',
859
+ /** Page id of the agent page. */
860
+ AGENT_PAGE_ID: 'unfinished-work',
861
+ /** Hard cap on the whole Standing Answers prompt section (~2 000 tokens). */
862
+ PROMPT_MAX_CHARS: 8000,
863
+ /** Cap on one page's body inside the prompt. */
864
+ PROMPT_PAGE_MAX_CHARS: 3000,
865
+ /** Cap on one section body written through the API. */
866
+ SECTION_MAX_CHARS: 1500,
867
+ /** Cap on a section heading. */
868
+ HEADING_MAX_CHARS: 80,
869
+ /** Cap on citations per section. */
870
+ MAX_CITES_PER_SECTION: 20,
871
+ /** Entries listed in a refresh WorkItem brief. */
872
+ BRIEF_MAX_ENTRIES: 30,
873
+ /** Characters of each entry shown in a refresh brief. */
874
+ BRIEF_ENTRY_MAX_CHARS: 240,
875
+ /** Refresh tick interval when CREWLY_WIKI_REFLECT_INTERVAL_MS is unset (the reflect default). */
876
+ REFRESH_INTERVAL_MS: 60 * 60 * 1000,
877
+ /** Minimum time between two refresh WorkItems for the same page. */
878
+ REFRESH_COOLDOWN_MS: 6 * 60 * 60 * 1000,
879
+ /** At most this many refresh WorkItems per tick (PTY paste-flood guard). */
880
+ REFRESH_MAX_CREATES_PER_TICK: 2,
881
+ /**
882
+ * A refresh WorkItem that failed or was cancelled without writing the page
883
+ * is retried even though the source watermark has not moved again (it
884
+ * otherwise would not be re-raised until new memory arrives). Bounded so a
885
+ * page that keeps failing does not retry forever.
886
+ */
887
+ REFRESH_MAX_RETRIES: 2,
888
+ /** Refresh bookkeeping (last raised watermark per page), under CREWLY_HOME. */
889
+ REFRESH_STATE_FILE: 'standing-refresh-state.json',
890
+ /** `metadata.kind` of refresh WorkItems. */
891
+ WORKITEM_KIND: 'standing-refresh',
892
+ /**
893
+ * Decisions whose title starts with this are task-completion records that
894
+ * report-status files automatically, not decisions; they are out of scope
895
+ * for "decisions in force" (in this repo: 229 of 327 decision entries).
896
+ */
897
+ COMPLETED_DECISION_PREFIX: '[COMPLETED]',
898
+ /**
899
+ * Agent-memory entries starting with this are report-status completion
900
+ * learnings ("Task completed: <summary>"). Done work is neither
901
+ * unfinished nor blocking, so they are out of scope for the agent page
902
+ * and do not move its watermark; "Task failed:"/"Task blocked:" stay in.
903
+ */
904
+ COMPLETED_LEARNING_PREFIX: 'Task completed:',
905
+ };
906
+ /**
907
+ * Per-WorkItem git worktrees (#814). Opt-in per project in v1
908
+ * (`Project.worktrees = 'on'`); a team can opt out (`Team.worktrees =
909
+ * 'off'`); `CREWLY_WORKTREES=off` disables them everywhere.
910
+ */
911
+ export const WORKTREE_CONSTANTS = {
912
+ /** Worktrees live here, relative to the repo root (gitignored via .crewly). */
913
+ DIR: '.crewly/worktrees',
914
+ /** Per-worktree manifests (symlinks, copies, base) live here, inside DIR. */
915
+ META_DIR: '.meta',
916
+ /** Branch name prefix: `wi/<workItemId>`. */
917
+ BRANCH_PREFIX: 'wi/',
918
+ /** Repo-root file listing gitignored-but-needed files to copy in. */
919
+ INCLUDE_FILE: '.worktreeinclude',
920
+ /** Cap on `.worktreeinclude` entries honoured. */
921
+ INCLUDE_MAX_ENTRIES: 50,
922
+ /** Heavy directories symlinked (not copied) from the repo root when present and untracked. */
923
+ DEFAULT_SHARED_DIRS: ['node_modules'],
924
+ /** Marker line for the entries this feature adds to `.git/info/exclude`. */
925
+ EXCLUDE_MARKER: '# crewly worktree shared paths (#814) — never commit these',
926
+ /** Timeout for local git commands (checkout of a large repo can take minutes under load). */
927
+ GIT_TIMEOUT_MS: 10 * 60 * 1000,
928
+ /** Timeout for `git ls-remote` (offline must not hang the sweep). */
929
+ REMOTE_TIMEOUT_MS: 15_000,
930
+ /** Orphan sweep interval. */
931
+ SWEEP_INTERVAL_MS: 30 * 60 * 1000,
932
+ /** Kill switch env var; the value `off` disables worktrees everywhere. */
933
+ ENV_KILL_SWITCH: 'CREWLY_WORKTREES',
934
+ /** WorkItem metadata key holding the worktree record. */
935
+ METADATA_KEY: 'worktree',
936
+ };
704
937
  /** How many recent thread channels an owner notification tries before giving up when SLACK_DEFAULT_CHANNEL is unset. */
705
938
  export const SLACK_NOTIFICATION_FALLBACK_MAX_CANDIDATES = 4;
706
939
  /**
@@ -966,6 +1199,61 @@ export const NOTIFY_RECONCILIATION_CONSTANTS = {
966
1199
  /** Delay before first reconciliation run after startup (30 seconds) */
967
1200
  STARTUP_DELAY_MS: 30 * 1000,
968
1201
  };
1202
+ /**
1203
+ * Constants for the worktree janitor (`WorktreeJanitorService`).
1204
+ *
1205
+ * Agents create a git worktree per code task and never delete it. The janitor
1206
+ * removes a worktree once its work has landed (merged into origin's default
1207
+ * branch, or its PR is MERGED) and nothing is using it. See the service JSDoc
1208
+ * for the full list of removal rules.
1209
+ */
1210
+ export const WORKTREE_JANITOR_CONSTANTS = {
1211
+ /** Env kill switch: `CREWLY_WORKTREE_JANITOR=0` (or `off`/`false`) disables the janitor. */
1212
+ ENV_VAR: 'CREWLY_WORKTREE_JANITOR',
1213
+ /** Values of {@link WORKTREE_JANITOR_CONSTANTS.ENV_VAR} that disable it (lower-cased). */
1214
+ DISABLED_VALUES: ['0', 'off', 'false', 'no'],
1215
+ /** Interval between automatic runs (30 minutes). */
1216
+ INTERVAL_MS: 30 * 60 * 1000,
1217
+ /** Delay before the first automatic run after startup (10 minutes). */
1218
+ FIRST_RUN_DELAY_MS: 10 * 60 * 1000,
1219
+ /** A worktree touched more recently than this is kept (2 hours). */
1220
+ MIN_IDLE_MS: 2 * 60 * 60 * 1000,
1221
+ /**
1222
+ * Directory, relative to the repo's main worktree, where agent tools
1223
+ * (Claude Code subagents, Crewly agents) create per-task worktrees.
1224
+ */
1225
+ AGENT_WORKTREE_DIR: '.claude/worktrees',
1226
+ /**
1227
+ * Directory name under the system temp dir (`/tmp`, `os.tmpdir()`) that
1228
+ * the developer role prompt tells agents to put worktrees in.
1229
+ */
1230
+ TMP_WORKTREE_DIR: 'crewly-worktrees',
1231
+ /**
1232
+ * Directory owned by the per-WorkItem worktree feature (#814), which does
1233
+ * its own WorkItem-aware cleanup. The janitor never touches it.
1234
+ */
1235
+ MANAGED_WORKTREE_DIR: '.crewly/worktrees',
1236
+ /**
1237
+ * Branch-name prefixes that only agents create. A worktree elsewhere on
1238
+ * disk is eligible only when its branch starts with one of these.
1239
+ * `worktree-agent-` is Claude Code's automatic subagent branch.
1240
+ */
1241
+ AGENT_BRANCH_PREFIXES: ['worktree-agent-'],
1242
+ /** Branches that are never deleted, whatever the verdict. */
1243
+ PROTECTED_BRANCHES: ['main', 'master', 'develop', 'HEAD'],
1244
+ /** Timeout of one local git command (ms). */
1245
+ GIT_TIMEOUT_MS: 30_000,
1246
+ /** Timeout of `git fetch` (ms). */
1247
+ FETCH_TIMEOUT_MS: 60_000,
1248
+ /** Timeout of one `gh` call (ms). */
1249
+ GH_TIMEOUT_MS: 20_000,
1250
+ /** Timeout of the process-cwd probe (`lsof`) (ms). */
1251
+ CWD_PROBE_TIMEOUT_MS: 20_000,
1252
+ /** Max PRs `gh pr list --head <branch>` returns per branch. */
1253
+ GH_PR_LIMIT: 20,
1254
+ /** Max bytes of command output kept (stdout/stderr each). */
1255
+ MAX_OUTPUT_BYTES: 16 * 1024 * 1024,
1256
+ };
969
1257
  /**
970
1258
  * Constants for cron next-run computation (`getNextRunTime`).
971
1259
  */
@@ -1365,7 +1653,15 @@ export const FRESH_TASK_CONVERSATION_CONSTANTS = {
1365
1653
  ENV_TOGGLE: 'CREWLY_FRESH_TASK_CONVERSATION',
1366
1654
  /** Under CREWLY_HOME: `{ [session]: lastDeliveredRootId }` */
1367
1655
  STATE_FILE: 'fresh-task-conversation.json',
1368
- /** Id suffixes that mark follow-ups of the same task (retries, verifies, reviews) */
1656
+ /**
1657
+ * Id suffixes that mark follow-ups of the same task (retries, verifies,
1658
+ * reviews). Deliberately excludes give-up recovery's `:giveup:N` (#841,
1659
+ * #843): a give-up retry is meant to be a materially DIFFERENT approach,
1660
+ * and its WorkItem description already carries the full attempt log, so
1661
+ * nothing is lost by treating it as a new root — the agent starts that
1662
+ * retry with a fresh conversation instead of one anchored on the
1663
+ * reasoning that just failed. See give-up-recovery.service.ts buildRetry.
1664
+ */
1369
1665
  ROOT_SUFFIX_MARKERS: [':retry:', ':verify:', ':review:'],
1370
1666
  /** The Claude Code command that starts a new conversation */
1371
1667
  CLEAR_COMMAND: '/clear',
@@ -2823,6 +3119,33 @@ export const SELF_IMPROVEMENT_CONSTANTS = {
2823
3119
  INACCURATE: ['incorrect', 'inaccurate', 'false', 'no', 'wrong', 'missed'],
2824
3120
  },
2825
3121
  };
3122
+ /**
3123
+ * Daily owner receipt (#828): one phone-readable message every evening with
3124
+ * every ask of the window, its outcome and link, what waits on the owner, and
3125
+ * what it cost. See specs/owner-receipt.md.
3126
+ */
3127
+ export const OWNER_RECEIPT_CONSTANTS = {
3128
+ /** Default local send time (HH:MM, 24h) */
3129
+ DEFAULT_TIME: '21:00',
3130
+ /** Default owner time zone (same default as team-health off-hours) */
3131
+ DEFAULT_TIMEZONE: 'America/New_York',
3132
+ /** How often the scheduler checks whether it is time (ms) */
3133
+ TICK_INTERVAL_MS: 60 * 1000,
3134
+ /** Settings + last-sent state, under ~/.crewly */
3135
+ STATE_FILENAME: 'owner-receipt.json',
3136
+ /** An ask is shortened to this many characters (CJK count double) */
3137
+ MAX_ASK_WEIGHTED_LENGTH: 56,
3138
+ /** A waiting-on-you question is shortened to this many characters */
3139
+ MAX_QUESTION_WEIGHTED_LENGTH: 90,
3140
+ /** Ask lines in the Slack message before "另有 N 件" (phone length) */
3141
+ MAX_ASK_LINES: 30,
3142
+ /** Waiting-on-you lines before "另有 N 件" */
3143
+ MAX_WAITING_LINES: 12,
3144
+ /** 「可能漏记」 lines: appended messages that still read like a request (#828 coverage) */
3145
+ MAX_POSSIBLY_MISSED: 5,
3146
+ /** Team label for a ticket nobody is assigned to */
3147
+ UNASSIGNED_TEAM: '未分配',
3148
+ };
2826
3149
  /**
2827
3150
  * Ticket loop (specs/ticket-loop.md, Phase 1): owner messages become tickets
2828
3151
  * (a `Request` with a TKT number), receipts go back where the owner spoke,
@@ -2835,6 +3158,13 @@ export const TICKET_CONSTANTS = {
2835
3158
  NUMBER_PAD: 3,
2836
3159
  /** Counter file inside the requests dir (no `.json`, so listAll never reads it) */
2837
3160
  COUNTER_FILENAME: '.ticket-counter',
3161
+ /**
3162
+ * #828 coverage: one JSON line per owner message intake handled
3163
+ * (created / appended / ignored + reason), next to the Request files. The
3164
+ * first line records when counting started, so a window that begins
3165
+ * earlier is reported as unknown (不详), never as 0.
3166
+ */
3167
+ INTAKE_LOG_FILENAME: '.intake-outcomes.jsonl',
2838
3168
  /** Tag every ticket carries */
2839
3169
  TAG: 'ticket',
2840
3170
  /** Tag added when the owner said "don't track" */
@@ -2845,8 +3175,81 @@ export const TICKET_CONSTANTS = {
2845
3175
  * (7 CJK = 14), while "好的收到" (8) does not.
2846
3176
  */
2847
3177
  MIN_WEIGHTED_TEXT_LENGTH: 12,
3178
+ /** Tag on a ticket an agent split out of another (#827) */
3179
+ SPLIT_TAG: 'split',
2848
3180
  /** A bare "don't track" reply dismisses the ticket it answers */
2849
3181
  DISMISS_PATTERN: /^\s*(不用记|别记|不用记录|不要记|取消记录|don'?t track|do not track|no ticket)\s*[。.!!]*\s*$/i,
3182
+ /**
3183
+ * Ask classifier (#827): is an owner message a new ask, or a follow-up on
3184
+ * the thread's current deliverable? Deterministic, text only. Every
3185
+ * pattern below was taken from real owner messages of 2026-09-25/26 — see
3186
+ * ticket-ask-classifier.test.ts for the labelled set. Scoring and the
3187
+ * tie rule live in ticket-ask-classifier.ts.
3188
+ */
3189
+ ASK: {
3190
+ /** A request verb: something to go and do (+2 ask) */
3191
+ REQUEST_VERB: /(研究|调研|查一下|查查|搜一下|搜索一下|搜搜|搜一搜|找一下|找找|(看看|看一下|看下)(?!上面|这个|吧|吗|嘛|呢|[??。!!~]|\s*$)|了解一下|分析一下|深挖|挖一下|总结|汇总|对比|比较一下|开\s*(个|一个|几个)?\s*issues?|提\s*(个|一个)?\s*issues?|发给|发到|做成|生成|加到|添加|帮我|帮忙|给我(讲讲|发|找|整理|列)|给我看看\S|告诉我|按\s*\S{1,12}\s*(分组|归类|group)|\bgroup\b|让\S{1,12}去|monitor|盯一下|提醒我|跑一下|部署|\bresearch\b|look into|dig into|find out|summari[sz]e|\bcompare\b|(open|file|create)\s+(the\s+\S+\s+to\s+)?(an?\s+|github\s+)?issues?|github issues?|write (up|a |an )|\bdraft\b|tell me|explain)/i,
3192
+ /**
3193
+ * An explicit request construction (+3 ask instead of +2). Survives the
3194
+ * long-discussion damping: 「你能不能帮我…总结成一个MD文档」 inside a
3195
+ * voice transcript is still an ask.
3196
+ */
3197
+ STRONG_REQUEST: /(你能不能帮我|能不能帮我|你能帮我|我希望你|希望.{0,4}你们?(能|可以)|我建议你|需要你去|(?<!谢谢)你帮我(?!\s*draft)|帮我把|创建对应的|创建一个)/,
3198
+ /** A question that asks for information (+1 ask; on its own, a question ticket) */
3199
+ INFO_QUESTION: /(是什么|什么意思|是讲什么|讲的是什么|是啥|怎么回事|区别|有什么值得|有什么可以|能有什么|有哪些|都有什么|有几个|有多少|有没有|what is|what's|what does|what even|how does|how do)/i,
3200
+ /** The message points at something to look at: a link, an image, a file path */
3201
+ REFERENCE: /(https?:\/\/|\[Slack (Image|File):|[\w-]+\/[\w./-]+\.(md|pdf|png|jpe?g))/i,
3202
+ /** A bare 「看看」 (look) — an ask only when it has a reference to look at */
3203
+ LOOK: /(看看|看一下|看下|看一看)/,
3204
+ /** Opens a new topic, near the start (+1 ask) */
3205
+ NEW_TOPIC: /^.{0,6}(另外|还有一个|还有个|另一个|新的想法|有一个新的|对了)/,
3206
+ /** Suggests something new to do (+1 ask) */
3207
+ IDEA: /(我们(crewly)?也可以|我们可以|要不(要)?|不如|可以考虑)/i,
3208
+ /** First line is a numbered reply to the agent's list (+3 follow) */
3209
+ NUMBERED_REPLY: /^\s*(1[.、))]|1\s|1和|关于1|①)/,
3210
+ /**
3211
+ * How the CURRENT deliverable should be delivered (+3 follow). Needs a
3212
+ * delivery verb: a bare `00-plan.md` path is not an instruction.
3213
+ */
3214
+ DELIVERY_FORMAT: /((发|给我|存|转|用|通过|做成).{0,6}(pdf|md|markdown)|存到|写到.{0,20}(md|文档|issue)|放到|preview|文字稿)/i,
3215
+ /** Clarifies or corrects the work in progress (+2 follow) */
3216
+ CLARIFY: /(我只是|我的意思|我是说|除非你|不是说|不是让你|就是说|没关系|算了|先不|先留|backlog|后面再|以后再|不着急|不用了|不需要|等一下|按你说的|你决定|你来定|你们来定|请你们来|主要是)/,
3217
+ /** Feedback on the current draft (+3 follow) */
3218
+ FEEDBACK: /(基本上?可以|整体看?可以|还可以再|再斟酌|打磨|少了|多了|改成|改一下|基本对)/,
3219
+ /** Asks the agent about its own work or plan (+2 follow) */
3220
+ ABOUT_AGENT_WORK: /(你打算|你觉得|你有数|你看到|你去调研的时候|你那边|你有什么想法|你是怎么|你怎么|你有吗|我前面问|之前问|前面说了|再问一次)/,
3221
+ /**
3222
+ * Opens by correcting or choosing (+3 follow): 「不对 我要你研究的是…」,
3223
+ * 「不是前面…」, 「方案A」 — a reply to the agent, never a new ask.
3224
+ */
3225
+ CORRECTION_OR_CHOICE: /^(不对|不是|不用|sorry|方案\s*[A-Za-z0-9一二三]|选\s*[A-Za-z0-9一二三]|[A-Da-d][。.,,\s]|按推荐|按你推荐)/i,
3226
+ /** 「…给我看看吗」: show me the current thing (+3 follow) */
3227
+ SHOW_ME_TAIL: /给我看看?[吗嘛呢??\s]*$/,
3228
+ /** Retry / continue the current work (+3 follow): 「你再看看」「按你说的继续挖」 */
3229
+ RETRY_CONTINUE: /(再看看|再看一次|再试试|你再|重新|继续|接着)/,
3230
+ /** Ends as a suggestion about the current work (+3 follow): 「…添加一些截图吧?」 */
3231
+ SUGGEST_TAIL: /吧[??]?\s*$/,
3232
+ /** Asks where things stand (+3 follow; top level: not an ask) */
3233
+ STATUS_PING: /(在线了吗|好了吗|怎么样了|现在呢|有听吗|进展|进度|到哪了|有数了吗|登陆了吗|登陆过了|在吗|done yet|any update|how'?s it going|\bstatus\b|right now|working on)/i,
3234
+ /**
3235
+ * A line that approves what the agent proposed: starts with an ack and
3236
+ * ends in approval ("好的 开issue可以的", "好的 部署吧") (+3 follow)
3237
+ */
3238
+ APPROVAL_LINE: /^(好的?|行|可以|ok|okay|嗯+|对|对的|没问题|挺好的?)[\s,,。!!]*(\S.{0,24}?(可以的?|就行|没问题|吧)[\s。!!~]*)?$/i,
3239
+ /** A line that is only an acknowledgement (ignored when scoring the rest) */
3240
+ ACK_ONLY_LINE: /^(好的?|行|可以|ok|okay|嗯+|对|对的|没问题|挺好的?|收到|谢谢|thx|thanks)[\s,,。!!~]*$/i,
3241
+ /**
3242
+ * Weighted length above which a message reads as spoken discussion (a
3243
+ * voice transcript): a follow-up unless it opens a new topic (+2 follow)
3244
+ */
3245
+ LONG_DISCUSSION_WEIGHTED_LENGTH: 300,
3246
+ /** Ends like a question (a verb-less question in a thread needs one) */
3247
+ QUESTION_MARK: /([??吗呢]|是什么|什么意思|是啥|的区别是什么)\s*$/m,
3248
+ /** Quoted text is content, not a request: 接住“能不能帮我做” asks nothing */
3249
+ QUOTED: /“[^”]*”|「[^」]*」|"[^"]*"/g,
3250
+ /** Minimum ask score for a new ask; it must also beat the follow score (ties append) */
3251
+ MIN_ASK_SCORE: 2,
3252
+ },
2850
3253
  /**
2851
3254
  * A top-level "不用记" (no thread) dismisses the latest open ticket from the
2852
3255
  * same conversation if it was opened this recently (ms).
@@ -3470,4 +3873,41 @@ export const CLOUD_TALK_CONSTANTS = {
3470
3873
  /** Ticket-intake origin for a Talk message (the portal). */
3471
3874
  INTAKE_ORIGIN: 'portal',
3472
3875
  };
3876
+ /**
3877
+ * "Waiting on you" synced to Crewly Cloud (specs/unified-conversations-cloud-store.md §F, Phase 5):
3878
+ * tickets in 待验收 are uploaded as text snapshots; the owner's accept /
3879
+ * send-back from the portal comes back as a `waiting_action` relay push.
3880
+ */
3881
+ export const WAITING_SYNC_CONSTANTS = {
3882
+ /** Machine → Cloud snapshot upload. */
3883
+ INGEST_PATH: '/api/cloud/conversations/waiting/ingest',
3884
+ /** `GET <path>/:actionId?instanceId=` fetches an action; `POST <path>/:actionId/result` reports it. */
3885
+ ACTIONS_PATH: '/api/cloud/conversations/waiting/actions',
3886
+ /** Relay message `type` Cloud pushes for an owner action. */
3887
+ RELAY_MESSAGE_TYPE: 'waiting_action',
3888
+ /** Capability advertised to Cloud (heartbeat + uploads) once the action handler runs. */
3889
+ CAPABILITY: 'waiting_actions',
3890
+ /** Gather ticket changes this long before uploading (ms). */
3891
+ DEBOUNCE_MS: 2_000,
3892
+ /** Recompute the set this often and upload when it changed (catches WorkItem-driven changes) (ms). */
3893
+ CHECK_INTERVAL_MS: 30_000,
3894
+ /** Full snapshot (Cloud drops anything not in it) at least this often (ms). */
3895
+ FULL_SYNC_INTERVAL_MS: 5 * 60 * 1000,
3896
+ /** Backoff after a failed upload: first delay and cap (ms). */
3897
+ BACKOFF_INITIAL_MS: 5_000,
3898
+ BACKOFF_MAX_MS: 5 * 60 * 1000,
3899
+ /** 404 / 503 / 400 from Cloud: try again after this long (ms). */
3900
+ UNAVAILABLE_RETRY_MS: 60 * 60 * 1000,
3901
+ /** Timeout of one Cloud call (ms). */
3902
+ REQUEST_TIMEOUT_MS: 15_000,
3903
+ /** Longest title / excerpt sent (chars; Cloud truncates beyond its own limits too). */
3904
+ MAX_TITLE_CHARS: 500,
3905
+ MAX_EXCERPT_CHARS: 2_000,
3906
+ /** Delays before retrying a failed action fetch (ms); Cloud re-pushes after 5 min anyway. */
3907
+ FETCH_RETRY_DELAYS_MS: [1_000, 5_000, 15_000],
3908
+ /** Actions already carried out are remembered this long, so a re-push only re-reports (ms). */
3909
+ DONE_ACTIONS_TTL_MS: 24 * 60 * 60 * 1000,
3910
+ /** Most remembered actions. */
3911
+ DONE_ACTIONS_MAX: 500,
3912
+ };
3473
3913
  //# sourceMappingURL=constants.js.map