factory-factory 0.3.21 → 0.4.1

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 (1363) hide show
  1. package/README.md +61 -344
  2. package/dist/client/assets/{arc-DMA75yUX.js → arc-lK3Ig9GV.js} +1 -1
  3. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DfVbmuXe.js → architectureDiagram-3BPJPVTR-CeUbfBqe.js} +1 -1
  4. package/dist/client/assets/{blockDiagram-GPEHLZMM-BBr1PMaO.js → blockDiagram-GPEHLZMM-DiVGPkq2.js} +1 -1
  5. package/dist/client/assets/{c4Diagram-AAUBKEIU-C6xSY9MY.js → c4Diagram-AAUBKEIU-CT8hJB-h.js} +1 -1
  6. package/dist/client/assets/channel-CvY1mvIl.js +1 -0
  7. package/dist/client/assets/chunk-2J33WTMH-B0h8q8fD.js +1 -0
  8. package/dist/client/assets/{chunk-4BX2VUAB-DohmszzB.js → chunk-4BX2VUAB-km6NpEMz.js} +1 -1
  9. package/dist/client/assets/{chunk-55IACEB6-BxtEguq8.js → chunk-55IACEB6-COUWt3oA.js} +1 -1
  10. package/dist/client/assets/{chunk-727SXJPM--7mPe6NT.js → chunk-727SXJPM-Bp-ts2at.js} +1 -1
  11. package/dist/client/assets/{chunk-AQP2D5EJ-CUtRyyX-.js → chunk-AQP2D5EJ-dyo9i4xa.js} +3 -3
  12. package/dist/client/assets/{chunk-FMBD7UC4-Zvl7moTS.js → chunk-FMBD7UC4-B4C3KvLe.js} +1 -1
  13. package/dist/client/assets/{chunk-ND2GUHAM-DHRE6LfZ.js → chunk-ND2GUHAM-Qhi4WqzZ.js} +1 -1
  14. package/dist/client/assets/{chunk-QZHKN3VN-DCUx43mp.js → chunk-QZHKN3VN-Ce3Q_vrs.js} +1 -1
  15. package/dist/client/assets/classDiagram-4FO5ZUOK-Db7ZXJ6w.js +1 -0
  16. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Db7ZXJ6w.js +1 -0
  17. package/dist/client/assets/{cose-bilkent-S5V4N54A-CTS7yey1.js → cose-bilkent-S5V4N54A-D6QofwFq.js} +1 -1
  18. package/dist/client/assets/{dagre-BM42HDAG-CDvFWhCS.js → dagre-BM42HDAG-CDzpFdgD.js} +1 -1
  19. package/dist/client/assets/{diagram-2AECGRRQ-BP89d-WY.js → diagram-2AECGRRQ-dl1_7lyq.js} +2 -2
  20. package/dist/client/assets/{diagram-5GNKFQAL-BXDVw1Xi.js → diagram-5GNKFQAL-B0ynMwBY.js} +1 -1
  21. package/dist/client/assets/{diagram-KO2AKTUF-DBYI-mqR.js → diagram-KO2AKTUF-B9ABz-Wk.js} +1 -1
  22. package/dist/client/assets/{diagram-LMA3HP47-D359JaJw.js → diagram-LMA3HP47-DZxXcfiX.js} +1 -1
  23. package/dist/client/assets/{diagram-OG6HWLK6-BMr7mzB4.js → diagram-OG6HWLK6-BncGM9Gv.js} +1 -1
  24. package/dist/client/assets/{erDiagram-TEJ5UH35-CeCqd6tA.js → erDiagram-TEJ5UH35-B9hxScvO.js} +1 -1
  25. package/dist/client/assets/{flowDiagram-I6XJVG4X-ZUKSazw4.js → flowDiagram-I6XJVG4X-DgZ2jwJQ.js} +4 -4
  26. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Cq-q9kPK.js → ganttDiagram-6RSMTGT7-BrnNMNRY.js} +1 -1
  27. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-zVissJIm.js → gitGraphDiagram-PVQCEYII-BJmed6oD.js} +3 -3
  28. package/dist/client/assets/index-Btlruz7h.css +1 -0
  29. package/dist/client/assets/index-DEKuJM5_.js +674 -0
  30. package/dist/client/assets/infoDiagram-5YYISTIA-CtLzR4ip.js +2 -0
  31. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-Cux5p5kO.js → ishikawaDiagram-YF4QCWOH-BLrvV5ke.js} +3 -3
  32. package/dist/client/assets/{journeyDiagram-JHISSGLW-1ke9LkJX.js → journeyDiagram-JHISSGLW-B2-TMwJI.js} +1 -1
  33. package/dist/client/assets/{kanban-definition-UN3LZRKU-DP9dkc_Z.js → kanban-definition-UN3LZRKU-B5mGKgYF.js} +1 -1
  34. package/dist/client/assets/{linear-CyyRtH0c.js → linear-ConE9euY.js} +1 -1
  35. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BcU2pjK2.js → mindmap-definition-RKZ34NQL-B0BaMk8D.js} +3 -3
  36. package/dist/client/assets/{mobile-baseline-CSjGr1_M.js → mobile-baseline-DWCt7ZGJ.js} +2 -2
  37. package/dist/client/assets/{pieDiagram-4H26LBE5-Bl7PuiuI.js → pieDiagram-4H26LBE5-DgPu3GTs.js} +2 -2
  38. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Dx0ckMzC.js → quadrantDiagram-W4KKPZXB-DDbeggF4.js} +3 -3
  39. package/dist/client/assets/{requirementDiagram-4Y6WPE33-CXkIn3ft.js → requirementDiagram-4Y6WPE33-Cc3ozz7U.js} +1 -1
  40. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DIjHC-x5.js → sankeyDiagram-5OEKKPKP-DmYoq588.js} +1 -1
  41. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BEdLD9KB.js → sequenceDiagram-3UESZ5HK-EVqdDzgf.js} +4 -4
  42. package/dist/client/assets/stateDiagram-AJRCARHV-BRd6IxSa.js +1 -0
  43. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DR2vMoX5.js +1 -0
  44. package/dist/client/assets/{terminal-instance-W5XOlvlg.js → terminal-instance-CDKJdDaO.js} +8 -8
  45. package/dist/client/assets/{timeline-definition-PNZ67QCA-CkV6p1W8.js → timeline-definition-PNZ67QCA-CyxBqgqv.js} +1 -1
  46. package/dist/client/assets/{vennDiagram-CIIHVFJN-ubGCO9Lw.js → vennDiagram-CIIHVFJN-CLslQYVi.js} +1 -1
  47. package/dist/client/assets/{wardley-L42UT6IY-_NZpI_YF.js → wardley-L42UT6IY-DyEDLg3x.js} +1 -1
  48. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DMXZwsFF.js → wardleyDiagram-YWT4CUSO-CjJBpd3P.js} +1 -1
  49. package/dist/client/assets/{xychartDiagram-2RQKCTM6-T9YSJ2sB.js → xychartDiagram-2RQKCTM6-DwzoT5Dl.js} +1 -1
  50. package/dist/client/index.html +2 -2
  51. package/dist/client/working.png +0 -0
  52. package/dist/prisma/generated/browser.d.ts +1 -0
  53. package/dist/prisma/generated/browser.d.ts.map +1 -1
  54. package/dist/prisma/generated/client.d.ts +1 -0
  55. package/dist/prisma/generated/client.d.ts.map +1 -1
  56. package/dist/prisma/generated/commonInputTypes.d.ts +90 -0
  57. package/dist/prisma/generated/commonInputTypes.d.ts.map +1 -1
  58. package/dist/prisma/generated/enums.d.ts +17 -0
  59. package/dist/prisma/generated/enums.d.ts.map +1 -1
  60. package/dist/prisma/generated/enums.js +15 -1
  61. package/dist/prisma/generated/enums.js.map +1 -1
  62. package/dist/prisma/generated/internal/class.d.ts +3 -0
  63. package/dist/prisma/generated/internal/class.d.ts.map +1 -1
  64. package/dist/prisma/generated/internal/class.js +4 -4
  65. package/dist/prisma/generated/internal/class.js.map +1 -1
  66. package/dist/prisma/generated/internal/prismaNamespace.d.ts +99 -1
  67. package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
  68. package/dist/prisma/generated/internal/prismaNamespace.js +20 -1
  69. package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
  70. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +20 -0
  71. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
  72. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +20 -1
  73. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  74. package/dist/prisma/generated/models/UserSettings.d.ts +32 -1
  75. package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
  76. package/dist/prisma/generated/models/Workspace.d.ts +1631 -92
  77. package/dist/prisma/generated/models/Workspace.d.ts.map +1 -1
  78. package/dist/prisma/generated/models/WorkspaceNotification.d.ts +684 -0
  79. package/dist/prisma/generated/models/WorkspaceNotification.d.ts.map +1 -0
  80. package/dist/prisma/generated/models/WorkspaceNotification.js +2 -0
  81. package/dist/prisma/generated/models/WorkspaceNotification.js.map +1 -0
  82. package/dist/prisma/generated/models.d.ts +1 -0
  83. package/dist/prisma/generated/models.d.ts.map +1 -1
  84. package/dist/prompts/ratchet/dispatch.md +2 -0
  85. package/dist/scripts/check-no-direct-process-env.d.mts.map +1 -1
  86. package/dist/scripts/check-no-direct-process-env.mjs +1 -0
  87. package/dist/scripts/check-no-direct-process-env.mjs.map +1 -1
  88. package/dist/src/backend/app-context.d.ts +90 -26
  89. package/dist/src/backend/app-context.d.ts.map +1 -1
  90. package/dist/src/backend/app-context.js +145 -43
  91. package/dist/src/backend/app-context.js.map +1 -1
  92. package/dist/src/backend/app-context.test.d.ts +2 -0
  93. package/dist/src/backend/app-context.test.d.ts.map +1 -0
  94. package/dist/src/backend/app-context.test.js +51 -0
  95. package/dist/src/backend/app-context.test.js.map +1 -0
  96. package/dist/src/backend/clients/git.client.d.ts.map +1 -1
  97. package/dist/src/backend/clients/git.client.js +5 -0
  98. package/dist/src/backend/clients/git.client.js.map +1 -1
  99. package/dist/src/backend/clients/git.client.test.js +24 -0
  100. package/dist/src/backend/clients/git.client.test.js.map +1 -1
  101. package/dist/src/backend/fatal-error-handlers.d.ts +19 -0
  102. package/dist/src/backend/fatal-error-handlers.d.ts.map +1 -0
  103. package/dist/src/backend/fatal-error-handlers.js +37 -0
  104. package/dist/src/backend/fatal-error-handlers.js.map +1 -0
  105. package/dist/src/backend/fatal-error-handlers.test.d.ts +2 -0
  106. package/dist/src/backend/fatal-error-handlers.test.d.ts.map +1 -0
  107. package/dist/src/backend/fatal-error-handlers.test.js +95 -0
  108. package/dist/src/backend/fatal-error-handlers.test.js.map +1 -0
  109. package/dist/src/backend/index.js +7 -20
  110. package/dist/src/backend/index.js.map +1 -1
  111. package/dist/src/backend/interceptors/branch-rename.interceptor.d.ts.map +1 -1
  112. package/dist/src/backend/interceptors/branch-rename.interceptor.js +80 -6
  113. package/dist/src/backend/interceptors/branch-rename.interceptor.js.map +1 -1
  114. package/dist/src/backend/interceptors/branch-rename.interceptor.test.js +126 -21
  115. package/dist/src/backend/interceptors/branch-rename.interceptor.test.js.map +1 -1
  116. package/dist/src/backend/interceptors/conversation-rename.interceptor.d.ts.map +1 -1
  117. package/dist/src/backend/interceptors/conversation-rename.interceptor.js +39 -22
  118. package/dist/src/backend/interceptors/conversation-rename.interceptor.js.map +1 -1
  119. package/dist/src/backend/interceptors/conversation-rename.interceptor.test.js +79 -1
  120. package/dist/src/backend/interceptors/conversation-rename.interceptor.test.js.map +1 -1
  121. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.d.ts.map +1 -1
  122. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js +4 -2
  123. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js.map +1 -1
  124. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js +36 -7
  125. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js.map +1 -1
  126. package/dist/src/backend/interceptors/pre-push-rename.interceptor.d.ts.map +1 -1
  127. package/dist/src/backend/interceptors/pre-push-rename.interceptor.js +50 -2
  128. package/dist/src/backend/interceptors/pre-push-rename.interceptor.js.map +1 -1
  129. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.js +126 -7
  130. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.js.map +1 -1
  131. package/dist/src/backend/lib/application-error.d.ts +6 -0
  132. package/dist/src/backend/lib/application-error.d.ts.map +1 -0
  133. package/dist/src/backend/lib/application-error.js +9 -0
  134. package/dist/src/backend/lib/application-error.js.map +1 -0
  135. package/dist/src/backend/lib/application-error.test.d.ts +2 -0
  136. package/dist/src/backend/lib/application-error.test.d.ts.map +1 -0
  137. package/dist/src/backend/lib/application-error.test.js +23 -0
  138. package/dist/src/backend/lib/application-error.test.js.map +1 -0
  139. package/dist/src/backend/lib/constants.d.ts +2 -0
  140. package/dist/src/backend/lib/constants.d.ts.map +1 -1
  141. package/dist/src/backend/lib/constants.js +2 -0
  142. package/dist/src/backend/lib/constants.js.map +1 -1
  143. package/dist/src/backend/lib/env.d.ts.map +1 -1
  144. package/dist/src/backend/lib/env.js +4 -3
  145. package/dist/src/backend/lib/env.js.map +1 -1
  146. package/dist/src/backend/lib/env.test.js +17 -1
  147. package/dist/src/backend/lib/env.test.js.map +1 -1
  148. package/dist/src/backend/lib/file-helpers.d.ts +7 -0
  149. package/dist/src/backend/lib/file-helpers.d.ts.map +1 -1
  150. package/dist/src/backend/lib/file-helpers.js +65 -15
  151. package/dist/src/backend/lib/file-helpers.js.map +1 -1
  152. package/dist/src/backend/lib/file-helpers.test.js +82 -2
  153. package/dist/src/backend/lib/file-helpers.test.js.map +1 -1
  154. package/dist/src/backend/lib/git-helpers.d.ts +1 -7
  155. package/dist/src/backend/lib/git-helpers.d.ts.map +1 -1
  156. package/dist/src/backend/lib/git-helpers.js +4 -33
  157. package/dist/src/backend/lib/git-helpers.js.map +1 -1
  158. package/dist/src/backend/lib/git-helpers.test.js +17 -10
  159. package/dist/src/backend/lib/git-helpers.test.js.map +1 -1
  160. package/dist/src/backend/lib/process-liveness.d.ts +2 -0
  161. package/dist/src/backend/lib/process-liveness.d.ts.map +1 -0
  162. package/dist/src/backend/lib/process-liveness.js +26 -0
  163. package/dist/src/backend/lib/process-liveness.js.map +1 -0
  164. package/dist/src/backend/lib/process-liveness.test.d.ts +2 -0
  165. package/dist/src/backend/lib/process-liveness.test.d.ts.map +1 -0
  166. package/dist/src/backend/lib/process-liveness.test.js +35 -0
  167. package/dist/src/backend/lib/process-liveness.test.js.map +1 -0
  168. package/dist/src/backend/lib/request-trust.d.ts +4 -0
  169. package/dist/src/backend/lib/request-trust.d.ts.map +1 -0
  170. package/dist/src/backend/lib/request-trust.js +116 -0
  171. package/dist/src/backend/lib/request-trust.js.map +1 -0
  172. package/dist/src/backend/lib/request-trust.test.d.ts +2 -0
  173. package/dist/src/backend/lib/request-trust.test.d.ts.map +1 -0
  174. package/dist/src/backend/lib/request-trust.test.js +64 -0
  175. package/dist/src/backend/lib/request-trust.test.js.map +1 -0
  176. package/dist/src/backend/lib/session-model.js +1 -1
  177. package/dist/src/backend/lib/session-model.js.map +1 -1
  178. package/dist/src/backend/lib/session-summaries.d.ts +4 -5
  179. package/dist/src/backend/lib/session-summaries.d.ts.map +1 -1
  180. package/dist/src/backend/lib/session-summaries.js.map +1 -1
  181. package/dist/src/backend/lib/shell.d.ts +13 -1
  182. package/dist/src/backend/lib/shell.d.ts.map +1 -1
  183. package/dist/src/backend/lib/shell.js +124 -13
  184. package/dist/src/backend/lib/shell.js.map +1 -1
  185. package/dist/src/backend/lib/shell.test.js +72 -0
  186. package/dist/src/backend/lib/shell.test.js.map +1 -1
  187. package/dist/src/backend/lib/topic-broadcaster.d.ts +18 -0
  188. package/dist/src/backend/lib/topic-broadcaster.d.ts.map +1 -0
  189. package/dist/src/backend/lib/topic-broadcaster.js +56 -0
  190. package/dist/src/backend/lib/topic-broadcaster.js.map +1 -0
  191. package/dist/src/backend/lib/topic-broadcaster.test.d.ts +2 -0
  192. package/dist/src/backend/lib/topic-broadcaster.test.d.ts.map +1 -0
  193. package/dist/src/backend/lib/topic-broadcaster.test.js +126 -0
  194. package/dist/src/backend/lib/topic-broadcaster.test.js.map +1 -0
  195. package/dist/src/backend/lib/websocket-send.d.ts +12 -0
  196. package/dist/src/backend/lib/websocket-send.d.ts.map +1 -0
  197. package/dist/src/backend/lib/websocket-send.js +46 -0
  198. package/dist/src/backend/lib/websocket-send.js.map +1 -0
  199. package/dist/src/backend/lib/websocket-send.test.d.ts +2 -0
  200. package/dist/src/backend/lib/websocket-send.test.d.ts.map +1 -0
  201. package/dist/src/backend/lib/websocket-send.test.js +103 -0
  202. package/dist/src/backend/lib/websocket-send.test.js.map +1 -0
  203. package/dist/src/backend/lib/workspace-derived-state.d.ts +9 -1
  204. package/dist/src/backend/lib/workspace-derived-state.d.ts.map +1 -1
  205. package/dist/src/backend/lib/workspace-derived-state.js +6 -1
  206. package/dist/src/backend/lib/workspace-derived-state.js.map +1 -1
  207. package/dist/src/backend/lib/workspace-derived-state.test.js +11 -3
  208. package/dist/src/backend/lib/workspace-derived-state.test.js.map +1 -1
  209. package/dist/src/backend/middleware/cors.middleware.d.ts.map +1 -1
  210. package/dist/src/backend/middleware/cors.middleware.js +3 -2
  211. package/dist/src/backend/middleware/cors.middleware.js.map +1 -1
  212. package/dist/src/backend/middleware/index.d.ts +1 -1
  213. package/dist/src/backend/middleware/index.d.ts.map +1 -1
  214. package/dist/src/backend/middleware/index.js +1 -1
  215. package/dist/src/backend/middleware/index.js.map +1 -1
  216. package/dist/src/backend/middleware/middleware.test.js +18 -1
  217. package/dist/src/backend/middleware/middleware.test.js.map +1 -1
  218. package/dist/src/backend/middleware/request-logger.middleware.d.ts +1 -2
  219. package/dist/src/backend/middleware/request-logger.middleware.d.ts.map +1 -1
  220. package/dist/src/backend/middleware/request-logger.middleware.js +0 -2
  221. package/dist/src/backend/middleware/request-logger.middleware.js.map +1 -1
  222. package/dist/src/backend/orchestration/data-backup.service.d.ts.map +1 -1
  223. package/dist/src/backend/orchestration/data-backup.service.js +3 -1
  224. package/dist/src/backend/orchestration/data-backup.service.js.map +1 -1
  225. package/dist/src/backend/orchestration/data-backup.service.test.js +32 -0
  226. package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
  227. package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts +24 -11
  228. package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts.map +1 -1
  229. package/dist/src/backend/orchestration/domain-bridges.orchestrator.js +99 -73
  230. package/dist/src/backend/orchestration/domain-bridges.orchestrator.js.map +1 -1
  231. package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js +264 -65
  232. package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js.map +1 -1
  233. package/dist/src/backend/orchestration/event-coalescer.integration.test.d.ts +2 -0
  234. package/dist/src/backend/orchestration/event-coalescer.integration.test.d.ts.map +1 -0
  235. package/dist/src/backend/orchestration/event-coalescer.integration.test.js +47 -0
  236. package/dist/src/backend/orchestration/event-coalescer.integration.test.js.map +1 -0
  237. package/dist/src/backend/orchestration/event-collector-lifecycle.integration.test.d.ts +2 -0
  238. package/dist/src/backend/orchestration/event-collector-lifecycle.integration.test.d.ts.map +1 -0
  239. package/dist/src/backend/orchestration/event-collector-lifecycle.integration.test.js +34 -0
  240. package/dist/src/backend/orchestration/event-collector-lifecycle.integration.test.js.map +1 -0
  241. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts +37 -10
  242. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
  243. package/dist/src/backend/orchestration/event-collector.orchestrator.js +317 -121
  244. package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
  245. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js +503 -44
  246. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js.map +1 -1
  247. package/dist/src/backend/orchestration/health.service.js +2 -2
  248. package/dist/src/backend/orchestration/health.service.js.map +1 -1
  249. package/dist/src/backend/orchestration/linear-config.helper.js +2 -2
  250. package/dist/src/backend/orchestration/linear-config.helper.js.map +1 -1
  251. package/dist/src/backend/orchestration/reconciliation.service.d.ts +39 -0
  252. package/dist/src/backend/orchestration/reconciliation.service.d.ts.map +1 -0
  253. package/dist/src/backend/{services/ratchet/service → orchestration}/reconciliation.service.js +19 -32
  254. package/dist/src/backend/orchestration/reconciliation.service.js.map +1 -0
  255. package/dist/src/backend/orchestration/reconciliation.service.test.d.ts.map +1 -0
  256. package/dist/src/backend/{services/ratchet/service → orchestration}/reconciliation.service.test.js +15 -47
  257. package/dist/src/backend/orchestration/reconciliation.service.test.js.map +1 -0
  258. package/dist/src/backend/orchestration/scheduler.service.d.ts +2 -1
  259. package/dist/src/backend/orchestration/scheduler.service.d.ts.map +1 -1
  260. package/dist/src/backend/orchestration/scheduler.service.js +107 -44
  261. package/dist/src/backend/orchestration/scheduler.service.js.map +1 -1
  262. package/dist/src/backend/orchestration/scheduler.service.test.js +266 -59
  263. package/dist/src/backend/orchestration/scheduler.service.test.js.map +1 -1
  264. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts +18 -11
  265. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts.map +1 -1
  266. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js +59 -49
  267. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js.map +1 -1
  268. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.test.js +156 -24
  269. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.test.js.map +1 -1
  270. package/dist/src/backend/orchestration/types.d.ts +2 -2
  271. package/dist/src/backend/orchestration/types.d.ts.map +1 -1
  272. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts +22 -9
  273. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
  274. package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +38 -32
  275. package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -1
  276. package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +52 -14
  277. package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -1
  278. package/dist/src/backend/orchestration/workspace-children.orchestrator.d.ts +22 -0
  279. package/dist/src/backend/orchestration/workspace-children.orchestrator.d.ts.map +1 -0
  280. package/dist/src/backend/orchestration/workspace-children.orchestrator.js +93 -0
  281. package/dist/src/backend/orchestration/workspace-children.orchestrator.js.map +1 -0
  282. package/dist/src/backend/orchestration/workspace-children.orchestrator.test.d.ts +2 -0
  283. package/dist/src/backend/orchestration/workspace-children.orchestrator.test.d.ts.map +1 -0
  284. package/dist/src/backend/orchestration/workspace-children.orchestrator.test.js +136 -0
  285. package/dist/src/backend/orchestration/workspace-children.orchestrator.test.js.map +1 -0
  286. package/dist/src/backend/orchestration/workspace-init-issue-prompts.js +3 -3
  287. package/dist/src/backend/orchestration/workspace-init-issue-prompts.js.map +1 -1
  288. package/dist/src/backend/orchestration/workspace-init-script-pipeline.d.ts +1 -1
  289. package/dist/src/backend/orchestration/workspace-init-script-pipeline.d.ts.map +1 -1
  290. package/dist/src/backend/orchestration/workspace-init-script-pipeline.js.map +1 -1
  291. package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts.map +1 -1
  292. package/dist/src/backend/orchestration/workspace-init.orchestrator.js +35 -21
  293. package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
  294. package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js +278 -102
  295. package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js.map +1 -1
  296. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.d.ts +24 -0
  297. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.d.ts.map +1 -0
  298. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.js +66 -0
  299. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.js.map +1 -0
  300. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.test.d.ts +2 -0
  301. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.test.d.ts.map +1 -0
  302. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.test.js +235 -0
  303. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.test.js.map +1 -0
  304. package/dist/src/backend/prompts/branch-rename.d.ts.map +1 -1
  305. package/dist/src/backend/prompts/branch-rename.js +20 -13
  306. package/dist/src/backend/prompts/branch-rename.js.map +1 -1
  307. package/dist/src/backend/prompts/branch-rename.test.d.ts +2 -0
  308. package/dist/src/backend/prompts/branch-rename.test.d.ts.map +1 -0
  309. package/dist/src/backend/prompts/branch-rename.test.js +56 -0
  310. package/dist/src/backend/prompts/branch-rename.test.js.map +1 -0
  311. package/dist/src/backend/prompts/ratchet-dispatch.d.ts.map +1 -1
  312. package/dist/src/backend/prompts/ratchet-dispatch.js +28 -6
  313. package/dist/src/backend/prompts/ratchet-dispatch.js.map +1 -1
  314. package/dist/src/backend/prompts/ratchet-dispatch.test.js +55 -0
  315. package/dist/src/backend/prompts/ratchet-dispatch.test.js.map +1 -1
  316. package/dist/src/backend/routers/health.router.d.ts.map +1 -1
  317. package/dist/src/backend/routers/health.router.js +5 -5
  318. package/dist/src/backend/routers/health.router.js.map +1 -1
  319. package/dist/src/backend/routers/health.router.test.js +3 -5
  320. package/dist/src/backend/routers/health.router.test.js.map +1 -1
  321. package/dist/src/backend/routers/websocket/chat-connection-registry.d.ts +36 -0
  322. package/dist/src/backend/routers/websocket/chat-connection-registry.d.ts.map +1 -0
  323. package/dist/src/backend/routers/websocket/chat-connection-registry.js +153 -0
  324. package/dist/src/backend/routers/websocket/chat-connection-registry.js.map +1 -0
  325. package/dist/src/backend/routers/websocket/chat-connection-registry.test.d.ts +2 -0
  326. package/dist/src/backend/routers/websocket/chat-connection-registry.test.d.ts.map +1 -0
  327. package/dist/src/backend/routers/websocket/chat-connection-registry.test.js +281 -0
  328. package/dist/src/backend/routers/websocket/chat-connection-registry.test.js.map +1 -0
  329. package/dist/src/backend/routers/websocket/chat.handler.d.ts +2 -5
  330. package/dist/src/backend/routers/websocket/chat.handler.d.ts.map +1 -1
  331. package/dist/src/backend/routers/websocket/chat.handler.js +35 -45
  332. package/dist/src/backend/routers/websocket/chat.handler.js.map +1 -1
  333. package/dist/src/backend/routers/websocket/chat.handler.test.js +132 -44
  334. package/dist/src/backend/routers/websocket/chat.handler.test.js.map +1 -1
  335. package/dist/src/backend/routers/websocket/context-injection.test.js +450 -14
  336. package/dist/src/backend/routers/websocket/context-injection.test.js.map +1 -1
  337. package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts +3 -6
  338. package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts.map +1 -1
  339. package/dist/src/backend/routers/websocket/dev-logs.handler.js +25 -68
  340. package/dist/src/backend/routers/websocket/dev-logs.handler.js.map +1 -1
  341. package/dist/src/backend/routers/websocket/dev-logs.handler.test.js +75 -3
  342. package/dist/src/backend/routers/websocket/dev-logs.handler.test.js.map +1 -1
  343. package/dist/src/backend/routers/websocket/index.d.ts +2 -1
  344. package/dist/src/backend/routers/websocket/index.d.ts.map +1 -1
  345. package/dist/src/backend/routers/websocket/index.js +2 -1
  346. package/dist/src/backend/routers/websocket/index.js.map +1 -1
  347. package/dist/src/backend/routers/websocket/message-utils.d.ts +6 -0
  348. package/dist/src/backend/routers/websocket/message-utils.d.ts.map +1 -1
  349. package/dist/src/backend/routers/websocket/message-utils.js +28 -0
  350. package/dist/src/backend/routers/websocket/message-utils.js.map +1 -1
  351. package/dist/src/backend/routers/websocket/message-utils.test.d.ts +2 -0
  352. package/dist/src/backend/routers/websocket/message-utils.test.d.ts.map +1 -0
  353. package/dist/src/backend/routers/websocket/message-utils.test.js +54 -0
  354. package/dist/src/backend/routers/websocket/message-utils.test.js.map +1 -0
  355. package/dist/src/backend/routers/websocket/post-run-logs.handler.d.ts +3 -6
  356. package/dist/src/backend/routers/websocket/post-run-logs.handler.d.ts.map +1 -1
  357. package/dist/src/backend/routers/websocket/post-run-logs.handler.js +15 -57
  358. package/dist/src/backend/routers/websocket/post-run-logs.handler.js.map +1 -1
  359. package/dist/src/backend/routers/websocket/post-run-logs.handler.test.js +76 -12
  360. package/dist/src/backend/routers/websocket/post-run-logs.handler.test.js.map +1 -1
  361. package/dist/src/backend/routers/websocket/push-channel.handler.d.ts +12 -0
  362. package/dist/src/backend/routers/websocket/push-channel.handler.d.ts.map +1 -0
  363. package/dist/src/backend/routers/websocket/push-channel.handler.js +40 -0
  364. package/dist/src/backend/routers/websocket/push-channel.handler.js.map +1 -0
  365. package/dist/src/backend/routers/websocket/setup-terminal.handler.d.ts +1 -4
  366. package/dist/src/backend/routers/websocket/setup-terminal.handler.d.ts.map +1 -1
  367. package/dist/src/backend/routers/websocket/setup-terminal.handler.js +14 -46
  368. package/dist/src/backend/routers/websocket/setup-terminal.handler.js.map +1 -1
  369. package/dist/src/backend/routers/websocket/setup-terminal.handler.test.js +66 -6
  370. package/dist/src/backend/routers/websocket/setup-terminal.handler.test.js.map +1 -1
  371. package/dist/src/backend/routers/websocket/snapshots.handler.d.ts +10 -11
  372. package/dist/src/backend/routers/websocket/snapshots.handler.d.ts.map +1 -1
  373. package/dist/src/backend/routers/websocket/snapshots.handler.js +112 -70
  374. package/dist/src/backend/routers/websocket/snapshots.handler.js.map +1 -1
  375. package/dist/src/backend/routers/websocket/snapshots.handler.test.js +387 -80
  376. package/dist/src/backend/routers/websocket/snapshots.handler.test.js.map +1 -1
  377. package/dist/src/backend/routers/websocket/terminal.handler.d.ts +3 -6
  378. package/dist/src/backend/routers/websocket/terminal.handler.d.ts.map +1 -1
  379. package/dist/src/backend/routers/websocket/terminal.handler.js +130 -111
  380. package/dist/src/backend/routers/websocket/terminal.handler.js.map +1 -1
  381. package/dist/src/backend/routers/websocket/terminal.handler.test.js +291 -25
  382. package/dist/src/backend/routers/websocket/terminal.handler.test.js.map +1 -1
  383. package/dist/src/backend/routers/websocket/upgrade-utils.d.ts +33 -5
  384. package/dist/src/backend/routers/websocket/upgrade-utils.d.ts.map +1 -1
  385. package/dist/src/backend/routers/websocket/upgrade-utils.js +103 -8
  386. package/dist/src/backend/routers/websocket/upgrade-utils.js.map +1 -1
  387. package/dist/src/backend/routers/websocket/upgrade-utils.test.js +353 -3
  388. package/dist/src/backend/routers/websocket/upgrade-utils.test.js.map +1 -1
  389. package/dist/src/backend/routers/websocket/websocket.integration.test.js +54 -23
  390. package/dist/src/backend/routers/websocket/websocket.integration.test.js.map +1 -1
  391. package/dist/src/backend/schemas/websocket/setup-terminal-message.schema.d.ts +0 -2
  392. package/dist/src/backend/schemas/websocket/setup-terminal-message.schema.d.ts.map +1 -1
  393. package/dist/src/backend/schemas/websocket/setup-terminal-message.schema.js +0 -3
  394. package/dist/src/backend/schemas/websocket/setup-terminal-message.schema.js.map +1 -1
  395. package/dist/src/backend/schemas/websocket/terminal-message.schema.d.ts +0 -2
  396. package/dist/src/backend/schemas/websocket/terminal-message.schema.d.ts.map +1 -1
  397. package/dist/src/backend/schemas/websocket/terminal-message.schema.js +0 -1
  398. package/dist/src/backend/schemas/websocket/terminal-message.schema.js.map +1 -1
  399. package/dist/src/backend/server.d.ts +3 -2
  400. package/dist/src/backend/server.d.ts.map +1 -1
  401. package/dist/src/backend/server.js +195 -128
  402. package/dist/src/backend/server.js.map +1 -1
  403. package/dist/src/backend/server.upgrade.test.js +359 -126
  404. package/dist/src/backend/server.upgrade.test.js.map +1 -1
  405. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.d.ts +4 -0
  406. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.d.ts.map +1 -1
  407. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.js +78 -20
  408. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.js.map +1 -1
  409. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.test.js +166 -5
  410. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.test.js.map +1 -1
  411. package/dist/src/backend/services/auto-iteration/service/bridges.d.ts +1 -0
  412. package/dist/src/backend/services/auto-iteration/service/bridges.d.ts.map +1 -1
  413. package/dist/src/backend/services/auto-iteration/service/git-ops.d.ts.map +1 -1
  414. package/dist/src/backend/services/auto-iteration/service/git-ops.js +32 -11
  415. package/dist/src/backend/services/auto-iteration/service/git-ops.js.map +1 -1
  416. package/dist/src/backend/services/auto-iteration/service/git-ops.test.d.ts +2 -0
  417. package/dist/src/backend/services/auto-iteration/service/git-ops.test.d.ts.map +1 -0
  418. package/dist/src/backend/services/auto-iteration/service/git-ops.test.js +59 -0
  419. package/dist/src/backend/services/auto-iteration/service/git-ops.test.js.map +1 -0
  420. package/dist/src/backend/services/check-service-accessor-boundaries.test.d.ts +2 -0
  421. package/dist/src/backend/services/check-service-accessor-boundaries.test.d.ts.map +1 -0
  422. package/dist/src/backend/services/check-service-accessor-boundaries.test.js +386 -0
  423. package/dist/src/backend/services/check-service-accessor-boundaries.test.js.map +1 -0
  424. package/dist/src/backend/services/check-single-writer.test.js +82 -8
  425. package/dist/src/backend/services/check-single-writer.test.js.map +1 -1
  426. package/dist/src/backend/services/config.service.d.ts +8 -0
  427. package/dist/src/backend/services/config.service.d.ts.map +1 -1
  428. package/dist/src/backend/services/config.service.js +29 -5
  429. package/dist/src/backend/services/config.service.js.map +1 -1
  430. package/dist/src/backend/services/config.service.test.js +59 -0
  431. package/dist/src/backend/services/config.service.test.js.map +1 -1
  432. package/dist/src/backend/services/constants.d.ts +4 -1
  433. package/dist/src/backend/services/constants.d.ts.map +1 -1
  434. package/dist/src/backend/services/constants.js +4 -1
  435. package/dist/src/backend/services/constants.js.map +1 -1
  436. package/dist/src/backend/services/decision-log/index.d.ts +1 -1
  437. package/dist/src/backend/services/decision-log/index.d.ts.map +1 -1
  438. package/dist/src/backend/services/decision-log/index.js +1 -1
  439. package/dist/src/backend/services/decision-log/index.js.map +1 -1
  440. package/dist/src/backend/services/decision-log/service/decision-log-domain-exports.test.d.ts +2 -0
  441. package/dist/src/backend/services/decision-log/service/decision-log-domain-exports.test.d.ts.map +1 -0
  442. package/dist/src/backend/services/decision-log/service/decision-log-domain-exports.test.js +8 -0
  443. package/dist/src/backend/services/decision-log/service/decision-log-domain-exports.test.js.map +1 -0
  444. package/dist/src/backend/{orchestration/decision-log-query.service.d.ts → services/decision-log/service/decision-log.service.d.ts} +4 -4
  445. package/dist/src/backend/services/decision-log/service/decision-log.service.d.ts.map +1 -0
  446. package/dist/src/backend/{orchestration/decision-log-query.service.js → services/decision-log/service/decision-log.service.js} +4 -4
  447. package/dist/src/backend/services/decision-log/service/decision-log.service.js.map +1 -0
  448. package/dist/src/backend/services/decision-log/service/decision-log.service.test.d.ts +2 -0
  449. package/dist/src/backend/services/decision-log/service/decision-log.service.test.d.ts.map +1 -0
  450. package/dist/src/backend/services/decision-log/service/decision-log.service.test.js +45 -0
  451. package/dist/src/backend/services/decision-log/service/decision-log.service.test.js.map +1 -0
  452. package/dist/src/backend/services/decision-log/service/index.d.ts +2 -0
  453. package/dist/src/backend/services/decision-log/service/index.d.ts.map +1 -0
  454. package/dist/src/backend/services/decision-log/service/index.js +2 -0
  455. package/dist/src/backend/services/decision-log/service/index.js.map +1 -0
  456. package/dist/src/backend/services/env-schemas.d.ts +4 -0
  457. package/dist/src/backend/services/env-schemas.d.ts.map +1 -1
  458. package/dist/src/backend/services/env-schemas.js +4 -0
  459. package/dist/src/backend/services/env-schemas.js.map +1 -1
  460. package/dist/src/backend/services/github/service/bridges.d.ts +51 -0
  461. package/dist/src/backend/services/github/service/bridges.d.ts.map +1 -1
  462. package/dist/src/backend/services/github/service/github-cli/errors.d.ts.map +1 -1
  463. package/dist/src/backend/services/github/service/github-cli/errors.js +6 -1
  464. package/dist/src/backend/services/github/service/github-cli/errors.js.map +1 -1
  465. package/dist/src/backend/services/github/service/github-cli/schemas.d.ts +82 -0
  466. package/dist/src/backend/services/github/service/github-cli/schemas.d.ts.map +1 -1
  467. package/dist/src/backend/services/github/service/github-cli/schemas.js +63 -0
  468. package/dist/src/backend/services/github/service/github-cli/schemas.js.map +1 -1
  469. package/dist/src/backend/services/github/service/github-cli/types.d.ts +6 -0
  470. package/dist/src/backend/services/github/service/github-cli/types.d.ts.map +1 -1
  471. package/dist/src/backend/services/github/service/github-cli.service.d.ts +11 -9
  472. package/dist/src/backend/services/github/service/github-cli.service.d.ts.map +1 -1
  473. package/dist/src/backend/services/github/service/github-cli.service.js +282 -83
  474. package/dist/src/backend/services/github/service/github-cli.service.js.map +1 -1
  475. package/dist/src/backend/services/github/service/github-cli.service.test.js +461 -67
  476. package/dist/src/backend/services/github/service/github-cli.service.test.js.map +1 -1
  477. package/dist/src/backend/services/github/service/index.d.ts +3 -2
  478. package/dist/src/backend/services/github/service/index.d.ts.map +1 -1
  479. package/dist/src/backend/services/github/service/index.js +2 -1
  480. package/dist/src/backend/services/github/service/index.js.map +1 -1
  481. package/dist/src/backend/services/github/service/pr-fetch-registry.d.ts +14 -6
  482. package/dist/src/backend/services/github/service/pr-fetch-registry.d.ts.map +1 -1
  483. package/dist/src/backend/services/github/service/pr-fetch-registry.js +79 -11
  484. package/dist/src/backend/services/github/service/pr-fetch-registry.js.map +1 -1
  485. package/dist/src/backend/services/github/service/pr-fetch-registry.test.d.ts +2 -0
  486. package/dist/src/backend/services/github/service/pr-fetch-registry.test.d.ts.map +1 -0
  487. package/dist/src/backend/services/github/service/pr-fetch-registry.test.js +112 -0
  488. package/dist/src/backend/services/github/service/pr-fetch-registry.test.js.map +1 -0
  489. package/dist/src/backend/services/github/service/pr-snapshot.service.d.ts +19 -3
  490. package/dist/src/backend/services/github/service/pr-snapshot.service.d.ts.map +1 -1
  491. package/dist/src/backend/services/github/service/pr-snapshot.service.js +115 -16
  492. package/dist/src/backend/services/github/service/pr-snapshot.service.js.map +1 -1
  493. package/dist/src/backend/services/github/service/pr-snapshot.service.test.js +255 -9
  494. package/dist/src/backend/services/github/service/pr-snapshot.service.test.js.map +1 -1
  495. package/dist/src/backend/services/linear/service/linear-client.service.d.ts.map +1 -1
  496. package/dist/src/backend/services/linear/service/linear-client.service.js +33 -20
  497. package/dist/src/backend/services/linear/service/linear-client.service.js.map +1 -1
  498. package/dist/src/backend/services/linear/service/linear-client.service.test.js +76 -0
  499. package/dist/src/backend/services/linear/service/linear-client.service.test.js.map +1 -1
  500. package/dist/src/backend/services/periodic-task/index.d.ts +0 -1
  501. package/dist/src/backend/services/periodic-task/index.d.ts.map +1 -1
  502. package/dist/src/backend/services/periodic-task/index.js +0 -1
  503. package/dist/src/backend/services/periodic-task/index.js.map +1 -1
  504. package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.d.ts +13 -1
  505. package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.d.ts.map +1 -1
  506. package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.js +47 -13
  507. package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.js.map +1 -1
  508. package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.test.js +77 -0
  509. package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.test.js.map +1 -1
  510. package/dist/src/backend/services/periodic-task/service/periodic-task.service.d.ts +105 -0
  511. package/dist/src/backend/services/periodic-task/service/periodic-task.service.d.ts.map +1 -1
  512. package/dist/src/backend/services/periodic-task/service/periodic-task.service.js +100 -9
  513. package/dist/src/backend/services/periodic-task/service/periodic-task.service.js.map +1 -1
  514. package/dist/src/backend/services/periodic-task/service/periodic-task.service.test.js +227 -1
  515. package/dist/src/backend/services/periodic-task/service/periodic-task.service.test.js.map +1 -1
  516. package/dist/src/backend/services/ratchet/service/bridges.d.ts +51 -14
  517. package/dist/src/backend/services/ratchet/service/bridges.d.ts.map +1 -1
  518. package/dist/src/backend/services/ratchet/service/fixer-session.service.d.ts +7 -1
  519. package/dist/src/backend/services/ratchet/service/fixer-session.service.d.ts.map +1 -1
  520. package/dist/src/backend/services/ratchet/service/fixer-session.service.js +56 -10
  521. package/dist/src/backend/services/ratchet/service/fixer-session.service.js.map +1 -1
  522. package/dist/src/backend/services/ratchet/service/fixer-session.service.test.js +154 -27
  523. package/dist/src/backend/services/ratchet/service/fixer-session.service.test.js.map +1 -1
  524. package/dist/src/backend/services/ratchet/service/index.d.ts +2 -3
  525. package/dist/src/backend/services/ratchet/service/index.d.ts.map +1 -1
  526. package/dist/src/backend/services/ratchet/service/index.js +1 -2
  527. package/dist/src/backend/services/ratchet/service/index.js.map +1 -1
  528. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.d.ts +10 -12
  529. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.d.ts.map +1 -1
  530. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.js +57 -58
  531. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.js.map +1 -1
  532. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.d.ts +2 -5
  533. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.d.ts.map +1 -1
  534. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.js +7 -4
  535. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.js.map +1 -1
  536. package/dist/src/backend/services/ratchet/service/ratchet-domain-exports.test.js +1 -4
  537. package/dist/src/backend/services/ratchet/service/ratchet-domain-exports.test.js.map +1 -1
  538. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.d.ts +6 -6
  539. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.d.ts.map +1 -1
  540. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.js +184 -24
  541. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.js.map +1 -1
  542. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.d.ts +18 -33
  543. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.d.ts.map +1 -1
  544. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.js +120 -54
  545. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.js.map +1 -1
  546. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.test.js +584 -21
  547. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.test.js.map +1 -1
  548. package/dist/src/backend/services/ratchet/service/ratchet-provider-resolver.service.d.ts.map +1 -1
  549. package/dist/src/backend/services/ratchet/service/ratchet-provider-resolver.service.js +4 -4
  550. package/dist/src/backend/services/ratchet/service/ratchet-provider-resolver.service.js.map +1 -1
  551. package/dist/src/backend/services/ratchet/service/ratchet-provider-resolver.service.test.js +14 -14
  552. package/dist/src/backend/services/ratchet/service/ratchet-provider-resolver.service.test.js.map +1 -1
  553. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.d.ts +11 -0
  554. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.d.ts.map +1 -0
  555. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.js +77 -0
  556. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.js.map +1 -0
  557. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.d.ts +2 -0
  558. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.d.ts.map +1 -0
  559. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.js +66 -0
  560. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.js.map +1 -0
  561. package/dist/src/backend/services/ratchet/service/ratchet-workspace-check-coordinator.d.ts +2 -1
  562. package/dist/src/backend/services/ratchet/service/ratchet-workspace-check-coordinator.d.ts.map +1 -1
  563. package/dist/src/backend/services/ratchet/service/ratchet-workspace-check-coordinator.js +35 -9
  564. package/dist/src/backend/services/ratchet/service/ratchet-workspace-check-coordinator.js.map +1 -1
  565. package/dist/src/backend/services/ratchet/service/ratchet-workspace-check-coordinator.test.js +91 -0
  566. package/dist/src/backend/services/ratchet/service/ratchet-workspace-check-coordinator.test.js.map +1 -1
  567. package/dist/src/backend/services/ratchet/service/ratchet.service.d.ts +20 -57
  568. package/dist/src/backend/services/ratchet/service/ratchet.service.d.ts.map +1 -1
  569. package/dist/src/backend/services/ratchet/service/ratchet.service.js +289 -235
  570. package/dist/src/backend/services/ratchet/service/ratchet.service.js.map +1 -1
  571. package/dist/src/backend/services/ratchet/service/ratchet.service.test.js +1932 -482
  572. package/dist/src/backend/services/ratchet/service/ratchet.service.test.js.map +1 -1
  573. package/dist/src/backend/services/ratchet/service/ratchet.types.d.ts +22 -15
  574. package/dist/src/backend/services/ratchet/service/ratchet.types.d.ts.map +1 -1
  575. package/dist/src/backend/services/registry.d.ts +46 -3
  576. package/dist/src/backend/services/registry.d.ts.map +1 -1
  577. package/dist/src/backend/services/registry.js +45 -2
  578. package/dist/src/backend/services/registry.js.map +1 -1
  579. package/dist/src/backend/services/resources.integration.test.js +281 -97
  580. package/dist/src/backend/services/resources.integration.test.js.map +1 -1
  581. package/dist/src/backend/services/run-script/service/bridges.d.ts +4 -0
  582. package/dist/src/backend/services/run-script/service/bridges.d.ts.map +1 -1
  583. package/dist/src/backend/services/{factory-config.service.d.ts → run-script/service/factory-config.service.d.ts} +1 -1
  584. package/dist/src/backend/services/run-script/service/factory-config.service.d.ts.map +1 -0
  585. package/dist/src/backend/services/{factory-config.service.js → run-script/service/factory-config.service.js} +1 -1
  586. package/dist/src/backend/services/run-script/service/factory-config.service.js.map +1 -0
  587. package/dist/src/backend/services/run-script/service/factory-config.service.test.d.ts.map +1 -0
  588. package/dist/src/backend/services/{factory-config.service.test.js → run-script/service/factory-config.service.test.js} +1 -1
  589. package/dist/src/backend/services/run-script/service/factory-config.service.test.js.map +1 -0
  590. package/dist/src/backend/services/run-script/service/index.d.ts +2 -0
  591. package/dist/src/backend/services/run-script/service/index.d.ts.map +1 -1
  592. package/dist/src/backend/services/run-script/service/index.js +2 -0
  593. package/dist/src/backend/services/run-script/service/index.js.map +1 -1
  594. package/dist/src/backend/services/{port-allocation.service.d.ts → run-script/service/port-allocation.service.d.ts} +2 -1
  595. package/dist/src/backend/services/run-script/service/port-allocation.service.d.ts.map +1 -0
  596. package/dist/src/backend/services/{port-allocation.service.js → run-script/service/port-allocation.service.js} +12 -4
  597. package/dist/src/backend/services/run-script/service/port-allocation.service.js.map +1 -0
  598. package/dist/src/backend/services/run-script/service/port-allocation.service.test.d.ts +2 -0
  599. package/dist/src/backend/services/run-script/service/port-allocation.service.test.d.ts.map +1 -0
  600. package/dist/src/backend/services/run-script/service/port-allocation.service.test.js +43 -0
  601. package/dist/src/backend/services/run-script/service/port-allocation.service.test.js.map +1 -0
  602. package/dist/src/backend/services/{run-script-config-persistence.service.d.ts → run-script/service/run-script-config-persistence.service.d.ts} +10 -1
  603. package/dist/src/backend/services/run-script/service/run-script-config-persistence.service.d.ts.map +1 -0
  604. package/dist/src/backend/services/{run-script-config-persistence.service.js → run-script/service/run-script-config-persistence.service.js} +46 -2
  605. package/dist/src/backend/services/run-script/service/run-script-config-persistence.service.js.map +1 -0
  606. package/dist/src/backend/services/run-script/service/run-script-config-persistence.service.test.d.ts.map +1 -0
  607. package/dist/src/backend/services/{run-script-config-persistence.service.test.js → run-script/service/run-script-config-persistence.service.test.js} +47 -0
  608. package/dist/src/backend/services/run-script/service/run-script-config-persistence.service.test.js.map +1 -0
  609. package/dist/src/backend/services/run-script/service/run-script-domain-exports.test.js +11 -1
  610. package/dist/src/backend/services/run-script/service/run-script-domain-exports.test.js.map +1 -1
  611. package/dist/src/backend/services/run-script/service/run-script-process-utils.d.ts.map +1 -1
  612. package/dist/src/backend/services/run-script/service/run-script-process-utils.js +1 -1
  613. package/dist/src/backend/services/run-script/service/run-script-process-utils.js.map +1 -1
  614. package/dist/src/backend/services/run-script/service/run-script-proxy.service.d.ts.map +1 -0
  615. package/dist/src/backend/services/{run-script-proxy.service.js → run-script/service/run-script-proxy.service.js} +3 -3
  616. package/dist/src/backend/services/run-script/service/run-script-proxy.service.js.map +1 -0
  617. package/dist/src/backend/services/run-script/service/run-script-proxy.service.test.d.ts.map +1 -0
  618. package/dist/src/backend/services/{run-script-proxy.service.test.js → run-script/service/run-script-proxy.service.test.js} +3 -3
  619. package/dist/src/backend/services/run-script/service/run-script-proxy.service.test.js.map +1 -0
  620. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.d.ts +9 -9
  621. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.d.ts.map +1 -1
  622. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.js +8 -8
  623. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.js.map +1 -1
  624. package/dist/src/backend/services/run-script/service/run-script.service.d.ts +5 -0
  625. package/dist/src/backend/services/run-script/service/run-script.service.d.ts.map +1 -1
  626. package/dist/src/backend/services/run-script/service/run-script.service.js +144 -47
  627. package/dist/src/backend/services/run-script/service/run-script.service.js.map +1 -1
  628. package/dist/src/backend/services/run-script/service/run-script.service.test.js +281 -29
  629. package/dist/src/backend/services/run-script/service/run-script.service.test.js.map +1 -1
  630. package/dist/src/backend/services/run-script/service/startup-script.service.d.ts.map +1 -1
  631. package/dist/src/backend/services/run-script/service/startup-script.service.js +4 -7
  632. package/dist/src/backend/services/run-script/service/startup-script.service.js.map +1 -1
  633. package/dist/src/backend/services/run-script/service/startup-script.service.test.js +5 -1
  634. package/dist/src/backend/services/run-script/service/startup-script.service.test.js.map +1 -1
  635. package/dist/src/backend/services/service-registry-check.helpers.d.ts +6 -0
  636. package/dist/src/backend/services/service-registry-check.helpers.d.ts.map +1 -0
  637. package/dist/src/backend/services/service-registry-check.helpers.js +22 -0
  638. package/dist/src/backend/services/service-registry-check.helpers.js.map +1 -0
  639. package/dist/src/backend/services/service-registry-check.test.d.ts +2 -0
  640. package/dist/src/backend/services/service-registry-check.test.d.ts.map +1 -0
  641. package/dist/src/backend/services/service-registry-check.test.js +36 -0
  642. package/dist/src/backend/services/service-registry-check.test.js.map +1 -0
  643. package/dist/src/backend/services/session/index.d.ts +0 -2
  644. package/dist/src/backend/services/session/index.d.ts.map +1 -1
  645. package/dist/src/backend/services/session/index.js +0 -2
  646. package/dist/src/backend/services/session/index.js.map +1 -1
  647. package/dist/src/backend/services/session/resources/agent-session.accessor.d.ts +4 -3
  648. package/dist/src/backend/services/session/resources/agent-session.accessor.d.ts.map +1 -1
  649. package/dist/src/backend/services/session/resources/agent-session.accessor.js +6 -15
  650. package/dist/src/backend/services/session/resources/agent-session.accessor.js.map +1 -1
  651. package/dist/src/backend/services/session/resources/agent-session.accessor.test.js +30 -15
  652. package/dist/src/backend/services/session/resources/agent-session.accessor.test.js.map +1 -1
  653. package/dist/src/backend/services/session/service/acp/acp-runtime-manager.d.ts +13 -0
  654. package/dist/src/backend/services/session/service/acp/acp-runtime-manager.d.ts.map +1 -1
  655. package/dist/src/backend/services/session/service/acp/acp-runtime-manager.js +212 -27
  656. package/dist/src/backend/services/session/service/acp/acp-runtime-manager.js.map +1 -1
  657. package/dist/src/backend/services/session/service/acp/acp-runtime-manager.test.js +335 -40
  658. package/dist/src/backend/services/session/service/acp/acp-runtime-manager.test.js.map +1 -1
  659. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.d.ts +11 -0
  660. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.d.ts.map +1 -0
  661. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.js +318 -0
  662. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.js.map +1 -0
  663. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.test.d.ts +2 -0
  664. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.test.d.ts.map +1 -0
  665. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.test.js +119 -0
  666. package/dist/src/backend/services/session/service/acp/child-workspace-mcp-server.test.js.map +1 -0
  667. package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-rpc-client.d.ts +18 -1
  668. package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-rpc-client.d.ts.map +1 -1
  669. package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-rpc-client.js +54 -6
  670. package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-rpc-client.js.map +1 -1
  671. package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-rpc-client.test.js +76 -1
  672. package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-rpc-client.test.js.map +1 -1
  673. package/dist/src/backend/services/session/service/acp/types.d.ts +7 -0
  674. package/dist/src/backend/services/session/service/acp/types.d.ts.map +1 -1
  675. package/dist/src/backend/services/session/service/bridges.d.ts +10 -5
  676. package/dist/src/backend/services/session/service/bridges.d.ts.map +1 -1
  677. package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.d.ts.map +1 -1
  678. package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.js +2 -14
  679. package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.js.map +1 -1
  680. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -1
  681. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.js +59 -76
  682. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.js.map +1 -1
  683. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.test.js +204 -1
  684. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.test.js.map +1 -1
  685. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.d.ts.map +1 -1
  686. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.js +2 -11
  687. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.js.map +1 -1
  688. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.test.js +5 -18
  689. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.test.js.map +1 -1
  690. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.d.ts.map +1 -1
  691. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.js +9 -0
  692. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.js.map +1 -1
  693. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.test.js +34 -0
  694. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.test.js.map +1 -1
  695. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.d.ts +11 -0
  696. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.d.ts.map +1 -1
  697. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.js +148 -26
  698. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.js.map +1 -1
  699. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.test.js +339 -1
  700. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.test.js.map +1 -1
  701. package/dist/src/backend/services/session/service/data/codex-session-history-loader.service.d.ts.map +1 -1
  702. package/dist/src/backend/services/session/service/data/codex-session-history-loader.service.js +200 -26
  703. package/dist/src/backend/services/session/service/data/codex-session-history-loader.service.js.map +1 -1
  704. package/dist/src/backend/services/session/service/data/codex-session-history-loader.service.test.js +352 -1
  705. package/dist/src/backend/services/session/service/data/codex-session-history-loader.service.test.js.map +1 -1
  706. package/dist/src/backend/services/session/service/data/session-data.service.d.ts +19 -160
  707. package/dist/src/backend/services/session/service/data/session-data.service.d.ts.map +1 -1
  708. package/dist/src/backend/services/session/service/data/session-data.service.js +68 -36
  709. package/dist/src/backend/services/session/service/data/session-data.service.js.map +1 -1
  710. package/dist/src/backend/services/session/service/data/session-data.service.test.d.ts +2 -0
  711. package/dist/src/backend/services/session/service/data/session-data.service.test.d.ts.map +1 -0
  712. package/dist/src/backend/services/session/service/data/session-data.service.test.js +103 -0
  713. package/dist/src/backend/services/session/service/data/session-data.service.test.js.map +1 -0
  714. package/dist/src/backend/services/session/service/data/session-history-loader.service.d.ts.map +1 -1
  715. package/dist/src/backend/services/session/service/data/session-history-loader.service.js +4 -1
  716. package/dist/src/backend/services/session/service/data/session-history-loader.service.js.map +1 -1
  717. package/dist/src/backend/services/session/service/data/session-history-loader.service.test.js +37 -0
  718. package/dist/src/backend/services/session/service/data/session-history-loader.service.test.js.map +1 -1
  719. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.d.ts +9 -0
  720. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.d.ts.map +1 -1
  721. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.js +15 -5
  722. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.js.map +1 -1
  723. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js +23 -10
  724. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js.map +1 -1
  725. package/dist/src/backend/services/session/service/index.d.ts +5 -4
  726. package/dist/src/backend/services/session/service/index.d.ts.map +1 -1
  727. package/dist/src/backend/services/session/service/index.js +3 -3
  728. package/dist/src/backend/services/session/service/index.js.map +1 -1
  729. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.d.ts +17 -4
  730. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.d.ts.map +1 -1
  731. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.js +89 -13
  732. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.js.map +1 -1
  733. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.slash-commands.test.d.ts +2 -0
  734. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.slash-commands.test.d.ts.map +1 -0
  735. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.slash-commands.test.js +159 -0
  736. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.slash-commands.test.js.map +1 -0
  737. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.text-streaming.test.d.ts +2 -0
  738. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.text-streaming.test.d.ts.map +1 -0
  739. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.text-streaming.test.js +230 -0
  740. package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.text-streaming.test.js.map +1 -0
  741. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.d.ts +2 -1
  742. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.d.ts.map +1 -1
  743. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.js +3 -28
  744. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.js.map +1 -1
  745. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.test.d.ts +2 -0
  746. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.test.d.ts.map +1 -0
  747. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.test.js +33 -0
  748. package/dist/src/backend/services/session/service/lifecycle/session-pr-discovery.service.test.js.map +1 -0
  749. package/dist/src/backend/services/session/service/lifecycle/session.config.service.d.ts.map +1 -1
  750. package/dist/src/backend/services/session/service/lifecycle/session.config.service.js +15 -4
  751. package/dist/src/backend/services/session/service/lifecycle/session.config.service.js.map +1 -1
  752. package/dist/src/backend/services/session/service/lifecycle/session.config.service.test.js +59 -6
  753. package/dist/src/backend/services/session/service/lifecycle/session.config.service.test.js.map +1 -1
  754. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts +23 -3
  755. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts.map +1 -1
  756. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js +336 -40
  757. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js.map +1 -1
  758. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.d.ts +2 -0
  759. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.d.ts.map +1 -0
  760. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.js +852 -0
  761. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.js.map +1 -0
  762. package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.d.ts +9 -0
  763. package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.d.ts.map +1 -1
  764. package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.js +21 -0
  765. package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.js.map +1 -1
  766. package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.test.js +32 -1
  767. package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.test.js.map +1 -1
  768. package/dist/src/backend/services/session/service/lifecycle/session.repository.d.ts +1 -1
  769. package/dist/src/backend/services/session/service/lifecycle/session.repository.d.ts.map +1 -1
  770. package/dist/src/backend/services/session/service/lifecycle/session.repository.js +3 -3
  771. package/dist/src/backend/services/session/service/lifecycle/session.repository.js.map +1 -1
  772. package/dist/src/backend/services/session/service/lifecycle/session.repository.test.js +1 -1
  773. package/dist/src/backend/services/session/service/lifecycle/session.repository.test.js.map +1 -1
  774. package/dist/src/backend/services/session/service/lifecycle/session.service.coverage.test.js +6 -0
  775. package/dist/src/backend/services/session/service/lifecycle/session.service.coverage.test.js.map +1 -1
  776. package/dist/src/backend/services/session/service/lifecycle/session.service.d.ts +12 -6
  777. package/dist/src/backend/services/session/service/lifecycle/session.service.d.ts.map +1 -1
  778. package/dist/src/backend/services/session/service/lifecycle/session.service.js +20 -5
  779. package/dist/src/backend/services/session/service/lifecycle/session.service.js.map +1 -1
  780. package/dist/src/backend/services/session/service/lifecycle/session.service.test.js +207 -20
  781. package/dist/src/backend/services/session/service/lifecycle/session.service.test.js.map +1 -1
  782. package/dist/src/backend/services/session/service/session-domain.service.d.ts +2 -0
  783. package/dist/src/backend/services/session/service/session-domain.service.d.ts.map +1 -1
  784. package/dist/src/backend/services/session/service/session-domain.service.js +28 -1
  785. package/dist/src/backend/services/session/service/session-domain.service.js.map +1 -1
  786. package/dist/src/backend/services/session/service/session-domain.service.test.js +37 -16
  787. package/dist/src/backend/services/session/service/session-domain.service.test.js.map +1 -1
  788. package/dist/src/backend/services/session/service/session-event-bus.d.ts +21 -0
  789. package/dist/src/backend/services/session/service/session-event-bus.d.ts.map +1 -0
  790. package/dist/src/backend/services/session/service/session-event-bus.js +28 -0
  791. package/dist/src/backend/services/session/service/session-event-bus.js.map +1 -0
  792. package/dist/src/backend/services/session/service/store/session-publisher.js +4 -4
  793. package/dist/src/backend/services/session/service/store/session-publisher.js.map +1 -1
  794. package/dist/src/backend/services/session/service/store/session-queue.test.js +2 -0
  795. package/dist/src/backend/services/session/service/store/session-queue.test.js.map +1 -1
  796. package/dist/src/backend/services/session/service/store/session-replay-builder.d.ts.map +1 -1
  797. package/dist/src/backend/services/session/service/store/session-replay-builder.js +26 -3
  798. package/dist/src/backend/services/session/service/store/session-replay-builder.js.map +1 -1
  799. package/dist/src/backend/services/session/service/store/session-replay-builder.test.js +136 -0
  800. package/dist/src/backend/services/session/service/store/session-replay-builder.test.js.map +1 -1
  801. package/dist/src/backend/services/session/service/store/session-runtime-machine.test.js +2 -0
  802. package/dist/src/backend/services/session/service/store/session-runtime-machine.test.js.map +1 -1
  803. package/dist/src/backend/services/session/service/store/session-store-registry.d.ts.map +1 -1
  804. package/dist/src/backend/services/session/service/store/session-store-registry.js +2 -0
  805. package/dist/src/backend/services/session/service/store/session-store-registry.js.map +1 -1
  806. package/dist/src/backend/services/session/service/store/session-store.types.d.ts +8 -0
  807. package/dist/src/backend/services/session/service/store/session-store.types.d.ts.map +1 -1
  808. package/dist/src/backend/services/session/service/store/session-transcript.d.ts +1 -0
  809. package/dist/src/backend/services/session/service/store/session-transcript.d.ts.map +1 -1
  810. package/dist/src/backend/services/session/service/store/session-transcript.js +83 -15
  811. package/dist/src/backend/services/session/service/store/session-transcript.js.map +1 -1
  812. package/dist/src/backend/services/session/service/store/session-transcript.test.js +149 -30
  813. package/dist/src/backend/services/session/service/store/session-transcript.test.js.map +1 -1
  814. package/dist/src/backend/services/session/service/store/slash-command-cache.service.d.ts.map +1 -1
  815. package/dist/src/backend/services/session/service/store/slash-command-cache.service.js +64 -23
  816. package/dist/src/backend/services/session/service/store/slash-command-cache.service.js.map +1 -1
  817. package/dist/src/backend/services/session/service/store/slash-command-cache.service.test.js +119 -7
  818. package/dist/src/backend/services/session/service/store/slash-command-cache.service.test.js.map +1 -1
  819. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.d.ts +7 -0
  820. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.d.ts.map +1 -0
  821. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.js +94 -0
  822. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.js.map +1 -0
  823. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.test.d.ts +2 -0
  824. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.test.d.ts.map +1 -0
  825. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.test.js +52 -0
  826. package/dist/src/backend/services/session/service/store/slash-command-disk-scanner.test.js.map +1 -0
  827. package/dist/src/backend/services/session/types.d.ts +25 -0
  828. package/dist/src/backend/services/session/types.d.ts.map +1 -0
  829. package/dist/src/backend/services/session/types.js +2 -0
  830. package/dist/src/backend/services/session/types.js.map +1 -0
  831. package/dist/src/backend/services/settings/index.d.ts +1 -3
  832. package/dist/src/backend/services/settings/index.d.ts.map +1 -1
  833. package/dist/src/backend/services/settings/index.js +1 -3
  834. package/dist/src/backend/services/settings/index.js.map +1 -1
  835. package/dist/src/backend/services/settings/resources/user-settings.accessor.d.ts +4 -1
  836. package/dist/src/backend/services/settings/resources/user-settings.accessor.d.ts.map +1 -1
  837. package/dist/src/backend/services/settings/resources/user-settings.accessor.js +55 -13
  838. package/dist/src/backend/services/settings/resources/user-settings.accessor.js.map +1 -1
  839. package/dist/src/backend/services/settings/service/health.service.d.ts +6 -0
  840. package/dist/src/backend/services/settings/service/health.service.d.ts.map +1 -0
  841. package/dist/src/backend/services/settings/service/health.service.js +8 -0
  842. package/dist/src/backend/services/settings/service/health.service.js.map +1 -0
  843. package/dist/src/backend/services/settings/service/health.service.test.d.ts +2 -0
  844. package/dist/src/backend/services/settings/service/health.service.test.d.ts.map +1 -0
  845. package/dist/src/backend/services/settings/service/health.service.test.js +16 -0
  846. package/dist/src/backend/services/settings/service/health.service.test.js.map +1 -0
  847. package/dist/src/backend/services/settings/service/index.d.ts +3 -0
  848. package/dist/src/backend/services/settings/service/index.d.ts.map +1 -0
  849. package/dist/src/backend/services/settings/service/index.js +3 -0
  850. package/dist/src/backend/services/settings/service/index.js.map +1 -0
  851. package/dist/src/backend/services/settings/service/settings-domain-exports.test.d.ts +2 -0
  852. package/dist/src/backend/services/settings/service/settings-domain-exports.test.d.ts.map +1 -0
  853. package/dist/src/backend/services/settings/service/settings-domain-exports.test.js +9 -0
  854. package/dist/src/backend/services/settings/service/settings-domain-exports.test.js.map +1 -0
  855. package/dist/src/backend/services/settings/service/user-settings.service.d.ts +27 -0
  856. package/dist/src/backend/services/settings/service/user-settings.service.d.ts.map +1 -0
  857. package/dist/src/backend/services/settings/service/user-settings.service.js +23 -0
  858. package/dist/src/backend/services/settings/service/user-settings.service.js.map +1 -0
  859. package/dist/src/backend/services/settings/service/user-settings.service.test.d.ts +2 -0
  860. package/dist/src/backend/services/settings/service/user-settings.service.test.d.ts.map +1 -0
  861. package/dist/src/backend/services/settings/service/user-settings.service.test.js +58 -0
  862. package/dist/src/backend/services/settings/service/user-settings.service.test.js.map +1 -0
  863. package/dist/src/backend/services/terminal/index.d.ts +0 -1
  864. package/dist/src/backend/services/terminal/index.d.ts.map +1 -1
  865. package/dist/src/backend/services/terminal/index.js +0 -1
  866. package/dist/src/backend/services/terminal/index.js.map +1 -1
  867. package/dist/src/backend/services/terminal/resources/terminal-session.accessor.d.ts +1 -1
  868. package/dist/src/backend/services/terminal/resources/terminal-session.accessor.d.ts.map +1 -1
  869. package/dist/src/backend/services/terminal/resources/terminal-session.accessor.js +2 -2
  870. package/dist/src/backend/services/terminal/resources/terminal-session.accessor.js.map +1 -1
  871. package/dist/src/backend/services/terminal/service/index.d.ts +2 -0
  872. package/dist/src/backend/services/terminal/service/index.d.ts.map +1 -1
  873. package/dist/src/backend/services/terminal/service/index.js +1 -0
  874. package/dist/src/backend/services/terminal/service/index.js.map +1 -1
  875. package/dist/src/backend/services/terminal/service/terminal-domain-exports.test.js +4 -1
  876. package/dist/src/backend/services/terminal/service/terminal-domain-exports.test.js.map +1 -1
  877. package/dist/src/backend/services/terminal/service/terminal-session.service.d.ts +95 -0
  878. package/dist/src/backend/services/terminal/service/terminal-session.service.d.ts.map +1 -0
  879. package/dist/src/backend/services/terminal/service/terminal-session.service.js +43 -0
  880. package/dist/src/backend/services/terminal/service/terminal-session.service.js.map +1 -0
  881. package/dist/src/backend/services/terminal/service/terminal-session.service.test.d.ts +2 -0
  882. package/dist/src/backend/services/terminal/service/terminal-session.service.test.d.ts.map +1 -0
  883. package/dist/src/backend/services/terminal/service/terminal-session.service.test.js +46 -0
  884. package/dist/src/backend/services/terminal/service/terminal-session.service.test.js.map +1 -0
  885. package/dist/src/backend/services/terminal/service/terminal.service.d.ts +2 -0
  886. package/dist/src/backend/services/terminal/service/terminal.service.d.ts.map +1 -1
  887. package/dist/src/backend/services/terminal/service/terminal.service.js +22 -4
  888. package/dist/src/backend/services/terminal/service/terminal.service.js.map +1 -1
  889. package/dist/src/backend/services/terminal/service/terminal.service.test.js +77 -1
  890. package/dist/src/backend/services/terminal/service/terminal.service.test.js.map +1 -1
  891. package/dist/src/backend/services/workspace/index.d.ts +0 -2
  892. package/dist/src/backend/services/workspace/index.d.ts.map +1 -1
  893. package/dist/src/backend/services/workspace/index.js +0 -2
  894. package/dist/src/backend/services/workspace/index.js.map +1 -1
  895. package/dist/src/backend/services/workspace/resources/project.accessor.d.ts +1 -1
  896. package/dist/src/backend/services/workspace/resources/project.accessor.d.ts.map +1 -1
  897. package/dist/src/backend/services/workspace/resources/project.accessor.js +26 -1
  898. package/dist/src/backend/services/workspace/resources/project.accessor.js.map +1 -1
  899. package/dist/src/backend/services/workspace/resources/workspace-notification.accessor.d.ts +19 -0
  900. package/dist/src/backend/services/workspace/resources/workspace-notification.accessor.d.ts.map +1 -0
  901. package/dist/src/backend/services/workspace/resources/workspace-notification.accessor.js +34 -0
  902. package/dist/src/backend/services/workspace/resources/workspace-notification.accessor.js.map +1 -0
  903. package/dist/src/backend/services/workspace/resources/workspace.accessor.d.ts +91 -5
  904. package/dist/src/backend/services/workspace/resources/workspace.accessor.d.ts.map +1 -1
  905. package/dist/src/backend/services/workspace/resources/workspace.accessor.js +328 -5
  906. package/dist/src/backend/services/workspace/resources/workspace.accessor.js.map +1 -1
  907. package/dist/src/backend/services/workspace/resources/workspace.accessor.test.js +601 -0
  908. package/dist/src/backend/services/workspace/resources/workspace.accessor.test.js.map +1 -1
  909. package/dist/src/backend/services/workspace/service/bridges.d.ts +1 -2
  910. package/dist/src/backend/services/workspace/service/bridges.d.ts.map +1 -1
  911. package/dist/src/backend/services/workspace/service/index.d.ts +12 -1
  912. package/dist/src/backend/services/workspace/service/index.d.ts.map +1 -1
  913. package/dist/src/backend/services/workspace/service/index.js +11 -1
  914. package/dist/src/backend/services/workspace/service/index.js.map +1 -1
  915. package/dist/src/backend/services/workspace/service/lifecycle/activity.service.d.ts +2 -2
  916. package/dist/src/backend/services/workspace/service/lifecycle/activity.service.d.ts.map +1 -1
  917. package/dist/src/backend/services/workspace/service/lifecycle/activity.service.js +20 -3
  918. package/dist/src/backend/services/workspace/service/lifecycle/activity.service.js.map +1 -1
  919. package/dist/src/backend/services/workspace/service/lifecycle/activity.service.test.js +30 -0
  920. package/dist/src/backend/services/workspace/service/lifecycle/activity.service.test.js.map +1 -1
  921. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.d.ts +18 -0
  922. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.d.ts.map +1 -1
  923. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.js +57 -25
  924. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.js.map +1 -1
  925. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js +50 -10
  926. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js.map +1 -1
  927. package/dist/src/backend/services/workspace/service/lifecycle/data.service.d.ts +183 -122
  928. package/dist/src/backend/services/workspace/service/lifecycle/data.service.d.ts.map +1 -1
  929. package/dist/src/backend/services/workspace/service/lifecycle/data.service.js +29 -8
  930. package/dist/src/backend/services/workspace/service/lifecycle/data.service.js.map +1 -1
  931. package/dist/src/backend/services/workspace/service/lifecycle/data.service.test.d.ts +2 -0
  932. package/dist/src/backend/services/workspace/service/lifecycle/data.service.test.d.ts.map +1 -0
  933. package/dist/src/backend/services/workspace/service/lifecycle/data.service.test.js +36 -0
  934. package/dist/src/backend/services/workspace/service/lifecycle/data.service.test.js.map +1 -0
  935. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.d.ts +2 -0
  936. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.d.ts.map +1 -1
  937. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.js +49 -25
  938. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.js.map +1 -1
  939. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.test.js +127 -4
  940. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.test.js.map +1 -1
  941. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.d.ts +206 -0
  942. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.d.ts.map +1 -0
  943. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.js +26 -0
  944. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.js.map +1 -0
  945. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.d.ts +76 -0
  946. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.d.ts.map +1 -0
  947. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.js +32 -0
  948. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.js.map +1 -0
  949. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.test.d.ts +2 -0
  950. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.test.d.ts.map +1 -0
  951. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.test.js +65 -0
  952. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.test.js.map +1 -0
  953. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.d.ts +243 -0
  954. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.d.ts.map +1 -0
  955. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.js +42 -0
  956. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.js.map +1 -0
  957. package/dist/src/backend/services/workspace/service/lifecycle/workspace-relationships.service.d.ts +186 -0
  958. package/dist/src/backend/services/workspace/service/lifecycle/workspace-relationships.service.d.ts.map +1 -0
  959. package/dist/src/backend/services/workspace/service/lifecycle/workspace-relationships.service.js +11 -0
  960. package/dist/src/backend/services/workspace/service/lifecycle/workspace-relationships.service.js.map +1 -0
  961. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.d.ts +161 -0
  962. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.d.ts.map +1 -0
  963. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.js +51 -0
  964. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.js.map +1 -0
  965. package/dist/src/backend/services/workspace/service/lifecycle/workspace-state-capabilities.test.d.ts +2 -0
  966. package/dist/src/backend/services/workspace/service/lifecycle/workspace-state-capabilities.test.d.ts.map +1 -0
  967. package/dist/src/backend/services/workspace/service/lifecycle/workspace-state-capabilities.test.js +96 -0
  968. package/dist/src/backend/services/workspace/service/lifecycle/workspace-state-capabilities.test.js.map +1 -0
  969. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.d.ts +2 -0
  970. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.d.ts.map +1 -0
  971. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.js +11 -0
  972. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.js.map +1 -0
  973. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.test.d.ts +2 -0
  974. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.test.d.ts.map +1 -0
  975. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.test.js +24 -0
  976. package/dist/src/backend/services/workspace/service/pr-discovery-schedule.test.js.map +1 -0
  977. package/dist/src/backend/services/workspace/service/query/project-management.service.d.ts +33 -21
  978. package/dist/src/backend/services/workspace/service/query/project-management.service.d.ts.map +1 -1
  979. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.d.ts +446 -0
  980. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.d.ts.map +1 -0
  981. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.js +23 -0
  982. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.js.map +1 -0
  983. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.test.d.ts +2 -0
  984. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.test.d.ts.map +1 -0
  985. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.test.js +36 -0
  986. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.test.js.map +1 -0
  987. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.d.ts +58 -0
  988. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.d.ts.map +1 -0
  989. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.js +24 -0
  990. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.js.map +1 -0
  991. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.test.d.ts +2 -0
  992. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.test.d.ts.map +1 -0
  993. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.test.js +28 -0
  994. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.test.js.map +1 -0
  995. package/dist/src/backend/services/workspace/service/query/workspace-query.service.d.ts +58 -56
  996. package/dist/src/backend/services/workspace/service/query/workspace-query.service.d.ts.map +1 -1
  997. package/dist/src/backend/services/workspace/service/query/workspace-query.service.js +75 -101
  998. package/dist/src/backend/services/workspace/service/query/workspace-query.service.js.map +1 -1
  999. package/dist/src/backend/services/workspace/service/query/workspace-query.service.test.js +165 -59
  1000. package/dist/src/backend/services/workspace/service/query/workspace-query.service.test.js.map +1 -1
  1001. package/dist/src/backend/services/{workspace-snapshot-store.service.d.ts → workspace/service/snapshot/workspace-snapshot-store.service.d.ts} +26 -46
  1002. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.d.ts.map +1 -0
  1003. package/dist/src/backend/services/{workspace-snapshot-store.service.js → workspace/service/snapshot/workspace-snapshot-store.service.js} +153 -26
  1004. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.js.map +1 -0
  1005. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.test.d.ts.map +1 -0
  1006. package/dist/src/backend/services/{workspace-snapshot-store.service.test.js → workspace/service/snapshot/workspace-snapshot-store.service.test.js} +261 -18
  1007. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.test.js.map +1 -0
  1008. package/dist/src/backend/services/workspace/service/state/kanban-state.d.ts +18 -3
  1009. package/dist/src/backend/services/workspace/service/state/kanban-state.d.ts.map +1 -1
  1010. package/dist/src/backend/services/workspace/service/state/kanban-state.js +136 -16
  1011. package/dist/src/backend/services/workspace/service/state/kanban-state.js.map +1 -1
  1012. package/dist/src/backend/services/workspace/service/state/kanban-state.test.js +319 -63
  1013. package/dist/src/backend/services/workspace/service/state/kanban-state.test.js.map +1 -1
  1014. package/dist/src/backend/services/workspace/service/workspace-domain-exports.test.js +18 -1
  1015. package/dist/src/backend/services/workspace/service/workspace-domain-exports.test.js.map +1 -1
  1016. package/dist/src/backend/services/workspace/service/worktree/git-clone.service.d.ts.map +1 -0
  1017. package/dist/src/backend/services/{git-clone.service.js → workspace/service/worktree/git-clone.service.js} +22 -6
  1018. package/dist/src/backend/services/workspace/service/worktree/git-clone.service.js.map +1 -0
  1019. package/dist/src/backend/services/workspace/service/worktree/git-clone.service.test.d.ts.map +1 -0
  1020. package/dist/src/backend/services/{git-clone.service.test.js → workspace/service/worktree/git-clone.service.test.js} +82 -2
  1021. package/dist/src/backend/services/workspace/service/worktree/git-clone.service.test.js.map +1 -0
  1022. package/dist/src/backend/services/{git-ops.service.d.ts → workspace/service/worktree/git-ops.service.d.ts} +3 -4
  1023. package/dist/src/backend/services/workspace/service/worktree/git-ops.service.d.ts.map +1 -0
  1024. package/dist/src/backend/services/{git-ops.service.js → workspace/service/worktree/git-ops.service.js} +61 -34
  1025. package/dist/src/backend/services/workspace/service/worktree/git-ops.service.js.map +1 -0
  1026. package/dist/src/backend/services/workspace/service/worktree/git-ops.service.test.d.ts.map +1 -0
  1027. package/dist/src/backend/services/workspace/service/worktree/git-ops.service.test.js +227 -0
  1028. package/dist/src/backend/services/workspace/service/worktree/git-ops.service.test.js.map +1 -0
  1029. package/dist/src/backend/services/workspace/service/worktree/worktree-init.test.js +28 -20
  1030. package/dist/src/backend/services/workspace/service/worktree/worktree-init.test.js.map +1 -1
  1031. package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.d.ts +1 -1
  1032. package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.d.ts.map +1 -1
  1033. package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.js +43 -6
  1034. package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.js.map +1 -1
  1035. package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.test.js +122 -7
  1036. package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.test.js.map +1 -1
  1037. package/dist/src/backend/services/workspace/types.d.ts +32 -0
  1038. package/dist/src/backend/services/workspace/types.d.ts.map +1 -0
  1039. package/dist/src/backend/services/workspace/types.js +2 -0
  1040. package/dist/src/backend/services/workspace/types.js.map +1 -0
  1041. package/dist/src/backend/services/workspace-git-state.service.d.ts +99 -0
  1042. package/dist/src/backend/services/workspace-git-state.service.d.ts.map +1 -0
  1043. package/dist/src/backend/services/workspace-git-state.service.js +393 -0
  1044. package/dist/src/backend/services/workspace-git-state.service.js.map +1 -0
  1045. package/dist/src/backend/services/workspace-git-state.service.test.d.ts +2 -0
  1046. package/dist/src/backend/services/workspace-git-state.service.test.d.ts.map +1 -0
  1047. package/dist/src/backend/services/workspace-git-state.service.test.js +476 -0
  1048. package/dist/src/backend/services/workspace-git-state.service.test.js.map +1 -0
  1049. package/dist/src/backend/testing/typescript-import-test-utils.d.ts +11 -0
  1050. package/dist/src/backend/testing/typescript-import-test-utils.d.ts.map +1 -0
  1051. package/dist/src/backend/testing/typescript-import-test-utils.js +47 -0
  1052. package/dist/src/backend/testing/typescript-import-test-utils.js.map +1 -0
  1053. package/dist/src/backend/trpc/admin.router.test.js +18 -26
  1054. package/dist/src/backend/trpc/admin.router.test.js.map +1 -1
  1055. package/dist/src/backend/trpc/admin.trpc.d.ts +5 -3
  1056. package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
  1057. package/dist/src/backend/trpc/admin.trpc.js +11 -15
  1058. package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
  1059. package/dist/src/backend/trpc/application-error-mapper.d.ts +4 -0
  1060. package/dist/src/backend/trpc/application-error-mapper.d.ts.map +1 -0
  1061. package/dist/src/backend/trpc/application-error-mapper.js +16 -0
  1062. package/dist/src/backend/trpc/application-error-mapper.js.map +1 -0
  1063. package/dist/src/backend/trpc/application-error-mapper.test.d.ts +2 -0
  1064. package/dist/src/backend/trpc/application-error-mapper.test.d.ts.map +1 -0
  1065. package/dist/src/backend/trpc/application-error-mapper.test.js +23 -0
  1066. package/dist/src/backend/trpc/application-error-mapper.test.js.map +1 -0
  1067. package/dist/src/backend/trpc/auto-iteration.trpc.d.ts +1 -1
  1068. package/dist/src/backend/trpc/auto-iteration.trpc.d.ts.map +1 -1
  1069. package/dist/src/backend/trpc/auto-iteration.trpc.js +20 -12
  1070. package/dist/src/backend/trpc/auto-iteration.trpc.js.map +1 -1
  1071. package/dist/src/backend/trpc/auto-iteration.trpc.test.js +10 -9
  1072. package/dist/src/backend/trpc/auto-iteration.trpc.test.js.map +1 -1
  1073. package/dist/src/backend/trpc/closed-sessions.router.test.js +3 -4
  1074. package/dist/src/backend/trpc/closed-sessions.router.test.js.map +1 -1
  1075. package/dist/src/backend/trpc/closed-sessions.trpc.d.ts +5 -5
  1076. package/dist/src/backend/trpc/closed-sessions.trpc.d.ts.map +1 -1
  1077. package/dist/src/backend/trpc/closed-sessions.trpc.js +8 -4
  1078. package/dist/src/backend/trpc/closed-sessions.trpc.js.map +1 -1
  1079. package/dist/src/backend/trpc/context-dependencies.test.d.ts +2 -0
  1080. package/dist/src/backend/trpc/context-dependencies.test.d.ts.map +1 -0
  1081. package/dist/src/backend/trpc/context-dependencies.test.js +134 -0
  1082. package/dist/src/backend/trpc/context-dependencies.test.js.map +1 -0
  1083. package/dist/src/backend/trpc/decision-log.router.test.js +11 -8
  1084. package/dist/src/backend/trpc/decision-log.router.test.js.map +1 -1
  1085. package/dist/src/backend/trpc/decision-log.trpc.d.ts +3 -3
  1086. package/dist/src/backend/trpc/decision-log.trpc.d.ts.map +1 -1
  1087. package/dist/src/backend/trpc/decision-log.trpc.js +6 -7
  1088. package/dist/src/backend/trpc/decision-log.trpc.js.map +1 -1
  1089. package/dist/src/backend/trpc/github.router.test.js +41 -6
  1090. package/dist/src/backend/trpc/github.router.test.js.map +1 -1
  1091. package/dist/src/backend/trpc/github.trpc.d.ts +6 -5
  1092. package/dist/src/backend/trpc/github.trpc.d.ts.map +1 -1
  1093. package/dist/src/backend/trpc/github.trpc.js +36 -8
  1094. package/dist/src/backend/trpc/github.trpc.js.map +1 -1
  1095. package/dist/src/backend/trpc/index.d.ts +509 -606
  1096. package/dist/src/backend/trpc/index.d.ts.map +1 -1
  1097. package/dist/src/backend/trpc/index.js +0 -1
  1098. package/dist/src/backend/trpc/index.js.map +1 -1
  1099. package/dist/src/backend/trpc/issue-filter.d.ts.map +1 -1
  1100. package/dist/src/backend/trpc/issue-filter.js.map +1 -1
  1101. package/dist/src/backend/trpc/linear.router.test.js +21 -21
  1102. package/dist/src/backend/trpc/linear.router.test.js.map +1 -1
  1103. package/dist/src/backend/trpc/linear.trpc.d.ts +4 -4
  1104. package/dist/src/backend/trpc/linear.trpc.d.ts.map +1 -1
  1105. package/dist/src/backend/trpc/linear.trpc.js +9 -10
  1106. package/dist/src/backend/trpc/linear.trpc.js.map +1 -1
  1107. package/dist/src/backend/trpc/periodic-task.trpc.d.ts +17 -17
  1108. package/dist/src/backend/trpc/periodic-task.trpc.d.ts.map +1 -1
  1109. package/dist/src/backend/trpc/periodic-task.trpc.js +17 -17
  1110. package/dist/src/backend/trpc/periodic-task.trpc.js.map +1 -1
  1111. package/dist/src/backend/trpc/project.router.test.js +135 -39
  1112. package/dist/src/backend/trpc/project.router.test.js.map +1 -1
  1113. package/dist/src/backend/trpc/project.trpc.d.ts +37 -25
  1114. package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
  1115. package/dist/src/backend/trpc/project.trpc.js +55 -50
  1116. package/dist/src/backend/trpc/project.trpc.js.map +1 -1
  1117. package/dist/src/backend/trpc/session.router.test.js +49 -10
  1118. package/dist/src/backend/trpc/session.router.test.js.map +1 -1
  1119. package/dist/src/backend/trpc/session.trpc.d.ts +50 -392
  1120. package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
  1121. package/dist/src/backend/trpc/session.trpc.js +48 -31
  1122. package/dist/src/backend/trpc/session.trpc.js.map +1 -1
  1123. package/dist/src/backend/trpc/trpc.d.ts +11 -4
  1124. package/dist/src/backend/trpc/trpc.d.ts.map +1 -1
  1125. package/dist/src/backend/trpc/trpc.js +50 -10
  1126. package/dist/src/backend/trpc/trpc.js.map +1 -1
  1127. package/dist/src/backend/trpc/trpc.test.d.ts +2 -0
  1128. package/dist/src/backend/trpc/trpc.test.d.ts.map +1 -0
  1129. package/dist/src/backend/trpc/trpc.test.js +76 -0
  1130. package/dist/src/backend/trpc/trpc.test.js.map +1 -0
  1131. package/dist/src/backend/trpc/user-settings.router.test.js +28 -14
  1132. package/dist/src/backend/trpc/user-settings.router.test.js.map +1 -1
  1133. package/dist/src/backend/trpc/user-settings.trpc.d.ts +6 -3
  1134. package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
  1135. package/dist/src/backend/trpc/user-settings.trpc.js +14 -14
  1136. package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
  1137. package/dist/src/backend/trpc/workspace/children.router.test.d.ts +2 -0
  1138. package/dist/src/backend/trpc/workspace/children.router.test.d.ts.map +1 -0
  1139. package/dist/src/backend/trpc/workspace/children.router.test.js +257 -0
  1140. package/dist/src/backend/trpc/workspace/children.router.test.js.map +1 -0
  1141. package/dist/src/backend/trpc/workspace/children.trpc.d.ts +154 -0
  1142. package/dist/src/backend/trpc/workspace/children.trpc.d.ts.map +1 -0
  1143. package/dist/src/backend/trpc/workspace/children.trpc.js +163 -0
  1144. package/dist/src/backend/trpc/workspace/children.trpc.js.map +1 -0
  1145. package/dist/src/backend/trpc/workspace/composition.test.d.ts +2 -0
  1146. package/dist/src/backend/trpc/workspace/composition.test.d.ts.map +1 -0
  1147. package/dist/src/backend/trpc/workspace/composition.test.js +51 -0
  1148. package/dist/src/backend/trpc/workspace/composition.test.js.map +1 -0
  1149. package/dist/src/backend/trpc/workspace/files.router.test.js +6 -0
  1150. package/dist/src/backend/trpc/workspace/files.router.test.js.map +1 -1
  1151. package/dist/src/backend/trpc/workspace/files.trpc.d.ts.map +1 -1
  1152. package/dist/src/backend/trpc/workspace/files.trpc.js +19 -22
  1153. package/dist/src/backend/trpc/workspace/files.trpc.js.map +1 -1
  1154. package/dist/src/backend/trpc/workspace/git.router.test.js +137 -147
  1155. package/dist/src/backend/trpc/workspace/git.router.test.js.map +1 -1
  1156. package/dist/src/backend/trpc/workspace/git.trpc.d.ts +2 -2
  1157. package/dist/src/backend/trpc/workspace/git.trpc.d.ts.map +1 -1
  1158. package/dist/src/backend/trpc/workspace/git.trpc.js +53 -75
  1159. package/dist/src/backend/trpc/workspace/git.trpc.js.map +1 -1
  1160. package/dist/src/backend/trpc/workspace/ide.router.test.js +10 -9
  1161. package/dist/src/backend/trpc/workspace/ide.router.test.js.map +1 -1
  1162. package/dist/src/backend/trpc/workspace/ide.trpc.d.ts.map +1 -1
  1163. package/dist/src/backend/trpc/workspace/ide.trpc.js +4 -4
  1164. package/dist/src/backend/trpc/workspace/ide.trpc.js.map +1 -1
  1165. package/dist/src/backend/trpc/workspace/init.router.test.js +42 -43
  1166. package/dist/src/backend/trpc/workspace/init.router.test.js.map +1 -1
  1167. package/dist/src/backend/trpc/workspace/init.trpc.d.ts +25 -18
  1168. package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
  1169. package/dist/src/backend/trpc/workspace/init.trpc.js +16 -13
  1170. package/dist/src/backend/trpc/workspace/init.trpc.js.map +1 -1
  1171. package/dist/src/backend/trpc/workspace/run-script.router.test.js +29 -11
  1172. package/dist/src/backend/trpc/workspace/run-script.router.test.js.map +1 -1
  1173. package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts.map +1 -1
  1174. package/dist/src/backend/trpc/workspace/run-script.trpc.js +7 -8
  1175. package/dist/src/backend/trpc/workspace/run-script.trpc.js.map +1 -1
  1176. package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts +49 -35
  1177. package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts.map +1 -1
  1178. package/dist/src/backend/trpc/workspace/workspace-helpers.js +7 -8
  1179. package/dist/src/backend/trpc/workspace/workspace-helpers.js.map +1 -1
  1180. package/dist/src/backend/trpc/workspace/workspace-helpers.test.js +17 -15
  1181. package/dist/src/backend/trpc/workspace/workspace-helpers.test.js.map +1 -1
  1182. package/dist/src/backend/trpc/workspace.router.test.js +230 -80
  1183. package/dist/src/backend/trpc/workspace.router.test.js.map +1 -1
  1184. package/dist/src/backend/trpc/workspace.trpc.d.ts +1510 -162
  1185. package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
  1186. package/dist/src/backend/trpc/workspace.trpc.js +64 -47
  1187. package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
  1188. package/dist/src/cli/database-path.d.ts.map +1 -1
  1189. package/dist/src/cli/database-path.js +4 -2
  1190. package/dist/src/cli/database-path.js.map +1 -1
  1191. package/dist/src/cli/database-path.test.js +10 -0
  1192. package/dist/src/cli/database-path.test.js.map +1 -1
  1193. package/dist/src/cli/serve-env.d.ts.map +1 -1
  1194. package/dist/src/cli/serve-env.js +5 -3
  1195. package/dist/src/cli/serve-env.js.map +1 -1
  1196. package/dist/src/cli/serve-env.test.js +30 -0
  1197. package/dist/src/cli/serve-env.test.js.map +1 -1
  1198. package/dist/src/shared/acp-protocol/protocol/constants.d.ts +1 -0
  1199. package/dist/src/shared/acp-protocol/protocol/constants.d.ts.map +1 -1
  1200. package/dist/src/shared/acp-protocol/protocol/constants.js +1 -0
  1201. package/dist/src/shared/acp-protocol/protocol/constants.js.map +1 -1
  1202. package/dist/src/shared/acp-protocol/protocol/index.d.ts +1 -0
  1203. package/dist/src/shared/acp-protocol/protocol/index.d.ts.map +1 -1
  1204. package/dist/src/shared/acp-protocol/protocol/index.js +1 -0
  1205. package/dist/src/shared/acp-protocol/protocol/index.js.map +1 -1
  1206. package/dist/src/shared/acp-protocol/protocol/messages.d.ts +8 -1
  1207. package/dist/src/shared/acp-protocol/protocol/messages.d.ts.map +1 -1
  1208. package/dist/src/shared/acp-protocol/protocol/messages.js +2 -0
  1209. package/dist/src/shared/acp-protocol/protocol/messages.js.map +1 -1
  1210. package/dist/src/shared/acp-protocol/protocol/renderer-window.d.ts +3 -0
  1211. package/dist/src/shared/acp-protocol/protocol/renderer-window.d.ts.map +1 -0
  1212. package/dist/src/shared/acp-protocol/protocol/renderer-window.js +37 -0
  1213. package/dist/src/shared/acp-protocol/protocol/renderer-window.js.map +1 -0
  1214. package/dist/src/shared/acp-protocol/protocol/websocket.d.ts +9 -0
  1215. package/dist/src/shared/acp-protocol/protocol/websocket.d.ts.map +1 -1
  1216. package/dist/src/shared/acp-protocol/protocol/websocket.js +1 -0
  1217. package/dist/src/shared/acp-protocol/protocol/websocket.js.map +1 -1
  1218. package/dist/src/shared/core/enums.d.ts +6 -0
  1219. package/dist/src/shared/core/enums.d.ts.map +1 -1
  1220. package/dist/src/shared/core/enums.js +5 -0
  1221. package/dist/src/shared/core/enums.js.map +1 -1
  1222. package/dist/src/shared/core/index.d.ts +2 -2
  1223. package/dist/src/shared/core/index.d.ts.map +1 -1
  1224. package/dist/src/shared/core/index.js +2 -2
  1225. package/dist/src/shared/core/index.js.map +1 -1
  1226. package/dist/src/shared/core/workspace-sidebar-status.d.ts +4 -2
  1227. package/dist/src/shared/core/workspace-sidebar-status.d.ts.map +1 -1
  1228. package/dist/src/shared/core/workspace-sidebar-status.js +11 -0
  1229. package/dist/src/shared/core/workspace-sidebar-status.js.map +1 -1
  1230. package/dist/src/shared/issue-start-prompt.d.ts.map +1 -1
  1231. package/dist/src/shared/issue-start-prompt.js +38 -3
  1232. package/dist/src/shared/issue-start-prompt.js.map +1 -1
  1233. package/dist/src/shared/proxy-utils.d.ts +2 -0
  1234. package/dist/src/shared/proxy-utils.d.ts.map +1 -1
  1235. package/dist/src/shared/proxy-utils.js +20 -2
  1236. package/dist/src/shared/proxy-utils.js.map +1 -1
  1237. package/dist/src/shared/schemas/export-data.schema.d.ts +10 -0
  1238. package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
  1239. package/dist/src/shared/schemas/export-data.schema.js +3 -1
  1240. package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
  1241. package/dist/src/shared/session-runtime.d.ts +15 -3
  1242. package/dist/src/shared/session-runtime.d.ts.map +1 -1
  1243. package/dist/src/shared/session-runtime.js +33 -0
  1244. package/dist/src/shared/session-runtime.js.map +1 -1
  1245. package/dist/src/shared/workspace-flow-state.d.ts +4 -2
  1246. package/dist/src/shared/workspace-flow-state.d.ts.map +1 -1
  1247. package/dist/src/shared/workspace-flow-state.js +16 -1
  1248. package/dist/src/shared/workspace-flow-state.js.map +1 -1
  1249. package/dist/src/shared/workspace-notifications.d.ts +10 -0
  1250. package/dist/src/shared/workspace-notifications.d.ts.map +1 -0
  1251. package/dist/src/shared/workspace-notifications.js +11 -0
  1252. package/dist/src/shared/workspace-notifications.js.map +1 -0
  1253. package/dist/src/shared/workspace-snapshot.d.ts +1020 -0
  1254. package/dist/src/shared/workspace-snapshot.d.ts.map +1 -0
  1255. package/dist/src/shared/workspace-snapshot.js +113 -0
  1256. package/dist/src/shared/workspace-snapshot.js.map +1 -0
  1257. package/dist/src/shared/workspace-status-reason.d.ts +6 -3
  1258. package/dist/src/shared/workspace-status-reason.d.ts.map +1 -1
  1259. package/dist/src/shared/workspace-status-reason.js +35 -0
  1260. package/dist/src/shared/workspace-status-reason.js.map +1 -1
  1261. package/dist/src/test-utils/application-graph.d.ts +69 -0
  1262. package/dist/src/test-utils/application-graph.d.ts.map +1 -0
  1263. package/dist/src/test-utils/application-graph.js +353 -0
  1264. package/dist/src/test-utils/application-graph.js.map +1 -0
  1265. package/dist/tsconfig.backend.tsbuildinfo +1 -1
  1266. package/package.json +5 -8
  1267. package/prisma/migrations/20260622135020_add_child_workspaces/migration.sql +99 -0
  1268. package/prisma/migrations/20260622135100_add_child_workspaces/migration.sql +39 -0
  1269. package/prisma/migrations/20260622195338_add_notification_direction/migration.sql +22 -0
  1270. package/prisma/migrations/20260622220000_add_parent_workspace_id_index/migration.sql +2 -0
  1271. package/prisma/migrations/20260715201522_add_ratchet_dispatch_record/migration.sql +125 -0
  1272. package/prisma/migrations/20260717150000_add_pr_discovery_schedule/migration.sql +8 -0
  1273. package/prisma/migrations/20260717160000_add_ratchet_review_trigger_mode/migration.sql +2 -0
  1274. package/prisma/schema.prisma +55 -1
  1275. package/prompts/ratchet/dispatch.md +2 -0
  1276. package/dist/client/assets/channel-DTP0LAbj.js +0 -1
  1277. package/dist/client/assets/chunk-2J33WTMH-BfBptE9H.js +0 -1
  1278. package/dist/client/assets/classDiagram-4FO5ZUOK-Ctn2iFx-.js +0 -1
  1279. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Ctn2iFx-.js +0 -1
  1280. package/dist/client/assets/index-QJUv8N-T.js +0 -662
  1281. package/dist/client/assets/index-z2dDRh55.css +0 -1
  1282. package/dist/client/assets/infoDiagram-5YYISTIA-EcbEZrdJ.js +0 -2
  1283. package/dist/client/assets/stateDiagram-AJRCARHV-JRGDQ0Z0.js +0 -1
  1284. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-YFRSfKcY.js +0 -1
  1285. package/dist/src/backend/clients/index.d.ts +0 -2
  1286. package/dist/src/backend/clients/index.d.ts.map +0 -1
  1287. package/dist/src/backend/clients/index.js +0 -2
  1288. package/dist/src/backend/clients/index.js.map +0 -1
  1289. package/dist/src/backend/orchestration/decision-log-query.service.d.ts.map +0 -1
  1290. package/dist/src/backend/orchestration/decision-log-query.service.js.map +0 -1
  1291. package/dist/src/backend/orchestration/decision-log-query.service.test.d.ts +0 -2
  1292. package/dist/src/backend/orchestration/decision-log-query.service.test.d.ts.map +0 -1
  1293. package/dist/src/backend/orchestration/decision-log-query.service.test.js +0 -44
  1294. package/dist/src/backend/orchestration/decision-log-query.service.test.js.map +0 -1
  1295. package/dist/src/backend/services/factory-config.service.d.ts.map +0 -1
  1296. package/dist/src/backend/services/factory-config.service.js.map +0 -1
  1297. package/dist/src/backend/services/factory-config.service.test.d.ts.map +0 -1
  1298. package/dist/src/backend/services/factory-config.service.test.js.map +0 -1
  1299. package/dist/src/backend/services/git-clone.service.d.ts.map +0 -1
  1300. package/dist/src/backend/services/git-clone.service.js.map +0 -1
  1301. package/dist/src/backend/services/git-clone.service.test.d.ts.map +0 -1
  1302. package/dist/src/backend/services/git-clone.service.test.js.map +0 -1
  1303. package/dist/src/backend/services/git-ops.service.d.ts.map +0 -1
  1304. package/dist/src/backend/services/git-ops.service.js.map +0 -1
  1305. package/dist/src/backend/services/git-ops.service.test.d.ts.map +0 -1
  1306. package/dist/src/backend/services/git-ops.service.test.js +0 -133
  1307. package/dist/src/backend/services/git-ops.service.test.js.map +0 -1
  1308. package/dist/src/backend/services/port-allocation.service.d.ts.map +0 -1
  1309. package/dist/src/backend/services/port-allocation.service.js.map +0 -1
  1310. package/dist/src/backend/services/ratchet/service/ratchet-review-poll.helpers.d.ts +0 -16
  1311. package/dist/src/backend/services/ratchet/service/ratchet-review-poll.helpers.d.ts.map +0 -1
  1312. package/dist/src/backend/services/ratchet/service/ratchet-review-poll.helpers.js +0 -52
  1313. package/dist/src/backend/services/ratchet/service/ratchet-review-poll.helpers.js.map +0 -1
  1314. package/dist/src/backend/services/ratchet/service/reconciliation.service.d.ts +0 -21
  1315. package/dist/src/backend/services/ratchet/service/reconciliation.service.d.ts.map +0 -1
  1316. package/dist/src/backend/services/ratchet/service/reconciliation.service.js.map +0 -1
  1317. package/dist/src/backend/services/ratchet/service/reconciliation.service.test.d.ts.map +0 -1
  1318. package/dist/src/backend/services/ratchet/service/reconciliation.service.test.js.map +0 -1
  1319. package/dist/src/backend/services/run-script-config-persistence.service.d.ts.map +0 -1
  1320. package/dist/src/backend/services/run-script-config-persistence.service.js.map +0 -1
  1321. package/dist/src/backend/services/run-script-config-persistence.service.test.d.ts.map +0 -1
  1322. package/dist/src/backend/services/run-script-config-persistence.service.test.js.map +0 -1
  1323. package/dist/src/backend/services/run-script-proxy.service.d.ts.map +0 -1
  1324. package/dist/src/backend/services/run-script-proxy.service.js.map +0 -1
  1325. package/dist/src/backend/services/run-script-proxy.service.test.d.ts.map +0 -1
  1326. package/dist/src/backend/services/run-script-proxy.service.test.js.map +0 -1
  1327. package/dist/src/backend/services/session/service/chat/chat-connection.service.d.ts +0 -19
  1328. package/dist/src/backend/services/session/service/chat/chat-connection.service.d.ts.map +0 -1
  1329. package/dist/src/backend/services/session/service/chat/chat-connection.service.js +0 -78
  1330. package/dist/src/backend/services/session/service/chat/chat-connection.service.js.map +0 -1
  1331. package/dist/src/backend/services/session/service/chat/chat-connection.service.test.d.ts +0 -2
  1332. package/dist/src/backend/services/session/service/chat/chat-connection.service.test.d.ts.map +0 -1
  1333. package/dist/src/backend/services/session/service/chat/chat-connection.service.test.js +0 -214
  1334. package/dist/src/backend/services/session/service/chat/chat-connection.service.test.js.map +0 -1
  1335. package/dist/src/backend/services/workspace/service/query/user-settings-query.service.d.ts +0 -24
  1336. package/dist/src/backend/services/workspace/service/query/user-settings-query.service.d.ts.map +0 -1
  1337. package/dist/src/backend/services/workspace/service/query/user-settings-query.service.js +0 -17
  1338. package/dist/src/backend/services/workspace/service/query/user-settings-query.service.js.map +0 -1
  1339. package/dist/src/backend/services/workspace-snapshot-store.service.d.ts.map +0 -1
  1340. package/dist/src/backend/services/workspace-snapshot-store.service.js.map +0 -1
  1341. package/dist/src/backend/services/workspace-snapshot-store.service.test.d.ts.map +0 -1
  1342. package/dist/src/backend/services/workspace-snapshot-store.service.test.js.map +0 -1
  1343. package/dist/src/backend/trpc/procedures/index.d.ts +0 -2
  1344. package/dist/src/backend/trpc/procedures/index.d.ts.map +0 -1
  1345. package/dist/src/backend/trpc/procedures/index.js +0 -2
  1346. package/dist/src/backend/trpc/procedures/index.js.map +0 -1
  1347. package/dist/src/backend/trpc/procedures/project-scoped.d.ts +0 -6
  1348. package/dist/src/backend/trpc/procedures/project-scoped.d.ts.map +0 -1
  1349. package/dist/src/backend/trpc/procedures/project-scoped.js +0 -18
  1350. package/dist/src/backend/trpc/procedures/project-scoped.js.map +0 -1
  1351. package/dist/src/backend/trpc/procedures/project-scoped.test.d.ts +0 -2
  1352. package/dist/src/backend/trpc/procedures/project-scoped.test.d.ts.map +0 -1
  1353. package/dist/src/backend/trpc/procedures/project-scoped.test.js +0 -17
  1354. package/dist/src/backend/trpc/procedures/project-scoped.test.js.map +0 -1
  1355. /package/dist/src/backend/{services/ratchet/service → orchestration}/reconciliation.service.test.d.ts +0 -0
  1356. /package/dist/src/backend/services/{factory-config.service.test.d.ts → run-script/service/factory-config.service.test.d.ts} +0 -0
  1357. /package/dist/src/backend/services/{run-script-config-persistence.service.test.d.ts → run-script/service/run-script-config-persistence.service.test.d.ts} +0 -0
  1358. /package/dist/src/backend/services/{run-script-proxy.service.d.ts → run-script/service/run-script-proxy.service.d.ts} +0 -0
  1359. /package/dist/src/backend/services/{run-script-proxy.service.test.d.ts → run-script/service/run-script-proxy.service.test.d.ts} +0 -0
  1360. /package/dist/src/backend/services/{workspace-snapshot-store.service.test.d.ts → workspace/service/snapshot/workspace-snapshot-store.service.test.d.ts} +0 -0
  1361. /package/dist/src/backend/services/{git-clone.service.d.ts → workspace/service/worktree/git-clone.service.d.ts} +0 -0
  1362. /package/dist/src/backend/services/{git-clone.service.test.d.ts → workspace/service/worktree/git-clone.service.test.d.ts} +0 -0
  1363. /package/dist/src/backend/services/{git-ops.service.test.d.ts → workspace/service/worktree/git-ops.service.test.d.ts} +0 -0
