@futdevpro/ccap 1.1.2654 → 1.1.2678

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 (219) hide show
  1. package/client-dist/{agent-instances.module-WRHXJGOG.js → agent-instances.module-57SLDNGT.js} +2 -2
  2. package/client-dist/{ca.module-WRRG6OCX.js → ca.module-7YEQLFCE.js} +2 -2
  3. package/client-dist/{cc.module-ENMKDGTO.js → cc.module-ZQRUJ2NA.js} +2 -2
  4. package/client-dist/{chunk-PM3PM5F5.js → chunk-3HKZQ6QH.js} +2 -2
  5. package/client-dist/{chunk-OO7ZXWDK.js → chunk-3O7GOMXE.js} +2 -2
  6. package/client-dist/{chunk-2BXZK757.js → chunk-46TROZ73.js} +2 -2
  7. package/client-dist/{chunk-NZQNHVSI.js → chunk-47OXWMO7.js} +2 -2
  8. package/client-dist/{chunk-255YTLCK.js → chunk-4BLOQJUZ.js} +2 -2
  9. package/client-dist/{chunk-MR5XA67R.js → chunk-4EWKZ7VX.js} +2 -2
  10. package/client-dist/{chunk-MVUT5LXS.js → chunk-55GMH22H.js} +2 -2
  11. package/client-dist/{chunk-PTGZ7SJJ.js → chunk-5BTF5S42.js} +2 -2
  12. package/client-dist/{chunk-QIRN5IIK.js → chunk-5PHMZ2PC.js} +2 -2
  13. package/client-dist/{chunk-KLOLLWQQ.js → chunk-5UZMSDHX.js} +2 -2
  14. package/client-dist/{chunk-HJLXZR6C.js → chunk-5WVHNGPP.js} +2 -2
  15. package/client-dist/{chunk-SRDISLMD.js → chunk-7TB2WG7K.js} +2 -2
  16. package/client-dist/{chunk-AUUGDAUL.js → chunk-7XLL7NID.js} +2 -2
  17. package/client-dist/{chunk-H6PKRAKC.js → chunk-AOLSZNC7.js} +2 -2
  18. package/client-dist/{chunk-R5YKSCH2.js → chunk-B2FB57VV.js} +2 -2
  19. package/client-dist/{chunk-VFBBAM67.js → chunk-B42T7WZA.js} +2 -2
  20. package/client-dist/{chunk-UWZYJKRW.js → chunk-BF24ZE6G.js} +2 -2
  21. package/client-dist/{chunk-BKYHWLA2.js → chunk-C4NA4HMD.js} +2 -2
  22. package/client-dist/{chunk-MGXZBMAI.js → chunk-CEOMFFZ6.js} +2 -2
  23. package/client-dist/{chunk-RE5Q7AQB.js → chunk-CN4NGPWP.js} +2 -2
  24. package/client-dist/{chunk-HM4OTDPI.js → chunk-CYFJDAU7.js} +2 -2
  25. package/client-dist/{chunk-2PBXAMU4.js → chunk-D55TUAWH.js} +2 -2
  26. package/client-dist/{chunk-65VFBUBX.js → chunk-FDETPIGK.js} +2 -2
  27. package/client-dist/{chunk-6Y34IH3F.js → chunk-FL2V7XCW.js} +2 -2
  28. package/client-dist/{chunk-Z6LK3IRI.js → chunk-FLBZDJPT.js} +2 -2
  29. package/client-dist/{chunk-O5IOSFEZ.js → chunk-GQV6D7YE.js} +2 -2
  30. package/client-dist/{chunk-UAYQOBBD.js → chunk-GZPA5HIL.js} +2 -2
  31. package/client-dist/{chunk-TAYROCOU.js → chunk-HH2Y4XQ3.js} +2 -2
  32. package/client-dist/{chunk-2UG6WXXP.js → chunk-I6Z5TNSY.js} +2 -2
  33. package/client-dist/{chunk-GXKOZ54H.js → chunk-IP3XY3MI.js} +2 -2
  34. package/client-dist/{chunk-GXKOZ54H.js.map → chunk-IP3XY3MI.js.map} +1 -1
  35. package/client-dist/{chunk-T32ST6OQ.js → chunk-K5XBE7SE.js} +2 -2
  36. package/client-dist/chunk-NKJRWTWR.js +18 -0
  37. package/client-dist/chunk-NKJRWTWR.js.map +7 -0
  38. package/client-dist/{chunk-CAHXKEWC.js → chunk-NU7PEHG3.js} +2 -2
  39. package/client-dist/{chunk-7QMVGTET.js → chunk-O3AIEHAX.js} +2 -2
  40. package/client-dist/{chunk-WOTQUQ5U.js → chunk-OCRY4GPS.js} +2 -2
  41. package/client-dist/{chunk-3BMZH55Z.js → chunk-OQQ4QRSE.js} +2 -2
  42. package/client-dist/{chunk-OF5XPPWX.js → chunk-P2UDIE7N.js} +2 -2
  43. package/client-dist/{chunk-VAZ4352K.js → chunk-PLOUSLDF.js} +2 -2
  44. package/client-dist/{chunk-KQ6RKBBW.js → chunk-Q6XEN3YG.js} +2 -2
  45. package/client-dist/{chunk-U4PMKYLN.js → chunk-R3GWWEAD.js} +2 -2
  46. package/client-dist/{chunk-WTUYJT46.js → chunk-RCDIEL4H.js} +2 -2
  47. package/client-dist/{chunk-NQLAJ7T4.js → chunk-RCVRN6Z2.js} +2 -2
  48. package/client-dist/{chunk-XI353JYH.js → chunk-SKP32LN3.js} +2 -2
  49. package/client-dist/{chunk-KSFWE4O2.js → chunk-SUKJ3JUX.js} +2 -2
  50. package/client-dist/{chunk-EIA5CAYG.js → chunk-T253RW73.js} +2 -2
  51. package/client-dist/{chunk-OFS5VM34.js → chunk-TBLNL5EM.js} +2 -2
  52. package/client-dist/{chunk-X63J4SYV.js → chunk-TUG3SWTI.js} +2 -2
  53. package/client-dist/{chunk-2I4UVN5M.js → chunk-U7F772X5.js} +2 -2
  54. package/client-dist/{chunk-MYWLR4W4.js → chunk-UPSZTEUC.js} +2 -2
  55. package/client-dist/{chunk-RSXBSBEM.js → chunk-UZAOBHKH.js} +2 -2
  56. package/client-dist/{chunk-GDPZSPXZ.js → chunk-WHY6Q25D.js} +2 -2
  57. package/client-dist/chunk-WHY6Q25D.js.map +7 -0
  58. package/client-dist/{chunk-UGU6H36A.js → chunk-YMGBYK2E.js} +2 -2
  59. package/client-dist/{chunk-QRNA2YDU.js → chunk-YSCAIGTV.js} +2 -2
  60. package/client-dist/{chunk-SU2KP2AJ.js → chunk-Z52KW27H.js} +2 -2
  61. package/client-dist/{chunk-W2ZNTZUV.js → chunk-ZFIOMFSD.js} +2 -2
  62. package/client-dist/{chunk-YLHY2HN2.js → chunk-ZG5SMVYD.js} +2 -2
  63. package/client-dist/{consultant.module-QGROFGTQ.js → consultant.module-POZHY2EP.js} +2 -2
  64. package/client-dist/{crd.module-YMIJIXBS.js → crd.module-Z4PJ7FDF.js} +2 -2
  65. package/client-dist/{dashboard.module-YUAYG77U.js → dashboard.module-VUSPPQCL.js} +2 -2
  66. package/client-dist/do.module-5I2LGJBB.js +18 -0
  67. package/client-dist/do.module-5I2LGJBB.js.map +7 -0
  68. package/client-dist/{document-library.module-TPHZOMD5.js → document-library.module-HLC4IW4I.js} +2 -2
  69. package/client-dist/{embedding-eval.module-XCNEY7ZW.js → embedding-eval.module-UHL5GVM5.js} +2 -2
  70. package/client-dist/{embedding-registry.module-FKTQGZPO.js → embedding-registry.module-6RFQC4DO.js} +2 -2
  71. package/client-dist/{err.module-6YTZPBSI.js → err.module-2LHZ2MNQ.js} +2 -2
  72. package/client-dist/{feedback.module-FXH4A2ZD.js → feedback.module-XF64MIM7.js} +2 -2
  73. package/client-dist/{host-runtime-mcp.module-QI343A2Q.js → host-runtime-mcp.module-DC6ADXTG.js} +2 -2
  74. package/client-dist/index.html +1 -1
  75. package/client-dist/{live-dev-pipeline.module-SH2WEZTD.js → live-dev-pipeline.module-PRAVJPON.js} +2 -2
  76. package/client-dist/{logs.module-KTANRNDB.js → logs.module-CR6DTVWV.js} +2 -2
  77. package/client-dist/{main-G5RE3MA7.js → main-UD3ZVCT3.js} +3 -3
  78. package/client-dist/{master-control-remote-poc.module-32TZYIYD.js → master-control-remote-poc.module-COTAN4DB.js} +2 -2
  79. package/client-dist/{mobile-app.module-SV32TTZQ.js → mobile-app.module-QSFE2Y3Y.js} +2 -2
  80. package/client-dist/{model-registry.module-GJXCEHAI.js → model-registry.module-BTTNZS2T.js} +2 -2
  81. package/client-dist/{oc.module-LOY2EZDI.js → oc.module-QNNKXRLV.js} +2 -2
  82. package/client-dist/{orc.module-EOHBGCPY.js → orc.module-APE7FQ3H.js} +2 -2
  83. package/client-dist/{project-management.module-FHVEHYHW.js → project-management.module-YIUZJFDS.js} +2 -2
  84. package/client-dist/project-source-routed.module-Y32IKRPT.js +2 -0
  85. package/client-dist/{scheduler.module-ER4EEHGN.js → scheduler.module-EYT42PK7.js} +2 -2
  86. package/client-dist/{session.module-IKU3SIWU.js → session.module-4VNLKOHD.js} +2 -2
  87. package/client-dist/{set.module-ULWKQEES.js → set.module-IRCVHVVQ.js} +2 -2
  88. package/client-dist/{setup.module-YTUD4KAQ.js → setup.module-STQIEGFT.js} +2 -2
  89. package/client-dist/{terminals.module-OV5CJCFH.js → terminals.module-CD5W6CQ5.js} +2 -2
  90. package/client-dist/{voice-notes-poc.module-OFSECMU5.js → voice-notes-poc.module-PWGOAH4P.js} +2 -2
  91. package/client-dist/{wfs.module-W62NHB6V.js → wfs.module-NDDLOD2Q.js} +2 -2
  92. package/package.json +1 -1
  93. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.d.ts +7 -2
  94. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.d.ts.map +1 -1
  95. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.js +15 -3
  96. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.js.map +1 -1
  97. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.spec.js +5 -2
  98. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.spec.js.map +1 -1
  99. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-recovery.util.d.ts.map +1 -1
  100. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-recovery.util.js +24 -2
  101. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-recovery.util.js.map +1 -1
  102. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.d.ts +5 -0
  103. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.d.ts.map +1 -1
  104. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js +7 -0
  105. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js.map +1 -1
  106. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts +23 -0
  107. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts.map +1 -1
  108. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js +63 -1
  109. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js.map +1 -1
  110. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-rate-limit-state.data-service.d.ts.map +1 -1
  111. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-rate-limit-state.data-service.js +50 -0
  112. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-rate-limit-state.data-service.js.map +1 -1
  113. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-route.control-service.d.ts.map +1 -1
  114. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-route.control-service.js +22 -0
  115. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-route.control-service.js.map +1 -1
  116. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.d.ts.map +1 -1
  117. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.js +31 -0
  118. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.js.map +1 -1
  119. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-grace-period.control-service.spec.js +33 -0
  120. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-grace-period.control-service.spec.js.map +1 -1
  121. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts +25 -22
  122. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
  123. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +235 -128
  124. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
  125. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-lifecycle.control-service.d.ts.map +1 -1
  126. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-lifecycle.control-service.js +34 -0
  127. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-lifecycle.control-service.js.map +1 -1
  128. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.d.ts +43 -0
  129. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.d.ts.map +1 -0
  130. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.js +126 -0
  131. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.js.map +1 -0
  132. package/client-dist/chunk-GDPZSPXZ.js.map +0 -7
  133. package/client-dist/chunk-OLLOCVEF.js +0 -18
  134. package/client-dist/chunk-OLLOCVEF.js.map +0 -7
  135. package/client-dist/do.module-QSBT44I4.js +0 -18
  136. package/client-dist/do.module-QSBT44I4.js.map +0 -7
  137. package/client-dist/project-source-routed.module-EGLSADDV.js +0 -2
  138. /package/client-dist/{agent-instances.module-WRHXJGOG.js.map → agent-instances.module-57SLDNGT.js.map} +0 -0
  139. /package/client-dist/{ca.module-WRRG6OCX.js.map → ca.module-7YEQLFCE.js.map} +0 -0
  140. /package/client-dist/{cc.module-ENMKDGTO.js.map → cc.module-ZQRUJ2NA.js.map} +0 -0
  141. /package/client-dist/{chunk-PM3PM5F5.js.map → chunk-3HKZQ6QH.js.map} +0 -0
  142. /package/client-dist/{chunk-OO7ZXWDK.js.map → chunk-3O7GOMXE.js.map} +0 -0
  143. /package/client-dist/{chunk-2BXZK757.js.map → chunk-46TROZ73.js.map} +0 -0
  144. /package/client-dist/{chunk-NZQNHVSI.js.map → chunk-47OXWMO7.js.map} +0 -0
  145. /package/client-dist/{chunk-255YTLCK.js.map → chunk-4BLOQJUZ.js.map} +0 -0
  146. /package/client-dist/{chunk-MR5XA67R.js.map → chunk-4EWKZ7VX.js.map} +0 -0
  147. /package/client-dist/{chunk-MVUT5LXS.js.map → chunk-55GMH22H.js.map} +0 -0
  148. /package/client-dist/{chunk-PTGZ7SJJ.js.map → chunk-5BTF5S42.js.map} +0 -0
  149. /package/client-dist/{chunk-QIRN5IIK.js.map → chunk-5PHMZ2PC.js.map} +0 -0
  150. /package/client-dist/{chunk-KLOLLWQQ.js.map → chunk-5UZMSDHX.js.map} +0 -0
  151. /package/client-dist/{chunk-HJLXZR6C.js.map → chunk-5WVHNGPP.js.map} +0 -0
  152. /package/client-dist/{chunk-SRDISLMD.js.map → chunk-7TB2WG7K.js.map} +0 -0
  153. /package/client-dist/{chunk-AUUGDAUL.js.map → chunk-7XLL7NID.js.map} +0 -0
  154. /package/client-dist/{chunk-H6PKRAKC.js.map → chunk-AOLSZNC7.js.map} +0 -0
  155. /package/client-dist/{chunk-R5YKSCH2.js.map → chunk-B2FB57VV.js.map} +0 -0
  156. /package/client-dist/{chunk-VFBBAM67.js.map → chunk-B42T7WZA.js.map} +0 -0
  157. /package/client-dist/{chunk-UWZYJKRW.js.map → chunk-BF24ZE6G.js.map} +0 -0
  158. /package/client-dist/{chunk-BKYHWLA2.js.map → chunk-C4NA4HMD.js.map} +0 -0
  159. /package/client-dist/{chunk-MGXZBMAI.js.map → chunk-CEOMFFZ6.js.map} +0 -0
  160. /package/client-dist/{chunk-RE5Q7AQB.js.map → chunk-CN4NGPWP.js.map} +0 -0
  161. /package/client-dist/{chunk-HM4OTDPI.js.map → chunk-CYFJDAU7.js.map} +0 -0
  162. /package/client-dist/{chunk-2PBXAMU4.js.map → chunk-D55TUAWH.js.map} +0 -0
  163. /package/client-dist/{chunk-65VFBUBX.js.map → chunk-FDETPIGK.js.map} +0 -0
  164. /package/client-dist/{chunk-6Y34IH3F.js.map → chunk-FL2V7XCW.js.map} +0 -0
  165. /package/client-dist/{chunk-Z6LK3IRI.js.map → chunk-FLBZDJPT.js.map} +0 -0
  166. /package/client-dist/{chunk-O5IOSFEZ.js.map → chunk-GQV6D7YE.js.map} +0 -0
  167. /package/client-dist/{chunk-UAYQOBBD.js.map → chunk-GZPA5HIL.js.map} +0 -0
  168. /package/client-dist/{chunk-TAYROCOU.js.map → chunk-HH2Y4XQ3.js.map} +0 -0
  169. /package/client-dist/{chunk-2UG6WXXP.js.map → chunk-I6Z5TNSY.js.map} +0 -0
  170. /package/client-dist/{chunk-T32ST6OQ.js.map → chunk-K5XBE7SE.js.map} +0 -0
  171. /package/client-dist/{chunk-CAHXKEWC.js.map → chunk-NU7PEHG3.js.map} +0 -0
  172. /package/client-dist/{chunk-7QMVGTET.js.map → chunk-O3AIEHAX.js.map} +0 -0
  173. /package/client-dist/{chunk-WOTQUQ5U.js.map → chunk-OCRY4GPS.js.map} +0 -0
  174. /package/client-dist/{chunk-3BMZH55Z.js.map → chunk-OQQ4QRSE.js.map} +0 -0
  175. /package/client-dist/{chunk-OF5XPPWX.js.map → chunk-P2UDIE7N.js.map} +0 -0
  176. /package/client-dist/{chunk-VAZ4352K.js.map → chunk-PLOUSLDF.js.map} +0 -0
  177. /package/client-dist/{chunk-KQ6RKBBW.js.map → chunk-Q6XEN3YG.js.map} +0 -0
  178. /package/client-dist/{chunk-U4PMKYLN.js.map → chunk-R3GWWEAD.js.map} +0 -0
  179. /package/client-dist/{chunk-WTUYJT46.js.map → chunk-RCDIEL4H.js.map} +0 -0
  180. /package/client-dist/{chunk-NQLAJ7T4.js.map → chunk-RCVRN6Z2.js.map} +0 -0
  181. /package/client-dist/{chunk-XI353JYH.js.map → chunk-SKP32LN3.js.map} +0 -0
  182. /package/client-dist/{chunk-KSFWE4O2.js.map → chunk-SUKJ3JUX.js.map} +0 -0
  183. /package/client-dist/{chunk-EIA5CAYG.js.map → chunk-T253RW73.js.map} +0 -0
  184. /package/client-dist/{chunk-OFS5VM34.js.map → chunk-TBLNL5EM.js.map} +0 -0
  185. /package/client-dist/{chunk-X63J4SYV.js.map → chunk-TUG3SWTI.js.map} +0 -0
  186. /package/client-dist/{chunk-2I4UVN5M.js.map → chunk-U7F772X5.js.map} +0 -0
  187. /package/client-dist/{chunk-MYWLR4W4.js.map → chunk-UPSZTEUC.js.map} +0 -0
  188. /package/client-dist/{chunk-RSXBSBEM.js.map → chunk-UZAOBHKH.js.map} +0 -0
  189. /package/client-dist/{chunk-UGU6H36A.js.map → chunk-YMGBYK2E.js.map} +0 -0
  190. /package/client-dist/{chunk-QRNA2YDU.js.map → chunk-YSCAIGTV.js.map} +0 -0
  191. /package/client-dist/{chunk-SU2KP2AJ.js.map → chunk-Z52KW27H.js.map} +0 -0
  192. /package/client-dist/{chunk-W2ZNTZUV.js.map → chunk-ZFIOMFSD.js.map} +0 -0
  193. /package/client-dist/{chunk-YLHY2HN2.js.map → chunk-ZG5SMVYD.js.map} +0 -0
  194. /package/client-dist/{consultant.module-QGROFGTQ.js.map → consultant.module-POZHY2EP.js.map} +0 -0
  195. /package/client-dist/{crd.module-YMIJIXBS.js.map → crd.module-Z4PJ7FDF.js.map} +0 -0
  196. /package/client-dist/{dashboard.module-YUAYG77U.js.map → dashboard.module-VUSPPQCL.js.map} +0 -0
  197. /package/client-dist/{document-library.module-TPHZOMD5.js.map → document-library.module-HLC4IW4I.js.map} +0 -0
  198. /package/client-dist/{embedding-eval.module-XCNEY7ZW.js.map → embedding-eval.module-UHL5GVM5.js.map} +0 -0
  199. /package/client-dist/{embedding-registry.module-FKTQGZPO.js.map → embedding-registry.module-6RFQC4DO.js.map} +0 -0
  200. /package/client-dist/{err.module-6YTZPBSI.js.map → err.module-2LHZ2MNQ.js.map} +0 -0
  201. /package/client-dist/{feedback.module-FXH4A2ZD.js.map → feedback.module-XF64MIM7.js.map} +0 -0
  202. /package/client-dist/{host-runtime-mcp.module-QI343A2Q.js.map → host-runtime-mcp.module-DC6ADXTG.js.map} +0 -0
  203. /package/client-dist/{live-dev-pipeline.module-SH2WEZTD.js.map → live-dev-pipeline.module-PRAVJPON.js.map} +0 -0
  204. /package/client-dist/{logs.module-KTANRNDB.js.map → logs.module-CR6DTVWV.js.map} +0 -0
  205. /package/client-dist/{main-G5RE3MA7.js.map → main-UD3ZVCT3.js.map} +0 -0
  206. /package/client-dist/{master-control-remote-poc.module-32TZYIYD.js.map → master-control-remote-poc.module-COTAN4DB.js.map} +0 -0
  207. /package/client-dist/{mobile-app.module-SV32TTZQ.js.map → mobile-app.module-QSFE2Y3Y.js.map} +0 -0
  208. /package/client-dist/{model-registry.module-GJXCEHAI.js.map → model-registry.module-BTTNZS2T.js.map} +0 -0
  209. /package/client-dist/{oc.module-LOY2EZDI.js.map → oc.module-QNNKXRLV.js.map} +0 -0
  210. /package/client-dist/{orc.module-EOHBGCPY.js.map → orc.module-APE7FQ3H.js.map} +0 -0
  211. /package/client-dist/{project-management.module-FHVEHYHW.js.map → project-management.module-YIUZJFDS.js.map} +0 -0
  212. /package/client-dist/{project-source-routed.module-EGLSADDV.js.map → project-source-routed.module-Y32IKRPT.js.map} +0 -0
  213. /package/client-dist/{scheduler.module-ER4EEHGN.js.map → scheduler.module-EYT42PK7.js.map} +0 -0
  214. /package/client-dist/{session.module-IKU3SIWU.js.map → session.module-4VNLKOHD.js.map} +0 -0
  215. /package/client-dist/{set.module-ULWKQEES.js.map → set.module-IRCVHVVQ.js.map} +0 -0
  216. /package/client-dist/{setup.module-YTUD4KAQ.js.map → setup.module-STQIEGFT.js.map} +0 -0
  217. /package/client-dist/{terminals.module-OV5CJCFH.js.map → terminals.module-CD5W6CQ5.js.map} +0 -0
  218. /package/client-dist/{voice-notes-poc.module-OFSECMU5.js.map → voice-notes-poc.module-PWGOAH4P.js.map} +0 -0
  219. /package/client-dist/{wfs.module-W62NHB6V.js.map → wfs.module-NDDLOD2Q.js.map} +0 -0
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CC_AdapterTerminal_ControlService = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const child_process_1 = require("child_process");
6
5
  const fs = tslib_1.__importStar(require("fs"));
