factory-factory 0.3.6 → 0.3.7

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 (464) hide show
  1. package/dist/client/assets/{_basePickBy-CzLmZHC2.js → _basePickBy-BsuMuaCZ.js} +1 -1
  2. package/dist/client/assets/{_baseUniq-B2vXSgXW.js → _baseUniq-BDd8f52s.js} +1 -1
  3. package/dist/client/assets/arc-BWbaJQoA.js +1 -0
  4. package/dist/client/assets/architectureDiagram-VXUJARFQ-C_FQG3JS.js +36 -0
  5. package/dist/client/assets/{blockDiagram-VD42YOAC-CJ7hB7tD.js → blockDiagram-VD42YOAC-CLwvH-wA.js} +4 -4
  6. package/dist/client/assets/{c4Diagram-YG6GDRKO-C9-3yIl7.js → c4Diagram-YG6GDRKO-Ba80_haP.js} +3 -3
  7. package/dist/client/assets/channel-B2z94T-9.js +1 -0
  8. package/dist/client/assets/{chunk-4BX2VUAB-LA-tkKjD.js → chunk-4BX2VUAB-CSlDSMiy.js} +1 -1
  9. package/dist/client/assets/{chunk-55IACEB6-D8Jq3_Ne.js → chunk-55IACEB6-Dm3keBAf.js} +1 -1
  10. package/dist/client/assets/{chunk-B4BG7PRW-BbB1Mssd.js → chunk-B4BG7PRW-BSrvNYuP.js} +1 -1
  11. package/dist/client/assets/{chunk-DI55MBZ5-CpO3WS5m.js → chunk-DI55MBZ5-DFQPoLQZ.js} +1 -1
  12. package/dist/client/assets/{chunk-FMBD7UC4-zaxR2CzR.js → chunk-FMBD7UC4-C1KS438H.js} +1 -1
  13. package/dist/client/assets/chunk-QN33PNHL-4rPPxHo4.js +1 -0
  14. package/dist/client/assets/{chunk-QZHKN3VN-CbCQqsiw.js → chunk-QZHKN3VN-B_sF5IzV.js} +1 -1
  15. package/dist/client/assets/chunk-TZMSLE5B-L-qbjoBp.js +1 -0
  16. package/dist/client/assets/classDiagram-2ON5EDUG-B2LoFG_o.js +1 -0
  17. package/dist/client/assets/classDiagram-v2-WZHVMYZB-B2LoFG_o.js +1 -0
  18. package/dist/client/assets/clone-C8LA0zQQ.js +1 -0
  19. package/dist/client/assets/{cose-bilkent-S5V4N54A-BZtg5BPr.js → cose-bilkent-S5V4N54A-DB7lwAnl.js} +1 -1
  20. package/dist/client/assets/{dagre-6UL2VRFP-DiejfPfI.js → dagre-6UL2VRFP-z2fl_1iD.js} +2 -2
  21. package/dist/client/assets/diagram-PSM6KHXK-BL2iv8II.js +24 -0
  22. package/dist/client/assets/diagram-QEK2KX5R-DgMZW0D1.js +43 -0
  23. package/dist/client/assets/diagram-S2PKOQOG-Ct2QBl2c.js +24 -0
  24. package/dist/client/assets/{erDiagram-Q2GNP2WA-IM11uKRy.js → erDiagram-Q2GNP2WA-DII-pqkb.js} +4 -4
  25. package/dist/client/assets/{flowDiagram-NV44I4VS-DTbQf_7g.js → flowDiagram-NV44I4VS-BV4CMZAZ.js} +5 -5
  26. package/dist/client/assets/{ganttDiagram-JELNMOA3-Bqd3rUDW.js → ganttDiagram-JELNMOA3-Dfj064tE.js} +2 -2
  27. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-Cg2b-j3t.js +65 -0
  28. package/dist/client/assets/{graph-D667hHAk.js → graph-wzICjOO_.js} +1 -1
  29. package/dist/client/assets/index-DvtmO7DV.css +1 -0
  30. package/dist/client/assets/index-EVrp_NXm.js +429 -0
  31. package/dist/client/assets/infoDiagram-HS3SLOUP-D09mbfgG.js +2 -0
  32. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-Br2GUbhE.js → journeyDiagram-XKPGCS4Q-BebsQbuf.js} +1 -1
  33. package/dist/client/assets/{kanban-definition-3W4ZIXB7-D0SM1ldH.js → kanban-definition-3W4ZIXB7-DOuawTNU.js} +6 -6
  34. package/dist/client/assets/{layout-BPE9Dzp9.js → layout-Bj6cMfF5.js} +1 -1
  35. package/dist/client/assets/{linear-5exZFNBA.js → linear-B58HS9F4.js} +1 -1
  36. package/dist/client/assets/{mindmap-definition-VGOIOE7T-D1W9h2lc.js → mindmap-definition-VGOIOE7T-hSFgcTL2.js} +3 -3
  37. package/dist/client/assets/mobile-baseline-CmdjqYSm.js +10 -0
  38. package/dist/client/assets/pieDiagram-ADFJNKIX-D1vkoKs3.js +30 -0
  39. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-Cb0ciONq.js → quadrantDiagram-AYHSOK5B-pMQj9xcS.js} +1 -1
  40. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-BKYaJZ83.js → requirementDiagram-UZGBJVZJ-DvRtxnIi.js} +1 -1
  41. package/dist/client/assets/sankeyDiagram-TZEHDZUN-BWoDxXkR.js +10 -0
  42. package/dist/client/assets/{sequenceDiagram-WL72ISMW-Cys03qhv.js → sequenceDiagram-WL72ISMW-Dz5i1ly3.js} +6 -6
  43. package/dist/client/assets/stateDiagram-FKZM4ZOC-BFd_gXUo.js +1 -0
  44. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CO6XGRkL.js +1 -0
  45. package/dist/client/assets/terminal-instance-BTIzq32H.js +16 -0
  46. package/dist/client/assets/terminal-instance-DDGTF8rc.css +1 -0
  47. package/dist/client/assets/{timeline-definition-IT6M3QCI-C0mVV_zL.js → timeline-definition-IT6M3QCI-BFEIWW6m.js} +4 -4
  48. package/dist/client/assets/{treemap-GDKQZRPO-DK-Wlxvy.js → treemap-GDKQZRPO-CC2Fh6RQ.js} +1 -1
  49. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CFg2MfK9.js → xychartDiagram-PRI3JC2R-DFygXQrm.js} +4 -4
  50. package/dist/client/index.html +2 -2
  51. package/dist/prisma/generated/commonInputTypes.d.ts +30 -0
  52. package/dist/prisma/generated/commonInputTypes.d.ts.map +1 -1
  53. package/dist/prisma/generated/enums.d.ts +6 -0
  54. package/dist/prisma/generated/enums.d.ts.map +1 -1
  55. package/dist/prisma/generated/enums.js +5 -0
  56. package/dist/prisma/generated/enums.js.map +1 -1
  57. package/dist/prisma/generated/internal/class.js +4 -4
  58. package/dist/prisma/generated/internal/class.js.map +1 -1
  59. package/dist/prisma/generated/internal/prismaNamespace.d.ts +3 -0
  60. package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
  61. package/dist/prisma/generated/internal/prismaNamespace.js +2 -0
  62. package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
  63. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +2 -0
  64. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
  65. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +2 -0
  66. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  67. package/dist/prisma/generated/models/UserSettings.d.ts +60 -1
  68. package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
  69. package/dist/prompts/ratchet/dispatch.md +5 -2
  70. package/dist/prompts/workflows/pr-review-fix.md +2 -1
  71. package/dist/src/backend/domains/github/github-cli/schemas.d.ts +1 -1
  72. package/dist/src/backend/domains/github/github-cli/schemas.js +1 -1
  73. package/dist/src/backend/domains/github/github-cli/schemas.js.map +1 -1
  74. package/dist/src/backend/domains/github/github-cli.service.test.js +44 -0
  75. package/dist/src/backend/domains/github/github-cli.service.test.js.map +1 -1
  76. package/dist/src/backend/domains/ratchet/bridges.d.ts +1 -1
  77. package/dist/src/backend/domains/ratchet/bridges.d.ts.map +1 -1
  78. package/dist/src/backend/domains/ratchet/index.d.ts +2 -2
  79. package/dist/src/backend/domains/ratchet/index.d.ts.map +1 -1
  80. package/dist/src/backend/domains/ratchet/index.js +1 -1
  81. package/dist/src/backend/domains/ratchet/index.js.map +1 -1
  82. package/dist/src/backend/domains/ratchet/ratchet.service.d.ts +10 -0
  83. package/dist/src/backend/domains/ratchet/ratchet.service.d.ts.map +1 -1
  84. package/dist/src/backend/domains/ratchet/ratchet.service.js +69 -4
  85. package/dist/src/backend/domains/ratchet/ratchet.service.js.map +1 -1
  86. package/dist/src/backend/domains/ratchet/ratchet.service.test.js +229 -1
  87. package/dist/src/backend/domains/ratchet/ratchet.service.test.js.map +1 -1
  88. package/dist/src/backend/domains/run-script/run-script.service.d.ts +3 -0
  89. package/dist/src/backend/domains/run-script/run-script.service.d.ts.map +1 -1
  90. package/dist/src/backend/domains/run-script/run-script.service.js +34 -2
  91. package/dist/src/backend/domains/run-script/run-script.service.js.map +1 -1
  92. package/dist/src/backend/domains/run-script/run-script.service.test.js +42 -0
  93. package/dist/src/backend/domains/run-script/run-script.service.test.js.map +1 -1
  94. package/dist/src/backend/domains/run-script/startup-script.service.test.d.ts +2 -0
  95. package/dist/src/backend/domains/run-script/startup-script.service.test.d.ts.map +1 -0
  96. package/dist/src/backend/domains/run-script/startup-script.service.test.js +159 -0
  97. package/dist/src/backend/domains/run-script/startup-script.service.test.js.map +1 -0
  98. package/dist/src/backend/domains/session/acp/codex-cli-import-resolution.integration.test.js +2 -2
  99. package/dist/src/backend/domains/session/acp/codex-cli-import-resolution.integration.test.js.map +1 -1
  100. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.d.ts.map +1 -1
  101. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.js +15 -7
  102. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.js.map +1 -1
  103. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.test.js +1 -1
  104. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.test.js.map +1 -1
  105. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.d.ts.map +1 -1
  106. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js +13 -2
  107. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js.map +1 -1
  108. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.js +1 -1
  109. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.js.map +1 -1
  110. package/dist/src/backend/domains/session/data/session-provider-resolver.service.d.ts +1 -0
  111. package/dist/src/backend/domains/session/data/session-provider-resolver.service.d.ts.map +1 -1
  112. package/dist/src/backend/domains/session/data/session-provider-resolver.service.js +6 -0
  113. package/dist/src/backend/domains/session/data/session-provider-resolver.service.js.map +1 -1
  114. package/dist/src/backend/domains/session/data/session-provider-resolver.service.test.js +2 -0
  115. package/dist/src/backend/domains/session/data/session-provider-resolver.service.test.js.map +1 -1
  116. package/dist/src/backend/domains/session/lifecycle/session.service.d.ts +5 -0
  117. package/dist/src/backend/domains/session/lifecycle/session.service.d.ts.map +1 -1
  118. package/dist/src/backend/domains/session/lifecycle/session.service.js +240 -32
  119. package/dist/src/backend/domains/session/lifecycle/session.service.js.map +1 -1
  120. package/dist/src/backend/domains/session/lifecycle/session.service.test.js +166 -1
  121. package/dist/src/backend/domains/session/lifecycle/session.service.test.js.map +1 -1
  122. package/dist/src/backend/domains/session/session-domain.service.d.ts +1 -1
  123. package/dist/src/backend/domains/session/session-domain.service.d.ts.map +1 -1
  124. package/dist/src/backend/domains/session/session-domain.service.js +10 -1
  125. package/dist/src/backend/domains/session/session-domain.service.js.map +1 -1
  126. package/dist/src/backend/domains/session/session-domain.service.test.js +113 -0
  127. package/dist/src/backend/domains/session/session-domain.service.test.js.map +1 -1
  128. package/dist/src/backend/domains/session/store/session-runtime-machine.d.ts +1 -0
  129. package/dist/src/backend/domains/session/store/session-runtime-machine.d.ts.map +1 -1
  130. package/dist/src/backend/domains/session/store/session-runtime-machine.js +5 -2
  131. package/dist/src/backend/domains/session/store/session-runtime-machine.js.map +1 -1
  132. package/dist/src/backend/domains/session/store/session-runtime-machine.test.js +13 -0
  133. package/dist/src/backend/domains/session/store/session-runtime-machine.test.js.map +1 -1
  134. package/dist/src/backend/domains/workspace/index.d.ts +1 -0
  135. package/dist/src/backend/domains/workspace/index.d.ts.map +1 -1
  136. package/dist/src/backend/domains/workspace/index.js +1 -0
  137. package/dist/src/backend/domains/workspace/index.js.map +1 -1
  138. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.d.ts +10 -0
  139. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.d.ts.map +1 -0
  140. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.js +24 -0
  141. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.js.map +1 -0
  142. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.d.ts +2 -0
  143. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.d.ts.map +1 -0
  144. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.js +17 -0
  145. package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.js.map +1 -0
  146. package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts +3 -1
  147. package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts.map +1 -1
  148. package/dist/src/backend/domains/workspace/lifecycle/creation.service.js +12 -10
  149. package/dist/src/backend/domains/workspace/lifecycle/creation.service.js.map +1 -1
  150. package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js +7 -2
  151. package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js.map +1 -1
  152. package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts +50 -0
  153. package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts.map +1 -1
  154. package/dist/src/backend/domains/workspace/lifecycle/data.service.js +8 -1
  155. package/dist/src/backend/domains/workspace/lifecycle/data.service.js.map +1 -1
  156. package/dist/src/backend/domains/workspace/query/user-settings-query.service.d.ts +2 -0
  157. package/dist/src/backend/domains/workspace/query/user-settings-query.service.d.ts.map +1 -1
  158. package/dist/src/backend/domains/workspace/query/user-settings-query.service.js.map +1 -1
  159. package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts +2 -0
  160. package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts.map +1 -1
  161. package/dist/src/backend/domains/workspace/query/workspace-query.service.js +5 -1
  162. package/dist/src/backend/domains/workspace/query/workspace-query.service.js.map +1 -1
  163. package/dist/src/backend/domains/workspace/query/workspace-query.service.test.js +269 -65
  164. package/dist/src/backend/domains/workspace/query/workspace-query.service.test.js.map +1 -1
  165. package/dist/src/backend/domains/workspace/state/flow-state.d.ts.map +1 -1
  166. package/dist/src/backend/domains/workspace/state/flow-state.js +9 -1
  167. package/dist/src/backend/domains/workspace/state/flow-state.js.map +1 -1
  168. package/dist/src/backend/domains/workspace/state/flow-state.test.js +22 -2
  169. package/dist/src/backend/domains/workspace/state/flow-state.test.js.map +1 -1
  170. package/dist/src/backend/domains/workspace/state/kanban-state.test.js +169 -202
  171. package/dist/src/backend/domains/workspace/state/kanban-state.test.js.map +1 -1
  172. package/dist/src/backend/interceptors/branch-rename.interceptor.test.d.ts +2 -0
  173. package/dist/src/backend/interceptors/branch-rename.interceptor.test.d.ts.map +1 -0
  174. package/dist/src/backend/interceptors/branch-rename.interceptor.test.js +79 -0
  175. package/dist/src/backend/interceptors/branch-rename.interceptor.test.js.map +1 -0
  176. package/dist/src/backend/interceptors/branch-rename.utils.d.ts +8 -0
  177. package/dist/src/backend/interceptors/branch-rename.utils.d.ts.map +1 -0
  178. package/dist/src/backend/interceptors/branch-rename.utils.js +34 -0
  179. package/dist/src/backend/interceptors/branch-rename.utils.js.map +1 -0
  180. package/dist/src/backend/interceptors/conversation-rename.interceptor.test.d.ts +2 -0
  181. package/dist/src/backend/interceptors/conversation-rename.interceptor.test.d.ts.map +1 -0
  182. package/dist/src/backend/interceptors/conversation-rename.interceptor.test.js +116 -0
  183. package/dist/src/backend/interceptors/conversation-rename.interceptor.test.js.map +1 -0
  184. package/dist/src/backend/interceptors/index.d.ts.map +1 -1
  185. package/dist/src/backend/interceptors/index.js +4 -0
  186. package/dist/src/backend/interceptors/index.js.map +1 -1
  187. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.d.ts +5 -0
  188. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.d.ts.map +1 -0
  189. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js +211 -0
  190. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js.map +1 -0
  191. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.d.ts +2 -0
  192. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.d.ts.map +1 -0
  193. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js +304 -0
  194. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js.map +1 -0
  195. package/dist/src/backend/interceptors/pre-push-rename.interceptor.d.ts +3 -0
  196. package/dist/src/backend/interceptors/pre-push-rename.interceptor.d.ts.map +1 -0
  197. package/dist/src/backend/interceptors/pre-push-rename.interceptor.js +81 -0
  198. package/dist/src/backend/interceptors/pre-push-rename.interceptor.js.map +1 -0
  199. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.d.ts +2 -0
  200. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.d.ts.map +1 -0
  201. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.js +130 -0
  202. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.js.map +1 -0
  203. package/dist/src/backend/lib/git-status-parser.test.d.ts +2 -0
  204. package/dist/src/backend/lib/git-status-parser.test.d.ts.map +1 -0
  205. package/dist/src/backend/{trpc/workspace.trpc.test.js → lib/git-status-parser.test.js} +1 -1
  206. package/dist/src/backend/lib/git-status-parser.test.js.map +1 -0
  207. package/dist/src/backend/lib/provider-cli-availability.d.ts +15 -0
  208. package/dist/src/backend/lib/provider-cli-availability.d.ts.map +1 -0
  209. package/dist/src/backend/lib/provider-cli-availability.js +26 -0
  210. package/dist/src/backend/lib/provider-cli-availability.js.map +1 -0
  211. package/dist/src/backend/lib/provider-cli-availability.test.d.ts +2 -0
  212. package/dist/src/backend/lib/provider-cli-availability.test.d.ts.map +1 -0
  213. package/dist/src/backend/lib/provider-cli-availability.test.js +39 -0
  214. package/dist/src/backend/lib/provider-cli-availability.test.js.map +1 -0
  215. package/dist/src/backend/lib/session-summaries.d.ts.map +1 -1
  216. package/dist/src/backend/lib/session-summaries.js +1 -0
  217. package/dist/src/backend/lib/session-summaries.js.map +1 -1
  218. package/dist/src/backend/orchestration/cli-health.service.d.ts +18 -0
  219. package/dist/src/backend/orchestration/cli-health.service.d.ts.map +1 -1
  220. package/dist/src/backend/orchestration/cli-health.service.js +106 -3
  221. package/dist/src/backend/orchestration/cli-health.service.js.map +1 -1
  222. package/dist/src/backend/orchestration/cli-health.service.test.js +22 -0
  223. package/dist/src/backend/orchestration/cli-health.service.test.js.map +1 -1
  224. package/dist/src/backend/orchestration/data-backup.service.d.ts.map +1 -1
  225. package/dist/src/backend/orchestration/data-backup.service.js +4 -0
  226. package/dist/src/backend/orchestration/data-backup.service.js.map +1 -1
  227. package/dist/src/backend/orchestration/data-backup.service.test.js +6 -0
  228. package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
  229. package/dist/src/backend/orchestration/decision-log-query.service.test.d.ts +2 -0
  230. package/dist/src/backend/orchestration/decision-log-query.service.test.d.ts.map +1 -0
  231. package/dist/src/backend/orchestration/decision-log-query.service.test.js +44 -0
  232. package/dist/src/backend/orchestration/decision-log-query.service.test.js.map +1 -0
  233. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts +5 -1
  234. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
  235. package/dist/src/backend/orchestration/event-collector.orchestrator.js +77 -6
  236. package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
  237. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js +96 -10
  238. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js.map +1 -1
  239. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
  240. package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +40 -34
  241. package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -1
  242. package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +19 -1
  243. package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -1
  244. package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts.map +1 -1
  245. package/dist/src/backend/orchestration/workspace-init.orchestrator.js +50 -40
  246. package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
  247. package/dist/src/backend/prompts/quick-actions.test.d.ts +2 -0
  248. package/dist/src/backend/prompts/quick-actions.test.d.ts.map +1 -0
  249. package/dist/src/backend/prompts/quick-actions.test.js +59 -0
  250. package/dist/src/backend/prompts/quick-actions.test.js.map +1 -0
  251. package/dist/src/backend/prompts/ratchet-dispatch.d.ts.map +1 -1
  252. package/dist/src/backend/prompts/ratchet-dispatch.js +3 -1
  253. package/dist/src/backend/prompts/ratchet-dispatch.js.map +1 -1
  254. package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts +3 -1
  255. package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts.map +1 -1
  256. package/dist/src/backend/resource_accessors/user-settings.accessor.js +4 -0
  257. package/dist/src/backend/resource_accessors/user-settings.accessor.js.map +1 -1
  258. package/dist/src/backend/routers/websocket/chat.handler.test.js +162 -43
  259. package/dist/src/backend/routers/websocket/chat.handler.test.js.map +1 -1
  260. package/dist/src/backend/routers/websocket/index.d.ts +1 -0
  261. package/dist/src/backend/routers/websocket/index.d.ts.map +1 -1
  262. package/dist/src/backend/routers/websocket/index.js +1 -0
  263. package/dist/src/backend/routers/websocket/index.js.map +1 -1
  264. package/dist/src/backend/routers/websocket/setup-terminal.handler.d.ts +6 -0
  265. package/dist/src/backend/routers/websocket/setup-terminal.handler.d.ts.map +1 -0
  266. package/dist/src/backend/routers/websocket/setup-terminal.handler.js +108 -0
  267. package/dist/src/backend/routers/websocket/setup-terminal.handler.js.map +1 -0
  268. package/dist/src/backend/routers/websocket/terminal.handler.test.js +166 -0
  269. package/dist/src/backend/routers/websocket/terminal.handler.test.js.map +1 -1
  270. package/dist/src/backend/server.d.ts.map +1 -1
  271. package/dist/src/backend/server.js +7 -1
  272. package/dist/src/backend/server.js.map +1 -1
  273. package/dist/src/backend/server.upgrade.test.js +2 -0
  274. package/dist/src/backend/server.upgrade.test.js.map +1 -1
  275. package/dist/src/backend/services/config.service.d.ts +2 -0
  276. package/dist/src/backend/services/config.service.d.ts.map +1 -1
  277. package/dist/src/backend/services/config.service.js +4 -0
  278. package/dist/src/backend/services/config.service.js.map +1 -1
  279. package/dist/src/backend/services/constants.d.ts +4 -0
  280. package/dist/src/backend/services/constants.d.ts.map +1 -1
  281. package/dist/src/backend/services/constants.js +4 -0
  282. package/dist/src/backend/services/constants.js.map +1 -1
  283. package/dist/src/backend/services/env-schemas.d.ts +1 -0
  284. package/dist/src/backend/services/env-schemas.d.ts.map +1 -1
  285. package/dist/src/backend/services/env-schemas.js +1 -0
  286. package/dist/src/backend/services/env-schemas.js.map +1 -1
  287. package/dist/src/backend/services/factory-config.service.test.d.ts +2 -0
  288. package/dist/src/backend/services/factory-config.service.test.d.ts.map +1 -0
  289. package/dist/src/backend/{trpc/project.trpc.test.js → services/factory-config.service.test.js} +1 -1
  290. package/dist/src/backend/services/factory-config.service.test.js.map +1 -0
  291. package/dist/src/backend/services/git-clone.service.d.ts +23 -0
  292. package/dist/src/backend/services/git-clone.service.d.ts.map +1 -0
  293. package/dist/src/backend/services/git-clone.service.js +67 -0
  294. package/dist/src/backend/services/git-clone.service.js.map +1 -0
  295. package/dist/src/backend/services/git-ops.service.test.d.ts +2 -0
  296. package/dist/src/backend/services/git-ops.service.test.d.ts.map +1 -0
  297. package/dist/src/backend/services/git-ops.service.test.js +133 -0
  298. package/dist/src/backend/services/git-ops.service.test.js.map +1 -0
  299. package/dist/src/backend/services/notification.service.test.d.ts +2 -0
  300. package/dist/src/backend/services/notification.service.test.d.ts.map +1 -0
  301. package/dist/src/backend/services/notification.service.test.js +118 -0
  302. package/dist/src/backend/services/notification.service.test.js.map +1 -0
  303. package/dist/src/backend/services/rate-limiter.service.test.d.ts +2 -0
  304. package/dist/src/backend/services/rate-limiter.service.test.d.ts.map +1 -0
  305. package/dist/src/backend/services/rate-limiter.service.test.js +92 -0
  306. package/dist/src/backend/services/rate-limiter.service.test.js.map +1 -0
  307. package/dist/src/backend/services/run-script-proxy.service.d.ts +12 -0
  308. package/dist/src/backend/services/run-script-proxy.service.d.ts.map +1 -0
  309. package/dist/src/backend/services/run-script-proxy.service.js +210 -0
  310. package/dist/src/backend/services/run-script-proxy.service.js.map +1 -0
  311. package/dist/src/backend/services/run-script-proxy.service.test.d.ts +2 -0
  312. package/dist/src/backend/services/run-script-proxy.service.test.d.ts.map +1 -0
  313. package/dist/src/backend/services/run-script-proxy.service.test.js +133 -0
  314. package/dist/src/backend/services/run-script-proxy.service.test.js.map +1 -0
  315. package/dist/src/backend/trpc/admin.router.test.d.ts +2 -0
  316. package/dist/src/backend/trpc/admin.router.test.d.ts.map +1 -0
  317. package/dist/src/backend/trpc/admin.router.test.js +238 -0
  318. package/dist/src/backend/trpc/admin.router.test.js.map +1 -0
  319. package/dist/src/backend/trpc/admin.trpc.d.ts +18 -0
  320. package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
  321. package/dist/src/backend/trpc/admin.trpc.js +18 -0
  322. package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
  323. package/dist/src/backend/trpc/decision-log.router.test.d.ts +2 -0
  324. package/dist/src/backend/trpc/decision-log.router.test.d.ts.map +1 -0
  325. package/dist/src/backend/trpc/decision-log.router.test.js +37 -0
  326. package/dist/src/backend/trpc/decision-log.router.test.js.map +1 -0
  327. package/dist/src/backend/trpc/github.router.test.d.ts +2 -0
  328. package/dist/src/backend/trpc/github.router.test.d.ts.map +1 -0
  329. package/dist/src/backend/trpc/github.router.test.js +89 -0
  330. package/dist/src/backend/trpc/github.router.test.js.map +1 -0
  331. package/dist/src/backend/trpc/index.d.ts +86 -0
  332. package/dist/src/backend/trpc/index.d.ts.map +1 -1
  333. package/dist/src/backend/trpc/linear.router.test.d.ts +2 -0
  334. package/dist/src/backend/trpc/linear.router.test.d.ts.map +1 -0
  335. package/dist/src/backend/trpc/linear.router.test.js +101 -0
  336. package/dist/src/backend/trpc/linear.router.test.js.map +1 -0
  337. package/dist/src/backend/trpc/pr-review.router.test.d.ts +2 -0
  338. package/dist/src/backend/trpc/pr-review.router.test.d.ts.map +1 -0
  339. package/dist/src/backend/trpc/pr-review.router.test.js +86 -0
  340. package/dist/src/backend/trpc/pr-review.router.test.js.map +1 -0
  341. package/dist/src/backend/trpc/procedures/project-scoped.test.d.ts +2 -0
  342. package/dist/src/backend/trpc/procedures/project-scoped.test.d.ts.map +1 -0
  343. package/dist/src/backend/trpc/procedures/project-scoped.test.js +17 -0
  344. package/dist/src/backend/trpc/procedures/project-scoped.test.js.map +1 -0
  345. package/dist/src/backend/trpc/project.router.test.d.ts +2 -0
  346. package/dist/src/backend/trpc/project.router.test.d.ts.map +1 -0
  347. package/dist/src/backend/trpc/project.router.test.js +151 -0
  348. package/dist/src/backend/trpc/project.router.test.js.map +1 -0
  349. package/dist/src/backend/trpc/project.trpc.d.ts +36 -0
  350. package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
  351. package/dist/src/backend/trpc/project.trpc.js +46 -0
  352. package/dist/src/backend/trpc/project.trpc.js.map +1 -1
  353. package/dist/src/backend/trpc/session.router.test.d.ts +2 -0
  354. package/dist/src/backend/trpc/session.router.test.d.ts.map +1 -0
  355. package/dist/src/backend/trpc/session.router.test.js +162 -0
  356. package/dist/src/backend/trpc/session.router.test.js.map +1 -0
  357. package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
  358. package/dist/src/backend/trpc/session.trpc.js +9 -0
  359. package/dist/src/backend/trpc/session.trpc.js.map +1 -1
  360. package/dist/src/backend/trpc/user-settings.router.test.d.ts +2 -0
  361. package/dist/src/backend/trpc/user-settings.router.test.d.ts.map +1 -0
  362. package/dist/src/backend/trpc/user-settings.router.test.js +60 -0
  363. package/dist/src/backend/trpc/user-settings.router.test.js.map +1 -0
  364. package/dist/src/backend/trpc/user-settings.trpc.d.ts +7 -1
  365. package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
  366. package/dist/src/backend/trpc/user-settings.trpc.js +3 -1
  367. package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
  368. package/dist/src/backend/trpc/workspace/files.router.test.d.ts +2 -0
  369. package/dist/src/backend/trpc/workspace/files.router.test.d.ts.map +1 -0
  370. package/dist/src/backend/trpc/workspace/files.router.test.js +117 -0
  371. package/dist/src/backend/trpc/workspace/files.router.test.js.map +1 -0
  372. package/dist/src/backend/trpc/workspace/git.router.test.d.ts +2 -0
  373. package/dist/src/backend/trpc/workspace/git.router.test.d.ts.map +1 -0
  374. package/dist/src/backend/trpc/workspace/git.router.test.js +130 -0
  375. package/dist/src/backend/trpc/workspace/git.router.test.js.map +1 -0
  376. package/dist/src/backend/trpc/workspace/ide.router.test.d.ts +2 -0
  377. package/dist/src/backend/trpc/workspace/ide.router.test.d.ts.map +1 -0
  378. package/dist/src/backend/trpc/workspace/ide.router.test.js +71 -0
  379. package/dist/src/backend/trpc/workspace/ide.router.test.js.map +1 -0
  380. package/dist/src/backend/trpc/workspace/init.router.test.d.ts +2 -0
  381. package/dist/src/backend/trpc/workspace/init.router.test.d.ts.map +1 -0
  382. package/dist/src/backend/trpc/workspace/init.router.test.js +136 -0
  383. package/dist/src/backend/trpc/workspace/init.router.test.js.map +1 -0
  384. package/dist/src/backend/trpc/workspace/run-script.router.test.d.ts +2 -0
  385. package/dist/src/backend/trpc/workspace/run-script.router.test.d.ts.map +1 -0
  386. package/dist/src/backend/trpc/workspace/run-script.router.test.js +106 -0
  387. package/dist/src/backend/trpc/workspace/run-script.router.test.js.map +1 -0
  388. package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts +2 -0
  389. package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts.map +1 -1
  390. package/dist/src/backend/trpc/workspace/run-script.trpc.js +1 -0
  391. package/dist/src/backend/trpc/workspace/run-script.trpc.js.map +1 -1
  392. package/dist/src/backend/trpc/workspace/workspace-helpers.test.d.ts +2 -0
  393. package/dist/src/backend/trpc/workspace/workspace-helpers.test.d.ts.map +1 -0
  394. package/dist/src/backend/trpc/workspace/workspace-helpers.test.js +54 -0
  395. package/dist/src/backend/trpc/workspace/workspace-helpers.test.js.map +1 -0
  396. package/dist/src/backend/trpc/workspace.router.test.d.ts +2 -0
  397. package/dist/src/backend/trpc/workspace.router.test.d.ts.map +1 -0
  398. package/dist/src/backend/trpc/workspace.router.test.js +228 -0
  399. package/dist/src/backend/trpc/workspace.router.test.js.map +1 -0
  400. package/dist/src/backend/trpc/workspace.trpc.d.ts +32 -6
  401. package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
  402. package/dist/src/backend/trpc/workspace.trpc.js +58 -2
  403. package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
  404. package/dist/src/cli/proxy.d.ts +7 -19
  405. package/dist/src/cli/proxy.d.ts.map +1 -1
  406. package/dist/src/cli/proxy.js +63 -292
  407. package/dist/src/cli/proxy.js.map +1 -1
  408. package/dist/src/cli/proxy.test.js +27 -0
  409. package/dist/src/cli/proxy.test.js.map +1 -1
  410. package/dist/src/shared/chat-capabilities.d.ts +1 -0
  411. package/dist/src/shared/chat-capabilities.d.ts.map +1 -1
  412. package/dist/src/shared/chat-capabilities.js +24 -0
  413. package/dist/src/shared/chat-capabilities.js.map +1 -1
  414. package/dist/src/shared/github-types.d.ts +1 -1
  415. package/dist/src/shared/github-types.d.ts.map +1 -1
  416. package/dist/src/shared/proxy-utils.d.ts +61 -0
  417. package/dist/src/shared/proxy-utils.d.ts.map +1 -0
  418. package/dist/src/shared/proxy-utils.js +334 -0
  419. package/dist/src/shared/proxy-utils.js.map +1 -0
  420. package/dist/src/shared/schemas/export-data.schema.d.ts +20 -0
  421. package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
  422. package/dist/src/shared/schemas/export-data.schema.js +3 -0
  423. package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
  424. package/dist/src/shared/session-runtime.d.ts +8 -0
  425. package/dist/src/shared/session-runtime.d.ts.map +1 -1
  426. package/dist/src/shared/session-runtime.js +40 -0
  427. package/dist/src/shared/session-runtime.js.map +1 -1
  428. package/dist/src/shared/workspace-words.d.ts +1 -0
  429. package/dist/src/shared/workspace-words.d.ts.map +1 -1
  430. package/dist/src/shared/workspace-words.js +77 -0
  431. package/dist/src/shared/workspace-words.js.map +1 -1
  432. package/dist/tsconfig.backend.tsbuildinfo +1 -1
  433. package/package.json +10 -6
  434. package/prisma/migrations/20260220110000_add_user_permission_presets/migration.sql +2 -0
  435. package/prisma/schema.prisma +8 -0
  436. package/prompts/ratchet/dispatch.md +5 -2
  437. package/prompts/workflows/pr-review-fix.md +2 -1
  438. package/dist/client/assets/arc-Dq49BrkB.js +0 -1
  439. package/dist/client/assets/architectureDiagram-VXUJARFQ-BGubq_o9.js +0 -36
  440. package/dist/client/assets/channel-DMaON2vY.js +0 -1
  441. package/dist/client/assets/chunk-QN33PNHL-BMmRcEqx.js +0 -1
  442. package/dist/client/assets/chunk-TZMSLE5B-BhRzmVVB.js +0 -1
  443. package/dist/client/assets/classDiagram-2ON5EDUG-BKODUnN9.js +0 -1
  444. package/dist/client/assets/classDiagram-v2-WZHVMYZB-BKODUnN9.js +0 -1
  445. package/dist/client/assets/clone-d5fivKBG.js +0 -1
  446. package/dist/client/assets/diagram-PSM6KHXK-CRE7v2e7.js +0 -24
  447. package/dist/client/assets/diagram-QEK2KX5R-DpAOzBlm.js +0 -43
  448. package/dist/client/assets/diagram-S2PKOQOG-BOJvuhJd.js +0 -24
  449. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-Cd1j3VMN.js +0 -65
  450. package/dist/client/assets/index-BXRnTMjJ.js +0 -448
  451. package/dist/client/assets/index-DllMnbgu.css +0 -1
  452. package/dist/client/assets/infoDiagram-HS3SLOUP-CzpZPq7Y.js +0 -2
  453. package/dist/client/assets/mobile-baseline-BHP-K4kd.js +0 -10
  454. package/dist/client/assets/pieDiagram-ADFJNKIX-DG-umOTY.js +0 -30
  455. package/dist/client/assets/sankeyDiagram-TZEHDZUN-DkR9L4Vw.js +0 -10
  456. package/dist/client/assets/stateDiagram-FKZM4ZOC-DQWCRtS7.js +0 -1
  457. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DoWi8XaX.js +0 -1
  458. package/dist/client/assets/terminal-instance-CpEqekOB.js +0 -1
  459. package/dist/src/backend/trpc/project.trpc.test.d.ts +0 -2
  460. package/dist/src/backend/trpc/project.trpc.test.d.ts.map +0 -1
  461. package/dist/src/backend/trpc/project.trpc.test.js.map +0 -1
  462. package/dist/src/backend/trpc/workspace.trpc.test.d.ts +0 -2
  463. package/dist/src/backend/trpc/workspace.trpc.test.d.ts.map +0 -1
  464. package/dist/src/backend/trpc/workspace.trpc.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session.service.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/domains/session/lifecycle/session.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.service.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/domains/session/lifecycle/session.service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { acpTraceLogger } from '../../../../backend/domains/session/logging/acp-
