@futdevpro/ccap 1.1.2509 → 1.1.2582

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 (305) hide show
  1. package/client-dist/{agent-instances.module-QQHSIHVZ.js → agent-instances.module-7VEBBM5Y.js} +2 -2
  2. package/client-dist/ca.module-ZFHRCLF7.js +5 -0
  3. package/client-dist/ca.module-ZFHRCLF7.js.map +7 -0
  4. package/client-dist/cc.module-JZX6WYEJ.js +4 -0
  5. package/client-dist/cc.module-JZX6WYEJ.js.map +7 -0
  6. package/client-dist/{chunk-SQDIXJP2.js → chunk-25EU3GLD.js} +2 -2
  7. package/client-dist/{chunk-JAUNNZJN.js → chunk-2O52ESML.js} +2 -2
  8. package/client-dist/{chunk-APXVQISJ.js → chunk-2SPJ3JFQ.js} +2 -2
  9. package/client-dist/{chunk-KFS5VDDV.js → chunk-3FTM2EWS.js} +2 -2
  10. package/client-dist/{chunk-JUWOVLJL.js → chunk-3SNKGBZL.js} +2 -2
  11. package/client-dist/{chunk-ZQCAHEXF.js → chunk-3TXLV3DA.js} +2 -2
  12. package/client-dist/{chunk-TJENOBO6.js → chunk-53QIVVCG.js} +2 -2
  13. package/client-dist/{chunk-G7FLLFQV.js → chunk-6BANNHB6.js} +2 -2
  14. package/client-dist/{chunk-XNHRRX4L.js → chunk-AHZ2P3Z3.js} +2 -2
  15. package/client-dist/{chunk-Q4YAQFNP.js → chunk-AYBZUIVP.js} +2 -2
  16. package/client-dist/{chunk-2HIXFHTS.js → chunk-BC56SIVJ.js} +3 -3
  17. package/client-dist/chunk-BC56SIVJ.js.map +1 -0
  18. package/client-dist/{chunk-PUFVETM4.js → chunk-BDL5F3DK.js} +2 -2
  19. package/client-dist/{chunk-KTAWOOUI.js → chunk-CN2EISGD.js} +2 -2
  20. package/client-dist/{chunk-FVJHSIII.js → chunk-CTB35A3I.js} +2 -2
  21. package/client-dist/{chunk-KZUKSPQS.js → chunk-CXE46KLX.js} +2 -2
  22. package/client-dist/{chunk-V4X7URSF.js → chunk-CZEGJES4.js} +2 -2
  23. package/client-dist/{chunk-NJUY7I3Y.js → chunk-D4YCGDYF.js} +2 -2
  24. package/client-dist/{chunk-72FQNGJO.js → chunk-D5YBMGLK.js} +2 -2
  25. package/client-dist/{chunk-CKR2NA35.js → chunk-DR5CW2Q5.js} +2 -2
  26. package/client-dist/{chunk-JIZE3HXP.js → chunk-DTMD64OK.js} +2 -2
  27. package/client-dist/{chunk-H7BIO73O.js → chunk-ERTQ57LC.js} +2 -2
  28. package/client-dist/{chunk-5L4G3C5C.js → chunk-F763HXOW.js} +2 -2
  29. package/client-dist/{chunk-AY3XK6RS.js → chunk-FH7BZ5KC.js} +2 -2
  30. package/client-dist/{chunk-QHUBJGWS.js → chunk-FKFHKEJ6.js} +2 -2
  31. package/client-dist/{chunk-TM2SED26.js → chunk-GH6753SA.js} +2 -2
  32. package/client-dist/{chunk-XQKHUGZW.js → chunk-GYAPUB7L.js} +2 -2
  33. package/client-dist/{chunk-CJVTAHYF.js → chunk-IX66ULOP.js} +2 -2
  34. package/client-dist/{chunk-4FSRDTZN.js → chunk-KNCYCQVI.js} +2 -2
  35. package/client-dist/{chunk-5MNGROTB.js → chunk-M4TYKIMG.js} +2 -2
  36. package/client-dist/{chunk-AM2JGX23.js → chunk-NJZZZGTL.js} +2 -2
  37. package/client-dist/{chunk-F46E5KZ3.js → chunk-OVYV3NO4.js} +2 -2
  38. package/client-dist/{chunk-AQ72GJMX.js → chunk-OZ2XX74S.js} +2 -2
  39. package/client-dist/{chunk-Y6PUQHIU.js → chunk-PWFZ6PI4.js} +2 -2
  40. package/client-dist/{chunk-OQ24BGZJ.js → chunk-RIPG5ILJ.js} +2 -2
  41. package/client-dist/{chunk-4RFLGW5L.js → chunk-T3KV2MBE.js} +2 -2
  42. package/client-dist/{chunk-O65C5CZH.js → chunk-T7O5N6F5.js} +2 -2
  43. package/client-dist/{chunk-MSY74RUJ.js → chunk-TYFIVDHM.js} +2 -2
  44. package/client-dist/{chunk-U5VAWMNB.js → chunk-U4EZD6B3.js} +2 -2
  45. package/client-dist/chunk-U7PPOB3Z.js +3 -0
  46. package/client-dist/{chunk-6XRGBDSK.js.map → chunk-U7PPOB3Z.js.map} +4 -4
  47. package/client-dist/{chunk-G44KM4TW.js → chunk-UDXUA4QP.js} +2 -2
  48. package/client-dist/{chunk-PYVQEDEW.js → chunk-UKMTMXFC.js} +2 -2
  49. package/client-dist/{chunk-NTUVOM4B.js → chunk-UKTCBZ23.js} +2 -2
  50. package/client-dist/{chunk-YWWHFCS3.js → chunk-USYW262H.js} +2 -2
  51. package/client-dist/{chunk-GNW4X5RC.js → chunk-UXQXE4O4.js} +2 -2
  52. package/client-dist/{chunk-2E6OA2KT.js → chunk-VA5ORQEA.js} +2 -2
  53. package/client-dist/{chunk-WX6TVKDG.js → chunk-VD2IXKGO.js} +2 -2
  54. package/client-dist/{chunk-LTRCLVM3.js → chunk-W3N4KJQU.js} +2 -2
  55. package/client-dist/{chunk-RRV4AJML.js → chunk-WKKV76Y4.js} +2 -2
  56. package/client-dist/{chunk-EMTKUTBC.js → chunk-WRTBJFYJ.js} +2 -2
  57. package/client-dist/{chunk-FOUQZW4D.js → chunk-WTKKMZP3.js} +2 -2
  58. package/client-dist/{chunk-OG33J4ZD.js → chunk-XZ6U37UV.js} +2 -2
  59. package/client-dist/{chunk-VW3WQQBF.js → chunk-YKPMO3C3.js} +2 -2
  60. package/client-dist/{chunk-M7Z2O4RG.js → chunk-ZIAX3RD5.js} +2 -2
  61. package/client-dist/{chunk-3R7FDMZ3.js → chunk-ZPHUSRQ2.js} +2 -2
  62. package/client-dist/chunk-ZR3JTDG2.js +2 -0
  63. package/client-dist/chunk-ZR3JTDG2.js.map +7 -0
  64. package/client-dist/{chunk-VM45PE3J.js → chunk-ZVEM6BEV.js} +2 -2
  65. package/client-dist/{consultant.module-HFZCP4N4.js → consultant.module-355QJ5VP.js} +2 -2
  66. package/client-dist/{crd.module-6R37JW4V.js → crd.module-23O7HPSP.js} +2 -2
  67. package/client-dist/{dashboard.module-YAZCCU26.js → dashboard.module-B3DBG7VA.js} +2 -2
  68. package/client-dist/do-chat-popup.component-3NJKFEEW.css.map +7 -0
  69. package/client-dist/{do-instance-panel.component-K5IGXVCT.css.map → do-instance-panel.component-MDYTDDAF.css.map} +2 -2
  70. package/client-dist/do-office-scene.component-Z3ULZ7BC.css.map +7 -0
  71. package/client-dist/do.module-T3T4EI72.js +18 -0
  72. package/client-dist/do.module-T3T4EI72.js.map +7 -0
  73. package/client-dist/{document-library.module-EFTFUIXJ.js → document-library.module-HCB3IBFU.js} +2 -2
  74. package/client-dist/{embedding-eval.module-NIPCFFWB.js → embedding-eval.module-Y4S72P6L.js} +2 -2
  75. package/client-dist/{embedding-registry.module-4GLSQNAT.js → embedding-registry.module-WRLE4M2R.js} +2 -2
  76. package/client-dist/{err.module-2RPVCWXD.js → err.module-NEHVNIDC.js} +2 -2
  77. package/client-dist/{feedback.module-WVLKZ533.js → feedback.module-M22IIOC3.js} +2 -2
  78. package/client-dist/{host-runtime-mcp.module-GRW6RSCA.js → host-runtime-mcp.module-BTQGLDN3.js} +2 -2
  79. package/client-dist/index.html +2 -2
  80. package/client-dist/{live-dev-pipeline.module-P3DEM6CE.js → live-dev-pipeline.module-TBWOJ2K7.js} +2 -2
  81. package/client-dist/{logs.module-U6KCQYDU.js → logs.module-WLXYHRBN.js} +2 -2
  82. package/client-dist/main-CPF6CLMC.js +7 -0
  83. package/client-dist/main-CPF6CLMC.js.map +7 -0
  84. package/client-dist/{master-control-remote-poc.module-RYSKRGXU.js → master-control-remote-poc.module-NZ4AZJHI.js} +2 -2
  85. package/client-dist/{mobile-app.module-EBMTWXS2.js → mobile-app.module-JUBFTHW3.js} +2 -2
  86. package/client-dist/{model-registry.module-F6R5MSBB.js → model-registry.module-AIAGFPNO.js} +2 -2
  87. package/client-dist/oc.module-KYUWTHHM.js +3 -0
  88. package/client-dist/oc.module-KYUWTHHM.js.map +7 -0
  89. package/client-dist/{orc.module-NJQ6XGPN.js → orc.module-BMV7EOI7.js} +2 -2
  90. package/client-dist/{project-management.module-JQEQIHL2.js → project-management.module-X5VO2F54.js} +11 -11
  91. package/client-dist/project-management.module-X5VO2F54.js.map +7 -0
  92. package/client-dist/project-source-routed.module-CTOB53C7.js +2 -0
  93. package/client-dist/{scheduler.module-WWPV25AU.js → scheduler.module-IKACZ62P.js} +2 -2
  94. package/client-dist/session.module-GLASF7US.js +12 -0
  95. package/client-dist/session.module-GLASF7US.js.map +7 -0
  96. package/client-dist/set.module-COGQHP7X.js +11 -0
  97. package/client-dist/{set.module-IKSASSWS.js.map → set.module-COGQHP7X.js.map} +3 -3
  98. package/client-dist/{setup.module-RVTO6I3R.js → setup.module-CWFUSK2V.js} +2 -2
  99. package/client-dist/styles-JBAOFG2I.css +2 -0
  100. package/client-dist/styles-JBAOFG2I.css.map +7 -0
  101. package/client-dist/{terminals.module-AZEN47GZ.js → terminals.module-FIV7G4Y6.js} +2 -2
  102. package/client-dist/{voice-notes-poc.module-5JUTNIBP.js → voice-notes-poc.module-HWX6J3HW.js} +2 -2
  103. package/client-dist/{wfs.module-5MMNXIRW.js → wfs.module-AF5XUOHR.js} +2 -2
  104. package/package.json +1 -1
  105. package/server/build/src/_collections/core/ccap-post-services-bootstrap.util.js +1 -1
  106. package/server/build/src/_collections/core/ccap-post-services-bootstrap.util.js.map +1 -1
  107. package/server/build/src/_modules/ai-systems/_modules/model-registry/_models/data-models/mrg-instance-registry.data-model.d.ts +7 -0
  108. package/server/build/src/_modules/ai-systems/_modules/model-registry/_models/data-models/mrg-instance-registry.data-model.d.ts.map +1 -1
  109. package/server/build/src/_modules/ai-systems/_modules/model-registry/_models/data-models/mrg-instance-registry.data-model.js +8 -0
  110. package/server/build/src/_modules/ai-systems/_modules/model-registry/_models/data-models/mrg-instance-registry.data-model.js.map +1 -1
  111. package/server/build/src/_modules/ccap-agent/_modules/agent-path/_modules/default-path/default-path.util.d.ts +5 -0
  112. package/server/build/src/_modules/ccap-agent/_modules/agent-path/_modules/default-path/default-path.util.d.ts.map +1 -1
  113. package/server/build/src/_modules/ccap-agent/_modules/agent-path/_modules/default-path/default-path.util.js +19 -2
  114. package/server/build/src/_modules/ccap-agent/_modules/agent-path/_modules/default-path/default-path.util.js.map +1 -1
  115. package/server/build/src/_modules/ccap-agent/_modules/agent-path/_modules/default-path/default-path.util.spec.js +12 -0
  116. package/server/build/src/_modules/ccap-agent/_modules/agent-path/_modules/default-path/default-path.util.spec.js.map +1 -1
  117. package/server/build/src/_modules/ccap-agent/_modules/tools/_modules/fixed-tools/_modules/self/_collections/utils/self.util.spec.js +37 -0
  118. package/server/build/src/_modules/ccap-agent/_modules/tools/_modules/fixed-tools/_modules/self/_collections/utils/self.util.spec.js.map +1 -1
  119. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.d.ts +31 -0
  120. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.d.ts.map +1 -0
  121. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.js +29 -0
  122. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.js.map +1 -0
  123. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.d.ts +28 -0
  124. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.d.ts.map +1 -0
  125. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.js +40 -0
  126. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.js.map +1 -0
  127. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.spec.d.ts +6 -0
  128. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.spec.d.ts.map +1 -0
  129. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.spec.js +39 -0
  130. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-transient-terminal-error.util.spec.js.map +1 -0
  131. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.d.ts +13 -0
  132. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.d.ts.map +1 -1
  133. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.js +13 -3
  134. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.js.map +1 -1
  135. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.spec.js +40 -0
  136. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.spec.js.map +1 -1
  137. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.d.ts +21 -0
  138. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.d.ts.map +1 -1
  139. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js +45 -1
  140. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js.map +1 -1
  141. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts.map +1 -1
  142. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js +48 -11
  143. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js.map +1 -1
  144. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-route.control-service.d.ts.map +1 -1
  145. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-route.control-service.js +35 -7
  146. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-route.control-service.js.map +1 -1
  147. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-grace-period.control-service.spec.js +41 -0
  148. 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
  149. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-runner-versions.control-service.spec.d.ts +12 -0
  150. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-runner-versions.control-service.spec.d.ts.map +1 -0
  151. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-runner-versions.control-service.spec.js +62 -0
  152. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal-runner-versions.control-service.spec.js.map +1 -0
  153. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts +26 -31
  154. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
  155. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +91 -68
  156. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
  157. package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.d.ts +1 -0
  158. package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.d.ts.map +1 -1
  159. package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.js +6 -0
  160. package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.js.map +1 -1
  161. package/server/build/src/_modules/peer-instance/_models/interfaces/pei-bootstrap-attempt.interface.d.ts +33 -0
  162. package/server/build/src/_modules/peer-instance/_models/interfaces/pei-bootstrap-attempt.interface.d.ts.map +1 -0
  163. package/server/build/src/_modules/peer-instance/_models/interfaces/pei-bootstrap-attempt.interface.js +3 -0
  164. package/server/build/src/_modules/peer-instance/_models/interfaces/pei-bootstrap-attempt.interface.js.map +1 -0
  165. package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.d.ts +33 -0
  166. package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.d.ts.map +1 -1
  167. package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.js +78 -1
  168. package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.js.map +1 -1
  169. package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.spec.js +60 -0
  170. package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.spec.js.map +1 -1
  171. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.d.ts.map +1 -1
  172. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.js +3 -0
  173. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.js.map +1 -1
  174. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.spec.d.ts +9 -0
  175. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.spec.d.ts.map +1 -0
  176. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.spec.js +43 -0
  177. package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.spec.js.map +1 -0
  178. package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.d.ts +44 -0
  179. package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.d.ts.map +1 -1
  180. package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.js +94 -0
  181. package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.js.map +1 -1
  182. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-diagnostics-result.interface.d.ts +39 -2
  183. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-diagnostics-result.interface.d.ts.map +1 -1
  184. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-diagnostics-result.interface.js +0 -7
  185. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-diagnostics-result.interface.js.map +1 -1
  186. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-peer-result.interface.d.ts +13 -0
  187. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-peer-result.interface.d.ts.map +1 -0
  188. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-peer-result.interface.js +3 -0
  189. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-peer-result.interface.js.map +1 -0
  190. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-ws-result.interface.d.ts +23 -0
  191. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-ws-result.interface.d.ts.map +1 -0
  192. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-ws-result.interface.js +3 -0
  193. package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-reconnect-ws-result.interface.js.map +1 -0
  194. package/server/build/src/_modules/setup-config/_routes/setup-config.controller.d.ts.map +1 -1
  195. package/server/build/src/_modules/setup-config/_routes/setup-config.controller.js +24 -0
  196. package/server/build/src/_modules/setup-config/_routes/setup-config.controller.js.map +1 -1
  197. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.d.ts +43 -5
  198. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.d.ts.map +1 -1
  199. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.js +156 -7
  200. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.js.map +1 -1
  201. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.d.ts +4 -3
  202. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.d.ts.map +1 -1
  203. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.js +91 -3
  204. package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.js.map +1 -1
  205. package/server/build/src/_modules/setup-config/_services/setup-config.control-service.js +1 -1
  206. package/server/build/src/_modules/setup-config/_services/setup-config.control-service.js.map +1 -1
  207. package/client-dist/ca.module-FTQALPNM.js +0 -5
  208. package/client-dist/ca.module-FTQALPNM.js.map +0 -7
  209. package/client-dist/cc.module-UPCFEGEY.js +0 -4
  210. package/client-dist/cc.module-UPCFEGEY.js.map +0 -7
  211. package/client-dist/chunk-2HIXFHTS.js.map +0 -1
  212. package/client-dist/chunk-3UDLOQR2.js +0 -2
  213. package/client-dist/chunk-3UDLOQR2.js.map +0 -7
  214. package/client-dist/chunk-6XRGBDSK.js +0 -3
  215. package/client-dist/do-character.component-PZHI3KZL.css.map +0 -7
  216. package/client-dist/do-chat-popup.component-FXZ46EHV.css.map +0 -7
  217. package/client-dist/do-office-scene.component-ILYUPFGH.css.map +0 -7
  218. package/client-dist/do.module-QV56KZQO.js +0 -18
  219. package/client-dist/do.module-QV56KZQO.js.map +0 -7
  220. package/client-dist/main-F4G6PI7V.js +0 -7
  221. package/client-dist/main-F4G6PI7V.js.map +0 -7
  222. package/client-dist/oc.module-VIBOASVG.js +0 -3
  223. package/client-dist/oc.module-VIBOASVG.js.map +0 -7
  224. package/client-dist/project-management.module-JQEQIHL2.js.map +0 -7
  225. package/client-dist/project-source-routed.module-LZCPWG6J.js +0 -2
  226. package/client-dist/session.module-YYFJ6B5X.js +0 -12
  227. package/client-dist/session.module-YYFJ6B5X.js.map +0 -7
  228. package/client-dist/set.module-IKSASSWS.js +0 -11
  229. package/client-dist/styles-ILB5HBSL.css +0 -2
  230. package/client-dist/styles-ILB5HBSL.css.map +0 -7
  231. /package/client-dist/{agent-instances.module-QQHSIHVZ.js.map → agent-instances.module-7VEBBM5Y.js.map} +0 -0
  232. /package/client-dist/{chunk-SQDIXJP2.js.map → chunk-25EU3GLD.js.map} +0 -0
  233. /package/client-dist/{chunk-JAUNNZJN.js.map → chunk-2O52ESML.js.map} +0 -0
  234. /package/client-dist/{chunk-APXVQISJ.js.map → chunk-2SPJ3JFQ.js.map} +0 -0
  235. /package/client-dist/{chunk-KFS5VDDV.js.map → chunk-3FTM2EWS.js.map} +0 -0
  236. /package/client-dist/{chunk-JUWOVLJL.js.map → chunk-3SNKGBZL.js.map} +0 -0
  237. /package/client-dist/{chunk-ZQCAHEXF.js.map → chunk-3TXLV3DA.js.map} +0 -0
  238. /package/client-dist/{chunk-TJENOBO6.js.map → chunk-53QIVVCG.js.map} +0 -0
  239. /package/client-dist/{chunk-G7FLLFQV.js.map → chunk-6BANNHB6.js.map} +0 -0
  240. /package/client-dist/{chunk-XNHRRX4L.js.map → chunk-AHZ2P3Z3.js.map} +0 -0
  241. /package/client-dist/{chunk-Q4YAQFNP.js.map → chunk-AYBZUIVP.js.map} +0 -0
  242. /package/client-dist/{chunk-PUFVETM4.js.map → chunk-BDL5F3DK.js.map} +0 -0
  243. /package/client-dist/{chunk-KTAWOOUI.js.map → chunk-CN2EISGD.js.map} +0 -0
  244. /package/client-dist/{chunk-FVJHSIII.js.map → chunk-CTB35A3I.js.map} +0 -0
  245. /package/client-dist/{chunk-KZUKSPQS.js.map → chunk-CXE46KLX.js.map} +0 -0
  246. /package/client-dist/{chunk-V4X7URSF.js.map → chunk-CZEGJES4.js.map} +0 -0
  247. /package/client-dist/{chunk-NJUY7I3Y.js.map → chunk-D4YCGDYF.js.map} +0 -0
  248. /package/client-dist/{chunk-72FQNGJO.js.map → chunk-D5YBMGLK.js.map} +0 -0
  249. /package/client-dist/{chunk-CKR2NA35.js.map → chunk-DR5CW2Q5.js.map} +0 -0
  250. /package/client-dist/{chunk-JIZE3HXP.js.map → chunk-DTMD64OK.js.map} +0 -0
  251. /package/client-dist/{chunk-H7BIO73O.js.map → chunk-ERTQ57LC.js.map} +0 -0
  252. /package/client-dist/{chunk-5L4G3C5C.js.map → chunk-F763HXOW.js.map} +0 -0
  253. /package/client-dist/{chunk-AY3XK6RS.js.map → chunk-FH7BZ5KC.js.map} +0 -0
  254. /package/client-dist/{chunk-QHUBJGWS.js.map → chunk-FKFHKEJ6.js.map} +0 -0
  255. /package/client-dist/{chunk-TM2SED26.js.map → chunk-GH6753SA.js.map} +0 -0
  256. /package/client-dist/{chunk-XQKHUGZW.js.map → chunk-GYAPUB7L.js.map} +0 -0
  257. /package/client-dist/{chunk-CJVTAHYF.js.map → chunk-IX66ULOP.js.map} +0 -0
  258. /package/client-dist/{chunk-4FSRDTZN.js.map → chunk-KNCYCQVI.js.map} +0 -0
  259. /package/client-dist/{chunk-5MNGROTB.js.map → chunk-M4TYKIMG.js.map} +0 -0
  260. /package/client-dist/{chunk-AM2JGX23.js.map → chunk-NJZZZGTL.js.map} +0 -0
  261. /package/client-dist/{chunk-F46E5KZ3.js.map → chunk-OVYV3NO4.js.map} +0 -0
  262. /package/client-dist/{chunk-AQ72GJMX.js.map → chunk-OZ2XX74S.js.map} +0 -0
  263. /package/client-dist/{chunk-Y6PUQHIU.js.map → chunk-PWFZ6PI4.js.map} +0 -0
  264. /package/client-dist/{chunk-OQ24BGZJ.js.map → chunk-RIPG5ILJ.js.map} +0 -0
  265. /package/client-dist/{chunk-4RFLGW5L.js.map → chunk-T3KV2MBE.js.map} +0 -0
  266. /package/client-dist/{chunk-O65C5CZH.js.map → chunk-T7O5N6F5.js.map} +0 -0
  267. /package/client-dist/{chunk-MSY74RUJ.js.map → chunk-TYFIVDHM.js.map} +0 -0
  268. /package/client-dist/{chunk-U5VAWMNB.js.map → chunk-U4EZD6B3.js.map} +0 -0
  269. /package/client-dist/{chunk-G44KM4TW.js.map → chunk-UDXUA4QP.js.map} +0 -0
  270. /package/client-dist/{chunk-PYVQEDEW.js.map → chunk-UKMTMXFC.js.map} +0 -0
  271. /package/client-dist/{chunk-NTUVOM4B.js.map → chunk-UKTCBZ23.js.map} +0 -0
  272. /package/client-dist/{chunk-YWWHFCS3.js.map → chunk-USYW262H.js.map} +0 -0
  273. /package/client-dist/{chunk-GNW4X5RC.js.map → chunk-UXQXE4O4.js.map} +0 -0
  274. /package/client-dist/{chunk-2E6OA2KT.js.map → chunk-VA5ORQEA.js.map} +0 -0
  275. /package/client-dist/{chunk-WX6TVKDG.js.map → chunk-VD2IXKGO.js.map} +0 -0
  276. /package/client-dist/{chunk-LTRCLVM3.js.map → chunk-W3N4KJQU.js.map} +0 -0
  277. /package/client-dist/{chunk-RRV4AJML.js.map → chunk-WKKV76Y4.js.map} +0 -0
  278. /package/client-dist/{chunk-EMTKUTBC.js.map → chunk-WRTBJFYJ.js.map} +0 -0
  279. /package/client-dist/{chunk-FOUQZW4D.js.map → chunk-WTKKMZP3.js.map} +0 -0
  280. /package/client-dist/{chunk-OG33J4ZD.js.map → chunk-XZ6U37UV.js.map} +0 -0
  281. /package/client-dist/{chunk-VW3WQQBF.js.map → chunk-YKPMO3C3.js.map} +0 -0
  282. /package/client-dist/{chunk-M7Z2O4RG.js.map → chunk-ZIAX3RD5.js.map} +0 -0
  283. /package/client-dist/{chunk-3R7FDMZ3.js.map → chunk-ZPHUSRQ2.js.map} +0 -0
  284. /package/client-dist/{chunk-VM45PE3J.js.map → chunk-ZVEM6BEV.js.map} +0 -0
  285. /package/client-dist/{consultant.module-HFZCP4N4.js.map → consultant.module-355QJ5VP.js.map} +0 -0
  286. /package/client-dist/{crd.module-6R37JW4V.js.map → crd.module-23O7HPSP.js.map} +0 -0
  287. /package/client-dist/{dashboard.module-YAZCCU26.js.map → dashboard.module-B3DBG7VA.js.map} +0 -0
  288. /package/client-dist/{document-library.module-EFTFUIXJ.js.map → document-library.module-HCB3IBFU.js.map} +0 -0
  289. /package/client-dist/{embedding-eval.module-NIPCFFWB.js.map → embedding-eval.module-Y4S72P6L.js.map} +0 -0
  290. /package/client-dist/{embedding-registry.module-4GLSQNAT.js.map → embedding-registry.module-WRLE4M2R.js.map} +0 -0
  291. /package/client-dist/{err.module-2RPVCWXD.js.map → err.module-NEHVNIDC.js.map} +0 -0
  292. /package/client-dist/{feedback.module-WVLKZ533.js.map → feedback.module-M22IIOC3.js.map} +0 -0
  293. /package/client-dist/{host-runtime-mcp.module-GRW6RSCA.js.map → host-runtime-mcp.module-BTQGLDN3.js.map} +0 -0
  294. /package/client-dist/{live-dev-pipeline.module-P3DEM6CE.js.map → live-dev-pipeline.module-TBWOJ2K7.js.map} +0 -0
  295. /package/client-dist/{logs.module-U6KCQYDU.js.map → logs.module-WLXYHRBN.js.map} +0 -0
  296. /package/client-dist/{master-control-remote-poc.module-RYSKRGXU.js.map → master-control-remote-poc.module-NZ4AZJHI.js.map} +0 -0
  297. /package/client-dist/{mobile-app.module-EBMTWXS2.js.map → mobile-app.module-JUBFTHW3.js.map} +0 -0
  298. /package/client-dist/{model-registry.module-F6R5MSBB.js.map → model-registry.module-AIAGFPNO.js.map} +0 -0
  299. /package/client-dist/{orc.module-NJQ6XGPN.js.map → orc.module-BMV7EOI7.js.map} +0 -0
  300. /package/client-dist/{project-source-routed.module-LZCPWG6J.js.map → project-source-routed.module-CTOB53C7.js.map} +0 -0
  301. /package/client-dist/{scheduler.module-WWPV25AU.js.map → scheduler.module-IKACZ62P.js.map} +0 -0
  302. /package/client-dist/{setup.module-RVTO6I3R.js.map → setup.module-CWFUSK2V.js.map} +0 -0
  303. /package/client-dist/{terminals.module-AZEN47GZ.js.map → terminals.module-FIV7G4Y6.js.map} +0 -0
  304. /package/client-dist/{voice-notes-poc.module-5JUTNIBP.js.map → voice-notes-poc.module-HWX6J3HW.js.map} +0 -0
  305. /package/client-dist/{wfs.module-5MMNXIRW.js.map → wfs.module-AF5XUOHR.js.map} +0 -0