7
6
  const path = tslib_1.__importStar(require("path"));
8
7
  const crypto_1 = require("crypto");
@@ -12,19 +11,17 @@ const ccap_error_control_model_1 = require("../../../../../../../_collections/co
12
11
  const version_const_1 = require("../../../../../../../_collections/core/version.const");
13
12
  const eh_record_build_util_1 = require("../../../../../../ccap-agent/_modules/error-handling/_collections/utils/eh-record-build.util");
14
13
  const ac_exec_terminal_window_status_enum_1 = require("../../../../../../ccap-agent/_modules/agent-core/_enums/ac-exec-terminal-window-status.enum");
15
- const attach_mandatory_child_process_error_handler_util_1 = require("../../../../../../ccap-agent/_modules/tools/_collections/utils/exec/attach-mandatory-child-process-error-handler.util");
16
- const get_windows_cmd_spawn_candidate_paths_util_1 = require("../../../../../../ccap-agent/_modules/tools/_collections/utils/exec/get-windows-cmd-spawn-candidate-paths.util");
17
14
  const instance_id_service_1 = require("../../../../../_services/instance-id.service");
18
15
  const cc_status_enum_1 = require("../../../_enums/cc-status.enum");
19
16
  const cc_cli_args_util_1 = require("../../../_collections/utils/cc-cli-args.util");
20
17
  const cc_process_exit_util_1 = require("../../../_collections/utils/lifecycle/cc-process-exit.util");
21
18
  const cc_kill_reasons_const_1 = require("../../../_collections/consts/cc-kill-reasons.const");
22
- const tls_linux_terminal_spawn_util_1 = require("../../../../../../ccap-agent/_modules/tools/_collections/utils/exec/tls-linux-terminal-spawn.util");
23
19
  const sq_session_type_enum_1 = require("../../../../../../session-queue/_enums/sq-session-type.enum");
24
20
  const session_queue_control_service_1 = require("../../../../../../session-queue/_services/control-services/session-queue.control-service");
25
21
  const claude_code_data_service_1 = require("../claude-code.data-service");
26
22
  const cc_terminal_data_service_1 = require("./cc-terminal.data-service");
27
23
  const cc_terminal_lifecycle_control_service_1 = require("./cc-terminal-lifecycle.control-service");
24
+ const cc_terminal_runner_spawn_util_1 = require("./cc-terminal-runner-spawn.util");
28
25
  /**
29
26
  * CC Session terminal mode adapter (singleton).
30
27
  * Minden terminál-specifikus funkció: Socket.IO namespace, runner spawn,
@@ -93,6 +90,19 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
93
90
  /** Modul betöltés időpontja — grace period számításhoz (process.uptime() nem használható,
94
91
  * mert a pipeline ugyanabban a Node.js process-ben fut a require-on keresztül). */
95
92
  moduleLoadedAt = Date.now();
93
+ /**
94
+ * BUG-CC-RESTART-RECOVERY-POLL-001 (2026-05-08): in-flight resumeSession check
95
+ * callback (cyclic-import elkerülésére). A manager bootstrap-kor regisztrálja
96
+ * `setResumeInFlightChecker((sessionId) => manager.isResumeInFlight(sessionId))`-vel.
97
+ * A `verifyAndKillIfStillClosed` használja, hogy ne ölje meg a friss runner-t,
98
+ * miközben a resumeSession épp DB-státusz reset-en dolgozik (200ms re-read race).
99
+ * Default: () => false (manager még nincs készen → konzervatív, nem véd).
100
+ */
101
+ resumeInFlightChecker = () => false;
102
+ /** Manager bootstrap-kor regisztrálja a checker-t. */
103
+ setResumeInFlightChecker(checker) {
104
+ this.resumeInFlightChecker = checker;
105
+ }
96
106
  /** Flapping detection: gyors connect/disconnect ciklusok számlálása per session.
97
107
  * count: window-based counter (FLAP_WINDOW_MS ablakon belüli disconnect-ek).
98
108
  * totalCount: kumulatív counter (az output/reset óta összesen — force-exit-hez). */
@@ -461,109 +471,32 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
461
471
  if (fallbackUrl) {
462
472
  runnerArgs.push(`--fallbackServerUrl=${fallbackUrl}`);
463
473
  }
464
- let lastSpawnError = '';
465
- let spawned = false;
466
- let spawnAttemptsCount = 0;
467
- let chosenBinary = '';
468
- if (process.platform === 'win32') {
469
- const cmdArgs = [
470
- '/c', 'start',
471
- '/d', params.workspacePath,
472
- title,
473
- 'node',
474
- ...runnerArgs,
475
- ];
476
- // CMD spawn próba (multiple cmd.exe candidate paths, mint exec-terminal-manager).
477
- const cmdCandidates = get_windows_cmd_spawn_candidate_paths_util_1.Tls_GetWindowsCmdSpawnCandidatePaths_Util.getWindowsCmdSpawnCandidatePaths();
478
- spawnAttemptsCount = cmdCandidates.length;
479
- for (const cmdPath of cmdCandidates) {
480
- try {
481
- const child = (0, child_process_1.spawn)(cmdPath, cmdArgs, {
482
- detached: true,
483
- stdio: 'ignore',
484
- cwd: runnerDir,
485
- });
486
- attach_mandatory_child_process_error_handler_util_1.Tls_AttachMandatoryChildProcessErrorHandler_Util.attachMandatoryChildProcessErrorHandler({
487
- child: child,
488
- context: `CC_AdapterTerminal | spawn terminal runner (win32) | cmd=${cmdPath}`,
489
- onError: (err) => {
490
- lastSpawnError = err.message;
491
- },
492
- });
493
- child.unref();
494
- spawned = true;
495
- chosenBinary = cmdPath;
496
- fsm_dynamo_1.DyFM_Log.info(`CC_AdapterTerminal | terminal runner spawned (win32)`
497
- + ` | session: ${params.sessionId}`
498
- + ` | terminalId: ${terminalId}`
499
- + ` | cmd: ${cmdPath}`);
500
- break;
501
- }
502
- catch (err) {
503
- lastSpawnError = fsm_dynamo_1.DyFM_Error.getErrorMessage(err);
504
- }
505
- }
506
- }
507
- else {
508
- // Linux: emulator detekció a Tls_LinuxTerminalSpawn_Util-ból (gnome-terminal / konsole /
509
- // alacritty / kitty / tilix / xterm / x-terminal-emulator); headless host (nincs
510
- // DISPLAY / WAYLAND) vagy hiányzó emulator → null → per-session fallback a caller-nél.
511
- const plan = tls_linux_terminal_spawn_util_1.Tls_LinuxTerminalSpawn_Util.planSpawn({
512
- workspacePath: params.workspacePath,
513
- title: title,
514
- command: 'node',
515
- commandArgs: runnerArgs,
516
- });
517
- spawnAttemptsCount = plan ? 1 : 0;
518
- if (!plan) {
519
- lastSpawnError =
520
- 'No usable Linux terminal emulator found (no $DISPLAY / $WAYLAND_DISPLAY, or no known' +
521
- ' emulator in PATH). Install gnome-terminal / konsole / xterm / etc. and ensure a graphical session.';
522
- }
523
- else {
524
- try {
525
- const child = (0, child_process_1.spawn)(plan.binaryPath, plan.args, {
526
- detached: true,
527
- stdio: 'ignore',
528
- cwd: plan.cwd,
529
- });
530
- attach_mandatory_child_process_error_handler_util_1.Tls_AttachMandatoryChildProcessErrorHandler_Util.attachMandatoryChildProcessErrorHandler({
531
- child: child,
532
- context: `CC_AdapterTerminal | spawn terminal runner (linux) | emulator=${plan.emulatorKind}`,
533
- onError: (err) => {
534
- lastSpawnError = err.message;
535
- },
536
- });
537
- child.unref();
538
- spawned = true;
539
- chosenBinary = plan.binaryPath;
540
- fsm_dynamo_1.DyFM_Log.info(`CC_AdapterTerminal | terminal runner spawned (linux)`
541
- + ` | session: ${params.sessionId}`
542
- + ` | terminalId: ${terminalId}`
543
- + ` | emulator: ${plan.emulatorKind}`
544
- + ` | binary: ${plan.binaryPath}`);
545
- }
546
- catch (err) {
547
- lastSpawnError = fsm_dynamo_1.DyFM_Error.getErrorMessage(err);
548
- }
549
- }
550
- }
551
- if (!spawned) {
474
+ // Cycle 825: platform-specifikus spawn extracted to CC_TerminalRunnerSpawn_Util.
475
+ const spawnResult = await cc_terminal_runner_spawn_util_1.CC_TerminalRunnerSpawn_Util.spawnTerminalRunnerProcess({
476
+ sessionId: params.sessionId,
477
+ terminalId: terminalId,
478
+ workspacePath: params.workspacePath,
479
+ title: title,
480
+ runnerCommand: 'node',
481
+ runnerArgs: runnerArgs,
482
+ runnerCwd: runnerDir,
483
+ });
484
+ if (!spawnResult.spawned) {
552
485
  this.terminalIds.delete(params.sessionId);
553
486
  throw new ccap_error_control_model_1.CCAP_Error({
554
- message: `Failed to spawn terminal runner: ${lastSpawnError}`,
487
+ message: `Failed to spawn terminal runner: ${spawnResult.lastSpawnError}`,
555
488
  errorCode: 'CCAP-CCS-TERMINAL-SPAWN-FAIL',
556
489
  status: 500,
557
- error: new Error(`Failed to spawn terminal runner: ${lastSpawnError}`),
490
+ error: new Error(`Failed to spawn terminal runner: ${spawnResult.lastSpawnError}`),
558
491
  additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
559
492
  additionalContext: {
560
493
  source: 'cc-adapter-terminal | spawnTerminalRunner',
561
494
  platform: process.platform,
562
495
  ccSessionId: params.sessionId,
563
496
  workspacePath: params.workspacePath,
564
- spawnAttemptsCount: spawnAttemptsCount,
565
- chosenBinary: chosenBinary,
566
- lastSpawnError: lastSpawnError,
497
+ spawnAttemptsCount: spawnResult.spawnAttemptsCount,
498
+ chosenBinary: spawnResult.chosenBinary,
499
+ lastSpawnError: spawnResult.lastSpawnError,
567
500
  },
568
501
  }),
569
502
  });
@@ -628,14 +561,20 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
628
561
  // tűnik az üzenet"). A `runnerGracePeriodSec` lifecycle-célra (idle-timeout)
629
562
  // van, NEM HTTP-send-blokkra. 30s bőven elég ahhoz, hogy egy érvényesen
630
563
  // reconnect-elő runner befigyeljen; utána fail-fast → spawnTerminalRunner.
631
- // - had-runner-disconnected: rövidített grace (4 iter = 2s) — user-closed
632
- // window, runner nem fog visszajönni, ne blokkoljuk a HTTP request-et 30s-ig
564
+ // - had-runner-disconnected: minimális grace (1 iter = 500ms).
565
+ // BUG-CC-TERM-FAST-OPEN-001 (2026-05-08, cycle 805): a 2s wait gyakorlatilag
566
+ // pure waste a tipikus user-closed window forgatókönyvben (runner Node-process
567
+ // elment, semmi nincs amit várni). Cycle 263 még 4 iter-rel (2s) volt óvatos
568
+ // — most a Socket.IO transient blip (500ms-en belüli auto-reconnect) is megfér
569
+ // ebben az 1 iter-ben, és a túlnyomó többségi „klassszikus zárt-terminál" eset
570
+ // 1.5s-ot gyorsabb. A handleTerminalRegister stale-runner-rejection logika
571
+ // (line ~1110) kezeli, ha a régi runner késve csatlakozik és újat is spawnoltunk.
633
572
  const graceCase = isServerRestartWindow
634
573
  ? 'server-restart'
635
574
  : 'had-runner-disconnected';
636
575
  const graceIterations = isServerRestartWindow
637
576
  ? CC_AdapterTerminal_ControlService.computeServerRestartGraceIterations(this.runnerGracePeriodSec)
638
- : 4;
577
+ : 1;
639
578
  fsm_dynamo_1.DyFM_Log.info(`CC_AdapterTerminal | grace-period-enter`
640
579
  + ` | session: ${params.sessionId}`
641
580
  + ` | hadRunner: ${this.hadRunnerSet.has(params.sessionId)}`
@@ -672,10 +611,38 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
672
611
  }
673
612
  }