3
3
  import { sessionFileLogger } from '../../../../backend/domains/session/logging/session-file-logger.service.js';
4
4
  import { sessionDomainService } from '../../../../backend/domains/session/session-domain.service.js';
5
5
  import { interceptorRegistry } from '../../../../backend/interceptors/registry.js';
6
+ import { userSettingsAccessor } from '../../../../backend/resource_accessors/user-settings.accessor.js';
6
7
  import { createLogger } from '../../../../backend/services/logger.service.js';
7
8
  import { extractPlanText } from '../../../../shared/acp-protocol/plan-content.js';
8
9
  import { EMPTY_CHAT_BAR_CAPABILITIES } from '../../../../shared/chat-capabilities.js';
@@ -13,6 +14,15 @@ import { sessionPromptBuilder } from './session.prompt-builder.js';
13
14
  import { sessionRepository } from './session.repository.js';
14
15
  const logger = createLogger('session');
15
16
  const STALE_LOADING_RUNTIME_MAX_AGE_MS = 30_000;
17
+ function toErrorMessage(error) {
18
+ if (error instanceof Error) {
19
+ return error.message;
20
+ }
21
+ if (typeof error === 'object') {
22
+ return JSON.stringify(error);
23
+ }
24
+ return String(error);
25
+ }
16
26
  class SessionService {
17
27
  repository;
18
28
  promptBuilder;
@@ -135,6 +145,7 @@ class SessionService {
135
145
  message: error.message,
136
146
  stack: error.stack,
137
147
  });