@@ -2,17 +2,26 @@ import { Request, Response } from 'express';
2
2
  import { DyNTS_SingletonService } from '@futdevpro/nts-dynamo';
3
3
  import { SC_ClusterDiagnosticsResult_Interface } from '../../_models/interfaces/cluster/sc-cluster-diagnostics-result.interface';
4
4
  import { SC_ClusterReBootstrapResult_Interface } from '../../_models/interfaces/cluster/sc-cluster-rebootstrap-result.interface';
5
+ import { SC_ClusterReconnectPeerResult_Interface } from '../../_models/interfaces/cluster/sc-cluster-reconnect-peer-result.interface';
6
+ import { SC_ClusterReconnectWsResult_Interface } from '../../_models/interfaces/cluster/sc-cluster-reconnect-ws-result.interface';
5
7
  /**
6
- * REQ-CLUSTER-DEBUG-001 (cycle 748): Cluster (PEI) settings debug/status endpoints.
8
+ * REQ-CLUSTER-DEBUG-001 (cycle 748) + REQ-CLUSTER-DEBUG-WS-001:
9
+ * Cluster (PEI) settings debug/status endpoints.
7
10
  *
8
- * Két végpont:
11
+ * Végpontok:
9
12
  * - `GET /api/settings/cluster/diagnostics`: rich állapot (bootstrap-flag,
10
13
  * sharedSecret-set, peers list lastHeartbeatAt-tel és WS-connected-flag-gel,
11
- * effektív poll/timeout). A sharedSecret VALUE soha nem kerül vissza.
14
+ * effektív poll/timeout, per-peer utolsó WS-hiba). A sharedSecret VALUE soha
15
+ * nem kerül vissza.
12
16
  * - `POST /api/settings/cluster/re-bootstrap`: kézzel trigger-eli a
13
17
  * `PEI_Bootstrap_ControlService.bootstrapIfConfigured`-t (idempotens — már-
14
- * bootstrapped esetben no-op). Hasznos, ha a user mentette a sharedSecret-et,
15
- * de a bootstrap nem futott le automatikusan (régi verzió, vagy edge case).
18
+ * bootstrapped esetben no-op).
19
+ * - `POST /api/settings/cluster/reconnect-ws` (REQ-CLUSTER-DEBUG-WS-001):
20
+ * teljes PEI WS-client restart (minden peer disconnect + új connect). Akkor
21
+ * hasznos, ha a peer-ek heartbeat-elnek (online ✓), de WS-csatlakozott=0,
22
+ * ezért a cross-instance dispatch nem megy.
23
+ * - `POST /api/settings/cluster/reconnect-ws/:instanceKey` (REQ-CLUSTER-DEBUG-WS-001):
24
+ * egyetlen peer manuál WS reconnect (sornkénti gomb a peer-táblában).
16
25
  *
17
26
  * REQ-SYS-CONTROLLER-THIN: a routing controller csak delegál; minden logika
18
27
  * itt van.
@@ -28,14 +37,43 @@ export declare class SC_Cluster_ControlService extends DyNTS_SingletonService {
28
37
  * Idempotens: ha már bootstrapped, info-üzenetet ad vissza (no-op).
29
38
  */