674
613
  if (!socket || !socket.connected) {
675
- await this.spawnTerminalRunner({
614
+ // BUG-CC-TERM-FAST-OPEN-001 (2026-05-08, cycle 805): UI-feedback a spawn
615
+ // alatt. Eddig a user a spinner mögött ~1-2s-ig nem látott semmit, miközben
616
+ // a terminál ablak épp nyílt (gnome-terminal startup + Node runner cold-start
617
+ // + Socket.IO connect + cc:register). Most explicit `starting` státusz-push
618
+ // és statusMessage „Spawning terminal runner..." → a user lát feedback-et,
619
+ // hogy a rendszer dolgozik. A status-transition idempotens, a register utáni
620
+ // running-flip változatlan.
621
+ this.handleProcessStateChange({
676
622
  sessionId: params.sessionId,
677
- workspacePath: params.config.workspacePath,
623
+ status: cc_status_enum_1.CC_Status_Type.starting,
624
+ statusMessage: 'Spawning terminal runner — opening new window…',
678
625
  });
626
+ try {
627
+ await this.spawnTerminalRunner({
628
+ sessionId: params.sessionId,
629
+ workspacePath: params.config.workspacePath,
630
+ });
631
+ }
632
+ catch (spawnErr) {
633
+ // Spawn elhasalt (REG-TIMEOUT vagy SPAWN-FAIL) — a `starting` státusz
634
+ // ragadt volna meg, ami az `isBusyProcessing` busy-halmazában van, és
635
+ // a queue tryDeliverNext-et soha nem engedné kézbesíteni. Reset waitingInput-ra,
636
+ // hogy a következő prompt-küldés (vagy queue-retry) tisztán induljon.
637
+ // A spawn-hibát továbbra is throw-oljuk a hívási láncon felfelé (a route
638
+ // queue-fallback-je elnyeli ha transient, vagy /errors-be megy).
639
+ this.handleProcessStateChange({
640
+ sessionId: params.sessionId,
641
+ status: cc_status_enum_1.CC_Status_Type.waitingInput,
642
+ statusMessage: `Terminal spawn failed — ${fsm_dynamo_1.DyFM_Error.getErrorCode(spawnErr) || 'unknown'}`,
643
+ });
644
+ throw spawnErr;
645
+ }
679
646
  socket = this.terminalSockets.get(params.sessionId);
680
647
  }
681
648
  if (!socket) {
@@ -863,7 +830,39 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
863
830
  const sessionId = (params.data.sessionId ?? '').trim();
864
831
  const terminalId = (params.data.terminalId ?? '').trim();
865
832
  if (!sessionId || !terminalId) {
866
- fsm_dynamo_1.DyFM_Log.warn('CC_AdapterTerminal | terminal register: missing sessionId or terminalId');
833
+ // BUG-CC-RUNNER-EVICT-VISIBILITY-001 (2026-05-07) Phase Silent-A: malformed
834
+ // register silent-drop megszüntetve. Eddig csak warn-log volt — a user nem
835
+ // látta hogy a runner próbálkozott regisztrálni hibás payload-dal, ami
836
+ // version-mismatch / outdated-runner / corrupt-state diagnosztika szempontjából
837
+ // kritikus. Most a /errors page-en is megjelenik.
838
+ fsm_dynamo_1.DyFM_Log.warn(`CC_AdapterTerminal | terminal register: missing sessionId or terminalId`
839
+ + ` | rawSessionId: '${params.data.sessionId ?? '(undefined)'}'`
840
+ + ` | rawTerminalId: '${params.data.terminalId ?? '(undefined)'}'`
841
+ + ` | rawRunnerVersion: '${params.data.runnerVersion ?? '(undefined)'}'`);
842
+ const malformedError = new ccap_error_control_model_1.CCAP_Error({
843
+ message: 'CC Session terminal runner sent malformed register payload: missing'
844
+ + ` sessionId or terminalId. The runner cannot be associated with a session`
845
+ + ` and was silently dropped — likely an outdated runner version or`
846
+ + ` corrupted runtime state.`,
847
+ errorCode: 'CCAP-CCS-TERMINAL-MALFORMED-REGISTER',
848
+ status: 400,
849
+ error: new Error('Malformed cc:register payload — missing sessionId or terminalId'),
850
+ additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
851
+ additionalContext: {
852
+ source: 'cc-adapter-terminal | handleTerminalRegister',
853
+ rawSessionId: params.data.sessionId ?? null,
854
+ rawTerminalId: params.data.terminalId ?? null,
855
+ rawRunnerVersion: params.data.runnerVersion ?? null,
856
+ ready: params.data.ready ?? null,
857
+ hint: 'Az érkező runner cc:register payload-ja hiányos volt. Tipikus okok:\n'
858
+ + ' (a) Outdated globális npm install (futtasd: `npm i -g'
859
+ + ' @futdevpro/ccap@latest`).\n'
860
+ + ' (b) Runner-process belső állapot-korrupciója (próbáld újraindítani).\n'
861
+ + ' (c) Manuális Socket.IO klienssel csatlakozott külső eszköz.',
862
+ },
863
+ }),
864
+ });
865
+ nts_dynamo_1.DyNTS_GlobalService.globalErrorHandler(malformedError);
867
866
  return;
868
867
  }
869
868
  // Cycle 781: runner version eltárolása. A régi (pre-cycle-781) runner-ek
@@ -929,6 +928,40 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
929
928
  + ` | session: ${sessionId}`
930
929
  + ` | terminalId: ${terminalId}`
931
930
  + ` | totalFlapCount: ${totalFlapCount}`);