@@ -1,19 +1,29 @@
1
1
  import { EventEmitter } from 'node:events';
2
+ import pLimit from 'p-limit';
2
3
  import { toError } from '../../../../backend/lib/error-utils.js';
3
- import { SERVICE_INTERVAL_MS, SERVICE_TIMEOUT_MS } from '../../../../backend/services/constants.js';
4
+ import { SERVICE_INTERVAL_MS, SERVICE_THRESHOLDS, SERVICE_TIMEOUT_MS, } from '../../../../backend/services/constants.js';
4
5
  import { createLogger } from '../../../../backend/services/logger.service.js';
5
6
  import { RateLimitBackoff } from '../../../../backend/services/rate-limit-backoff.js';
6
- import { workspaceAccessor } from '../../../../backend/services/workspace/index.js';
7
- import { CIStatus, RatchetState } from '../../../../shared/core/index.js';
8
- import { getActiveRatchetSession as getActiveRatchetSessionHelper, hasActiveSession as hasActiveSessionHelper, } from './ratchet-active-session.helpers.js';
9
- import { buildRatchetingLogContext as buildRatchetingLogContextHelper, logWorkspaceRatchetingDecision as logWorkspaceRatchetingDecisionHelper, } from './ratchet-decision-logging.helpers.js';
7
+ import { userSettingsService } from '../../../../backend/services/settings/index.js';
8
+ import { workspaceDataService, workspaceRatchetService } from '../../../../backend/services/workspace/index.js';
9
+ import { CIStatus, RatchetState, SessionStatus } from '../../../../shared/core/index.js';
10
+ import { checkActiveFixerSession as checkActiveFixerSessionHelper, hasActiveSession as hasActiveSessionHelper, } from './ratchet-active-session.helpers.js';
11
+ import { logWorkspaceRatchetingDecision as logWorkspaceRatchetingDecisionHelper } from './ratchet-decision-logging.helpers.js';
10
12
  import { triggerRatchetFixer } from './ratchet-fixer-dispatch.helpers.js';