30
39
  handlePostReBootstrap(_req: Request, res: Response, _issuer: string): Promise<void>;
40
+ /**
41
+ * REQ-CLUSTER-DEBUG-WS-001: POST /api/settings/cluster/reconnect-ws —
42
+ * teljes PEI WS-client restart (minden peer disconnect + új connect-kísérlet).
43
+ * Tipikus eset: heartbeat-elnek a peer-ek (online ✓), de WS-csatlakozott=0,
44
+ * ezért a cross-instance dispatch nem megy. Egy kattintás → friss kísérlet.
45
+ */
46
+ handlePostReconnectWs(_req: Request, res: Response, _issuer: string): Promise<void>;
47
+ /**
48
+ * REQ-CLUSTER-DEBUG-WS-001: POST /api/settings/cluster/reconnect-ws/:instanceKey —
49
+ * egyetlen peer manuál WS reconnect (sornkénti gomb a debug-paneles peer-táblában).
50
+ */
51
+ handlePostReconnectPeer(req: Request, res: Response, _issuer: string): Promise<void>;
31
52
  /**
32
53
  * Diagnostics összeállítása. Külön metódus a unit-teszthez.
33
54
  */
34
55
  buildDiagnostics(): Promise<SC_ClusterDiagnosticsResult_Interface>;
