@futdevpro/ccap 1.1.2956 → 1.1.2960

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 (240) hide show
  1. package/cli/build/_collections/update/update-error-buffer-entry.interface.d.ts +17 -0
  2. package/cli/build/_collections/update/update-error-buffer-entry.interface.d.ts.map +1 -0
  3. package/cli/build/_collections/update/update-error-buffer-entry.interface.js +3 -0
  4. package/cli/build/_collections/update/update-error-buffer-entry.interface.js.map +1 -0
  5. package/cli/build/_collections/update/update-error-buffer.util.d.ts +35 -0
  6. package/cli/build/_collections/update/update-error-buffer.util.d.ts.map +1 -0
  7. package/cli/build/_collections/update/update-error-buffer.util.js +76 -0
  8. package/cli/build/_collections/update/update-error-buffer.util.js.map +1 -0
  9. package/cli/build/_collections/update/update-error-buffer.util.spec.d.ts +8 -0
  10. package/cli/build/_collections/update/update-error-buffer.util.spec.d.ts.map +1 -0
  11. package/cli/build/_collections/update/update-error-buffer.util.spec.js +95 -0
  12. package/cli/build/_collections/update/update-error-buffer.util.spec.js.map +1 -0
  13. package/cli/build/_collections/update/update-runner.util.d.ts +7 -1
  14. package/cli/build/_collections/update/update-runner.util.d.ts.map +1 -1
  15. package/cli/build/_collections/update/update-runner.util.js +9 -2
  16. package/cli/build/_collections/update/update-runner.util.js.map +1 -1
  17. package/cli/build/_collections/update/update-runner.util.spec.js +11 -0
  18. package/cli/build/_collections/update/update-runner.util.spec.js.map +1 -1
  19. package/cli/build/_commands/info.d.ts +69 -0
  20. package/cli/build/_commands/info.d.ts.map +1 -0
  21. package/cli/build/_commands/info.interface.d.ts +70 -0
  22. package/cli/build/_commands/info.interface.d.ts.map +1 -0
  23. package/cli/build/_commands/info.interface.js +6 -0
  24. package/cli/build/_commands/info.interface.js.map +1 -0
  25. package/cli/build/_commands/info.js +379 -0
  26. package/cli/build/_commands/info.js.map +1 -0
  27. package/cli/build/_commands/info.spec.d.ts +8 -0
  28. package/cli/build/_commands/info.spec.d.ts.map +1 -0
  29. package/cli/build/_commands/info.spec.js +124 -0
  30. package/cli/build/_commands/info.spec.js.map +1 -0
  31. package/cli/build/_commands/logs.d.ts +41 -0
  32. package/cli/build/_commands/logs.d.ts.map +1 -0
  33. package/cli/build/_commands/logs.interface.d.ts +16 -0
  34. package/cli/build/_commands/logs.interface.d.ts.map +1 -0
  35. package/cli/build/_commands/logs.interface.js +3 -0
  36. package/cli/build/_commands/logs.interface.js.map +1 -0
  37. package/cli/build/_commands/logs.js +175 -0
  38. package/cli/build/_commands/logs.js.map +1 -0
  39. package/cli/build/_commands/logs.spec.d.ts +7 -0
  40. package/cli/build/_commands/logs.spec.d.ts.map +1 -0
  41. package/cli/build/_commands/logs.spec.js +120 -0
  42. package/cli/build/_commands/logs.spec.js.map +1 -0
  43. package/cli/build/_commands/update.d.ts +17 -13
  44. package/cli/build/_commands/update.d.ts.map +1 -1
  45. package/cli/build/_commands/update.js +61 -25
  46. package/cli/build/_commands/update.js.map +1 -1
  47. package/cli/build/program.js +40 -1
  48. package/cli/build/program.js.map +1 -1
  49. package/client-dist/{agent-instances.module-5SGOQHZE.js → agent-instances.module-2URQPTNT.js} +2 -2
  50. package/client-dist/{ca.module-OCEZIM6Z.js → ca.module-JUKBF44B.js} +2 -2
  51. package/client-dist/{cc-usage-dashboard.component-GI5LK2ZY.js → cc-usage-dashboard.component-UEDH2XKN.js} +2 -2
  52. package/client-dist/{cc.module-7FRXT32H.js → cc.module-S5PA32TN.js} +2 -2
  53. package/client-dist/{chunk-V4V6NHXT.js → chunk-3CCTA7PZ.js} +2 -2
  54. package/client-dist/{chunk-DAV3UNQX.js → chunk-3MRPZKCQ.js} +2 -2
  55. package/client-dist/{chunk-EWVZESJW.js → chunk-3W3OBILQ.js} +2 -2
  56. package/client-dist/{chunk-JJMNZIAQ.js → chunk-4LELMYV2.js} +2 -2
  57. package/client-dist/{chunk-3BVLFJ5H.js → chunk-4LPEUFAW.js} +2 -2
  58. package/client-dist/{chunk-7LEYLJ7K.js → chunk-4LUVD2AP.js} +2 -2
  59. package/client-dist/{chunk-JLA2PX42.js → chunk-5BZODWW7.js} +2 -2
  60. package/client-dist/{chunk-ZP3HA643.js → chunk-5YO3LDJM.js} +2 -2
  61. package/client-dist/{chunk-KOF3QQI6.js → chunk-6JO7UKOI.js} +2 -2
  62. package/client-dist/{chunk-FB3RWQTM.js → chunk-6T3T47WR.js} +2 -2
  63. package/client-dist/{chunk-7OU5EIQN.js → chunk-6V3AY4GG.js} +2 -2
  64. package/client-dist/{chunk-CS6PNARE.js → chunk-744OTLPJ.js} +2 -2
  65. package/client-dist/{chunk-I5B5NLNT.js → chunk-7Y6EDEKN.js} +2 -2
  66. package/client-dist/{chunk-J2Y64TJX.js → chunk-A4J42SWO.js} +2 -2
  67. package/client-dist/{chunk-QBFOD33L.js → chunk-AINXWTEN.js} +2 -2
  68. package/client-dist/{chunk-4V5CKMM7.js → chunk-ALZ7U76J.js} +2 -2
  69. package/client-dist/{chunk-H6H3DTA3.js → chunk-BKYQ746Q.js} +2 -2
  70. package/client-dist/{chunk-37AFYV4M.js → chunk-BV6QDXRW.js} +2 -2
  71. package/client-dist/{chunk-37AFYV4M.js.map → chunk-BV6QDXRW.js.map} +1 -1
  72. package/client-dist/{chunk-FJQ56J6K.js → chunk-CKHGJZOB.js} +2 -2
  73. package/client-dist/{chunk-JVHTYQOT.js → chunk-DE3BOHO5.js} +2 -2
  74. package/client-dist/{chunk-SQ64MCSX.js → chunk-DJCLH4DQ.js} +2 -2
  75. package/client-dist/{chunk-T6T7P3PI.js → chunk-DODMVPWS.js} +2 -2
  76. package/client-dist/{chunk-DQWIQMJR.js → chunk-FKOWRSW7.js} +2 -2
  77. package/client-dist/{chunk-TSUGHIGA.js → chunk-FXDLW3RE.js} +2 -2
  78. package/client-dist/{chunk-2BWFVPTP.js → chunk-GTS3HVE3.js} +2 -2
  79. package/client-dist/{chunk-DDV2CYX5.js → chunk-GWYU4AVI.js} +2 -2
  80. package/client-dist/{chunk-XBIXPQFJ.js → chunk-HRA33EDX.js} +2 -2
  81. package/client-dist/{chunk-T4VU2VZX.js → chunk-IQYJH4J7.js} +2 -2
  82. package/client-dist/{chunk-MJW74BVF.js → chunk-J7XG5WST.js} +2 -2
  83. package/client-dist/{chunk-PNTHQY7R.js → chunk-JLUYCPX3.js} +2 -2
  84. package/client-dist/{chunk-ZLIDOLOB.js → chunk-JOEQVHLP.js} +2 -2
  85. package/client-dist/{chunk-6NLDSDVJ.js → chunk-KHMRNG5E.js} +2 -2
  86. package/client-dist/{chunk-246ZTR5O.js → chunk-KIRC3TOF.js} +2 -2
  87. package/client-dist/{chunk-DDRFKBEB.js → chunk-M2VDKALL.js} +2 -2
  88. package/client-dist/{chunk-XWEW3BLS.js → chunk-MYK7GACV.js} +2 -2
  89. package/client-dist/{chunk-44PBXW6P.js → chunk-NVDOMHCP.js} +2 -2
  90. package/client-dist/{chunk-LV74GN4F.js → chunk-OCYK4I37.js} +2 -2
  91. package/client-dist/{chunk-FLC62MUK.js → chunk-OLTVSW6P.js} +2 -2
  92. package/client-dist/{chunk-HU6WMEXD.js → chunk-OV776GY4.js} +2 -2
  93. package/client-dist/{chunk-S5TMOEID.js → chunk-PEIQDAXN.js} +2 -2
  94. package/client-dist/{chunk-2JP2POHI.js → chunk-PGEEVNYW.js} +2 -2
  95. package/client-dist/{chunk-WTLQBK4J.js → chunk-PKVKXWSS.js} +2 -2
  96. package/client-dist/{chunk-MSC5PDVD.js → chunk-PRF3OUI7.js} +2 -2
  97. package/client-dist/{chunk-5UB3EISH.js → chunk-REWBQNDV.js} +2 -2
  98. package/client-dist/{chunk-IMYGUQJE.js → chunk-TNTQYNFQ.js} +2 -2
  99. package/client-dist/{chunk-YAL3F5I2.js → chunk-U4RZ7GFY.js} +2 -2
  100. package/client-dist/{chunk-3N4SIVK5.js → chunk-UEFUKRAM.js} +2 -2
  101. package/client-dist/{chunk-PECMBLKI.js → chunk-UEQKXLYY.js} +2 -2
  102. package/client-dist/{chunk-TH3RT3KI.js → chunk-VH4GKMD3.js} +2 -2
  103. package/client-dist/{chunk-WPGGMZPB.js → chunk-VPWEWXFD.js} +2 -2
  104. package/client-dist/{chunk-RD66WNGY.js → chunk-W6RXT6D7.js} +2 -2
  105. package/client-dist/{chunk-LRT6KDL6.js → chunk-WAVRMTHA.js} +2 -2
  106. package/client-dist/{chunk-3KCBESYF.js → chunk-WLVM35I4.js} +2 -2
  107. package/client-dist/{chunk-S7RPTNLO.js → chunk-ZDABQIBP.js} +2 -2
  108. package/client-dist/{chunk-KPGAWVWR.js → chunk-ZKC5Z3IN.js} +2 -2
  109. package/client-dist/{chunk-IQWBHMY2.js → chunk-ZVAWABJH.js} +2 -2
  110. package/client-dist/{consultant.module-X4IBYYQS.js → consultant.module-N64GJRK3.js} +2 -2
  111. package/client-dist/{crd.module-4JESGZ6J.js → crd.module-2TLXBWL3.js} +2 -2
  112. package/client-dist/{dashboard.module-S24CPFKY.js → dashboard.module-A5AQ4MXU.js} +2 -2
  113. package/client-dist/{do.module-KMXSJLSC.js → do.module-7A4O3RFF.js} +2 -2
  114. package/client-dist/{document-library.module-NVMIG2CU.js → document-library.module-N5KBWUB6.js} +2 -2
  115. package/client-dist/{embedding-eval.module-H6GIG3JO.js → embedding-eval.module-O6SZBU7X.js} +2 -2
  116. package/client-dist/{embedding-registry.module-5ISUMQ7P.js → embedding-registry.module-OA77P44J.js} +2 -2
  117. package/client-dist/{err.module-NJA2KCSV.js → err.module-RWJUO7EF.js} +2 -2
  118. package/client-dist/{feedback.module-DRAGZ6Y4.js → feedback.module-GUBGJMFD.js} +2 -2
  119. package/client-dist/{host-runtime-mcp.module-VG5PUGZU.js → host-runtime-mcp.module-P3PVLVPH.js} +2 -2
  120. package/client-dist/index.html +1 -1
  121. package/client-dist/{live-dev-pipeline.module-S7CEI343.js → live-dev-pipeline.module-HUI2EWPA.js} +2 -2
  122. package/client-dist/{logs.module-PDM3A7YM.js → logs.module-KCU67S7S.js} +2 -2
  123. package/client-dist/{main-3BCKKE3E.js → main-SB4UO4OC.js} +3 -3
  124. package/client-dist/{master-control-remote-poc.module-ZT3ZPSP2.js → master-control-remote-poc.module-3UBJZBTK.js} +2 -2
  125. package/client-dist/{mobile-app.module-WOWIODHA.js → mobile-app.module-X6U46WW7.js} +2 -2
  126. package/client-dist/{model-registry.module-ABJPN7CO.js → model-registry.module-3PG3PJ3J.js} +2 -2
  127. package/client-dist/{oc.module-IYJQQ4V2.js → oc.module-C52TEII4.js} +2 -2
  128. package/client-dist/{orc.module-L3UX2YOG.js → orc.module-KR5CVMQM.js} +2 -2
  129. package/client-dist/{project-management.module-CH4QROUC.js → project-management.module-IHLVVJ2G.js} +2 -2
  130. package/client-dist/project-source-routed.module-GBWQ63AE.js +2 -0
  131. package/client-dist/{scheduler.module-UBFVRLQC.js → scheduler.module-U2LB4R6N.js} +2 -2
  132. package/client-dist/{session.module-SPGTZVT2.js → session.module-HOSGEEDR.js} +2 -2
  133. package/client-dist/{set.module-E3ZIGRQY.js → set.module-BXGLV3NK.js} +2 -2
  134. package/client-dist/{setup.module-AQ4H55JC.js → setup.module-47WXGX3F.js} +2 -2
  135. package/client-dist/{terminals.module-I63ACO43.js → terminals.module-KPNW6NBJ.js} +2 -2
  136. package/client-dist/{voice-notes-poc.module-6DL3W2E3.js → voice-notes-poc.module-KUQCUNUK.js} +2 -2
  137. package/client-dist/{wfs.module-MXS63ER2.js → wfs.module-KFTICN4O.js} +2 -2
  138. package/package.json +1 -1
  139. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.d.ts +18 -0
  140. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.d.ts.map +1 -0
  141. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.js +3 -0
  142. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.js.map +1 -0
  143. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.d.ts +31 -0
  144. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.d.ts.map +1 -0
  145. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.js +184 -0
  146. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.js.map +1 -0
  147. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.d.ts +9 -0
  148. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.d.ts.map +1 -0
  149. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.js +135 -0
  150. package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.js.map +1 -0
  151. package/server/build/src/app.server.d.ts.map +1 -1
  152. package/server/build/src/app.server.js +10 -0
  153. package/server/build/src/app.server.js.map +1 -1
  154. package/client-dist/project-source-routed.module-SF6CNR34.js +0 -2
  155. /package/client-dist/{agent-instances.module-5SGOQHZE.js.map → agent-instances.module-2URQPTNT.js.map} +0 -0
  156. /package/client-dist/{ca.module-OCEZIM6Z.js.map → ca.module-JUKBF44B.js.map} +0 -0
  157. /package/client-dist/{cc-usage-dashboard.component-GI5LK2ZY.js.map → cc-usage-dashboard.component-UEDH2XKN.js.map} +0 -0
  158. /package/client-dist/{cc.module-7FRXT32H.js.map → cc.module-S5PA32TN.js.map} +0 -0
  159. /package/client-dist/{chunk-V4V6NHXT.js.map → chunk-3CCTA7PZ.js.map} +0 -0
  160. /package/client-dist/{chunk-DAV3UNQX.js.map → chunk-3MRPZKCQ.js.map} +0 -0
  161. /package/client-dist/{chunk-EWVZESJW.js.map → chunk-3W3OBILQ.js.map} +0 -0
  162. /package/client-dist/{chunk-JJMNZIAQ.js.map → chunk-4LELMYV2.js.map} +0 -0
  163. /package/client-dist/{chunk-3BVLFJ5H.js.map → chunk-4LPEUFAW.js.map} +0 -0
  164. /package/client-dist/{chunk-7LEYLJ7K.js.map → chunk-4LUVD2AP.js.map} +0 -0
  165. /package/client-dist/{chunk-JLA2PX42.js.map → chunk-5BZODWW7.js.map} +0 -0
  166. /package/client-dist/{chunk-ZP3HA643.js.map → chunk-5YO3LDJM.js.map} +0 -0
  167. /package/client-dist/{chunk-KOF3QQI6.js.map → chunk-6JO7UKOI.js.map} +0 -0
  168. /package/client-dist/{chunk-FB3RWQTM.js.map → chunk-6T3T47WR.js.map} +0 -0
  169. /package/client-dist/{chunk-7OU5EIQN.js.map → chunk-6V3AY4GG.js.map} +0 -0
  170. /package/client-dist/{chunk-CS6PNARE.js.map → chunk-744OTLPJ.js.map} +0 -0
  171. /package/client-dist/{chunk-I5B5NLNT.js.map → chunk-7Y6EDEKN.js.map} +0 -0
  172. /package/client-dist/{chunk-J2Y64TJX.js.map → chunk-A4J42SWO.js.map} +0 -0
  173. /package/client-dist/{chunk-QBFOD33L.js.map → chunk-AINXWTEN.js.map} +0 -0
  174. /package/client-dist/{chunk-4V5CKMM7.js.map → chunk-ALZ7U76J.js.map} +0 -0
  175. /package/client-dist/{chunk-H6H3DTA3.js.map → chunk-BKYQ746Q.js.map} +0 -0
  176. /package/client-dist/{chunk-FJQ56J6K.js.map → chunk-CKHGJZOB.js.map} +0 -0
  177. /package/client-dist/{chunk-JVHTYQOT.js.map → chunk-DE3BOHO5.js.map} +0 -0
  178. /package/client-dist/{chunk-SQ64MCSX.js.map → chunk-DJCLH4DQ.js.map} +0 -0
  179. /package/client-dist/{chunk-T6T7P3PI.js.map → chunk-DODMVPWS.js.map} +0 -0
  180. /package/client-dist/{chunk-DQWIQMJR.js.map → chunk-FKOWRSW7.js.map} +0 -0
  181. /package/client-dist/{chunk-TSUGHIGA.js.map → chunk-FXDLW3RE.js.map} +0 -0
  182. /package/client-dist/{chunk-2BWFVPTP.js.map → chunk-GTS3HVE3.js.map} +0 -0
  183. /package/client-dist/{chunk-DDV2CYX5.js.map → chunk-GWYU4AVI.js.map} +0 -0
  184. /package/client-dist/{chunk-XBIXPQFJ.js.map → chunk-HRA33EDX.js.map} +0 -0
  185. /package/client-dist/{chunk-T4VU2VZX.js.map → chunk-IQYJH4J7.js.map} +0 -0
  186. /package/client-dist/{chunk-MJW74BVF.js.map → chunk-J7XG5WST.js.map} +0 -0
  187. /package/client-dist/{chunk-PNTHQY7R.js.map → chunk-JLUYCPX3.js.map} +0 -0
  188. /package/client-dist/{chunk-ZLIDOLOB.js.map → chunk-JOEQVHLP.js.map} +0 -0
  189. /package/client-dist/{chunk-6NLDSDVJ.js.map → chunk-KHMRNG5E.js.map} +0 -0
  190. /package/client-dist/{chunk-246ZTR5O.js.map → chunk-KIRC3TOF.js.map} +0 -0
  191. /package/client-dist/{chunk-DDRFKBEB.js.map → chunk-M2VDKALL.js.map} +0 -0
  192. /package/client-dist/{chunk-XWEW3BLS.js.map → chunk-MYK7GACV.js.map} +0 -0
  193. /package/client-dist/{chunk-44PBXW6P.js.map → chunk-NVDOMHCP.js.map} +0 -0
  194. /package/client-dist/{chunk-LV74GN4F.js.map → chunk-OCYK4I37.js.map} +0 -0
  195. /package/client-dist/{chunk-FLC62MUK.js.map → chunk-OLTVSW6P.js.map} +0 -0
  196. /package/client-dist/{chunk-HU6WMEXD.js.map → chunk-OV776GY4.js.map} +0 -0
  197. /package/client-dist/{chunk-S5TMOEID.js.map → chunk-PEIQDAXN.js.map} +0 -0
  198. /package/client-dist/{chunk-2JP2POHI.js.map → chunk-PGEEVNYW.js.map} +0 -0
  199. /package/client-dist/{chunk-WTLQBK4J.js.map → chunk-PKVKXWSS.js.map} +0 -0
  200. /package/client-dist/{chunk-MSC5PDVD.js.map → chunk-PRF3OUI7.js.map} +0 -0
  201. /package/client-dist/{chunk-5UB3EISH.js.map → chunk-REWBQNDV.js.map} +0 -0
  202. /package/client-dist/{chunk-IMYGUQJE.js.map → chunk-TNTQYNFQ.js.map} +0 -0
  203. /package/client-dist/{chunk-YAL3F5I2.js.map → chunk-U4RZ7GFY.js.map} +0 -0
  204. /package/client-dist/{chunk-3N4SIVK5.js.map → chunk-UEFUKRAM.js.map} +0 -0
  205. /package/client-dist/{chunk-PECMBLKI.js.map → chunk-UEQKXLYY.js.map} +0 -0
  206. /package/client-dist/{chunk-TH3RT3KI.js.map → chunk-VH4GKMD3.js.map} +0 -0
  207. /package/client-dist/{chunk-WPGGMZPB.js.map → chunk-VPWEWXFD.js.map} +0 -0
  208. /package/client-dist/{chunk-RD66WNGY.js.map → chunk-W6RXT6D7.js.map} +0 -0
  209. /package/client-dist/{chunk-LRT6KDL6.js.map → chunk-WAVRMTHA.js.map} +0 -0
  210. /package/client-dist/{chunk-3KCBESYF.js.map → chunk-WLVM35I4.js.map} +0 -0
  211. /package/client-dist/{chunk-S7RPTNLO.js.map → chunk-ZDABQIBP.js.map} +0 -0
  212. /package/client-dist/{chunk-KPGAWVWR.js.map → chunk-ZKC5Z3IN.js.map} +0 -0
  213. /package/client-dist/{chunk-IQWBHMY2.js.map → chunk-ZVAWABJH.js.map} +0 -0
  214. /package/client-dist/{consultant.module-X4IBYYQS.js.map → consultant.module-N64GJRK3.js.map} +0 -0
  215. /package/client-dist/{crd.module-4JESGZ6J.js.map → crd.module-2TLXBWL3.js.map} +0 -0
  216. /package/client-dist/{dashboard.module-S24CPFKY.js.map → dashboard.module-A5AQ4MXU.js.map} +0 -0
  217. /package/client-dist/{do.module-KMXSJLSC.js.map → do.module-7A4O3RFF.js.map} +0 -0
  218. /package/client-dist/{document-library.module-NVMIG2CU.js.map → document-library.module-N5KBWUB6.js.map} +0 -0
  219. /package/client-dist/{embedding-eval.module-H6GIG3JO.js.map → embedding-eval.module-O6SZBU7X.js.map} +0 -0
  220. /package/client-dist/{embedding-registry.module-5ISUMQ7P.js.map → embedding-registry.module-OA77P44J.js.map} +0 -0
  221. /package/client-dist/{err.module-NJA2KCSV.js.map → err.module-RWJUO7EF.js.map} +0 -0
  222. /package/client-dist/{feedback.module-DRAGZ6Y4.js.map → feedback.module-GUBGJMFD.js.map} +0 -0
  223. /package/client-dist/{host-runtime-mcp.module-VG5PUGZU.js.map → host-runtime-mcp.module-P3PVLVPH.js.map} +0 -0
  224. /package/client-dist/{live-dev-pipeline.module-S7CEI343.js.map → live-dev-pipeline.module-HUI2EWPA.js.map} +0 -0
  225. /package/client-dist/{logs.module-PDM3A7YM.js.map → logs.module-KCU67S7S.js.map} +0 -0
  226. /package/client-dist/{main-3BCKKE3E.js.map → main-SB4UO4OC.js.map} +0 -0
  227. /package/client-dist/{master-control-remote-poc.module-ZT3ZPSP2.js.map → master-control-remote-poc.module-3UBJZBTK.js.map} +0 -0
  228. /package/client-dist/{mobile-app.module-WOWIODHA.js.map → mobile-app.module-X6U46WW7.js.map} +0 -0
  229. /package/client-dist/{model-registry.module-ABJPN7CO.js.map → model-registry.module-3PG3PJ3J.js.map} +0 -0
  230. /package/client-dist/{oc.module-IYJQQ4V2.js.map → oc.module-C52TEII4.js.map} +0 -0
  231. /package/client-dist/{orc.module-L3UX2YOG.js.map → orc.module-KR5CVMQM.js.map} +0 -0
  232. /package/client-dist/{project-management.module-CH4QROUC.js.map → project-management.module-IHLVVJ2G.js.map} +0 -0
  233. /package/client-dist/{project-source-routed.module-SF6CNR34.js.map → project-source-routed.module-GBWQ63AE.js.map} +0 -0
  234. /package/client-dist/{scheduler.module-UBFVRLQC.js.map → scheduler.module-U2LB4R6N.js.map} +0 -0
  235. /package/client-dist/{session.module-SPGTZVT2.js.map → session.module-HOSGEEDR.js.map} +0 -0
  236. /package/client-dist/{set.module-E3ZIGRQY.js.map → set.module-BXGLV3NK.js.map} +0 -0
  237. /package/client-dist/{setup.module-AQ4H55JC.js.map → setup.module-47WXGX3F.js.map} +0 -0
  238. /package/client-dist/{terminals.module-I63ACO43.js.map → terminals.module-KPNW6NBJ.js.map} +0 -0
  239. /package/client-dist/{voice-notes-poc.module-6DL3W2E3.js.map → voice-notes-poc.module-KUQCUNUK.js.map} +0 -0
  240. /package/client-dist/{wfs.module-MXS63ER2.js.map → wfs.module-KFTICN4O.js.map} +0 -0
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCAP_LogsCommand_Util = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs = tslib_1.__importStar(require("fs"));
6
+ const path = tslib_1.__importStar(require("path"));
7
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
8
+ /** Home + log paths. */
9
+ const HOME_DIR = process.env.HOME ?? process.env.USERPROFILE ?? '.';
10
+ const SERVER_LOG_PATH = path.join(HOME_DIR, '.ccap', 'server.log');
11
+ const CLIENT_LOG_PATH = path.join(HOME_DIR, '.ccap', 'client.log');
12
+ /** Default kezdeti sor-darabszám. */
13
+ const DEFAULT_INITIAL_LINES = 50;
14
+ /** Polling interval a tail-loop-hoz (ms). `fs.watchFile` pollold (no inotify dependency). */
15
+ const TAIL_POLL_INTERVAL_MS = 1000;
16
+ /** Egy időbélyeg-detektálás regex — log sorok elején `[2026-05-09T...]` formátum. */
17
+ const TIMESTAMP_PREFIX_REGEX = /\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?)\]/;
18
+ /**
19
+ * REQ-CLI-LOGS-001 — `ccap logs` parancs. Kiírja a server (vagy `--client`)
20
+ * log fájl utolsó N sorát, opcionálisan filter / since szűréssel, majd
21
+ * tail-mode-ban (default) live-stream-eli a növekedést SIGINT-ig.
22
+ *
23
+ * Használat:
24
+ * ccap logs # default: server log, last 50 lines, follow
25
+ * ccap logs --client # client log
26
+ * ccap logs --no-follow # csak a kezdeti sorok, nincs tail
27
+ * ccap logs --lines 200 # több kezdeti sor
28
+ * ccap logs --filter ERROR # csak `ERROR` regex-illeszkedés
29
+ * ccap logs --since 1h # utolsó 1 óra
30
+ * ccap logs --since 30m --filter "user-flow"
31
+ */
32
+ class CCAP_LogsCommand_Util {
33
+ /**
34
+ * `ccap logs` parancs main entry-point.
35
+ */
36
+ static async c_ccapLogs(opts) {
37
+ const logPath = opts.client === true ? CLIENT_LOG_PATH : SERVER_LOG_PATH;
38
+ const lines = opts.lines && opts.lines > 0 ? opts.lines : DEFAULT_INITIAL_LINES;
39
+ const follow = opts.follow !== false;
40
+ const sinceMs = opts.since ? CCAP_LogsCommand_Util.parseSinceToMs(opts.since) : null;
41
+ const filterRegex = opts.filter ? CCAP_LogsCommand_Util.compileFilter(opts.filter) : null;
42
+ if (!fs.existsSync(logPath)) {
43
+ fsm_dynamo_1.DyFM_Log.warn(`Log fájl nem található: ${logPath} — még nem indult el a ${opts.client === true ? 'client' : 'server'}?`);
44
+ return;
45
+ }
46
+ fsm_dynamo_1.DyFM_Log.info(`📜 Log fájl: ${logPath}${follow ? ' (tail mode — Ctrl+C kilépés)' : ' (no-follow)'}`);
47
+ if (filterRegex)
48
+ fsm_dynamo_1.DyFM_Log.info(`🔍 Filter: ${filterRegex.source}`);
49
+ if (sinceMs !== null)
50
+ fsm_dynamo_1.DyFM_Log.info(`⏱ Since: ${opts.since} (${new Date(sinceMs).toISOString()})`);
51
+ // 1. Kezdeti N sor kiírása (filter + since alkalmazva)
52
+ const initialContent = fs.readFileSync(logPath, 'utf-8');
53
+ const allLines = initialContent.split('\n');
54
+ const lastN = allLines.slice(-lines);
55
+ for (const line of lastN) {
56
+ CCAP_LogsCommand_Util.printIfMatch(line, filterRegex, sinceMs);
57
+ }
58
+ // 2. Tail mód — `fs.watchFile` polling (cross-platform, no inotify dependency)
59
+ if (follow) {
60
+ let lastSize = fs.statSync(logPath).size;
61
+ let lastBuffer = ''; // partial-line carry-over
62
+ const onChange = (curr) => {
63
+ if (curr.size <= lastSize) {
64
+ // truncated or no growth — skip
65
+ if (curr.size < lastSize) {
66
+ fsm_dynamo_1.DyFM_Log.warn('⚠ Log fájl truncate-elve / lerövidítve — tail folytatása az új tartalomtól.');
67
+ lastBuffer = '';
68
+ }
69
+ lastSize = curr.size;
70
+ return;
71
+ }
72
+ const fd = fs.openSync(logPath, 'r');
73
+ try {
74
+ const bytesToRead = curr.size - lastSize;
75
+ const buffer = Buffer.alloc(bytesToRead);
76
+ fs.readSync(fd, buffer, 0, bytesToRead, lastSize);
77
+ lastSize = curr.size;
78
+ const chunk = lastBuffer + buffer.toString('utf-8');
79
+ const newLines = chunk.split('\n');
80
+ lastBuffer = newLines.pop() ?? '';
81
+ for (const line of newLines) {
82
+ CCAP_LogsCommand_Util.printIfMatch(line, filterRegex, sinceMs);
83
+ }
84
+ }
85
+ finally {
86
+ fs.closeSync(fd);
87
+ }
88
+ };
89
+ fs.watchFile(logPath, { interval: TAIL_POLL_INTERVAL_MS }, onChange);
90
+ // SIGINT handler — clean exit
91
+ await new Promise((resolve) => {
92
+ const cleanup = () => {
93
+ fs.unwatchFile(logPath, onChange);
94
+ fsm_dynamo_1.DyFM_Log.info('\n🛑 Tail leállítva.');
95
+ resolve();
96
+ };
97
+ process.once('SIGINT', cleanup);
98
+ process.once('SIGTERM', cleanup);
99
+ });
100
+ }
101
+ }
102
+ /**
103
+ * Egy sor printelése ha a filter + since (mindkettő) átengedi.
104
+ * Üres sorokat skip-eli.
105
+ */
106
+ static printIfMatch(line, filterRegex, sinceMs) {
107
+ if (!line || !line.trim()) {
108
+ return;
109
+ }
110
+ if (filterRegex && !filterRegex.test(line)) {
111
+ return;
112
+ }
113
+ if (sinceMs !== null) {
114
+ const lineMs = CCAP_LogsCommand_Util.extractTimestampMs(line);
115
+ // Ha nincs felismerhető időbélyeg, a sort átengedjük (a separator-block
116
+ // és a multi-line stack-trace sorok tipikusan ilyenek — egy filter-es
117
+ // user csak a filter-t akarja igazából, a since-t laza heurisztikának)
118
+ if (lineMs !== null && lineMs < sinceMs) {
119
+ return;
120
+ }
121
+ }
122
+ // Raw stdout — log-tail kimenet pipe-olható (grep, less); DyFM_Log prefix
123
+ // korrumpálná. A `no-console-log` review-szabály csak `console.log`-ra
124
+ // vonatkozik, `process.stdout.write` engedélyezett.
125
+ process.stdout.write(line + '\n');
126
+ }
127
+ /**
128
+ * `1h`, `30m`, `2d`, `45s` → milliszekundum-kü szám (vissza-szorzott a since-time-stamp-et).
129
+ * Hibás formátumra null (a since szűrés ekkor nem aktív).
130
+ */
131
+ static parseSinceToMs(since) {
132
+ const trimmed = since.trim();
133
+ const m = trimmed.match(/^(\d+)\s*(s|m|h|d)$/i);
134
+ if (!m) {
135
+ fsm_dynamo_1.DyFM_Log.warn(`⚠ Érvénytelen --since formátum: "${since}". Várt: 30s | 5m | 2h | 1d. Filter mellőzve.`);
136
+ return null;
137
+ }
138
+ const n = parseInt(m[1], 10);
139
+ const unit = m[2].toLowerCase();
140
+ const unitMs = {
141
+ s: 1000,
142
+ m: 60 * 1000,
143
+ h: 60 * 60 * 1000,
144
+ d: 24 * 60 * 60 * 1000,
145
+ };
146
+ const cutoffAgo = n * (unitMs[unit] ?? 1000);
147
+ return Date.now() - cutoffAgo;
148
+ }
149
+ /**
150
+ * Filter regex kompilálás. Hibára null + warn.
151
+ */
152
+ static compileFilter(pattern) {
153
+ try {
154
+ return new RegExp(pattern);
155
+ }
156
+ catch (err) {
157
+ fsm_dynamo_1.DyFM_Log.warn(`⚠ Érvénytelen --filter regex: "${pattern}" — ${err instanceof Error ? err.message : String(err)}. Filter mellőzve.`);
158
+ return null;
159
+ }
160
+ }
161
+ /**
162
+ * Sor első időbélyeg-prefixéből milliszekundum-érték. Null ha nincs felismerhető timestamp.
163
+ * (Több sor a CCAP server log-ban prefix nélkül jön — separator-blokkok, stack-trace sorok.)
164
+ */
165
+ static extractTimestampMs(line) {
166
+ const m = line.match(TIMESTAMP_PREFIX_REGEX);
167
+ if (!m) {
168
+ return null;
169
+ }
170
+ const ms = Date.parse(m[1]);
171
+ return Number.isFinite(ms) ? ms : null;
172
+ }
173
+ }
174
+ exports.CCAP_LogsCommand_Util = CCAP_LogsCommand_Util;
175
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/_commands/logs.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AACzB,mDAA6B;AAE7B,sDAAiD;AAIjD,wBAAwB;AACxB,MAAM,QAAQ,GAAW,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;AAC5E,MAAM,eAAe,GAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC3E,MAAM,eAAe,GAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAE3E,qCAAqC;AACrC,MAAM,qBAAqB,GAAW,EAAE,CAAC;AAEzC,6FAA6F;AAC7F,MAAM,qBAAqB,GAAW,IAAI,CAAC;AAE3C,qFAAqF;AACrF,MAAM,sBAAsB,GAAW,uDAAuD,CAAC;AAE/F;;;;;;;;;;;;;GAaG;AACH,MAAa,qBAAqB;IAEhC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAgC;QACtD,MAAM,OAAO,GAAW,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;QACjF,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACxF,MAAM,MAAM,GAAY,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;QAC9C,MAAM,OAAO,GAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,MAAM,WAAW,GAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,qBAAQ,CAAC,IAAI,CAAC,2BAA2B,OAAO,0BAA0B,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzH,OAAO;QACT,CAAC;QAED,qBAAQ,CAAC,IAAI,CAAC,gBAAgB,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;QACrG,IAAI,WAAW;YAAE,qBAAQ,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,IAAI,OAAO,KAAK,IAAI;YAAE,qBAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEpG,uDAAuD;QACvD,MAAM,cAAc,GAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAa,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,+EAA+E;QAC/E,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,QAAQ,GAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YACjD,IAAI,UAAU,GAAW,EAAE,CAAC,CAAC,0BAA0B;YACvD,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAQ,EAAE;gBACxC,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC1B,gCAAgC;oBAChC,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;wBACzB,qBAAQ,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;wBAC7F,UAAU,GAAG,EAAE,CAAC;oBAClB,CAAC;oBACD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,MAAM,EAAE,GAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,WAAW,GAAW,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACjD,MAAM,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjD,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAClD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,KAAK,GAAW,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC5D,MAAM,QAAQ,GAAa,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7C,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;wBAC5B,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;YACF,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,QAAQ,CAAC,CAAC;YAErE,8BAA8B;YAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAmB,EAAQ,EAAE;gBACpD,MAAM,OAAO,GAAG,GAAS,EAAE;oBACzB,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAClC,qBAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBACtC,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,WAA0B,EAAE,OAAsB;QAClF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAkB,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC7E,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,uEAAuE;QACvE,oDAAoD;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,KAAa;QACjC,MAAM,OAAO,GAAW,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,CAAC,GAA4B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzE,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,qBAAQ,CAAC,IAAI,CAAC,oCAAoC,KAAK,+CAA+C,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAA2B;YACrC,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,EAAE,GAAG,IAAI;YACZ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;SACvB,CAAC;QACF,MAAM,SAAS,GAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,IAAI,CAAC;YACH,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,qBAAQ,CAAC,IAAI,CACX,kCAAkC,OAAO,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CACrH,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAY;QACpC,MAAM,CAAC,GAA4B,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;CACF;AArJD,sDAqJC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * REQ-CLI-LOGS-001 — `ccap logs` parancs unit-tesztek a tiszta helper-ekre
3
+ * (since parser, filter compile, timestamp extract, printIfMatch szűrés).
4
+ * A tail-mode-ot (fs.watchFile + SIGINT) nem teszteljük itt — integrációs.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=logs.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.spec.d.ts","sourceRoot":"","sources":["../../src/_commands/logs.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * REQ-CLI-LOGS-001 — `ccap logs` parancs unit-tesztek a tiszta helper-ekre
4
+ * (since parser, filter compile, timestamp extract, printIfMatch szűrés).
5
+ * A tail-mode-ot (fs.watchFile + SIGINT) nem teszteljük itt — integrációs.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const logs_1 = require("./logs");
9
+ describe('CCAP_LogsCommand_Util.parseSinceToMs', () => {
10
+ it('| `30s` → most - 30s', () => {
11
+ const before = Date.now();
12
+ const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('30s');
13
+ const after = Date.now();
14
+ expect(result).not.toBeNull();
15
+ expect(result).toBeGreaterThanOrEqual(before - 30_000);
16
+ expect(result).toBeLessThanOrEqual(after - 30_000 + 100);
17
+ });
18
+ it('| `5m` → most - 5*60*1000', () => {
19
+ const before = Date.now();
20
+ const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('5m');
21
+ expect(result).toBeLessThanOrEqual(before - 5 * 60_000 + 100);
22
+ });
23
+ it('| `2h` → most - 2*60*60*1000', () => {
24
+ const before = Date.now();
25
+ const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('2h');
26
+ expect(result).toBeLessThanOrEqual(before - 2 * 60 * 60_000 + 100);
27
+ });
28
+ it('| `1d` → most - 24*60*60*1000', () => {
29
+ const before = Date.now();
30
+ const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('1d');
31
+ expect(result).toBeLessThanOrEqual(before - 24 * 60 * 60_000 + 100);
32
+ });
33
+ it('| whitespace toleráns', () => {
34
+ expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs(' 30 s ')).not.toBeNull();
35
+ });
36
+ it('| érvénytelen formátum → null', () => {
37
+ expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs('garbage')).toBeNull();
38
+ expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs('30')).toBeNull(); // egység nélkül
39
+ expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs('5z')).toBeNull(); // ismeretlen egység
40
+ });
41
+ });
42
+ describe('CCAP_LogsCommand_Util.compileFilter', () => {
43
+ it('| valid regex → RegExp objektum', () => {
44
+ const r = logs_1.CCAP_LogsCommand_Util.compileFilter('ERROR|WARN');
45
+ expect(r).not.toBeNull();
46
+ expect(r.test('this is an ERROR')).toBeTrue();
47
+ expect(r.test('this is OK')).toBeFalse();
48
+ });
49
+ it('| invalid regex → null', () => {
50
+ const r = logs_1.CCAP_LogsCommand_Util.compileFilter('[unclosed');
51
+ expect(r).toBeNull();
52
+ });
53
+ });
54
+ describe('CCAP_LogsCommand_Util.extractTimestampMs', () => {
55
+ it('| ISO timestamp prefix → ms', () => {
56
+ const line = '[2026-05-09T18:30:00.000Z] some log content';
57
+ const ms = logs_1.CCAP_LogsCommand_Util.extractTimestampMs(line);
58
+ expect(ms).toBe(Date.parse('2026-05-09T18:30:00.000Z'));
59
+ });
60
+ it('| ISO timestamp Z nélkül is parsolja', () => {
61
+ const line = '[2026-05-09T18:30:00] no Z';
62
+ expect(logs_1.CCAP_LogsCommand_Util.extractTimestampMs(line)).not.toBeNull();
63
+ });
64
+ it('| nincs timestamp → null', () => {
65
+ expect(logs_1.CCAP_LogsCommand_Util.extractTimestampMs('plain log line')).toBeNull();
66
+ });
67
+ it('| szöveg közepén levő bracket-tartalom is illeszkedik (heurisztikus)', () => {
68
+ const line = ' ERROR: at [2026-05-09T18:30:00.000Z] something happened';
69
+ expect(logs_1.CCAP_LogsCommand_Util.extractTimestampMs(line)).not.toBeNull();
70
+ });
71
+ });
72
+ describe('CCAP_LogsCommand_Util.printIfMatch', () => {
73
+ let stdoutSpy;
74
+ beforeEach(() => {
75
+ // A logs.ts `process.stdout.write`-t használ a raw kimenethez (NEM
76
+ // `console.log`-ot, mert a `no-console-log` review-szabály tiltja és
77
+ // mert a JSON / log-tail output pipe-olható kell legyen).
78
+ stdoutSpy = spyOn(process.stdout, 'write').and.returnValue(true);
79
+ });
80
+ it('| üres / whitespace sor → nem print', () => {
81
+ logs_1.CCAP_LogsCommand_Util.printIfMatch('', null, null);
82
+ logs_1.CCAP_LogsCommand_Util.printIfMatch(' ', null, null);
83
+ expect(stdoutSpy).not.toHaveBeenCalled();
84
+ });
85
+ it('| filter nélkül + since nélkül → mindig print', () => {
86
+ logs_1.CCAP_LogsCommand_Util.printIfMatch('any line', null, null);
87
+ expect(stdoutSpy).toHaveBeenCalledOnceWith('any line\n');
88
+ });
89
+ it('| filter regex illeszkedés → print', () => {
90
+ logs_1.CCAP_LogsCommand_Util.printIfMatch('hello ERROR world', /ERROR/, null);
91
+ expect(stdoutSpy).toHaveBeenCalledOnceWith('hello ERROR world\n');
92
+ });
93
+ it('| filter regex NEM illeszkedik → nem print', () => {
94
+ logs_1.CCAP_LogsCommand_Util.printIfMatch('hello world', /ERROR/, null);
95
+ expect(stdoutSpy).not.toHaveBeenCalled();
96
+ });
97
+ it('| since-cutoff előtt timestamp → nem print', () => {
98
+ const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
99
+ const oldLine = '[2026-05-09T18:00:00.000Z] old line';
100
+ logs_1.CCAP_LogsCommand_Util.printIfMatch(oldLine, null, sinceMs);
101
+ expect(stdoutSpy).not.toHaveBeenCalled();
102
+ });
103
+ it('| since-cutoff után timestamp → print', () => {
104
+ const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
105
+ const recentLine = '[2026-05-09T19:00:00.000Z] recent line';
106
+ logs_1.CCAP_LogsCommand_Util.printIfMatch(recentLine, null, sinceMs);
107
+ expect(stdoutSpy).toHaveBeenCalledOnceWith(recentLine + '\n');
108
+ });
109
+ it('| since aktív + nincs felismerhető timestamp → print (lazy heurisztika)', () => {
110
+ const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
111
+ logs_1.CCAP_LogsCommand_Util.printIfMatch('plain line, no timestamp', null, sinceMs);
112
+ expect(stdoutSpy).toHaveBeenCalled();
113
+ });
114
+ it('| filter + since együtt — mindkettőnek pass-olnia kell', () => {
115
+ const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
116
+ logs_1.CCAP_LogsCommand_Util.printIfMatch('[2026-05-09T19:00:00.000Z] ERROR: oh no', /ERROR/, sinceMs);
117
+ expect(stdoutSpy).toHaveBeenCalledTimes(1);
118
+ });
119
+ });
120
+ //# sourceMappingURL=logs.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.spec.js","sourceRoot":"","sources":["../../src/_commands/logs.spec.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,26 @@
1
1
  /**
2
- * CCAP update parancs util: npm update -g a csomagra, majd rendszer újraindítás.
2
+ * CCAP update parancs util: globális csomag-frissítés + rendszer újraindítás.
3
3
  * Globális NPM telepítés ellenőrzéssel (figyelmeztetés, ha nem globális; --force flag skip-eli).
4
4
  *
5
- * BUG-CLI-RESTART-UPDATE-001 Pillar C Slice 1 (cycle 725): visible-status output
6
- * minden szakaszhoz — a user explicit kérése volt: „we should add more logs".
7
- *
8
- * BUG-CLI-UPDATE-NPM-VISIBILITY-001 (cycle 745): a user reprodukálta hogy a 725-ös
9
- * vizuális javítás KEVÉS — `npm update -g` execSync(stdio: inherit) néha láthatóan
10
- * beragad-szerűen viselkedik (npm registry-tartalom-letöltés ~1-2 perc, közben semmi
11
- * output). Cycle 745 kibővít: (a) start ÉS end szakaszban kiírja a LOCAL futó +
12
- * GLOBAL telepített + REMOTE registry-elérhető verziót egymás mellett; (b) az npm
13
- * execSync helyett spawn-based runner heartbeat-tel (30s-enként eltelt-idő üzenet);
14
- * (c) post-update elapsed-time kiírása a vége-blokkba.
5
+ * BUG-CLI-UPDATE-AUTO-STOP-001 (cycle a user-bug-report alapján): három javítás.
6
+ * 1. Auto-stop a npm-step ELŐTT — a user korábban manuálisan kellett `ccap stop`-ot
7
+ * futtasson, különben az npm install néha fájlt foglalt a futó server miatt.
8
+ * Most a flow: stop → npm install -g @latest start. Ha eleve nem futott
9
+ * semmi, a stop no-op.
10
+ * 2. Skip-if-already-latest guard pre-check: ha `globalVersion === remoteLatest`,
11
+ * a npm-step + restart kihagyva (a flow exit-el „már naprakész" üzenettel).
12
+ * `--force`-szal forszírozható (pl. újratelepítés sérült install-on).
13
+ * 3. `npm update -g` `npm install -g <pkg>@latest` váltás a runner-ben — az
14
+ * `update -g` csak a meglévő semver range-en belül mozog (gyakran nem ugrik
15
+ * új minor/major-ra), így a user gyakran azt látta hogy a pre/post verzió
16
+ * ugyanaz, hiába volt új release. Az `install -g <pkg>@latest` mindig a
17
+ * registry-tip-re ugrik. (Spec: REQ-CLI-UPDATE-INSTALL-LATEST-001.)
15
18
  */