931
+ // BUG-CC-RUNNER-EVICT-VISIBILITY-001 (2026-05-07) Phase Silent-A: a flapping
932
+ // force-exit eddig csak warn-log volt — a user a UI-on hirtelen ablak-bezárást
933
+ // látott (a runner socket lekapcsolva, terminál gyakran exit-elve), és nem
934
+ // értette miért. Most a /errors page-en explicit látszik az ok.
935
+ const flapWindow = this.flapTracker.get(sessionId);
936
+ const flapError = new ccap_error_control_model_1.CCAP_Error({
937
+ message: `CC Session terminal runner force-exit due to flapping (rapid reconnect cycling)`
938
+ + ` | session: ${sessionId} | totalFlapCount: ${totalFlapCount}`
939
+ + ` | window: ${CC_AdapterTerminal_ControlService.FLAP_WINDOW_MS}ms`,
940
+ errorCode: 'CCAP-CCS-TERMINAL-FLAPPING-FORCE-EXIT',
941
+ status: 503,
942
+ error: new Error(`Runner flapping force-exit (totalCount=${totalFlapCount},`
943
+ + ` threshold=${CC_AdapterTerminal_ControlService.FLAP_FORCE_EXIT_THRESHOLD})`),
944
+ additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
945
+ additionalContext: {
946
+ source: 'cc-adapter-terminal | handleTerminalRegister | flapping-force-exit',
947
+ ccSessionId: sessionId,
948
+ terminalId: terminalId,
949
+ totalFlapCount: totalFlapCount,
950
+ windowFlapCount: flapWindow?.count ?? 0,
951
+ forceExitThreshold: CC_AdapterTerminal_ControlService.FLAP_FORCE_EXIT_THRESHOLD,
952
+ flapWindowMs: CC_AdapterTerminal_ControlService.FLAP_WINDOW_MS,
953
+ hint: 'A runner túl gyakran csatlakozott le-fel az időablakon belül,'
954
+ + ' a server kényszerített disconnect-tel megszakította. Tipikus okok:\n'
955
+ + ' (a) Runner version-mismatch / corrupt npm cache → futtasd:'
956
+ + ' `npm i -g @futdevpro/ccap@latest`.\n'
957
+ + ' (b) Hálózati instabilitás (proxy, VPN reconnect-loop).\n'
958
+ + ' (c) Runner-side bug a Socket.IO reconnect-loop logikában.\n'
959
+ + ' Megoldás: várd meg, majd Restart Runner. Ha visszatér: nézd a'
960
+ + ' runner-window-ot a hibaüzenetért, és frissítsd a runner-t.',
961
+ },
962
+ }),
963
+ });
964
+ nts_dynamo_1.DyNTS_GlobalService.globalErrorHandler(flapError);
932
965
  this.flapTracker.delete(sessionId);