148
+ sessionDomainService.markError(sid, error.message);
138
149
  logger.error('ACP client error', {
139
150
  sessionId: sid,
140
151
  error: error.message,
@@ -596,47 +607,48 @@ class SessionService {
596
607
  const startupModePreset = options?.startupModePreset;
597
608
  const startupPermissionMode = startupModePreset === 'plan' ? 'plan' : 'bypassPermissions';
598
609
  const handle = await this.getOrCreateAcpSessionClient(sessionId, { permissionMode: startupPermissionMode }, session);
599
- await this.applyStartupModePreset(sessionId, handle, startupModePreset);
610
+ await this.applyStartupModePreset(sessionId, handle, startupModePreset, session.workflow);
611
+ if (!session.providerSessionId) {
612
+ await this.applyConfiguredPermissionPreset(sessionId, session, handle);
613
+ }
600
614
  const initialPrompt = options?.initialPrompt ?? 'Continue with the task.';
601
615
  if (initialPrompt) {
602
616
  await this.sendSessionMessage(sessionId, initialPrompt);
603
617
  }
604
618
  logger.info('Session started', { sessionId, provider: session.provider });
605
619
  }
606
- async applyStartupModePreset(sessionId, handle, startupModePreset) {
620
+ async applyStartupModePreset(sessionId, handle, startupModePreset, workflow) {
607
621
  if (!startupModePreset) {
608
622
  return;
609
623
  }
610
- const modeOption = handle.configOptions.find((option) => option.category === 'mode');
611
- if (!modeOption) {
612
- return;
613
- }
614
- const availableModeValues = this.getConfigOptionValues(modeOption);
615
- const targetMode = this.resolveStartupModeTarget(handle.provider, startupModePreset, availableModeValues);
616
- if (!targetMode) {
617
- logger.debug('Startup mode preset not available in ACP mode options', {
618
- sessionId,
619
- provider: handle.provider,
620
- startupModePreset,
621
- availableModeValues,
622
- });
623
- return;
624
- }
625
- const currentMode = modeOption.currentValue ? String(modeOption.currentValue) : null;
626
- if (currentMode === targetMode) {
624
+ const modeResult = await this.applyStartupCollaborationModePreset({
625
+ sessionId,
626
+ handle,
627
+ startupModePreset,
628
+ workflow,
629
+ configOptions: handle.configOptions,
630
+ });
631
+ const executionResult = await this.applyStartupExecutionModePreset({
632
+ sessionId,
633
+ handle,
634
+ startupModePreset,
635
+ workflow,
636
+ configOptions: modeResult.configOptions,
637
+ });
638
+ const didUpdate = modeResult.didUpdate || executionResult.didUpdate;
639
+ if (!didUpdate) {
627
640
  return;
628
641
  }
642
+ handle.configOptions = executionResult.configOptions;
629
643
  try {
630
- const configOptions = await acpRuntimeManager.setSessionMode(sessionId, targetMode);
631
- handle.configOptions = configOptions;
632
644
  await this.persistAcpConfigSnapshot(sessionId, {
633
645
  provider: handle.provider,
634
646
  providerSessionId: handle.providerSessionId,
635
- configOptions,
647
+ configOptions: executionResult.configOptions,
636
648
  });
637
649
  sessionDomainService.emitDelta(sessionId, {
638
650
  type: 'config_options_update',
639
- configOptions,
651
+ configOptions: executionResult.configOptions,
640
652
  });
641
653
  sessionDomainService.emitDelta(sessionId, {
642
654
  type: 'chat_capabilities',
@@ -644,13 +656,78 @@ class SessionService {
644
656
  });
645
657
  }
646
658
  catch (error) {
647
- logger.warn('Failed applying startup mode preset', {
659
+ logger.warn('Failed persisting startup mode preset configuration snapshot', {
648
660
  sessionId,
649
661
  provider: handle.provider,
662
+ workflow,
650
663
  startupModePreset,
664
+ error: error instanceof Error ? error.message : String(error),
665
+ });
666
+ }
667
+ }
668
+ async applyStartupCollaborationModePreset(params) {
669
+ const modeOption = params.configOptions.find((option) => option.category === 'mode');
670
+ if (!modeOption) {
671
+ return { configOptions: params.configOptions, didUpdate: false };
672
+ }
673
+ const availableModeValues = this.getConfigOptionValues(modeOption);
674
+ const targetMode = this.resolveStartupModeTarget(params.handle.provider, params.startupModePreset, availableModeValues);
675
+ if (!targetMode) {
676
+ logger.debug('Startup mode preset not available in ACP mode options', {
677
+ sessionId: params.sessionId,
678
+ provider: params.handle.provider,
679
+ workflow: params.workflow,
680
+ startupModePreset: params.startupModePreset,
681
+ availableModeValues,
682
+ });
683
+ return { configOptions: params.configOptions, didUpdate: false };
684
+ }
685
+ const currentMode = modeOption.currentValue ? String(modeOption.currentValue) : null;
686
+ if (currentMode === targetMode) {
687
+ return { configOptions: params.configOptions, didUpdate: false };
688
+ }
689
+ try {
690
+ const configOptions = await acpRuntimeManager.setSessionMode(params.sessionId, targetMode);
691
+ return { configOptions, didUpdate: true };
692
+ }
693
+ catch (error) {
694
+ logger.warn('Failed applying startup mode preset', {
695
+ sessionId: params.sessionId,
696
+ provider: params.handle.provider,
697
+ workflow: params.workflow,
698
+ startupModePreset: params.startupModePreset,
651
699
  targetMode,
652
700
  error: error instanceof Error ? error.message : String(error),
653
701
  });
702
+ return { configOptions: params.configOptions, didUpdate: false };
703
+ }
704
+ }
705
+ async applyStartupExecutionModePreset(params) {
706
+ const executionModeOption = params.configOptions.find((option) => option.id === 'execution_mode' || option.category === 'permission');
707
+ const targetExecutionMode = this.resolveStartupExecutionModeTarget(params.handle.provider, params.workflow, params.startupModePreset, executionModeOption);
708
+ if (!(executionModeOption && targetExecutionMode)) {
709
+ return { configOptions: params.configOptions, didUpdate: false };
710
+ }
711
+ const currentExecutionMode = executionModeOption.currentValue
712
+ ? String(executionModeOption.currentValue)
713
+ : null;
714
+ if (currentExecutionMode === targetExecutionMode) {
715
+ return { configOptions: params.configOptions, didUpdate: false };
716
+ }
717
+ try {
718
+ const configOptions = await acpRuntimeManager.setConfigOption(params.sessionId, executionModeOption.id, targetExecutionMode);
719
+ return { configOptions, didUpdate: true };
720
+ }
721
+ catch (error) {
722
+ logger.warn('Failed applying startup execution-mode preset', {
723
+ sessionId: params.sessionId,
724
+ provider: params.handle.provider,
725
+ workflow: params.workflow,
726
+ startupModePreset: params.startupModePreset,
727
+ targetExecutionMode,
728
+ error: error instanceof Error ? error.message : String(error),
729
+ });
730
+ return { configOptions: params.configOptions, didUpdate: false };
654
731
  }
655
732
  }
656
733
  resolveStartupModeTarget(provider, startupModePreset, availableModeValues) {
@@ -675,6 +752,117 @@ class SessionService {
675
752
  'code',
676
753
  ]);
677
754
  }
755
+ resolveStartupExecutionModeTarget(provider, workflow, startupModePreset, executionModeOption) {
756
+ if (provider !== 'CODEX' ||
757
+ workflow !== 'ratchet' ||
758
+ startupModePreset !== 'non_interactive' ||
759
+ !executionModeOption) {
760
+ return null;
761
+ }
762
+ const availableValues = this.getConfigOptionValues(executionModeOption);
763
+ const yoloByValue = this.findModeValue(availableValues, ['["never","danger-full-access"]']);
764
+ if (yoloByValue) {
765
+ return yoloByValue;
766
+ }
767
+ const yoloByName = this.getSelectOptions(executionModeOption).find((option) => /yolo/i.test(option.name ?? ''));
768
+ return yoloByName?.value ?? null;
769
+ }
770
+ async applyConfiguredPermissionPreset(sessionId, session, handle) {
771
+ if (handle.provider !== 'CODEX') {
772
+ return;
773
+ }
774
+ const executionModeOption = handle.configOptions.find((option) => option.id === 'execution_mode' || option.category === 'permission');
775
+ if (!executionModeOption) {
776
+ return;
777
+ }
778
+ let permissionPreset = session.workflow === 'ratchet' ? 'YOLO' : 'STRICT';
779
+ try {
780
+ const settings = await userSettingsAccessor.get();
781
+ permissionPreset =
782
+ session.workflow === 'ratchet'
783
+ ? settings.ratchetPermissions
784
+ : settings.defaultWorkspacePermissions;
785
+ }
786
+ catch (error) {
787
+ logger.warn('Failed loading user permission presets; using defaults', {
788
+ sessionId,
789
+ workflow: session.workflow,
790
+ error: error instanceof Error ? error.message : String(error),
791
+ });
792
+ }
793
+ const targetExecutionMode = this.resolveConfiguredExecutionModeTarget(executionModeOption, permissionPreset);
794
+ if (!targetExecutionMode) {
795
+ return;
796
+ }
797
+ const currentExecutionMode = executionModeOption.currentValue
798
+ ? String(executionModeOption.currentValue)
799
+ : null;
800
+ if (currentExecutionMode === targetExecutionMode) {
801
+ return;
802
+ }
803
+ try {
804
+ const configOptions = await acpRuntimeManager.setConfigOption(sessionId, executionModeOption.id, targetExecutionMode);
805
+ handle.configOptions = configOptions;
806
+ await this.persistAcpConfigSnapshot(sessionId, {
807
+ provider: handle.provider,
808
+ providerSessionId: handle.providerSessionId,
809
+ configOptions,
810
+ });
811
+ sessionDomainService.emitDelta(sessionId, {
812
+ type: 'config_options_update',
813
+ configOptions,
814
+ });
815
+ sessionDomainService.emitDelta(sessionId, {
816
+ type: 'chat_capabilities',
817
+ capabilities: this.buildAcpChatBarCapabilities(handle),
818
+ });
819
+ }
820
+ catch (error) {
821
+ logger.warn('Failed applying configured session permission preset', {
822
+ sessionId,
823
+ workflow: session.workflow,
824
+ permissionPreset,
825
+ targetExecutionMode,
826
+ error: error instanceof Error ? error.message : String(error),
827
+ });
828
+ }
829
+ }
830
+ resolveConfiguredExecutionModeTarget(executionModeOption, permissionPreset) {
831
+ const availableValues = this.getConfigOptionValues(executionModeOption);
832
+ const preferredValuesByPreset = {
833
+ STRICT: [
834
+ '["on-request","workspace-write"]',
835
+ '["on-request","read-only"]',
836
+ '["on-request","danger-full-access"]',
837
+ ],
838
+ RELAXED: [
839
+ '["on-failure","workspace-write"]',
840
+ '["on-failure","read-only"]',
841
+ '["on-failure","danger-full-access"]',
842
+ ],
843
+ YOLO: [
844
+ '["never","danger-full-access"]',
845
+ '["never","workspace-write"]',
846
+ '["never","read-only"]',
847
+ ],
848
+ };
849
+ const preferredValues = preferredValuesByPreset[permissionPreset];
850
+ const byValue = this.findModeValue(availableValues, preferredValues);
851
+ if (byValue) {
852
+ return byValue;
853
+ }
854
+ const byName = this.getSelectOptions(executionModeOption).find((option) => {
855
+ const name = option.name ?? '';
856
+ if (permissionPreset === 'STRICT') {
857
+ return /on request/i.test(name);
858
+ }
859
+ if (permissionPreset === 'RELAXED') {
860
+ return /on failure/i.test(name);
861
+ }
862
+ return /yolo|never ask/i.test(name);
863
+ });
864
+ return byName?.value ?? null;
865
+ }
678
866
  findModeValue(availableModeValues, preferredModeValues) {
679
867
  if (availableModeValues.length === 0 || preferredModeValues.length === 0) {
680
868
  return null;
@@ -856,10 +1044,20 @@ class SessionService {
856
1044
  if (!session) {
857
1045
  throw new Error(`Session not found: ${sessionId}`);
858
1046
  }
859
- return await this.getOrCreateAcpSessionClient(sessionId, options ?? {}, session);
1047
+ const hadClient = !!acpRuntimeManager.getClient(sessionId);
1048
+ const handle = await this.getOrCreateAcpSessionClient(sessionId, options ?? {}, session);
1049
+ if (!(hadClient || session.providerSessionId)) {
1050
+ await this.applyConfiguredPermissionPreset(sessionId, session, handle);
1051
+ }
1052
+ return handle;
860
1053
  }
861
1054
  async getOrCreateSessionClientFromRecord(session, options) {
862
- return await this.getOrCreateAcpSessionClient(session.id, options ?? {}, session);
1055
+ const hadClient = !!acpRuntimeManager.getClient(session.id);
1056
+ const handle = await this.getOrCreateAcpSessionClient(session.id, options ?? {}, session);
1057
+ if (!(hadClient || session.providerSessionId)) {
1058
+ await this.applyConfiguredPermissionPreset(session.id, session, handle);
1059
+ }
1060
+ return handle;
863
1061
  }
864
1062
  getSessionClient(sessionId) {
865
1063
  return acpRuntimeManager.getClient(sessionId);
@@ -997,11 +1195,7 @@ class SessionService {
997
1195
  }, (error) => {
998
1196
  logger.error('ACP prompt failed', {
999
1197
  sessionId,
1000
- error: error instanceof Error
1001
- ? error.message
1002
- : typeof error === 'object'
1003
- ? JSON.stringify(error)
1004
- : String(error),
1198
+ error: toErrorMessage(error),
1005
1199
  });
1006
1200
  });
1007
1201
  }
@@ -1064,6 +1258,7 @@ class SessionService {
1064
1258
  phase: 'error',
1065
1259
  processState: 'alive',
1066
1260
  activity: 'IDLE',
1261
+ errorMessage: toErrorMessage(error),
1067
1262
  updatedAt: new Date().toISOString(),
1068
1263
  });
1069
1264
  throw error;
@@ -1202,7 +1397,20 @@ class SessionService {
1202
1397
  activity: 'IDLE',
1203
1398
  updatedAt: new Date().toISOString(),
1204
1399
  });
1205
- const handle = await this.createAcpClient(sessionId, options, session);
1400
+ let handle;
1401
+ try {
1402
+ handle = await this.createAcpClient(sessionId, options, session);
1403
+ }
1404
+ catch (error) {
1405
+ sessionDomainService.setRuntimeSnapshot(sessionId, {
1406
+ phase: 'error',
1407
+ processState: 'stopped',
1408
+ activity: 'IDLE',
1409
+ errorMessage: `Failed to start agent: ${toErrorMessage(error)}`,
1410
+ updatedAt: new Date().toISOString(),
1411
+ });
1412
+ throw error;
1413
+ }
1206
1414
  await this.repository.updateSession(sessionId, {
1207
1415
  status: SessionStatus.RUNNING,
1208
1416
  });