56
+ /**
57
+ * REQ-CLUSTER-DEBUG-WS-001 (Slice B): bootstrappedAtMs → ISO string;
58
+ * üres ha sose volt sikeres bootstrap.
59
+ */
60
+ private formatBootstrappedAtIso;
35
61
  /**
36
62
  * Re-bootstrap végrehajtása. Külön metódus a unit-teszthez.
37
63
  */
38
64
  runReBootstrap(): SC_ClusterReBootstrapResult_Interface;
65
+ /**
66
+ * REQ-CLUSTER-DEBUG-WS-001: PEI WS-client restart logika (külön metódus a
67
+ * unit-teszthez). Pre-condition: PEI bootstrapped — különben nincs sharedSecret
68
+ * tárolva, és a restart nem tudna autentikálni a peer-ekkel.
69
+ */
70
+ runReconnectWs(): Promise<SC_ClusterReconnectWsResult_Interface>;
71
+ /**
72
+ * REQ-CLUSTER-DEBUG-WS-001: egy-peer-szintű WS reconnect logika.
73
+ */
74
+ runReconnectPeer(params: {
75
+ instanceKey: string;
76
+ }): Promise<SC_ClusterReconnectPeerResult_Interface>;
39
77
  /**
40
78
  * Registry list — külön metódus a unit-teszthez (stub-olható a `findDataList`).
41
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sc-cluster.control-service.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EACL,qCAAqC,EAEtC,MAAM,0EAA0E,CAAC;AAClF,OAAO,EAAE,qCAAqC,EAAE,MAAM,0EAA0E,CAAC;AAmBjI;;;;;;;;;;;;;;GAcG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;IAEnE,MAAM,CAAC,WAAW,IAAI,yBAAyB;IAI/C;;OAEG;IACG,2BAA2B,CAC/B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;IACG,qBAAqB,CACzB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,qCAAqC,CAAC;IAiExE;;OAEG;IACH,cAAc,IAAI,qCAAqC;IA6CvD;;OAEG;YACW,YAAY;CAM3B"}
1
+ {"version":3,"file":"sc-cluster.control-service.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,OAAO,EACL,qCAAqC,EAEtC,MAAM,0EAA0E,CAAC;AAClF,OAAO,EAAE,qCAAqC,EAAE,MAAM,0EAA0E,CAAC;AACjI,OAAO,EAAE,uCAAuC,EAAE,MAAM,6EAA6E,CAAC;AACtI,OAAO,EAAE,qCAAqC,EAAE,MAAM,2EAA2E,CAAC;AAmBlI;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;IAEnE,MAAM,CAAC,WAAW,IAAI,yBAAyB;IAI/C;;OAEG;IACG,2BAA2B,CAC/B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;IACG,qBAAqB,CACzB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAahB;;;;;OAKG;IACG,qBAAqB,CACzB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;IACG,uBAAuB,CAC3B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAwBhB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,qCAAqC,CAAC;IAmFxE;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAK/B;;OAEG;IACH,cAAc,IAAI,qCAAqC;IAgDvD;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,qCAAqC,CAAC;IA8CtE;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,uCAAuC,CAAC;IAkCzG;;OAEG;YACW,YAAY;CAM3B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SC_Cluster_ControlService = void 0;
4
4
  const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
5
+ const version_const_1 = require("../../../../_collections/core/version.const");
5
6
  const sc_enums_1 = require("../../_enums/sc-enums");
6
7
  const pei_bootstrap_control_service_1 = require("../../../peer-instance/_services/pei-bootstrap.control-service");
7
8
  const pei_ws_client_control_service_1 = require("../../../peer-instance/_services/pei-ws-client.control-service");
@@ -16,16 +17,23 @@ const DEFAULT_TASK_TIMEOUT_SEC = 60;
16
17
  /** Heartbeat online cutoff: 90s — egyezően `listOnlinePeers` cutoff-jával. */