933
966
  try {
934
967
  params.socket.disconnect(true);
@@ -1022,10 +1055,8 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1022
1055
  });
1023
1056
  }
1024
1057
  /**
1025
- * Terminal runner output event kezelése (cc:output).
1026
- * Sequence-based dedup (REQ-CCSESS-TR-002): ha a beérkező sequence <= utolsó feldolgozott,
1027
- * az item duplikát (reconnect race) → eldobjuk, nem propagáljuk a manager-hez.
1028
- * Sikeres feldolgozás után debounce-olt ack-ot kezdeményezünk a runner felé.
1058
+ * cc:output event handler. Sequence dedup REQ-CCSESS-TR-002 (sequence <= last → drop),
1059
+ * sikeres feldolgozás → debounce-olt ack a runner felé.
1029
1060
  */
1030
1061
  handleTerminalOutput(params) {
1031
1062
  const data = params.data;
@@ -1072,10 +1103,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1072
1103
  }
1073
1104
  }
1074
1105
  /**
1075
- * Throttle-olt ack emit a runner felé (REQ-CCSESS-TR-002). Folyamatos output mellett is
1076
- * legalább 500ms-onként kimegy az ack — ellentétben a debounce-szal, ami csak output-szünetben
1077
- * lőne. A pendingAckSequence map tárolja a legmagasabb még nem ack-olt sequence-t; a timer
1078
- * fire-kor a **friss** socket-et olvassuk ki (a reconnect közben a socket referencia cserélődhet).
1106
+ * Throttle-olt ack emit (REQ-CCSESS-TR-002): legalább 500ms-onként folyamatos output mellett
1107
+ * (debounce csak output-szünetben lőne). pendingAckSequence map a legmagasabb pending sequence-t
1108
+ * tárolja, timer fire-kor a friss socket-et olvassa (reconnect cserélheti a socket ref-et).
1079
1109
  */