16
19
  export declare class CCAP_UpdateCommand_Util {
17
20
  /**
18
- * CCAP update parancs: npm update -g a csomagra, majd rendszer újraindítás.
19
- * @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy.
21
+ * CCAP update parancs: stop → npm install -g @latest start. Skip-if-latest guard.
22
+ * @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy,
23
+ * és skip-if-latest guardot is felüldarálja.
20
24
  */
21
25
  static c_ccapUpdate(params: {
22
26
  force?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAuB;IAClC;;;OAGG;WACU,YAAY,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA+EtE"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,uBAAuB;IAClC;;;;OAIG;WACU,YAAY,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAwHtE"}
@@ -4,30 +4,35 @@ exports.CCAP_UpdateCommand_Util = void 0;
4
4
  const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
5
  const process_control_util_1 = require("../_collections/process-control.util");
6
6
  const install_context_util_1 = require("../_collections/install-context.util");
7
+ const update_error_buffer_util_1 = require("../_collections/update/update-error-buffer.util");
7
8
  const update_runner_util_1 = require("../_collections/update/update-runner.util");
8
9
  const update_version_check_util_1 = require("../_collections/update/update-version-check.util");
9
10
  const version_const_1 = require("../_collections/version.const");
10
11
  /** NPM csomagnév a globális frissítéshez. */
11
12
  const CCAP_NPM_PACKAGE_NAME = '@futdevpro/ccap';
12
13
  /**
13
- * CCAP update parancs util: npm update -g a csomagra, majd rendszer újraindítás.
14
+ * CCAP update parancs util: globális csomag-frissítés + rendszer újraindítás.
14
15
  * Globális NPM telepítés ellenőrzéssel (figyelmeztetés, ha nem globális; --force flag skip-eli).
15
16
  *
16
- * BUG-CLI-RESTART-UPDATE-001 Pillar C Slice 1 (cycle 725): visible-status output
17
- * minden szakaszhoz — a user explicit kérése volt: „we should add more logs".
18
- *
19
- * BUG-CLI-UPDATE-NPM-VISIBILITY-001 (cycle 745): a user reprodukálta hogy a 725-ös
20
- * vizuális javítás KEVÉS — `npm update -g` execSync(stdio: inherit) néha láthatóan
21
- * beragad-szerűen viselkedik (npm registry-tartalom-letöltés ~1-2 perc, közben semmi
22
- * output). Cycle 745 kibővít: (a) start ÉS end szakaszban kiírja a LOCAL futó +
23
- * GLOBAL telepített + REMOTE registry-elérhető verziót egymás mellett; (b) az npm
24
- * execSync helyett spawn-based runner heartbeat-tel (30s-enként eltelt-idő üzenet);
25
- * (c) post-update elapsed-time kiírása a vége-blokkba.
17
+ * BUG-CLI-UPDATE-AUTO-STOP-001 (cycle a user-bug-report alapján): három javítás.
18
+ * 1. Auto-stop a npm-step ELŐTT — a user korábban manuálisan kellett `ccap stop`-ot
19
+ * futtasson, különben az npm install néha fájlt foglalt a futó server miatt.
20
+ * Most a flow: stop → npm install -g @latest start. Ha eleve nem futott
21
+ * semmi, a stop no-op.
22
+ * 2. Skip-if-already-latest guard pre-check: ha `globalVersion === remoteLatest`,
23
+ * a npm-step + restart kihagyva (a flow exit-el „már naprakész" üzenettel).
24
+ * `--force`-szal forszírozható (pl. újratelepítés sérült install-on).
25
+ * 3. `npm update -g` `npm install -g <pkg>@latest` váltás a runner-ben — az
26
+ * `update -g` csak a meglévő semver range-en belül mozog (gyakran nem ugrik
27
+ * új minor/major-ra), így a user gyakran azt látta hogy a pre/post verzió
28
+ * ugyanaz, hiába volt új release. Az `install -g <pkg>@latest` mindig a
29
+ * registry-tip-re ugrik. (Spec: REQ-CLI-UPDATE-INSTALL-LATEST-001.)
26
30
  */
27
31
  class CCAP_UpdateCommand_Util {
28
32
  /**
29
- * CCAP update parancs: npm update -g a csomagra, majd rendszer újraindítás.
30
- * @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy.
33
+ * CCAP update parancs: stop → npm install -g @latest start. Skip-if-latest guard.
34
+ * @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy,
35
+ * és skip-if-latest guardot is felüldarálja.
31
36
  */
32
37
  static async c_ccapUpdate(params) {
33
38
  fsm_dynamo_1.DyFM_Log.info('===== CCAP frissítés =====');
@@ -47,26 +52,57 @@ class CCAP_UpdateCommand_Util {
47
52
  fsm_dynamo_1.DyFM_Log.info(' • Registry (remote) lekérés…');
48
53
  const preRemoteVersion = update_version_check_util_1.CCAP_UpdateVersionCheck_Util.getRemoteVersion(CCAP_NPM_PACKAGE_NAME);
49
54
  fsm_dynamo_1.DyFM_Log.info(` • Registry (remote) elérhető: ${preRemoteVersion || '(nem elérhető)'}`);
50
- if (preGlobalVersion && preRemoteVersion && preGlobalVersion === preRemoteVersion) {
51
- fsm_dynamo_1.DyFM_Log.info('ℹ️ A globálisan telepített verzió már megegyezik a registry-beli legfrissebbel.');
55
+ // BUG-CLI-UPDATE-AUTO-STOP-001 Pillar 2: skip-if-already-latest guard.
56
+ // Ha `--force` van, mindig megy az install (újratelepítés sérült install-on).
57
+ if (!params.force
58
+ && preGlobalVersion
59
+ && preRemoteVersion
60
+ && preGlobalVersion === preRemoteVersion) {
61
+ fsm_dynamo_1.DyFM_Log.info('');
62
+ fsm_dynamo_1.DyFM_Log.success(`✓ Már a legfrissebb verzió van telepítve (${preGlobalVersion}). Nincs teendő.`);
63
+ fsm_dynamo_1.DyFM_Log.info('ℹ️ Ha mégis újra akarod telepíteni (pl. sérült install), futtasd: `ccap update --force`.');
64
+ return;
52
65
  }
53
- else if (preGlobalVersion && preRemoteVersion) {
66
+ if (preGlobalVersion && preRemoteVersion && preGlobalVersion !== preRemoteVersion) {
54
67
  fsm_dynamo_1.DyFM_Log.info(`📈 Várható frissítés: ${preGlobalVersion} → ${preRemoteVersion}`);
55
68
  }
56
- // npm update -g spawn + heartbeat.
69
+ // BUG-CLI-UPDATE-AUTO-STOP-001 Pillar 1: stop a npm-step előtt.
70
+ // A user korábban manuálisan kellett `ccap stop`-ot futtasson — most automata.
71
+ // A `stopServerAndClientAsync` no-op ha nincs futó process (PID fájl hiány).
72
+ fsm_dynamo_1.DyFM_Log.info('');
73
+ fsm_dynamo_1.DyFM_Log.info('🛑 Futó CCAP server / client leállítása az npm install előtt…');
74
+ await process_control_util_1.CCAP_ProcessControl_Util.stopServerAndClientAsync();
75
+ // BUG-CLI-UPDATE-AUTO-STOP-001 Pillar 3: install -g @latest (runner-ben).
57
76
  fsm_dynamo_1.DyFM_Log.info('');
58
- fsm_dynamo_1.DyFM_Log.info(`📦 npm update -g ${CCAP_NPM_PACKAGE_NAME} futtatása (heartbeat 30s-enként)…`);
77
+ fsm_dynamo_1.DyFM_Log.info(`📦 npm install -g ${CCAP_NPM_PACKAGE_NAME}@latest futtatása (heartbeat 30s-enként)…`);
59
78
  const runResult = await update_runner_util_1.CCAP_UpdateRunner_Util.runNpmUpdate({
60
79
  packageName: CCAP_NPM_PACKAGE_NAME,
61
80
  });
62
81
  const elapsedRounded = Math.round(runResult.elapsedSec * 10) / 10;
63
82
  if (runResult.success) {
64
- fsm_dynamo_1.DyFM_Log.success(`✓ npm update sikeres (${elapsedRounded}s).`);
83
+ fsm_dynamo_1.DyFM_Log.success(`✓ npm install sikeres (${elapsedRounded}s).`);
65
84
  }
66
85
  else {
67
- fsm_dynamo_1.DyFM_Log.warn(`✗ npm update sikertelen (${elapsedRounded}s, exit=${runResult.exitCode}): ${runResult.errorMessage}`);
86
+ fsm_dynamo_1.DyFM_Log.warn(`✗ npm install sikertelen (${elapsedRounded}s, exit=${runResult.exitCode}): ${runResult.errorMessage}`);
68
87
  fsm_dynamo_1.DyFM_Log.warn('A frissítés nem futott le, de a server újraindítás folytatódik a jelenlegi verzióval. '
69
- + 'Manuális recovery: `ccap repair` (BUG-CLI-RESTART-UPDATE-001 cycle 722) ha staging-stuck állapot.');
88
+ + 'Manuális recovery: `ccap repair` ha staging-stuck állapot.');
89
+ // REQ-UPD-ERROR-HANDLING-001: lokális JSONL buffer-be append, hogy a
90
+ // server bootstrap-jakor a `/errors` táblába is bekerüljön (a server
91
+ // most még nem fut — direkt persist nem lehetséges).
92
+ update_error_buffer_util_1.CCAP_UpdateErrorBuffer_Util.append({
93
+ errorCode: 'CCAP-CLI-UPDATE-NPM-FAIL-001',
94
+ message: `npm install -g ${CCAP_NPM_PACKAGE_NAME}@latest sikertelen: ${runResult.errorMessage}`,
95
+ source: 'cli-update',
96
+ additionalContent: {
97
+ packageName: CCAP_NPM_PACKAGE_NAME,
98
+ exitCode: runResult.exitCode,
99
+ elapsedSec: elapsedRounded,
100
+ preGlobalVersion: preGlobalVersion,
101
+ preRemoteVersion: preRemoteVersion,
102
+ runningCliVersion: version_const_1.CCAP_VERSION,
103
+ force: params.force === true,
104
+ },
105
+ });
70
106
  }
71
107
  // Post-update version snapshot: local + global + remote újra.
72
108
  fsm_dynamo_1.DyFM_Log.info('');
@@ -80,12 +116,12 @@ class CCAP_UpdateCommand_Util {
80
116
  fsm_dynamo_1.DyFM_Log.success(`✓ Verzió-emelkedés detektálva: ${preGlobalVersion} → ${postGlobalVersion}`);
81
117
  }
82
118
  else if (postGlobalVersion && preGlobalVersion === postGlobalVersion) {
83
- fsm_dynamo_1.DyFM_Log.info(`ℹ️ Globális verzió változatlan (${postGlobalVersion}) — már a legfrissebb, vagy az npm update nem talált új verziót.`);
119
+ fsm_dynamo_1.DyFM_Log.info(`ℹ️ Globális verzió változatlan (${postGlobalVersion}) — már a legfrissebb, vagy az npm install nem talált új verziót.`);
84
120
  }
85
- // Restart
121
+ // Start (a stop már megtörtént — itt a friss kódból indítunk).
86
122
  fsm_dynamo_1.DyFM_Log.info('');
87
- fsm_dynamo_1.DyFM_Log.info('🔁 Server újraindítása…');
88
- await process_control_util_1.CCAP_ProcessControl_Util.restartServerAndClient();
123
+ fsm_dynamo_1.DyFM_Log.info('🔁 Server újraindítása (frissített kódból)…');
124
+ await process_control_util_1.CCAP_ProcessControl_Util.startServerAndClient();
89
125
  fsm_dynamo_1.DyFM_Log.info('');
90
126
  fsm_dynamo_1.DyFM_Log.success('✅ CCAP update flow lezárva.');
91
127
  fsm_dynamo_1.DyFM_Log.info('🔍 Ellenőrzés: `ccap --version` → friss verzió kiírja '
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ const explore_1 = require("./_commands/explore");
21
21
  const review_1 = require("./_commands/review");
22
22
  const notify_1 = require("./_commands/notify");
23
23
  const repair_1 = require("./_commands/repair");
24
+ const info_1 = require("./_commands/info");
25
+ const logs_1 = require("./_commands/logs");
24
26
  const server_health_util_1 = require("./_collections/server-health.util");
25
27
  const ensure_setup_util_1 = require("./_collections/setup/ensure-setup.util");
26
28
  const version_const_1 = require("./_collections/version.const");
@@ -241,11 +243,48 @@ commander_1.program
241
243
  .action(() => {
242
244
  version_1.CCAP_VersionCommand_Util.c_ccapVersion();
243
245
  });
246
+ // REQ-CLI-INFO-001 — `ccap info` diagnosztikai snapshot.
247
+ commander_1.program
248
+ .command('info')
249
+ .description('Diagnosztikai snapshot: identity, server runtime, client runtime, config, '
250
+ + 'update-állapot, workspace. Bug-jelentésnél küldd el a kimenetet a `--json` '
251
+ + 'flag-gel együtt.')
252
+ .option('--json', 'Machine-readable JSON output (különben pretty)', false)
253
+ .action((opts) => {
254
+ info_1.CCAP_InfoCommand_Util.c_ccapInfo(opts).catch((err) => {
255
+ fsm_dynamo_1.DyFM_Error.logSimple('ccap info failed', err);
256
+ process.exit(1);
257
+ });
258
+ });
259
+ // REQ-CLI-LOGS-001 — `ccap logs` log tail + filter.
260
+ commander_1.program
261
+ .command('logs')
262
+ .description('CCAP server (default) vagy client log live-tail-je. Kezdeti N sor + tail '
263
+ + '(`--no-follow`-val csak a kezdeti sorok). Filter regex és since (`30s|5m|2h|1d`) '
264
+ + 'támogatva.')
265
+ .option('--lines <n>', 'Kezdeti sorok száma a tail előtt (default: 50)', '50')
266
+ .option('--filter <pattern>', 'Regex filter — csak az illeszkedő sorokat mutatja')
267
+ .option('--since <duration>', 'Időszak szűrő pl. 30s | 5m | 2h | 1d')
268
+ .option('--client', 'Server log helyett a client log fájlt mutatja', false)
269
+ .option('--no-follow', 'Nem fut tail-loop, csak a kezdeti sorok kiírása')
270
+ .action((opts) => {
271
+ const normalized = {
272
+ lines: opts.lines ? parseInt(opts.lines, 10) : undefined,
273
+ filter: opts.filter,
274
+ since: opts.since,
275
+ client: opts.client === true,
276
+ follow: opts.follow !== false,
277
+ };
278
+ logs_1.CCAP_LogsCommand_Util.c_ccapLogs(normalized).catch((err) => {
279
+ fsm_dynamo_1.DyFM_Error.logSimple('ccap logs failed', err);
280
+ process.exit(1);
281
+ });
282
+ });
244
283
  commander_1.program.parse();
245
284
  // Ha nincs alparancs: segédlet
246
285
  if (!process.argv.slice(2).length) {
247
286
  fsm_dynamo_1.DyFM_Log.info('CCAP Revisioned CLI – használat:'
248
- + ' ccap <start|stop|restart|update|chat|config|init|status|sessions|palette|explore|review|vault-key|ver>');
287
+ + ' ccap <start|stop|restart|update|chat|config|init|status|sessions|palette|explore|review|vault-key|ver|info|logs>');
249
288
  commander_1.program.outputHelp();
250
289
  }
251
290
  //# sourceMappingURL=program.js.map