17
18
  const HEARTBEAT_ONLINE_CUTOFF_MS = 90_000;
18
19
  /**
19
- * REQ-CLUSTER-DEBUG-001 (cycle 748): Cluster (PEI) settings debug/status endpoints.
20
+ * REQ-CLUSTER-DEBUG-001 (cycle 748) + REQ-CLUSTER-DEBUG-WS-001:
21
+ * Cluster (PEI) settings debug/status endpoints.
20
22
  *
21
- * Két végpont:
23
+ * Végpontok:
22
24
  * - `GET /api/settings/cluster/diagnostics`: rich állapot (bootstrap-flag,
23
25
  * sharedSecret-set, peers list lastHeartbeatAt-tel és WS-connected-flag-gel,
24
- * effektív poll/timeout). A sharedSecret VALUE soha nem kerül vissza.
26
+ * effektív poll/timeout, per-peer utolsó WS-hiba). A sharedSecret VALUE soha
27
+ * nem kerül vissza.
25
28
  * - `POST /api/settings/cluster/re-bootstrap`: kézzel trigger-eli a
26
29
  * `PEI_Bootstrap_ControlService.bootstrapIfConfigured`-t (idempotens — már-
27
- * bootstrapped esetben no-op). Hasznos, ha a user mentette a sharedSecret-et,
28
- * de a bootstrap nem futott le automatikusan (régi verzió, vagy edge case).
30
+ * bootstrapped esetben no-op).
31
+ * - `POST /api/settings/cluster/reconnect-ws` (REQ-CLUSTER-DEBUG-WS-001):
32
+ * teljes PEI WS-client restart (minden peer disconnect + új connect). Akkor
33
+ * hasznos, ha a peer-ek heartbeat-elnek (online ✓), de WS-csatlakozott=0,
34
+ * ezért a cross-instance dispatch nem megy.
35
+ * - `POST /api/settings/cluster/reconnect-ws/:instanceKey` (REQ-CLUSTER-DEBUG-WS-001):
36
+ * egyetlen peer manuál WS reconnect (sornkénti gomb a peer-táblában).
29
37
  *
30
38
  * REQ-SYS-CONTROLLER-THIN: a routing controller csak delegál; minden logika
31
39
  * itt van.
@@ -67,6 +75,51 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
67
75
  });
68
76
  }
69
77
  }
78
+ /**
79
+ * REQ-CLUSTER-DEBUG-WS-001: POST /api/settings/cluster/reconnect-ws —
80
+ * teljes PEI WS-client restart (minden peer disconnect + új connect-kísérlet).
81
+ * Tipikus eset: heartbeat-elnek a peer-ek (online ✓), de WS-csatlakozott=0,
82
+ * ezért a cross-instance dispatch nem megy. Egy kattintás → friss kísérlet.
83
+ */
84
+ async handlePostReconnectWs(_req, res, _issuer) {
85
+ try {
86
+ const result = await this.runReconnectWs();
87
+ res.json(result);
88
+ }
89
+ catch (error) {
90
+ ccap_error_response_util_1.CCAP_ErrorResponse_Util.sendJson({
91
+ res: res,
92
+ error: error,
93
+ fallbackCode: 'CCAP-SCC-RECONN-WS',
94
+ });
95
+ }
96
+ }
97
+ /**
98
+ * REQ-CLUSTER-DEBUG-WS-001: POST /api/settings/cluster/reconnect-ws/:instanceKey —
99
+ * egyetlen peer manuál WS reconnect (sornkénti gomb a debug-paneles peer-táblában).
100
+ */
101
+ async handlePostReconnectPeer(req, res, _issuer) {
102
+ try {
103
+ const instanceKeyRaw = req.params.instanceKey;
104
+ const instanceKey = typeof instanceKeyRaw === 'string' ? instanceKeyRaw.trim() : '';
105
+ if (!instanceKey) {
106
+ res.status(400).json({
107
+ message: 'Hiányzó instanceKey paraméter.',
108
+ errorCode: 'CCAP-SCC-RECONN-PEER-PARAM',
109
+ });
110
+ return;
111
+ }
112
+ const result = await this.runReconnectPeer({ instanceKey: instanceKey });
113
+ res.json(result);
114
+ }
115
+ catch (error) {
116
+ ccap_error_response_util_1.CCAP_ErrorResponse_Util.sendJson({
117
+ res: res,
118
+ error: error,
119
+ fallbackCode: 'CCAP-SCC-RECONN-PEER',
120
+ });
121
+ }
122
+ }
70
123
  /**
71
124
  * Diagnostics összeállítása. Külön metódus a unit-teszthez.
72
125
  */
@@ -77,8 +130,12 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
77
130
  const isSharedSecretSet = sharedSecretRaw.length > 0;
78
131
  const isPeiBootstrapped = pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().isBootstrapped();
79
132
  const currentInstanceKey = instance_id_service_1.ExS_InstanceId_Service.getInstance().tryGetInstanceId() ?? '';
80
- const connectedPeerKeys = pei_ws_client_control_service_1.PEI_WsClient_ControlService.getInstance().getConnectedPeerKeys();
133
+ const wsClient = pei_ws_client_control_service_1.PEI_WsClient_ControlService.getInstance();
134
+ const connectedPeerKeys = wsClient.getConnectedPeerKeys();
81
135
  const connectedPeerKeySet = new Set(connectedPeerKeys);
136
+ // REQ-CLUSTER-DEBUG-WS-001: per-peer utolsó WS hiba (üres map ha még nem volt
137
+ // hiba; a UI a peer-tábla „WS hiba" oszlopában jeleníti meg).
138
+ const peerLastErrors = wsClient.getPeerLastErrors();
82
139
  const allRegistry = await this.loadAllPeers();
83
140
  const peers = allRegistry
84
141
  .filter((entry) => {
@@ -93,6 +150,11 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
93
150
  const lastHbMs = lastHb && !Number.isNaN(lastHb.getTime()) ? lastHb.getTime() : null;
94
151
  const ageSeconds = lastHbMs !== null ? Math.round((Date.now() - lastHbMs) / 1000) : null;
95
152
  const isOnline = lastHbMs !== null && (Date.now() - lastHbMs) < HEARTBEAT_ONLINE_CUTOFF_MS;
153
+ const wsErr = peerLastErrors.get(key);
154
+ const appVersionRaw = entry.appVersion;
155
+ const appVersion = typeof appVersionRaw === 'string' && appVersionRaw.trim().length > 0
156
+ ? appVersionRaw.trim()
157
+ : null;
96
158
  return {
97
159
  instanceKey: key,
98
160
  hostName: (entry.hostName ?? '').trim(),
@@ -100,6 +162,9 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
100
162
  ageSeconds: ageSeconds,
101
163
  isOnline: isOnline,
102
164
  isWsConnected: connectedPeerKeySet.has(key),
165
+ lastWsErrorMessage: wsErr ? wsErr.message : null,
166
+ lastWsErrorAtIso: wsErr ? new Date(wsErr.atMs).toISOString() : '',
167
+ appVersion: appVersion,
103
168
  };
104
169
  });
105
170
  const onlinePeerCount = peers.filter((p) => p.isOnline).length;
@@ -116,8 +181,20 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
116
181
  effectiveTaskDefaultTimeoutSec: clusterSection?.taskDefaultTimeoutSec && clusterSection.taskDefaultTimeoutSec > 0
117
182
  ? clusterSection.taskDefaultTimeoutSec
118
183
  : DEFAULT_TASK_TIMEOUT_SEC,
184
+ isWsClientRunning: wsClient.isWsClientRunning(),
185
+ currentInstanceAppVersion: version_const_1.CCAP_VERSION,
186
+ bootstrappedAtIso: this.formatBootstrappedAtIso(),
187
+ bootstrapAttempts: pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().getBootstrapAttempts(),
119
188
  };