1080
1110
  scheduleAck(params) {
1081
1111
  // Mindig frissítsük a pending sequence-t a legmagasabbra.
@@ -1290,7 +1320,45 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1290
1320
  + ` | terminalId: ${terminalId}`
1291
1321
  + ` | reason: ${reason ?? 'unknown'}`
1292
1322
  + ` | flap: ${this.flapTracker.get(sessionId)?.count ?? 0}/${this.flapTracker.get(sessionId)?.totalCount ?? 0}`);
1293
- // DB státusz frissítése.
1323
+ // BUG-CC-RUNNER-EVICT-VISIBILITY-001 (2026-05-07) Phase Silent-A: ha az
1324
+ // disconnect oka NEM a tervezett kill (pendingKillReasons üres erre a
1325
+ // sessionre), akkor unexpected — érdemes /errors-be rögzíteni, hogy a
1326
+ // user lássa a runner-vesztés okát (network blip, runner-crash, X server
1327
+ // reset, manual close). A tervezett kill-ekre (user-terminate, runner-restart,
1328
+ // process-replace, lifecycle, stb.) silent — a process-exit handler
1329
+ // úgyis rögzít state-change event-et.
1330
+ const pendingKillReason = this.pendingKillReasons.get(sessionId);
1331
+ if (!pendingKillReason) {
1332
+ const disconnectError = new ccap_error_control_model_1.CCAP_Error({
1333
+ message: `CC Session terminal runner unexpectedly disconnected`
1334
+ + ` | session: ${sessionId} | socketReason: ${reason ?? 'unknown'}`,
1335
+ errorCode: 'CCAP-CCS-TERMINAL-UNEXPECTED-DISCONNECT',
1336
+ status: 503,
1337
+ error: new Error(`Terminal runner unexpectedly disconnected: ${reason ?? 'unknown'}`),
1338
+ additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
1339
+ additionalContext: {
1340
+ source: 'cc-adapter-terminal | handleTerminalDisconnect',
1341
+ ccSessionId: sessionId,
1342
+ terminalId: terminalId,
1343
+ socketReason: reason ?? 'unknown',
1344
+ flapCount: this.flapTracker.get(sessionId)?.count ?? 0,
1345
+ flapTotalCount: this.flapTracker.get(sessionId)?.totalCount ?? 0,
1346
+ hint: 'A runner socket-je váratlanul lecsatlakozott (NEM intencionált'
1347
+ + ' kill volt). Tipikus okok a Socket.IO `reason` mező alapján:\n'
1348
+ + ' - "transport error" → hálózati / proxy hiba.\n'
1349
+ + ' - "ping timeout" → runner unresponsive (event-loop blokkolva, OS-szint).\n'
1350
+ + ' - "io server disconnect" → szerver explicit szakította meg.\n'
1351
+ + ' - "client namespace disconnect" → runner process explicit kilépett.\n'
1352
+ + ' - "transport close" → terminál ablakot bezárta a user vagy az'
1353
+ + ' emulator (claude exitelt és a window auto-close-olt).\n'
1354
+ + ' Ha repeated → BUG-CC-TERM-CLOSE-PREMATURE-001 vagy network instability.',
1355
+ },
1356
+ }),
1357
+ });
1358
+ nts_dynamo_1.DyNTS_GlobalService.globalErrorHandler(disconnectError);
1359
+ }
1360
+ // DB státusz frissítése. .catch() → DyFM_Error.logSimple a server logba —
1361
+ // ha a DB nem elérhető, az nem visszafordítható itt, de legalább látszik.
1294
1362
  if (terminalId) {
1295
1363
  const termDS = new cc_terminal_data_service_1.CC_Terminal_DataService({ issuer: 'cc-adapter-terminal' });
1296
1364
  termDS.findByTerminalId(terminalId).then((doc) => {
@@ -1298,9 +1366,15 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1298
1366
  termDS.updateStatus({
1299
1367
  id: doc._id,
1300
1368
  status: ac_exec_terminal_window_status_enum_1.AC_ExecTerminalWindowStatus_Type.disconnected,
1301
- }).catch(() => { });
1369
+ }).catch((updateErr) => {
1370
+ fsm_dynamo_1.DyFM_Error.logSimple(`CC_AdapterTerminal | DB updateStatus(disconnected) failed`
1371
+ + ` | session: ${sessionId} | terminalId: ${terminalId}`, updateErr);
1372
+ });
1302
1373
  }