11
- import { computeDispatchSnapshotKey as computeDispatchSnapshotKeyHelper, computeLatestReviewActivityAtMs as computeLatestReviewActivityAtMsHelper, determineRatchetState as determineRatchetStateHelper, fetchPRState as fetchPRStateHelper, getAuthenticatedUsernameCached as getAuthenticatedUsernameCachedHelper, hasNewReviewActivitySinceLastDispatch as hasNewReviewActivitySinceLastDispatchHelper, shouldSkipCleanPR as shouldSkipCleanPRHelper, } from './ratchet-pr-state.helpers.js';
12
- import { handleReviewCommentPoll as handleReviewCommentPollHelper } from './ratchet-review-poll.helpers.js';
13
- import { RatchetWorkspaceCheckCoordinator } from './ratchet-workspace-check-coordinator.js';
13
+ import { determineRatchetState as determineRatchetStateHelper, fetchPRState as fetchPRStateHelper, getAuthenticatedUsernameCached as getAuthenticatedUsernameCachedHelper, hasNewReviewActivitySinceLastDispatch as hasNewReviewActivitySinceLastDispatchHelper, isPRStateFetchSkipped, shouldSkipCleanPR as shouldSkipCleanPRHelper, } from './ratchet-pr-state.helpers.js';
14
+ import { assertValidRatchetTransition } from './ratchet-state-machine.js';
15
+ import { RatchetWorkspaceCheckCoordinator, } from './ratchet-workspace-check-coordinator.js';
14
16
  const logger = createLogger('ratchet');