120
189
  }
190
+ /**
191
+ * REQ-CLUSTER-DEBUG-WS-001 (Slice B): bootstrappedAtMs → ISO string;
192
+ * üres ha sose volt sikeres bootstrap.
193
+ */
194
+ formatBootstrappedAtIso() {
195
+ const ms = pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().getBootstrappedAtMs();
196
+ return ms !== null ? new Date(ms).toISOString() : '';
197
+ }
121
198
  /**
122
199
  * Re-bootstrap végrehajtása. Külön metódus a unit-teszthez.
123
200
  */
@@ -144,7 +221,10 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
144
221
  message: 'Nincs sharedSecret beállítva — előbb mentsd a Cluster sharedSecret-et, utána próbáld újra.',
145
222
  };
146
223
  }
147
- pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().bootstrapIfConfigured({ setupConfig: setupConfig });
224
+ pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().bootstrapIfConfigured({
225
+ setupConfig: setupConfig,
226
+ source: 'manual-re-bootstrap',
227
+ });
148
228
  const isBootstrappedAfter = pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().isBootstrapped();
149
229
  return {
150
230
  triggered: isBootstrappedAfter,
@@ -156,6 +236,75 @@ class SC_Cluster_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
156
236
  : 'A bootstrap nem aktiválta a PEI-t (lásd a server logot a részletekért).',
157
237
  };
158
238
  }