1303
- }).catch(() => { });
1374
+ }).catch((findErr) => {
1375
+ fsm_dynamo_1.DyFM_Error.logSimple(`CC_AdapterTerminal | DB findByTerminalId failed`
1376
+ + ` | session: ${sessionId} | terminalId: ${terminalId}`, findErr);
1377
+ });
1304
1378
  }
1305
1379
  // Session manager értesítése: a futó prompt elveszett (runner ablak bezárva).
1306
1380
  // waitingInput-ra váltunk, hogy a user azonnal újra tudjon küldeni.
@@ -1352,10 +1426,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1352
1426
  }
1353
1427
  }
1354
1428
  /**
1355
- * Lazy session config reload DB-ből (fire-and-forget).
1356
- * Szerver restart után az in-memory sessionConfigs üres — a visszacsatlakozó runner-nek
1357
- * szüksége van a config-ra (model, effort, mode, stb.) a következő prompt-nál.
1358
- * Ha a session nem található a DB-ben, logol és nem hoz létre config-ot.
1429
+ * Lazy session config reload DB-ből (fire-and-forget). Server restart után az in-memory
1430
+ * sessionConfigs üres — a visszacsatlakozó runner-nek kell config (model, effort, mode);
1431
+ * ha a session DB-ben nincs, logol és nem hoz létre config-ot.
1359
1432
  */