17
+ const RATCHET_WORKSPACE_CONCURRENCY = 3;
18
+ const ratchetWorkspaceLimit = pLimit(RATCHET_WORKSPACE_CONCURRENCY);
19
+ const scheduleRatchetBatchCheck = (task) => ratchetWorkspaceLimit(task);
20
+ const RECENTLY_FETCHED_REASON = 'recently_fetched';
21
+ function isRecentlyFetchedWaitResult(result) {
22
+ return result.action.type === 'WAITING' && result.action.reason === RECENTLY_FETCHED_REASON;
23
+ }
15
24
  export const RATCHET_STATE_CHANGED = 'ratchet_state_changed';
16
25
  export const RATCHET_TOGGLED = 'ratchet_toggled';
26
+ export const RATCHET_DISPATCH_CHANGED = 'ratchet_dispatch_changed';
17
27
  class RatchetService extends EventEmitter {
18
28
  isShuttingDown = false;
19
29
  monitorLoop = null;
@@ -23,14 +33,21 @@ class RatchetService extends EventEmitter {
23
33
  checkCoordinator = new RatchetWorkspaceCheckCoordinator(() => this.workspaceCheckTimeoutMs);
24
34
  cachedAuthenticatedUsername = null;
25
35
  backoff = new RateLimitBackoff();
26
- reviewPollTrackers = new Map();
27
36
  sessionBridge = null;
28
37
  githubBridge = null;
29
38
  snapshotBridge = null;
39
+ workspaceBridge = null;
30
40
  configure(bridges) {
31
41
  this.sessionBridge = bridges.session;
32
42
  this.githubBridge = bridges.github;
33
43
  this.snapshotBridge = bridges.snapshot;
44
+ this.workspaceBridge = bridges.workspace;
45
+ }
46
+ get workspace() {
47
+ if (!this.workspaceBridge) {
48
+ throw new Error('RatchetService not configured: workspace bridge missing. Call configure() first.');
49
+ }
50
+ return this.workspaceBridge;
34
51
  }
35
52
  get session() {
36
53
  if (!this.sessionBridge) {
@@ -125,11 +142,12 @@ class RatchetService extends EventEmitter {
125
142
  if (this.isShuttingDown) {
126
143
  return { checked: 0, stateChanges: 0, actionsTriggered: 0, results: [] };
127
144
  }
128
- const workspaces = await workspaceAccessor.findWithPRsForRatchet();
145
+ const workspaces = await workspaceRatchetService.findCandidates();
129
146
  if (workspaces.length === 0) {
130
147
  return { checked: 0, stateChanges: 0, actionsTriggered: 0, results: [] };
131
148
  }
132
- const results = await Promise.all(workspaces.map((workspace) => this.runWorkspaceCheckSafely(workspace)));
149
+ const userSettings = await userSettingsService.get();
150
+ const results = await Promise.all(workspaces.map((workspace) => this.runWorkspaceCheckSafely(workspace, undefined, scheduleRatchetBatchCheck, userSettings.ratchetReviewTriggerMode)));
133
151
  const stateChanges = results.filter((r) => r.previousState !== r.newState).length;
134
152
  const actionsTriggered = results.filter((r) => r.action.type === 'TRIGGERED_FIXER').length;
135
153
  if (stateChanges > 0 || actionsTriggered > 0) {
@@ -141,22 +159,68 @@ class RatchetService extends EventEmitter {
141
159
  }
142
160
  return { checked: workspaces.length, stateChanges, actionsTriggered, results };
143
161
  }
144
- async checkWorkspaceById(workspaceId) {
162
+ async checkWorkspaceById(workspaceId, opts) {
145
163
  if (this.isShuttingDown) {
146
164
  return null;
147
165
  }
148
- const workspace = await workspaceAccessor.findForRatchetById(workspaceId);
166
+ const workspace = await workspaceRatchetService.findCandidateById(workspaceId);
149
167
  if (!workspace) {
150
168
  return null;
151
169
  }
152
- return this.runWorkspaceCheckSafely(workspace);
170
+ const userSettings = await userSettingsService.get();
171
+ const reviewTriggerMode = userSettings.ratchetReviewTriggerMode;
172
+ const result = await this.runWorkspaceCheckSafely(workspace, opts, undefined, reviewTriggerMode);
173
+ if (opts?.bypassPrFetchCooldown && isRecentlyFetchedWaitResult(result)) {
174
+ const freshWorkspace = await workspaceRatchetService.findCandidateById(workspaceId);
175
+ if (!freshWorkspace) {
176
+ return result;
177
+ }
178
+ return this.runWorkspaceCheckSafely(freshWorkspace, opts, undefined, reviewTriggerMode);
179
+ }
180
+ return result;
181
+ }
182
+ async recordSessionEnd(workspaceId, sessionId, outcome) {
183
+ const settled = await this.workspace.recordSessionEnd(workspaceId, sessionId, outcome);
184
+ if (!settled) {
185
+ return;
186
+ }
187
+ this.emit(RATCHET_DISPATCH_CHANGED, {
188
+ workspaceId,
189
+ });
153
190
  }
154
- async clearRatchetActiveSessionIfMatching(workspaceId, sessionId) {
155
- await workspaceAccessor.clearRatchetActiveSession(workspaceId, sessionId);
191
+ async markPrClosed(workspaceId) {
192
+ const maxCasAttempts = 3;
193
+ for (let attempt = 0; attempt < maxCasAttempts; attempt++) {
194
+ const workspace = await workspaceDataService.findById(workspaceId);
195
+ if (!workspace?.ratchetEnabled || workspace.ratchetState === RatchetState.IDLE) {
196
+ return;
197
+ }
198
+ const fromState = workspace.ratchetState;
199
+ assertValidRatchetTransition(workspaceId, fromState, RatchetState.IDLE);
200
+ const updated = await workspaceRatchetService.transitionStateIfEnabled(workspaceId, fromState, {
201
+ ratchetState: RatchetState.IDLE,
202
+ ratchetLastCheckedAt: new Date(),
203
+ });
204
+ if (updated) {
205
+ this.emit(RATCHET_STATE_CHANGED, {
206
+ workspaceId,
207
+ fromState,
208
+ toState: RatchetState.IDLE,
209
+ });
210
+ return;
211
+ }
212
+ }
213
+ logger.warn('markPrClosed gave up after losing repeated state CAS races', {
214
+ workspaceId,
215
+ attempts: maxCasAttempts,
216
+ });
156
217
  }
157
- async runWorkspaceCheckSafely(workspace) {
218
+ async runWorkspaceCheckSafely(workspace, opts, schedule, reviewTriggerMode) {
158
219
  try {
159
- return await this.checkCoordinator.run(workspace, () => this.processWorkspace(workspace));
220
+ return await this.checkCoordinator.run(workspace, (signal, commitSideEffects) => {
221
+ signal.throwIfAborted();
222
+ return this.processWorkspace(workspace, opts, signal, commitSideEffects, reviewTriggerMode);
223
+ }, schedule);
160
224
  }
161
225
  catch (error) {
162
226
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -174,14 +238,12 @@ class RatchetService extends EventEmitter {
174
238
  }
175
239
  }
176
240
  async setWorkspaceRatcheting(workspaceId, enabled) {
177
- const workspace = await workspaceAccessor.findById(workspaceId);
241
+ const workspace = await workspaceDataService.findById(workspaceId);
178
242
  if (!workspace) {
179
243
  throw new Error(`Workspace not found: ${workspaceId}`);
180
244
  }
181
245
  if (enabled) {
182
- await workspaceAccessor.update(workspaceId, {
183
- ratchetEnabled: true,
184
- });
246
+ await workspaceRatchetService.enable(workspaceId);
185
247
  this.emit(RATCHET_TOGGLED, {
186
248
  workspaceId,
187
249
  enabled: true,
@@ -189,25 +251,8 @@ class RatchetService extends EventEmitter {
189
251
  });
190
252
  return;
191
253
  }
192
- const activeSessionId = workspace.ratchetActiveSessionId;
193
- if (activeSessionId && this.session.isSessionRunning(activeSessionId)) {
194
- try {
195
- await this.session.stopSession(activeSessionId);
196
- }
197
- catch (error) {
198
- logger.warn('Failed to stop active ratchet session while disabling ratchet', {
199
- workspaceId,
200
- sessionId: activeSessionId,
201
- error: error instanceof Error ? error.message : String(error),
202
- });
203
- }
204
- }
205
- await workspaceAccessor.update(workspaceId, {
206
- ratchetEnabled: false,
207
- ratchetState: RatchetState.IDLE,
208
- ratchetActiveSessionId: null,
209
- ratchetLastCiRunId: null,
210
- });
254
+ await workspaceRatchetService.disable(workspaceId);
255
+ await this.stopActiveRatchetSessionsAfterDisable(workspaceId);
211
256
  if (workspace.ratchetState !== RatchetState.IDLE) {
212
257
  this.emit(RATCHET_STATE_CHANGED, {
213
258
  workspaceId,
@@ -221,7 +266,9 @@ class RatchetService extends EventEmitter {
221
266
  ratchetState: RatchetState.IDLE,
222
267
  });
223
268
  }
224
- async processWorkspace(workspace) {
269
+ async processWorkspace(workspace, opts, signal = new AbortController().signal, commitSideEffects = () => {
270
+ }, reviewTriggerMode) {
271
+ signal.throwIfAborted();
225
272
  if (this.isShuttingDown) {
226
273
  return {
227
274
  workspaceId: workspace.id,
@@ -232,31 +279,41 @@ class RatchetService extends EventEmitter {
232
279
  }
233
280
  if (!workspace.ratchetEnabled) {
234
281
  const action = { type: 'DISABLED', reason: 'Workspace ratcheting disabled' };
282
+ const fromState = workspace.ratchetState;
235
283
  const newState = RatchetState.IDLE;
236
- await workspaceAccessor.update(workspace.id, {
237
- ratchetState: newState,
238
- ratchetLastCheckedAt: new Date(),
239
- });
240
- if (workspace.ratchetState !== newState) {
284
+ signal.throwIfAborted();
285
+ assertValidRatchetTransition(workspace.id, fromState, newState);
286
+ const settled = await workspaceRatchetService.settleIdleWhileDisabled(workspace.id, fromState);
287
+ signal.throwIfAborted();
288
+ if (settled && fromState !== newState) {
241
289
  this.emit(RATCHET_STATE_CHANGED, {
242
290
  workspaceId: workspace.id,
243
- fromState: workspace.ratchetState,
291
+ fromState,
244
292
  toState: newState,
245
293
  });
246
294
  }
247
- this.logWorkspaceRatchetingDecision(workspace, workspace.ratchetState, newState, action, null);
295
+ const reportedState = settled ? newState : fromState;
296
+ this.logWorkspaceRatchetingDecision(workspace, fromState, reportedState, action, null);
248
297
  return {
249
298
  workspaceId: workspace.id,
250
- previousState: workspace.ratchetState,
251
- newState,
299
+ previousState: fromState,
300
+ newState: reportedState,
252
301
  action,
253
302
  };
254
303
  }
255
304
  try {
256
- const authenticatedUsername = await this.getAuthenticatedUsernameCached();
257
- const prStateInfo = await this.fetchPRState(workspace, authenticatedUsername);
258
- if (!prStateInfo) {
259
- const action = { type: 'ERROR', error: 'Failed to fetch PR state' };
305
+ signal.throwIfAborted();
306
+ const effectiveReviewTriggerMode = reviewTriggerMode ?? (await userSettingsService.get()).ratchetReviewTriggerMode;
307
+ signal.throwIfAborted();
308
+ const authenticatedUsername = await this.getAuthenticatedUsernameCached(signal);
309
+ signal.throwIfAborted();
310
+ const prStateResult = await this.fetchPRState(workspace, authenticatedUsername, {
311
+ bypassRecentFetchCooldown: opts?.bypassPrFetchCooldown,
312
+ reviewTriggerMode: effectiveReviewTriggerMode,
313
+ }, signal);
314
+ signal.throwIfAborted();
315
+ if (isPRStateFetchSkipped(prStateResult)) {
316
+ const action = { type: 'WAITING', reason: prStateResult.reason };
260
317
  this.logWorkspaceRatchetingDecision(workspace, workspace.ratchetState, workspace.ratchetState, action, null);
261
318
  return {
262
319
  workspaceId: workspace.id,
@@ -265,39 +322,28 @@ class RatchetService extends EventEmitter {
265
322
  action,
266
323
  };
267
324
  }
268
- const decisionContext = await this.buildRatchetDecisionContext(workspace, prStateInfo);
269
- const decision = this.decideRatchetAction(decisionContext);
270
- if (prStateInfo.prState === 'MERGED') {
271
- this.reviewPollTrackers.delete(workspace.id);
272
- }
273
- else if (decisionContext.isCleanPrWithNoNewReviewActivity) {
274
- const pollDispatch = await this.processReviewCommentPoll(workspace, prStateInfo, authenticatedUsername);
275
- if (pollDispatch) {
276
- return pollDispatch;
277
- }
278
- }
279
- else {
280
- this.reviewPollTrackers.delete(workspace.id);
281
- }
282
- const action = await this.applyRatchetDecision(decisionContext, decision);
283
- await this.updateWorkspaceAfterCheck(workspace, prStateInfo, action, decisionContext.finalState);
284
- if (decisionContext.previousState !== decisionContext.finalState) {
285
- this.emit(RATCHET_STATE_CHANGED, {
325
+ if (!prStateResult) {
326
+ const action = { type: 'ERROR', error: 'Failed to fetch PR state' };
327
+ this.logWorkspaceRatchetingDecision(workspace, workspace.ratchetState, workspace.ratchetState, action, null);
328
+ return {
286
329
  workspaceId: workspace.id,
287
- fromState: decisionContext.previousState,
288
- toState: decisionContext.finalState,
289
- prCiStatus: prStateInfo.ciStatus,
290
- });
330
+ previousState: workspace.ratchetState,
331
+ newState: workspace.ratchetState,
332
+ action,
333
+ };
291
334
  }
292
- this.logWorkspaceRatchetingDecision(workspace, decisionContext.previousState, decisionContext.finalState, action, prStateInfo, decisionContext);
293
- return {
294
- workspaceId: workspace.id,
295
- previousState: decisionContext.previousState,
296
- newState: decisionContext.finalState,
297
- action,
298
- };
335
+ const prStateInfo = prStateResult;
336
+ signal.throwIfAborted();
337
+ const decisionContext = await this.buildRatchetDecisionContext(workspace, prStateInfo, signal);
338
+ signal.throwIfAborted();
339
+ const decision = await this.decideRatchetAction(decisionContext, signal);
340
+ signal.throwIfAborted();
341
+ const action = await this.applyRatchetDecision(decisionContext, decision, signal, commitSideEffects);
342
+ signal.throwIfAborted();
343
+ return await this.finishRatchetCheck(workspace, prStateInfo, action, decisionContext, signal);
299
344
  }
300
345
  catch (error) {
346
+ signal.throwIfAborted();
301
347
  const errorMessage = error instanceof Error ? error.message : String(error);
302
348
  logger.error('Error processing workspace in ratchet', toError(error), {
303
349
  workspaceId: workspace.id,
@@ -320,83 +366,36 @@ class RatchetService extends EventEmitter {
320
366
  action,
321
367
  prStateInfo,
322
368
  decisionContext,
323
- logger,
324
369
  });
325
370
  }
326
- buildRatchetingLogContext(workspace, previousState, newState, action, prStateInfo, prNumber, decisionContext) {
327
- return buildRatchetingLogContextHelper({
328
- workspace,
329
- previousState,
330
- newState,
331
- action,
332
- prStateInfo,
333
- prNumber,
334
- decisionContext,
335
- logger,
336
- });
337
- }
338
- async buildRatchetDecisionContext(workspace, prStateInfo) {
371
+ async buildRatchetDecisionContext(workspace, prStateInfo, signal = new AbortController().signal) {
339
372
  const previousState = workspace.ratchetState;
340
- const newState = this.determineRatchetState(prStateInfo);
341
- const finalState = workspace.ratchetEnabled ? newState : RatchetState.IDLE;
342
- const hasNewReviewActivitySinceLastDispatch = this.hasNewReviewActivitySinceLastDispatch(workspace, prStateInfo);
373
+ const newState = determineRatchetStateHelper(prStateInfo);
374
+ const hasNewReviewActivitySinceLastDispatch = hasNewReviewActivitySinceLastDispatchHelper(workspace, prStateInfo);
343
375
  const hasStateChangedSinceLastDispatch = this.hasStateChangedSinceLastDispatch(workspace, prStateInfo);
344
- const isCleanPrWithNoNewReviewActivity = this.shouldSkipCleanPR(workspace, prStateInfo);
345
- const activityChecks = await this.collectRatchetingActivityChecks(workspace, prStateInfo, isCleanPrWithNoNewReviewActivity, hasStateChangedSinceLastDispatch);
376
+ const isCleanPrWithNoNewReviewActivity = shouldSkipCleanPRHelper(workspace, prStateInfo);
377
+ const activeFixerCheck = prStateInfo.prState === 'OPEN'
378
+ ? await this.checkActiveFixerSession(workspace, signal)
379
+ : { kind: 'none' };
380
+ signal.throwIfAborted();
381
+ const dispatchOutcome = activeFixerCheck.kind === 'settled'
382
+ ? activeFixerCheck.outcome
383
+ : workspace.ratchetDispatchOutcome;
346
384
  return {
347
385
  workspace,
348
386
  prStateInfo,
349
387
  previousState,
350
388
  newState,
351
- finalState,
352
389
  hasNewReviewActivitySinceLastDispatch,
353
390
  hasStateChangedSinceLastDispatch,
354
391
  isCleanPrWithNoNewReviewActivity,
355
- activeRatchetSession: activityChecks.activeRatchetSession,
356
- hasOtherActiveSession: activityChecks.hasOtherActiveSession,
392
+ activeFixerCheck,
393
+ dispatchOutcome,
394
+ dispatchRetryCount: workspace.ratchetDispatchRetryCount,
357
395
  };
358
396
  }
359
- async collectRatchetingActivityChecks(workspace, prStateInfo, isCleanPrWithNoNewReviewActivity, hasStateChangedSinceLastDispatch) {
360
- if (!workspace.ratchetEnabled || prStateInfo.prState !== 'OPEN') {
361
- return {
362
- activeRatchetSession: null,
363
- hasOtherActiveSession: false,
364
- };
365
- }
366
- let activeRatchetSession = null;
367
- if (workspace.ratchetActiveSessionId) {
368
- activeRatchetSession = await this.getActiveRatchetSession(workspace);
369
- if (activeRatchetSession) {
370
- return {
371
- activeRatchetSession,
372
- hasOtherActiveSession: false,
373
- };
374
- }
375
- }
376
- if (isCleanPrWithNoNewReviewActivity) {
377
- return {
378
- activeRatchetSession: null,
379
- hasOtherActiveSession: false,
380
- };
381
- }
382
- if (!hasStateChangedSinceLastDispatch) {
383
- return {
384
- activeRatchetSession: null,
385
- hasOtherActiveSession: false,
386
- };
387
- }
388
- return {
389
- activeRatchetSession: null,
390
- hasOtherActiveSession: await this.hasActiveSession(workspace.id),
391
- };
392
- }
393
- decideRatchetAction(context) {
394
- if (!context.workspace.ratchetEnabled) {
395
- return {
396
- type: 'RETURN_ACTION',
397
- action: { type: 'DISABLED', reason: 'Workspace ratcheting disabled' },
398
- };
399
- }
397
+ async decideRatchetAction(context, signal = new AbortController().signal) {
398
+ signal.throwIfAborted();
400
399
  if (context.prStateInfo.prState === 'MERGED') {
401
400
  return { type: 'RETURN_ACTION', action: { type: 'COMPLETED' } };
402
401
  }
@@ -414,8 +413,20 @@ class RatchetService extends EventEmitter {
414
413
  action: { type: 'WAITING', reason: 'Waiting for CI to complete (not in terminal state)' },
415
414
  };
416
415
  }
417
- if (context.activeRatchetSession) {
418
- return { type: 'RETURN_ACTION', action: context.activeRatchetSession };
416
+ if (context.activeFixerCheck.kind === 'active') {
417
+ return { type: 'RETURN_ACTION', action: context.activeFixerCheck.action };
418
+ }
419
+ if (context.activeFixerCheck.kind === 'ended_concurrently') {
420
+ return {
421
+ type: 'RETURN_ACTION',
422
+ action: {
423
+ type: 'WAITING',
424
+ reason: 'Fixer session ended during this check; re-evaluating next cycle',
425
+ },
426
+ };
427
+ }
428
+ if (!context.hasStateChangedSinceLastDispatch && context.dispatchOutcome === 'DIED') {
429
+ return this.decideDiedFixerRetry(context, signal);
419
430
  }
420
431
  if (context.isCleanPrWithNoNewReviewActivity) {
421
432
  return {
@@ -435,7 +446,8 @@ class RatchetService extends EventEmitter {
435
446
  action: { type: 'WAITING', reason: 'PR state unchanged since last ratchet dispatch' },
436
447
  };
437
448
  }
438
- if (context.hasOtherActiveSession) {
449
+ signal.throwIfAborted();
450
+ if (await this.hasActiveSession(context.workspace.id, signal)) {
439
451
  return {
440
452
  type: 'RETURN_ACTION',
441
453
  action: {
@@ -444,13 +456,36 @@ class RatchetService extends EventEmitter {
444
456
  },
445
457
  };
446
458
  }
447
- return { type: 'TRIGGER_FIXER' };
459
+ return { type: 'TRIGGER_FIXER', retryCount: 0 };
448
460
  }
449
- async applyRatchetDecision(context, decision) {
461
+ async decideDiedFixerRetry(context, signal = new AbortController().signal) {
462
+ if (context.dispatchRetryCount >= SERVICE_THRESHOLDS.ratchetDispatchMaxRetries) {
463
+ return {
464
+ type: 'RETURN_ACTION',
465
+ action: {
466
+ type: 'WAITING',
467
+ reason: `Fixer died ${context.dispatchRetryCount + 1} times for this PR state; waiting for PR state to change`,
468
+ },
469
+ };
470
+ }
471
+ signal.throwIfAborted();
472
+ if (await this.hasActiveSession(context.workspace.id, signal)) {
473
+ return {
474
+ type: 'RETURN_ACTION',
475
+ action: { type: 'WAITING', reason: 'Workspace has another working session' },
476
+ };
477
+ }
478
+ return { type: 'TRIGGER_FIXER', retryCount: context.dispatchRetryCount + 1 };
479
+ }
480
+ async applyRatchetDecision(context, decision, signal = new AbortController().signal, commitSideEffects = () => {
481
+ }) {
450
482
  if (decision.type === 'RETURN_ACTION') {
451
483
  return decision.action;
452
484
  }
453
- return await this.triggerFixer(context.workspace, context.prStateInfo);
485
+ signal.throwIfAborted();
486
+ const action = await this.triggerFixer(context.workspace, context.prStateInfo, decision.retryCount, signal, commitSideEffects);
487
+ signal.throwIfAborted();
488
+ return action;
454
489
  }
455
490
  hasActionableFixTrigger(prStateInfo) {
456
491
  if (prStateInfo.ciStatus === CIStatus.FAILURE) {
@@ -459,140 +494,159 @@ class RatchetService extends EventEmitter {
459
494
  if (prStateInfo.hasMergeConflict) {
460
495
  return true;
461
496
  }
497
+ if (prStateInfo.hasChangesRequested) {
498
+ return true;
499
+ }
462
500
  return (prStateInfo.reviewComments?.length ?? 0) > 0;
463
501
  }
464
- shouldSkipCleanPR(workspace, prStateInfo) {
465
- return shouldSkipCleanPRHelper(workspace, prStateInfo, logger);
466
- }
467
- hasNewReviewActivitySinceLastDispatch(workspace, prStateInfo) {
468
- return hasNewReviewActivitySinceLastDispatchHelper(workspace, prStateInfo, logger);
469
- }
470
- async processReviewCommentPoll(workspace, prStateInfo, authenticatedUsername) {
471
- const pollResult = await this.handleReviewCommentPoll(workspace, prStateInfo, authenticatedUsername);
472
- if (pollResult.action !== 'comments-found') {
473
- return null;
502
+ async finishRatchetCheck(workspace, prStateInfo, action, decisionContext, signal = new AbortController().signal) {
503
+ signal.throwIfAborted();
504
+ const updateResult = await this.updateWorkspaceAfterCheck(workspace, prStateInfo, action, decisionContext.newState, signal);
505
+ signal.throwIfAborted();
506
+ if (updateResult === 'disabled') {
507
+ const disabledAction = {
508
+ type: 'DISABLED',
509
+ reason: 'Workspace ratcheting disabled',
510
+ };
511
+ this.logWorkspaceRatchetingDecision(workspace, decisionContext.previousState, RatchetState.IDLE, disabledAction, prStateInfo, decisionContext);
512
+ return {
513
+ workspaceId: workspace.id,
514
+ previousState: decisionContext.previousState,
515
+ newState: RatchetState.IDLE,
516
+ action: disabledAction,
517
+ };
518
+ }
519
+ if (updateResult === 'superseded') {
520
+ const supersededAction = {
521
+ type: 'WAITING',
522
+ reason: 'Ratchet state changed concurrently during this check; re-evaluating next cycle',
523
+ };
524
+ this.logWorkspaceRatchetingDecision(workspace, decisionContext.previousState, decisionContext.previousState, supersededAction, prStateInfo, decisionContext);
525
+ return {
526
+ workspaceId: workspace.id,
527
+ previousState: decisionContext.previousState,
528
+ newState: decisionContext.previousState,
529
+ action: supersededAction,
530
+ };
474
531
  }
475
- const freshContext = await this.buildRatchetDecisionContext(workspace, pollResult.freshPrState);
476
- const freshDecision = this.decideRatchetAction(freshContext);
477
- const freshAction = await this.applyRatchetDecision(freshContext, freshDecision);
478
- await this.updateWorkspaceAfterCheck(workspace, pollResult.freshPrState, freshAction, freshContext.finalState);
479
- if (freshContext.previousState !== freshContext.finalState) {
532
+ if (decisionContext.previousState !== decisionContext.newState) {
480
533
  this.emit(RATCHET_STATE_CHANGED, {
481
534
  workspaceId: workspace.id,
482
- fromState: freshContext.previousState,
483
- toState: freshContext.finalState,
484
- prCiStatus: pollResult.freshPrState.ciStatus,
535
+ fromState: decisionContext.previousState,
536
+ toState: decisionContext.newState,
537
+ prCiStatus: prStateInfo.ciStatus,
485
538
  });
486
539
  }
487
- this.logWorkspaceRatchetingDecision(workspace, freshContext.previousState, freshContext.finalState, freshAction, pollResult.freshPrState, freshContext);
540
+ this.logWorkspaceRatchetingDecision(workspace, decisionContext.previousState, decisionContext.newState, action, prStateInfo, decisionContext);
488
541
  return {
489
542
  workspaceId: workspace.id,
490
- previousState: freshContext.previousState,
491
- newState: freshContext.finalState,
492
- action: freshAction,
543
+ previousState: decisionContext.previousState,
544
+ newState: decisionContext.newState,
545
+ action,
493
546
  };
494
547
  }
495
- async handleReviewCommentPoll(workspace, prStateInfo, authenticatedUsername) {
496
- return await handleReviewCommentPollHelper({
497
- workspace,
498
- prStateInfo,
499
- authenticatedUsername,
500
- reviewPollTrackers: this.reviewPollTrackers,
501
- isShuttingDown: this.isShuttingDown,
502
- fetchPRState: (workspaceArg, authenticatedUsernameArg) => this.fetchPRState(workspaceArg, authenticatedUsernameArg),
503
- shouldSkipCleanPR: (workspaceArg, prStateInfoArg) => this.shouldSkipCleanPR(workspaceArg, prStateInfoArg),
504
- logger,
505
- });
506
- }
507
548
  hasStateChangedSinceLastDispatch(workspace, prStateInfo) {
508
549
  return workspace.ratchetLastCiRunId !== prStateInfo.snapshotKey;
509
550
  }
510
- async updateWorkspaceAfterCheck(workspace, prStateInfo, action, nextState) {
551
+ async updateWorkspaceAfterCheck(workspace, prStateInfo, action, nextState, signal = new AbortController().signal) {
511
552
  const now = new Date();
512
553
  const dispatched = action.type === 'TRIGGERED_FIXER' && action.promptSent;
513
- await workspaceAccessor.update(workspace.id, {
554
+ signal.throwIfAborted();
555
+ assertValidRatchetTransition(workspace.id, workspace.ratchetState, nextState);
556
+ const updated = await workspaceRatchetService.transitionStateIfEnabled(workspace.id, workspace.ratchetState, {
514
557
  ratchetState: nextState,
515
558
  ratchetLastCheckedAt: now,
516
- ...(dispatched
517
- ? {
518
- ratchetLastCiRunId: prStateInfo.snapshotKey,
519
- }
520
- : {}),
521
559
  });
560
+ signal.throwIfAborted();
561
+ if (!updated) {
562
+ const fresh = await workspaceDataService.findById(workspace.id);
563
+ signal.throwIfAborted();
564
+ return fresh?.ratchetEnabled ? 'superseded' : 'disabled';
565
+ }
522
566
  if (dispatched) {
567
+ signal.throwIfAborted();
523
568
  await this.snapshot.recordReviewCheck(workspace.id, now);
569
+ signal.throwIfAborted();
524
570
  }
525
571
  if (prStateInfo.ciStatus !== workspace.prCiStatus) {
572
+ signal.throwIfAborted();
526
573
  await this.snapshot.recordCIObservation({
527
574
  workspaceId: workspace.id,
528
575
  ciStatus: prStateInfo.ciStatus,
529
576
  observedAt: now,
530
577
  });
578
+ signal.throwIfAborted();
531
579
  }
580
+ return 'applied';
532
581
  }
533
- async getActiveRatchetSession(workspace) {
534
- return await getActiveRatchetSessionHelper({
582
+ async checkActiveFixerSession(workspace, signal = new AbortController().signal) {
583
+ return await checkActiveFixerSessionHelper({
535
584
  workspace,
536
585
  sessionBridge: this.session,
537
- snapshotBridge: this.snapshot,
538
- resetDispatchState: (workspaceId) => this.resetDispatchState(workspaceId),
539
- clearActiveSession: (workspaceId) => this.clearActiveSession(workspaceId),
540
- logger,
586
+ workspaceBridge: this.workspace,
587
+ signal,
588
+ onDispatchChanged: (event) => {
589
+ this.emit(RATCHET_DISPATCH_CHANGED, event);
590
+ },
541
591
  });
542
592
  }
543
- async hasActiveSession(workspaceId) {
544
- return await hasActiveSessionHelper(workspaceId, this.session);
593
+ async hasActiveSession(workspaceId, signal = new AbortController().signal) {
594
+ return await hasActiveSessionHelper(workspaceId, this.session, signal);
545
595
  }
546
- async fetchPRState(workspace, authenticatedUsername) {
547
- const result = await fetchPRStateHelper({
596
+ async fetchPRState(workspace, authenticatedUsername, opts, signal) {
597
+ return await fetchPRStateHelper({
548
598
  workspace,
549
599
  authenticatedUsername,
600
+ reviewTriggerMode: opts?.reviewTriggerMode ?? 'CHANGES_REQUESTED',
550
601
  github: this.github,
551
602
  backoff: this.backoff,
552
- logger,
553
- computeLatestReviewActivityAtMs: (prDetails, reviewComments, authenticatedUsernameArg) => this.computeLatestReviewActivityAtMs(prDetails, reviewComments, authenticatedUsernameArg),
554
- computeDispatchSnapshotKey: (ciStatus, hasChangesRequested, latestReviewActivityAtMs, statusChecks, hasMergeConflict) => this.computeDispatchSnapshotKey(ciStatus, hasChangesRequested, latestReviewActivityAtMs, statusChecks, hasMergeConflict),
603
+ signal,
604
+ bypassRecentFetchCooldown: opts?.bypassRecentFetchCooldown,
555
605
  });
556
- return result;
557
- }
558
- computeDispatchSnapshotKey(ciStatus, hasChangesRequested, latestReviewActivityAtMs, statusChecks, hasMergeConflict) {
559
- return computeDispatchSnapshotKeyHelper(ciStatus, hasChangesRequested, latestReviewActivityAtMs, statusChecks, hasMergeConflict);
560
- }
561
- computeLatestReviewActivityAtMs(prDetails, reviewComments, authenticatedUsername) {
562
- return computeLatestReviewActivityAtMsHelper(prDetails, reviewComments, authenticatedUsername);
563
606
  }
564
- async getAuthenticatedUsernameCached() {
607
+ async getAuthenticatedUsernameCached(signal) {
565
608
  const { username, cache } = await getAuthenticatedUsernameCachedHelper({
566
609
  cachedValue: this.cachedAuthenticatedUsername,
567
610
  github: this.github,
611
+ signal,
568
612
  });
569
613
  this.cachedAuthenticatedUsername = cache;
570
614
  return username;
571
615
  }
572
- determineRatchetState(pr) {
573
- return determineRatchetStateHelper(pr);
574
- }
575
- async triggerFixer(workspace, prStateInfo) {
576
- return await triggerRatchetFixer({
616
+ async triggerFixer(workspace, prStateInfo, retryCount, signal = new AbortController().signal, commitSideEffects = () => {
617
+ }) {
618
+ const action = await triggerRatchetFixer({
577
619
  workspace,
578
620
  prStateInfo,
621
+ retryCount,
579
622
  sessionBridge: this.session,
580
- setActiveSession: (workspaceId, sessionId) => this.setActiveSession(workspaceId, sessionId),
581
- clearActiveSession: (workspaceId) => this.clearActiveSession(workspaceId),
582
- logger,
583
- });
584
- }
585
- async setActiveSession(workspaceId, sessionId) {
586
- await workspaceAccessor.update(workspaceId, { ratchetActiveSessionId: sessionId });
587
- }
588
- async clearActiveSession(workspaceId) {
589
- await workspaceAccessor.update(workspaceId, { ratchetActiveSessionId: null });
590
- }
591
- async resetDispatchState(workspaceId) {
592
- await workspaceAccessor.update(workspaceId, {
593
- ratchetActiveSessionId: null,
594
- ratchetLastCiRunId: null,
623
+ signal,
624
+ commitSideEffects,
625
+ onDispatchChanged: (event) => {
626
+ this.emit(RATCHET_DISPATCH_CHANGED, event);
627
+ },
595
628
  });
629
+ return action;
630
+ }
631
+ async stopActiveRatchetSessionsAfterDisable(workspaceId) {
632
+ const sessions = await this.session.findSessionsByWorkspaceId(workspaceId);
633
+ const activeRatchetSessions = sessions.filter((session) => session.workflow === 'ratchet' &&
634
+ (session.status === SessionStatus.RUNNING || session.status === SessionStatus.IDLE));
635
+ for (const session of activeRatchetSessions) {
636
+ if (!this.session.isSessionRunning(session.id)) {
637
+ continue;
638
+ }
639
+ try {
640
+ await this.session.stopSession(session.id);
641
+ }
642
+ catch (error) {
643
+ logger.warn('Failed to stop ratchet session after disabling ratchet', {
644
+ workspaceId,
645
+ sessionId: session.id,
646
+ error: error instanceof Error ? error.message : String(error),
647
+ });
648
+ }
649
+ }
596
650
  }
597
651
  }
598
652
  export const ratchetService = new RatchetService();