239
+ /**
240
+ * REQ-CLUSTER-DEBUG-WS-001: PEI WS-client restart logika (külön metódus a
241
+ * unit-teszthez). Pre-condition: PEI bootstrapped — különben nincs sharedSecret
242
+ * tárolva, és a restart nem tudna autentikálni a peer-ekkel.
243
+ */
244
+ async runReconnectWs() {
245
+ const isPeiBootstrapped = pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().isBootstrapped();
246
+ if (!isPeiBootstrapped) {
247
+ return {
248
+ triggered: false,
249
+ isPeiBootstrapped: false,
250
+ attemptedPeerCount: 0,
251
+ connectedPeerCount: 0,
252
+ message: 'PEI nincs bootstrapped — előbb állítsd be a sharedSecret-et és nyomd meg a Re-bootstrap gombot.',
253
+ };
254
+ }
255
+ const setupConfig = sc_cache_control_service_1.SC_Cache_ControlService.getInstance();
256
+ const clusterSection = setupConfig.getSectionSync(sc_enums_1.SC_Type.cluster);
257
+ const sharedSecret = clusterSection?.sharedSecret?.trim() ?? '';
258
+ if (!sharedSecret) {
259
+ return {
260
+ triggered: false,
261
+ isPeiBootstrapped: true,
262
+ attemptedPeerCount: 0,
263
+ connectedPeerCount: 0,
264
+ message: 'A sharedSecret üres a cache-ben — a PEI bootstrap elvileg fut, de a WS-restart nem tud autentikálni.',
265
+ };
266
+ }
267
+ const restartResult = await pei_ws_client_control_service_1.PEI_WsClient_ControlService.getInstance().restart({ sharedSecret: sharedSecret });
268
+ return {
269
+ triggered: true,
270
+ isPeiBootstrapped: true,
271
+ attemptedPeerCount: restartResult.attemptedPeerCount,
272
+ connectedPeerCount: restartResult.connectedPeerCount,
273
+ message: restartResult.connectedPeerCount > 0
274
+ ? `WS-client újraindítva — ${restartResult.connectedPeerCount}/${restartResult.attemptedPeerCount} peer csatlakozott.`
275
+ : `WS-client újraindítva — ${restartResult.attemptedPeerCount} peer-rel próbál kapcsolódni; a Frissítés gombbal töltsd újra a panelt pár másodperc múlva.`,
276
+ };
277
+ }
278
+ /**
279
+ * REQ-CLUSTER-DEBUG-WS-001: egy-peer-szintű WS reconnect logika.
280
+ */
281
+ async runReconnectPeer(params) {
282
+ const isPeiBootstrapped = pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance().isBootstrapped();
283
+ if (!isPeiBootstrapped) {
284
+ return {
285
+ found: false,
286
+ isWsConnectedAfter: false,
287
+ message: 'PEI nincs bootstrapped — egyedi peer-reconnect nem értelmezett. Indítsd el a Re-bootstrap-pel.',
288
+ };
289
+ }
290
+ const peerResult = await pei_ws_client_control_service_1.PEI_WsClient_ControlService.getInstance().reconnectPeer({
291
+ instanceKey: params.instanceKey,
292
+ });
293
+ if (!peerResult.found) {
294
+ return {
295
+ found: false,
296
+ isWsConnectedAfter: false,
297
+ message: 'A peer nem szerepel a registry-ben (vagy hiányzik a publicHost / httpPort).',
298
+ };
299
+ }
300
+ return {
301
+ found: true,
302
+ isWsConnectedAfter: peerResult.isWsConnectedAfter,
303
+ message: peerResult.isWsConnectedAfter
304
+ ? 'Peer WS reconnect sikerült.'
305
+ : 'Peer reconnect-kérés elküldve; a WS-csatlakozás 1.5s alatt nem épült fel — a Frissítés gombbal töltsd újra a panelt pár másodperc múlva (a hiba a peer „WS hiba" oszlopában látszik majd).',
306
+ };
307
+ }
159
308
  /**
160
309
  * Registry list — külön metódus a unit-teszthez (stub-olható a `findDataList`).
161
310
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sc-cluster.control-service.js","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.ts"],"names":[],"mappings":";;;AAEA,sDAA+D;AAE/D,oDAAgD;AAOhD,kHAA8G;AAC9G,kHAA6G;AAC7G,kGAAkG;AAClG,gIAA2H;AAE3H,yEAAqE;AACrE,uGAAmG;AAEnG,yEAAyE;AACzE,MAAM,8BAA8B,GAAW,EAAE,CAAC;AAElD,kCAAkC;AAClC,MAAM,wBAAwB,GAAW,EAAE,CAAC;AAE5C,8EAA8E;AAC9E,MAAM,0BAA0B,GAAW,MAAM,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,MAAa,yBAA0B,SAAQ,mCAAsB;IAEnE,MAAM,CAAC,WAAW;QAChB,OAAO,yBAAyB,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAC/B,IAAa,EACb,GAAa,EACb,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAA0C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kDAAuB,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,eAAe;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAa,EACb,GAAa,EACb,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAA0C,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kDAAuB,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,iBAAiB;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,WAAW,GAA4B,kDAAuB,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,cAAc,GAClB,WAAW,CAAC,cAAc,CAAgC,kBAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAW,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3E,MAAM,iBAAiB,GAAY,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9D,MAAM,iBAAiB,GAAY,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE/F,MAAM,kBAAkB,GACtB,4CAAsB,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAEhE,MAAM,iBAAiB,GACrB,2DAA2B,CAAC,WAAW,EAAE,CAAC,oBAAoB,EAAE,CAAC;QACnE,MAAM,mBAAmB,GAAgB,IAAI,GAAG,CAAS,iBAAiB,CAAC,CAAC;QAE5E,MAAM,WAAW,GAA2B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,KAAK,GAAmC,WAAW;aACtD,MAAM,CAAC,CAAC,KAA2B,EAAW,EAAE;YAC/C,MAAM,GAAG,GAAW,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,kBAAkB,CAAC;QACtD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,KAA2B,EAAgC,EAAE;YACjE,MAAM,GAAG,GAAW,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,MAAM,GAAqB,KAAK,CAAC,eAAe,YAAY,IAAI;gBACpE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9F,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACtE,MAAM,UAAU,GACd,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,MAAM,QAAQ,GACZ,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,0BAA0B,CAAC;YAC5E,OAAO;gBACL,WAAW,EAAE,GAAG;gBAChB,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBACvC,kBAAkB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;gBACzF,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;aAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAW,KAAK,CAAC,MAAM,CAC1C,CAAC,CAA+B,EAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CACzD,CAAC,MAAM,CAAC;QAET,OAAO;YACL,iBAAiB,EAAE,iBAAiB;YACpC,iBAAiB,EAAE,iBAAiB;YACpC,kBAAkB,EAAE,kBAAkB;YACtC,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;YAC5C,eAAe,EAAE,eAAe;YAChC,KAAK,EAAE,KAAK;YACZ,4BAA4B,EAC1B,cAAc,EAAE,mBAAmB,IAAI,cAAc,CAAC,mBAAmB,GAAG,CAAC;gBAC3E,CAAC,CAAC,cAAc,CAAC,mBAAmB;gBACpC,CAAC,CAAC,8BAA8B;YACpC,8BAA8B,EAC5B,cAAc,EAAE,qBAAqB,IAAI,cAAc,CAAC,qBAAqB,GAAG,CAAC;gBAC/E,CAAC,CAAC,cAAc,CAAC,qBAAqB;gBACtC,CAAC,CAAC,wBAAwB;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,MAAM,WAAW,GAA4B,kDAAuB,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,cAAc,GAClB,WAAW,CAAC,cAAc,CAAgC,kBAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GACrB,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEzD,MAAM,sBAAsB,GAC1B,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE9D,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,sBAAsB,EAAE,IAAI;gBAC5B,mBAAmB,EAAE,IAAI;gBACzB,iBAAiB,EAAE,iBAAiB;gBACpC,OAAO,EAAE,yFAAyF;aACnG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,sBAAsB,EAAE,KAAK;gBAC7B,mBAAmB,EAAE,KAAK;gBAC1B,iBAAiB,EAAE,KAAK;gBACxB,OAAO,EAAE,4FAA4F;aACtG,CAAC;QACJ,CAAC;QAED,4DAA4B,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/F,MAAM,mBAAmB,GACvB,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE9D,OAAO;YACL,SAAS,EAAE,mBAAmB;YAC9B,sBAAsB,EAAE,KAAK;YAC7B,mBAAmB,EAAE,mBAAmB;YACxC,iBAAiB,EAAE,iBAAiB;YACpC,OAAO,EAAE,mBAAmB;gBAC1B,CAAC,CAAC,6EAA6E;gBAC/E,CAAC,CAAC,yEAAyE;SAC9E,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,MAAM,EAAE,GAAqC,IAAI,qEAAgC,CAAC;YAChF,MAAM,EAAE,2BAA2B;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,sBAAsB,EAAE,CAAC;IAC3C,CAAC;CACF;AA5KD,8DA4KC"}
1
+ {"version":3,"file":"sc-cluster.control-service.js","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.ts"],"names":[],"mappings":";;;AAEA,sDAA+D;AAE/D,+EAA2E;AAC3E,oDAAgD;AAShD,kHAA8G;AAC9G,kHAA6G;AAC7G,kGAAkG;AAClG,gIAA2H;AAE3H,yEAAqE;AACrE,uGAAmG;AAEnG,yEAAyE;AACzE,MAAM,8BAA8B,GAAW,EAAE,CAAC;AAElD,kCAAkC;AAClC,MAAM,wBAAwB,GAAW,EAAE,CAAC;AAE5C,8EAA8E;AAC9E,MAAM,0BAA0B,GAAW,MAAM,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,yBAA0B,SAAQ,mCAAsB;IAEnE,MAAM,CAAC,WAAW;QAChB,OAAO,yBAAyB,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAC/B,IAAa,EACb,GAAa,EACb,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAA0C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kDAAuB,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,eAAe;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAa,EACb,GAAa,EACb,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAA0C,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kDAAuB,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,iBAAiB;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAa,EACb,GAAa,EACb,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAA0C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kDAAuB,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,oBAAoB;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAC3B,GAAY,EACZ,GAAa,EACb,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,cAAc,GAAY,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;YACvD,MAAM,WAAW,GACf,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,gCAAgC;oBACzC,SAAS,EAAE,4BAA4B;iBACxC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kDAAuB,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,sBAAsB;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,WAAW,GAA4B,kDAAuB,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,cAAc,GAClB,WAAW,CAAC,cAAc,CAAgC,kBAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAW,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3E,MAAM,iBAAiB,GAAY,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9D,MAAM,iBAAiB,GAAY,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE/F,MAAM,kBAAkB,GACtB,4CAAsB,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAEhE,MAAM,QAAQ,GAAgC,2DAA2B,CAAC,WAAW,EAAE,CAAC;QACxF,MAAM,iBAAiB,GAAa,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QACpE,MAAM,mBAAmB,GAAgB,IAAI,GAAG,CAAS,iBAAiB,CAAC,CAAC;QAC5E,8EAA8E;QAC9E,8DAA8D;QAC9D,MAAM,cAAc,GAClB,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,WAAW,GAA2B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,KAAK,GAAmC,WAAW;aACtD,MAAM,CAAC,CAAC,KAA2B,EAAW,EAAE;YAC/C,MAAM,GAAG,GAAW,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,kBAAkB,CAAC;QACtD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,KAA2B,EAAgC,EAAE;YACjE,MAAM,GAAG,GAAW,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,MAAM,GAAqB,KAAK,CAAC,eAAe,YAAY,IAAI;gBACpE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9F,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACtE,MAAM,UAAU,GACd,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,MAAM,QAAQ,GACZ,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,0BAA0B,CAAC;YAC5E,MAAM,KAAK,GACT,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,aAAa,GAAa,KAAwD,CAAC,UAAU,CAAC;YACpG,MAAM,UAAU,GACd,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBAClE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;gBACtB,CAAC,CAAC,IAAI,CAAC;YACX,OAAO;gBACL,WAAW,EAAE,GAAG;gBAChB,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBACvC,kBAAkB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;gBACzF,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC3C,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAChD,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjE,UAAU,EAAE,UAAU;aACvB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAW,KAAK,CAAC,MAAM,CAC1C,CAAC,CAA+B,EAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CACzD,CAAC,MAAM,CAAC;QAET,OAAO;YACL,iBAAiB,EAAE,iBAAiB;YACpC,iBAAiB,EAAE,iBAAiB;YACpC,kBAAkB,EAAE,kBAAkB;YACtC,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;YAC5C,eAAe,EAAE,eAAe;YAChC,KAAK,EAAE,KAAK;YACZ,4BAA4B,EAC1B,cAAc,EAAE,mBAAmB,IAAI,cAAc,CAAC,mBAAmB,GAAG,CAAC;gBAC3E,CAAC,CAAC,cAAc,CAAC,mBAAmB;gBACpC,CAAC,CAAC,8BAA8B;YACpC,8BAA8B,EAC5B,cAAc,EAAE,qBAAqB,IAAI,cAAc,CAAC,qBAAqB,GAAG,CAAC;gBAC/E,CAAC,CAAC,cAAc,CAAC,qBAAqB;gBACtC,CAAC,CAAC,wBAAwB;YAC9B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE;YAC/C,yBAAyB,EAAE,4BAAY;YACvC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE;YACjD,iBAAiB,EAAE,4DAA4B,CAAC,WAAW,EAAE,CAAC,oBAAoB,EAAE;SACrF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,MAAM,EAAE,GAAkB,4DAA4B,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAC3F,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,MAAM,WAAW,GAA4B,kDAAuB,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,cAAc,GAClB,WAAW,CAAC,cAAc,CAAgC,kBAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GACrB,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEzD,MAAM,sBAAsB,GAC1B,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE9D,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,sBAAsB,EAAE,IAAI;gBAC5B,mBAAmB,EAAE,IAAI;gBACzB,iBAAiB,EAAE,iBAAiB;gBACpC,OAAO,EAAE,yFAAyF;aACnG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,sBAAsB,EAAE,KAAK;gBAC7B,mBAAmB,EAAE,KAAK;gBAC1B,iBAAiB,EAAE,KAAK;gBACxB,OAAO,EAAE,4FAA4F;aACtG,CAAC;QACJ,CAAC;QAED,4DAA4B,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC;YAC/D,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,MAAM,mBAAmB,GACvB,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE9D,OAAO;YACL,SAAS,EAAE,mBAAmB;YAC9B,sBAAsB,EAAE,KAAK;YAC7B,mBAAmB,EAAE,mBAAmB;YACxC,iBAAiB,EAAE,iBAAiB;YACpC,OAAO,EAAE,mBAAmB;gBAC1B,CAAC,CAAC,6EAA6E;gBAC/E,CAAC,CAAC,yEAAyE;SAC9E,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,iBAAiB,GACrB,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAE9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,iBAAiB,EAAE,KAAK;gBACxB,kBAAkB,EAAE,CAAC;gBACrB,kBAAkB,EAAE,CAAC;gBACrB,OAAO,EACL,iGAAiG;aACpG,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAA4B,kDAAuB,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,cAAc,GAClB,WAAW,CAAC,cAAc,CAAgC,kBAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAW,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAExE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,EAAE,CAAC;gBACrB,kBAAkB,EAAE,CAAC;gBACrB,OAAO,EACL,sGAAsG;aACzG,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GACjB,MAAM,2DAA2B,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QAE1F,OAAO;YACL,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,IAAI;YACvB,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;YACpD,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;YACpD,OAAO,EACL,aAAa,CAAC,kBAAkB,GAAG,CAAC;gBAClC,CAAC,CAAC,2BAA2B,aAAa,CAAC,kBAAkB,IAAI,aAAa,CAAC,kBAAkB,qBAAqB;gBACtH,CAAC,CAAC,2BAA2B,aAAa,CAAC,kBAAkB,6FAA6F;SAC/J,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAA+B;QACpD,MAAM,iBAAiB,GACrB,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,kBAAkB,EAAE,KAAK;gBACzB,OAAO,EACL,gGAAgG;aACnG,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GACd,MAAM,2DAA2B,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC;YAC5D,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QAEL,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,kBAAkB,EAAE,KAAK;gBACzB,OAAO,EAAE,6EAA6E;aACvF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,OAAO,EAAE,UAAU,CAAC,kBAAkB;gBACpC,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,4LAA4L;SACjM,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,MAAM,EAAE,GAAqC,IAAI,qEAAgC,CAAC;YAChF,MAAM,EAAE,2BAA2B;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,sBAAsB,EAAE,CAAC;IAC3C,CAAC;CACF;AAzVD,8DAyVC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * REQ-CLUSTER-DEBUG-001 (cycle 748): `SC_Cluster_ControlService.runReBootstrap`
3
- * spec — a Settings → Cluster manuál re-bootstrap gomb logikája. Singleton-spy
4
- * pattern (`spyOn(getInstance(), '<method>')`) az izolált unit-teszthez.
2
+ * REQ-CLUSTER-DEBUG-001 (cycle 748) + REQ-CLUSTER-DEBUG-WS-001:
3
+ * `SC_Cluster_ControlService` debug-action specje — a Settings → Cluster manuál
4
+ * re-bootstrap és reconnect-ws gombok logikája. Singleton-spy pattern
5
+ * (`spyOn(getInstance(), '<method>')`) az izolált unit-teszthez.
5
6
  */