1360
1433
  reloadSessionConfigFromDb(params) {
1361
1434
  const localCcapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId();
@@ -1391,9 +1464,33 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1391
1464
  + ` | model: ${config.model ?? 'default'}`
1392
1465
  + ` | effort: ${config.reasoningEffort ?? 'default'}`);
1393
1466
  }).catch((err) => {
1467
+ // BUG-CC-RUNNER-EVICT-VISIBILITY-001 (2026-05-07) Phase Silent-A: a
1468
+ // config-reload csendben hibázott — a következő prompt default config-gal
1469
+ // futott (a model / reasoningEffort / mode beállítások elvesztek a session-ből).
1470
+ // Most a /errors page-en is látszik, hogy a felhasználó tudjon róla.
1394
1471
  fsm_dynamo_1.DyFM_Log.error(`CC_AdapterTerminal | reloadSessionConfigFromDb failed`
1395
1472
  + ` | sessionId: ${params.sessionId}`
1396
1473
  + ` | error: ${fsm_dynamo_1.DyFM_Error.getErrorMessage(err)}`);
1474
+ const reloadError = new ccap_error_control_model_1.CCAP_Error({
1475
+ message: `CC Session config reload from DB failed — subsequent prompts will use`
1476
+ + ` default configuration (model / reasoning effort / mode / permission policy).`,
1477
+ errorCode: 'CCAP-CCS-CONFIG-RELOAD-FAILED',
1478
+ status: 500,
1479
+ error: err instanceof Error ? err : new Error(String(err)),
1480
+ additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
1481
+ additionalContext: {
1482
+ source: 'cc-adapter-terminal | reloadSessionConfigFromDb',
1483
+ ccSessionId: params.sessionId,
1484
+ localCcapId: localCcapId,
1485
+ hint: 'A session-config reload sikertelen volt. A user szempontjából a következő'
1486
+ + ' prompt-nál a Claude default beállításokkal fut, ami nemkívánt viselkedést'
1487
+ + ' eredményezhet (rossz model, rossz reasoning effort). Megoldás:\n'
1488
+ + ' - Nézd meg a DB-elérhetőséget (mongo logs, replica lag).\n'
1489
+ + ' - Ha visszatér: a session config-ját explicit állítsd újra a UI-on.',
1490
+ },
1491
+ }),
1492
+ });
1493
+ nts_dynamo_1.DyNTS_GlobalService.globalErrorHandler(reloadError);
1397
1494
  });
1398
1495
  }
1399
1496
  // ── Private callback helpers ─────────────────────────────────
@@ -1425,10 +1522,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1425
1522
  }
1426
1523
  // ── Private: session completion guard ─────────────────────────
1427
1524
  /**
1428
- * Session lezárás guard: ha a session DB-állapota completed/terminated/errored vagy
1429
- * törölt, a runner-t cc:kill + disconnect-tel kiutasítjuk (fire-and-forget).
1430
- * Tipikus eset: server restart → recovery lezárta a session-t, de a runner CMD ablak
1431
- * túlélte és reconnect-elt — enélkül idle-timeout-ig nyitva maradna.
1525
+ * Completion guard: ha a session DB completed/terminated/errored/deleted, runner cc:kill +
1526
+ * disconnect (fire-and-forget). Tipikus: server restart-recovery lezárta, de runner ablak
1527
+ * túlélte és reconnect-elt idle-timeout-ig nyitva maradna.
1432
1528
  */
1433
1529
  rejectRunnerIfSessionClosed(params) {
1434
1530
  const localCcapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId();
@@ -1483,12 +1579,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1483
1579
  });
1484
1580
  }
1485
1581
  /**
1486
- * Második DB-olvasás a kill előtt race elkerülése.
1487
- *
1488
- * Ha a session DB állapota az első olvasás óta `creating`/`starting`/`running`/`waiting-input`/`stalled`
1489
- * állapotra változott (pl. resumeSession lefutott közben), nem öljük a runnert — a session
1490
- * aktívan használatban van. Ha viszont továbbra is closed (completed/terminated/errored),
1491
- * akkor valódi orphan, ki kell ütni.
1582
+ * Második DB-olvasás kill előtt (race elkerülés). Ha az állapot creating/starting/running/
1583
+ * waiting-input/stalled-ra váltott (pl. resumeSession közben), NEM ölünk — aktív session.
1584
+ * Ha továbbra is closed (completed/terminated/errored) valódi orphan, kill.
1492
1585
  */
1493
1586
  verifyAndKillIfStillClosed(params) {
1494
1587
  const localCcapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId();
@@ -1510,6 +1603,20 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1510
1603
  return;
1511
1604
  }
1512
1605
  if (params.closedStatuses.includes(session.status ?? '')) {
1606
+ // BUG-CC-RESTART-RECOVERY-POLL-001 (2026-05-08): in-flight resumeSession
1607
+ // race-protect. Ha a sessionre éppen FUT egy resumeSession (a manager
1608
+ // resumeInFlight Set-jében szerepel), akkor a 200ms re-read DB-snapshot
1609
+ // még a stale closed-státuszt mutathatja (a resumeSession DB-write még
1610
+ // nem committolt). Ne öljük meg a friss runner-t — a resumeSession be fogja
1611
+ // állítani a státuszt creating-re és a runner felhasználható.
1612
+ if (this.resumeInFlightChecker(params.sessionId)) {
1613
+ fsm_dynamo_1.DyFM_Log.info(`CC_AdapterTerminal | runner KEPT (resume in-flight): DB still shows closed,`
1614
+ + ` but resumeSession is currently running and will set status to creating shortly`
1615
+ + ` | session: ${params.sessionId}`
1616
+ + ` | terminalId: ${params.terminalId}`
1617
+ + ` | dbStatus: ${session.status}`);
1618
+ return;
1619
+ }
1513
1620
  // Még mindig closed → valódi orphan, kill.
1514
1621
  // BUG-CC-RUNNER-EVICT-VISIBILITY-001 (2026-05-07): user-visible error
1515
1622
  // record a /errors page-en. Eddig csak warn-log volt, a user nem látta