6
7
  export {};
7
8
  //# sourceMappingURL=sc-cluster.control-service.spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sc-cluster.control-service.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"sc-cluster.control-service.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  /**
3
- * REQ-CLUSTER-DEBUG-001 (cycle 748): `SC_Cluster_ControlService.runReBootstrap`
4
- * spec — a Settings → Cluster manuál re-bootstrap gomb logikája. Singleton-spy
5
- * pattern (`spyOn(getInstance(), '<method>')`) az izolált unit-teszthez.
3
+ * REQ-CLUSTER-DEBUG-001 (cycle 748) + REQ-CLUSTER-DEBUG-WS-001:
4
+ * `SC_Cluster_ControlService` debug-action specje — a Settings → Cluster manuál
5
+ * re-bootstrap és reconnect-ws gombok logikája. Singleton-spy pattern
6
+ * (`spyOn(getInstance(), '<method>')`) az izolált unit-teszthez.
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  const pei_bootstrap_control_service_1 = require("../../../peer-instance/_services/pei-bootstrap.control-service");
10
+ const pei_ws_client_control_service_1 = require("../../../peer-instance/_services/pei-ws-client.control-service");
9
11
  const sc_cluster_control_service_1 = require("./sc-cluster.control-service");
10
12
  const sc_cache_control_service_1 = require("./sc-cache.control-service");
11
13
  describe('SC_Cluster_ControlService.runReBootstrap (cycle 748 cluster debug)', () => {
@@ -68,4 +70,90 @@ describe('SC_Cluster_ControlService.runReBootstrap (cycle 748 cluster debug)', (
68
70
  expect(result.message).toContain('nem aktiválta');
69
71
  });
70
72
  });
73
+ describe('SC_Cluster_ControlService.runReconnectWs (REQ-CLUSTER-DEBUG-WS-001)', () => {
74
+ let isBootstrappedSpy;
75
+ let getSectionSpy;
76
+ let restartSpy;
77
+ beforeEach(() => {
78
+ isBootstrappedSpy = spyOn(pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance(), 'isBootstrapped');
79
+ getSectionSpy = spyOn(sc_cache_control_service_1.SC_Cache_ControlService.getInstance(), 'getSectionSync');
80
+ restartSpy = spyOn(pei_ws_client_control_service_1.PEI_WsClient_ControlService.getInstance(), 'restart');
81
+ });
82
+ it('| nincs bootstrapped → triggered=false, restart NEM hívva', async () => {
83
+ isBootstrappedSpy.and.returnValue(false);
84
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectWs();
85
+ expect(result.triggered).toBeFalse();
86
+ expect(result.isPeiBootstrapped).toBeFalse();
87
+ expect(result.message).toContain('PEI nincs bootstrapped');
88
+ expect(restartSpy).not.toHaveBeenCalled();
89
+ });
90
+ it('| bootstrapped + üres sharedSecret cache → triggered=false', async () => {
91
+ isBootstrappedSpy.and.returnValue(true);
92
+ getSectionSpy.and.returnValue({ sharedSecret: ' ' });
93
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectWs();
94
+ expect(result.triggered).toBeFalse();
95
+ expect(result.isPeiBootstrapped).toBeTrue();
96
+ expect(result.message).toContain('üres a cache-ben');
97
+ expect(restartSpy).not.toHaveBeenCalled();
98
+ });
99
+ it('| bootstrapped + sharedSecret megvan → restart hívás + connectedPeerCount visszaadva', async () => {
100
+ isBootstrappedSpy.and.returnValue(true);
101
+ getSectionSpy.and.returnValue({ sharedSecret: 'real-secret' });
102
+ restartSpy.and.resolveTo({ wasRunning: true, attemptedPeerCount: 3, connectedPeerCount: 2 });
103
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectWs();
104
+ expect(result.triggered).toBeTrue();
105
+ expect(result.attemptedPeerCount).toBe(3);
106
+ expect(result.connectedPeerCount).toBe(2);
107
+ expect(result.message).toContain('2/3 peer csatlakozott');
108
+ expect(restartSpy).toHaveBeenCalledTimes(1);
109
+ });
110
+ it('| bootstrapped + sharedSecret megvan + 0 csatlakozott → kérni kell a Frissítést', async () => {
111
+ isBootstrappedSpy.and.returnValue(true);
112
+ getSectionSpy.and.returnValue({ sharedSecret: 'real-secret' });
113
+ restartSpy.and.resolveTo({ wasRunning: false, attemptedPeerCount: 1, connectedPeerCount: 0 });
114
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectWs();
115
+ expect(result.triggered).toBeTrue();
116
+ expect(result.connectedPeerCount).toBe(0);
117
+ expect(result.message).toContain('Frissítés');
118
+ });
119
+ });
120
+ describe('SC_Cluster_ControlService.runReconnectPeer (REQ-CLUSTER-DEBUG-WS-001)', () => {
121
+ let isBootstrappedSpy;
122
+ let reconnectPeerSpy;
123
+ beforeEach(() => {
124
+ isBootstrappedSpy = spyOn(pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance(), 'isBootstrapped');
125
+ reconnectPeerSpy = spyOn(pei_ws_client_control_service_1.PEI_WsClient_ControlService.getInstance(), 'reconnectPeer');
126
+ });
127
+ it('| nincs bootstrapped → found=false, reconnectPeer NEM hívva', async () => {
128
+ isBootstrappedSpy.and.returnValue(false);
129
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectPeer({ instanceKey: 'abc' });
130
+ expect(result.found).toBeFalse();
131
+ expect(result.isWsConnectedAfter).toBeFalse();
132
+ expect(result.message).toContain('PEI nincs bootstrapped');
133
+ expect(reconnectPeerSpy).not.toHaveBeenCalled();
134
+ });
135
+ it('| bootstrapped + nincs ilyen peer → found=false', async () => {
136
+ isBootstrappedSpy.and.returnValue(true);
137
+ reconnectPeerSpy.and.resolveTo({ found: false, isWsConnectedAfter: false });
138
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectPeer({ instanceKey: 'unknown' });
139
+ expect(result.found).toBeFalse();
140
+ expect(result.message).toContain('registry');
141
+ });
142
+ it('| bootstrapped + peer reconnect + connected → found=true, isWsConnectedAfter=true', async () => {
143
+ isBootstrappedSpy.and.returnValue(true);
144
+ reconnectPeerSpy.and.resolveTo({ found: true, isWsConnectedAfter: true });
145
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectPeer({ instanceKey: 'peer-1' });
146
+ expect(result.found).toBeTrue();
147
+ expect(result.isWsConnectedAfter).toBeTrue();
148
+ expect(result.message).toContain('sikerült');
149
+ });
150
+ it('| bootstrapped + peer reconnect + nem-connected (1.5s alatt) → found=true, üzenet a Frissítésre utal', async () => {
151
+ isBootstrappedSpy.and.returnValue(true);
152
+ reconnectPeerSpy.and.resolveTo({ found: true, isWsConnectedAfter: false });
153
+ const result = await sc_cluster_control_service_1.SC_Cluster_ControlService.getInstance().runReconnectPeer({ instanceKey: 'peer-2' });
154
+ expect(result.found).toBeTrue();
155
+ expect(result.isWsConnectedAfter).toBeFalse();
156
+ expect(result.message).toContain('Frissítés');
157
+ });
158
+ });
71
159
  //# sourceMappingURL=sc-cluster.control-service.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sc-cluster.control-service.spec.js","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sc-cluster.control-service.spec.js","sourceRoot":"","sources":["../../../../../../src/_modules/setup-config/_services/control-services/sc-cluster.control-service.spec.ts"],"names":[],"mappings":"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"}
@@ -497,7 +497,7 @@ class SetupConfig_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
497
497
  try {
498
498
  await setupConfig_CS.loadSections();
499
499
  pei_bootstrap_control_service_1.PEI_Bootstrap_ControlService.getInstance()
500
- .bootstrapIfConfigured({ setupConfig: setupConfig_CS });
500
+ .bootstrapIfConfigured({ setupConfig: setupConfig_CS, source: 'post-save-side-effect' });
501
501
  }
502
502
  catch (applyErr) {
503
503
  fsm_dynamo_1.DyFM_Error.logSimple('Settings | PEI bootstrap retry after Cluster save-section failed', applyErr);