@futdevpro/ccap 1.1.2389 → 1.1.2411

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 (220) hide show
  1. package/client-dist/{agent-instances.module-YPTJVIUS.js → agent-instances.module-X4WGT34K.js} +2 -2
  2. package/client-dist/{ca.module-GMI3COQR.js → ca.module-XSJ7BLYW.js} +2 -2
  3. package/client-dist/cc.module-BNVNHGFY.js +4 -0
  4. package/client-dist/cc.module-BNVNHGFY.js.map +7 -0
  5. package/client-dist/{chunk-RTIKCJMZ.js → chunk-26ZVYTEO.js} +2 -2
  6. package/client-dist/{chunk-L4ENM7GO.js → chunk-3CIISQAU.js} +2 -2
  7. package/client-dist/{chunk-5NWG7OK7.js → chunk-3MTK72EJ.js} +2 -2
  8. package/client-dist/{chunk-C2OJLTHT.js → chunk-3PAAZAV3.js} +2 -2
  9. package/client-dist/{chunk-M2WB2CIX.js → chunk-3Q542Z45.js} +2 -2
  10. package/client-dist/{chunk-CO6GL2ZW.js → chunk-5O4QDCHT.js} +2 -2
  11. package/client-dist/{chunk-C3HYDNFR.js → chunk-5TWAO654.js} +2 -2
  12. package/client-dist/{chunk-QV232W7L.js → chunk-6A5S3RMM.js} +2 -2
  13. package/client-dist/{chunk-TQA7F6A7.js → chunk-6OF2NGQO.js} +2 -2
  14. package/client-dist/{chunk-7ZYJAXXG.js → chunk-7KN6UEW5.js} +2 -2
  15. package/client-dist/{chunk-M7SFFFIE.js → chunk-AKBUQRXG.js} +2 -2
  16. package/client-dist/{chunk-HD44EGYT.js → chunk-AT63C2RH.js} +2 -2
  17. package/client-dist/{chunk-XOX3W6VU.js → chunk-AVIF2IP3.js} +2 -2
  18. package/client-dist/{chunk-63EKFJYX.js → chunk-AX76VMRT.js} +2 -2
  19. package/client-dist/{chunk-FCS7G7V7.js → chunk-AXPUK5TF.js} +2 -2
  20. package/client-dist/{chunk-UTXZWQY4.js → chunk-BJW2WCQT.js} +2 -2
  21. package/client-dist/{chunk-6EYSPF43.js → chunk-C7XPBJTG.js} +2 -2
  22. package/client-dist/{chunk-6EYSPF43.js.map → chunk-C7XPBJTG.js.map} +2 -2
  23. package/client-dist/{chunk-X6MNQMO2.js → chunk-CVKT3VCR.js} +2 -2
  24. package/client-dist/{chunk-UL5YKOHQ.js → chunk-DVUUFWKQ.js} +2 -2
  25. package/client-dist/{chunk-PY2STWVB.js → chunk-FK7N3Z5S.js} +2 -2
  26. package/client-dist/{chunk-W2JZI5SN.js → chunk-FTKYKFDR.js} +2 -2
  27. package/client-dist/{chunk-YDVTXTIB.js → chunk-FZFLGRLE.js} +2 -2
  28. package/client-dist/{chunk-Q55UVMRN.js → chunk-G6IHLHJ7.js} +2 -2
  29. package/client-dist/{chunk-EVV2KZ24.js → chunk-GJGBEN73.js} +2 -2
  30. package/client-dist/{chunk-T66IOCVY.js → chunk-GYCYFHVK.js} +2 -2
  31. package/client-dist/{chunk-I7DUYNDP.js → chunk-HHY62NRY.js} +2 -2
  32. package/client-dist/{chunk-5B76QINR.js → chunk-HSWFTS47.js} +2 -2
  33. package/client-dist/{chunk-SLB2Q4BC.js → chunk-JCPOMMVH.js} +2 -2
  34. package/client-dist/{chunk-7DCMAGXI.js → chunk-JPRPSYHF.js} +2 -2
  35. package/client-dist/{chunk-TRQDJHGJ.js → chunk-KANJT65V.js} +2 -2
  36. package/client-dist/{chunk-C5UWLFU6.js → chunk-KT3BYRL3.js} +2 -2
  37. package/client-dist/{chunk-PK4II7PF.js → chunk-L4PEP75V.js} +2 -2
  38. package/client-dist/{chunk-FD2Q32VD.js → chunk-LII3XCUF.js} +2 -2
  39. package/client-dist/{chunk-NIIZ6LR7.js → chunk-MYZVTRJZ.js} +2 -2
  40. package/client-dist/{chunk-H7UCNYXQ.js → chunk-O3N3XIMG.js} +2 -2
  41. package/client-dist/{chunk-2MMJJYV3.js → chunk-OG3VMUNV.js} +2 -2
  42. package/client-dist/chunk-P2FJ6ZAJ.js +3 -0
  43. package/client-dist/{chunk-YUGNXMFO.js.map → chunk-P2FJ6ZAJ.js.map} +4 -4
  44. package/client-dist/{chunk-YJ6KHZPR.js → chunk-PN3KA4H6.js} +2 -2
  45. package/client-dist/{chunk-CH6H5GIS.js → chunk-QTFJL2CG.js} +2 -2
  46. package/client-dist/{chunk-2GVBHC5K.js → chunk-RS24N3BW.js} +2 -2
  47. package/client-dist/{chunk-EXRDYZON.js → chunk-S37DYZ4D.js} +2 -2
  48. package/client-dist/{chunk-LBP74S3U.js → chunk-S6WQL46S.js} +2 -2
  49. package/client-dist/{chunk-6G5Y2RVU.js → chunk-SBCMX4K4.js} +2 -2
  50. package/client-dist/{chunk-6MIKCML7.js → chunk-TGIQ5T5X.js} +2 -2
  51. package/client-dist/{chunk-6MIKCML7.js.map → chunk-TGIQ5T5X.js.map} +1 -1
  52. package/client-dist/{chunk-BSJLKUSY.js → chunk-TOHUYDQN.js} +2 -2
  53. package/client-dist/{chunk-FGOS37PX.js → chunk-U57ABGMI.js} +2 -2
  54. package/client-dist/{chunk-WO6HE2R3.js → chunk-UWTY5YHV.js} +2 -2
  55. package/client-dist/{chunk-EPWEWBZM.js → chunk-UZBRDH6C.js} +2 -2
  56. package/client-dist/{chunk-3MI5UYSK.js → chunk-V3APWHIK.js} +2 -2
  57. package/client-dist/{chunk-5IUIWSPY.js → chunk-VKRB7RPF.js} +2 -2
  58. package/client-dist/{chunk-S7HHYSZ5.js → chunk-VNNRNIBP.js} +2 -2
  59. package/client-dist/{chunk-2L4QBLQ6.js → chunk-WF5REVE2.js} +2 -2
  60. package/client-dist/{chunk-IL6S5JUT.js → chunk-XH5VH5JJ.js} +2 -2
  61. package/client-dist/{chunk-QYGC7YHL.js → chunk-XIP3DG7D.js} +2 -2
  62. package/client-dist/{chunk-5QBDPAES.js → chunk-XMEY5EOS.js} +26 -26
  63. package/client-dist/{chunk-5QBDPAES.js.map → chunk-XMEY5EOS.js.map} +1 -1
  64. package/client-dist/{chunk-OBEEMYS7.js → chunk-YE2TCO62.js} +2 -2
  65. package/client-dist/{chunk-URARLVRJ.js → chunk-ZSUUXOY6.js} +2 -2
  66. package/client-dist/{consultant.module-H6PYMBAB.js → consultant.module-6CHZ2SU6.js} +2 -2
  67. package/client-dist/{crd.module-ZC5QPQJR.js → crd.module-3V4KQOUO.js} +2 -2
  68. package/client-dist/{dashboard.module-H4X3MKCK.js → dashboard.module-JCQYOTIA.js} +2 -2
  69. package/client-dist/{do.module-GQRR56RE.js → do.module-SAW7Q2GH.js} +2 -2
  70. package/client-dist/{document-library.module-C6TDX4WU.js → document-library.module-633NSZOY.js} +2 -2
  71. package/client-dist/{embedding-eval.module-PCWTBVQG.js → embedding-eval.module-BRZFA5S7.js} +2 -2
  72. package/client-dist/{embedding-registry.module-LEYWBEQ4.js → embedding-registry.module-MFJM25SW.js} +2 -2
  73. package/client-dist/{err.module-YQBQBPIV.js → err.module-5XCTDXB3.js} +2 -2
  74. package/client-dist/{feedback.module-FOKL66MT.js → feedback.module-AFUAWZ3J.js} +2 -2
  75. package/client-dist/{host-runtime-mcp.module-TL6G4XN6.js → host-runtime-mcp.module-EIOWQEYV.js} +2 -2
  76. package/client-dist/index.html +2 -2
  77. package/client-dist/{live-dev-pipeline.module-JOMOZMGX.js → live-dev-pipeline.module-YOLDXWCL.js} +2 -2
  78. package/client-dist/{logs.module-G5VDU76B.js → logs.module-NC5RPLNT.js} +2 -2
  79. package/client-dist/{main-FTPMU5ED.js → main-FKDZMHCD.js} +3 -3
  80. package/client-dist/{master-control-remote-poc.module-SCYEILPY.js → master-control-remote-poc.module-UOKVH2YM.js} +2 -2
  81. package/client-dist/{mobile-app.module-SA3G3J4Q.js → mobile-app.module-LLFEBFGK.js} +2 -2
  82. package/client-dist/{model-registry.module-SBXEJQS5.js → model-registry.module-WACRX4PQ.js} +2 -2
  83. package/client-dist/{oc.module-CMLPJHYT.js → oc.module-4JYGDCAF.js} +2 -2
  84. package/client-dist/{orc.module-T4UQFZP2.js → orc.module-XEK6LG3C.js} +2 -2
  85. package/client-dist/{project-management.module-IMS2UJ2Y.js → project-management.module-4DMDWYLX.js} +2 -2
  86. package/client-dist/project-source-routed.module-75LP5YYX.js +2 -0
  87. package/client-dist/{scheduler.module-ZBZDUTRF.js → scheduler.module-3BGSX7YH.js} +2 -2
  88. package/client-dist/session.module-7WUX4ZDX.js +12 -0
  89. package/client-dist/{session.module-YTDOJXQT.js.map → session.module-7WUX4ZDX.js.map} +3 -3
  90. package/client-dist/{set.module-6GGTALKI.js → set.module-VWNHXENW.js} +2 -2
  91. package/client-dist/{setup.module-FXVCUMRZ.js → setup.module-XBBSFHNL.js} +2 -2
  92. package/client-dist/styles-IPQY7PNR.css +2 -0
  93. package/client-dist/styles-IPQY7PNR.css.map +7 -0
  94. package/client-dist/{terminals.module-SVXHFKVL.js → terminals.module-YV2CDNLU.js} +2 -2
  95. package/client-dist/{voice-notes-poc.module-RWJ7X6LU.js → voice-notes-poc.module-SZHQ55R6.js} +2 -2
  96. package/client-dist/{wfs.module-DP23D57X.js → wfs.module-Q4HXNWZW.js} +2 -2
  97. package/package.json +1 -1
  98. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.d.ts +13 -0
  99. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.d.ts.map +1 -1
  100. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.js +15 -0
  101. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.js.map +1 -1
  102. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.d.ts +85 -0
  103. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.d.ts.map +1 -0
  104. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.js +234 -0
  105. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.js.map +1 -0
  106. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.spec.d.ts +7 -0
  107. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.spec.d.ts.map +1 -0
  108. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.spec.js +185 -0
  109. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.spec.js.map +1 -0
  110. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.d.ts.map +1 -1
  111. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js +8 -17
  112. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js.map +1 -1
  113. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts +5 -0
  114. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts.map +1 -1
  115. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js +16 -0
  116. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js.map +1 -1
  117. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-output.control-service.d.ts +4 -0
  118. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-output.control-service.d.ts.map +1 -1
  119. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-output.control-service.js +17 -3
  120. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-output.control-service.js.map +1 -1
  121. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.d.ts +6 -0
  122. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.d.ts.map +1 -1
  123. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.js +15 -1
  124. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.js.map +1 -1
  125. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.d.ts +20 -0
  126. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.d.ts.map +1 -1
  127. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.js +44 -0
  128. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.js.map +1 -1
  129. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.spec.d.ts +8 -0
  130. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.spec.d.ts.map +1 -0
  131. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.spec.js +45 -0
  132. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.spec.js.map +1 -0
  133. package/client-dist/cc.module-XJOL5LBP.js +0 -4
  134. package/client-dist/cc.module-XJOL5LBP.js.map +0 -7
  135. package/client-dist/chunk-YUGNXMFO.js +0 -2
  136. package/client-dist/project-source-routed.module-SYASSYCH.js +0 -2
  137. package/client-dist/session.module-YTDOJXQT.js +0 -12
  138. package/client-dist/styles-27DTG5PE.css +0 -2
  139. package/client-dist/styles-27DTG5PE.css.map +0 -7
  140. /package/client-dist/{agent-instances.module-YPTJVIUS.js.map → agent-instances.module-X4WGT34K.js.map} +0 -0
  141. /package/client-dist/{ca.module-GMI3COQR.js.map → ca.module-XSJ7BLYW.js.map} +0 -0
  142. /package/client-dist/{chunk-RTIKCJMZ.js.map → chunk-26ZVYTEO.js.map} +0 -0
  143. /package/client-dist/{chunk-L4ENM7GO.js.map → chunk-3CIISQAU.js.map} +0 -0
  144. /package/client-dist/{chunk-5NWG7OK7.js.map → chunk-3MTK72EJ.js.map} +0 -0
  145. /package/client-dist/{chunk-C2OJLTHT.js.map → chunk-3PAAZAV3.js.map} +0 -0
  146. /package/client-dist/{chunk-M2WB2CIX.js.map → chunk-3Q542Z45.js.map} +0 -0
  147. /package/client-dist/{chunk-CO6GL2ZW.js.map → chunk-5O4QDCHT.js.map} +0 -0
  148. /package/client-dist/{chunk-C3HYDNFR.js.map → chunk-5TWAO654.js.map} +0 -0
  149. /package/client-dist/{chunk-QV232W7L.js.map → chunk-6A5S3RMM.js.map} +0 -0
  150. /package/client-dist/{chunk-TQA7F6A7.js.map → chunk-6OF2NGQO.js.map} +0 -0
  151. /package/client-dist/{chunk-7ZYJAXXG.js.map → chunk-7KN6UEW5.js.map} +0 -0
  152. /package/client-dist/{chunk-M7SFFFIE.js.map → chunk-AKBUQRXG.js.map} +0 -0
  153. /package/client-dist/{chunk-HD44EGYT.js.map → chunk-AT63C2RH.js.map} +0 -0
  154. /package/client-dist/{chunk-XOX3W6VU.js.map → chunk-AVIF2IP3.js.map} +0 -0
  155. /package/client-dist/{chunk-63EKFJYX.js.map → chunk-AX76VMRT.js.map} +0 -0
  156. /package/client-dist/{chunk-FCS7G7V7.js.map → chunk-AXPUK5TF.js.map} +0 -0
  157. /package/client-dist/{chunk-UTXZWQY4.js.map → chunk-BJW2WCQT.js.map} +0 -0
  158. /package/client-dist/{chunk-X6MNQMO2.js.map → chunk-CVKT3VCR.js.map} +0 -0
  159. /package/client-dist/{chunk-UL5YKOHQ.js.map → chunk-DVUUFWKQ.js.map} +0 -0
  160. /package/client-dist/{chunk-PY2STWVB.js.map → chunk-FK7N3Z5S.js.map} +0 -0
  161. /package/client-dist/{chunk-W2JZI5SN.js.map → chunk-FTKYKFDR.js.map} +0 -0
  162. /package/client-dist/{chunk-YDVTXTIB.js.map → chunk-FZFLGRLE.js.map} +0 -0
  163. /package/client-dist/{chunk-Q55UVMRN.js.map → chunk-G6IHLHJ7.js.map} +0 -0
  164. /package/client-dist/{chunk-EVV2KZ24.js.map → chunk-GJGBEN73.js.map} +0 -0
  165. /package/client-dist/{chunk-T66IOCVY.js.map → chunk-GYCYFHVK.js.map} +0 -0
  166. /package/client-dist/{chunk-I7DUYNDP.js.map → chunk-HHY62NRY.js.map} +0 -0
  167. /package/client-dist/{chunk-5B76QINR.js.map → chunk-HSWFTS47.js.map} +0 -0
  168. /package/client-dist/{chunk-SLB2Q4BC.js.map → chunk-JCPOMMVH.js.map} +0 -0
  169. /package/client-dist/{chunk-7DCMAGXI.js.map → chunk-JPRPSYHF.js.map} +0 -0
  170. /package/client-dist/{chunk-TRQDJHGJ.js.map → chunk-KANJT65V.js.map} +0 -0
  171. /package/client-dist/{chunk-C5UWLFU6.js.map → chunk-KT3BYRL3.js.map} +0 -0
  172. /package/client-dist/{chunk-PK4II7PF.js.map → chunk-L4PEP75V.js.map} +0 -0
  173. /package/client-dist/{chunk-FD2Q32VD.js.map → chunk-LII3XCUF.js.map} +0 -0
  174. /package/client-dist/{chunk-NIIZ6LR7.js.map → chunk-MYZVTRJZ.js.map} +0 -0
  175. /package/client-dist/{chunk-H7UCNYXQ.js.map → chunk-O3N3XIMG.js.map} +0 -0
  176. /package/client-dist/{chunk-2MMJJYV3.js.map → chunk-OG3VMUNV.js.map} +0 -0
  177. /package/client-dist/{chunk-YJ6KHZPR.js.map → chunk-PN3KA4H6.js.map} +0 -0
  178. /package/client-dist/{chunk-CH6H5GIS.js.map → chunk-QTFJL2CG.js.map} +0 -0
  179. /package/client-dist/{chunk-2GVBHC5K.js.map → chunk-RS24N3BW.js.map} +0 -0
  180. /package/client-dist/{chunk-EXRDYZON.js.map → chunk-S37DYZ4D.js.map} +0 -0
  181. /package/client-dist/{chunk-LBP74S3U.js.map → chunk-S6WQL46S.js.map} +0 -0
  182. /package/client-dist/{chunk-6G5Y2RVU.js.map → chunk-SBCMX4K4.js.map} +0 -0
  183. /package/client-dist/{chunk-BSJLKUSY.js.map → chunk-TOHUYDQN.js.map} +0 -0
  184. /package/client-dist/{chunk-FGOS37PX.js.map → chunk-U57ABGMI.js.map} +0 -0
  185. /package/client-dist/{chunk-WO6HE2R3.js.map → chunk-UWTY5YHV.js.map} +0 -0
  186. /package/client-dist/{chunk-EPWEWBZM.js.map → chunk-UZBRDH6C.js.map} +0 -0
  187. /package/client-dist/{chunk-3MI5UYSK.js.map → chunk-V3APWHIK.js.map} +0 -0
  188. /package/client-dist/{chunk-5IUIWSPY.js.map → chunk-VKRB7RPF.js.map} +0 -0
  189. /package/client-dist/{chunk-S7HHYSZ5.js.map → chunk-VNNRNIBP.js.map} +0 -0
  190. /package/client-dist/{chunk-2L4QBLQ6.js.map → chunk-WF5REVE2.js.map} +0 -0
  191. /package/client-dist/{chunk-IL6S5JUT.js.map → chunk-XH5VH5JJ.js.map} +0 -0
  192. /package/client-dist/{chunk-QYGC7YHL.js.map → chunk-XIP3DG7D.js.map} +0 -0
  193. /package/client-dist/{chunk-OBEEMYS7.js.map → chunk-YE2TCO62.js.map} +0 -0
  194. /package/client-dist/{chunk-URARLVRJ.js.map → chunk-ZSUUXOY6.js.map} +0 -0
  195. /package/client-dist/{consultant.module-H6PYMBAB.js.map → consultant.module-6CHZ2SU6.js.map} +0 -0
  196. /package/client-dist/{crd.module-ZC5QPQJR.js.map → crd.module-3V4KQOUO.js.map} +0 -0
  197. /package/client-dist/{dashboard.module-H4X3MKCK.js.map → dashboard.module-JCQYOTIA.js.map} +0 -0
  198. /package/client-dist/{do.module-GQRR56RE.js.map → do.module-SAW7Q2GH.js.map} +0 -0
  199. /package/client-dist/{document-library.module-C6TDX4WU.js.map → document-library.module-633NSZOY.js.map} +0 -0
  200. /package/client-dist/{embedding-eval.module-PCWTBVQG.js.map → embedding-eval.module-BRZFA5S7.js.map} +0 -0
  201. /package/client-dist/{embedding-registry.module-LEYWBEQ4.js.map → embedding-registry.module-MFJM25SW.js.map} +0 -0
  202. /package/client-dist/{err.module-YQBQBPIV.js.map → err.module-5XCTDXB3.js.map} +0 -0
  203. /package/client-dist/{feedback.module-FOKL66MT.js.map → feedback.module-AFUAWZ3J.js.map} +0 -0
  204. /package/client-dist/{host-runtime-mcp.module-TL6G4XN6.js.map → host-runtime-mcp.module-EIOWQEYV.js.map} +0 -0
  205. /package/client-dist/{live-dev-pipeline.module-JOMOZMGX.js.map → live-dev-pipeline.module-YOLDXWCL.js.map} +0 -0
  206. /package/client-dist/{logs.module-G5VDU76B.js.map → logs.module-NC5RPLNT.js.map} +0 -0
  207. /package/client-dist/{main-FTPMU5ED.js.map → main-FKDZMHCD.js.map} +0 -0
  208. /package/client-dist/{master-control-remote-poc.module-SCYEILPY.js.map → master-control-remote-poc.module-UOKVH2YM.js.map} +0 -0
  209. /package/client-dist/{mobile-app.module-SA3G3J4Q.js.map → mobile-app.module-LLFEBFGK.js.map} +0 -0
  210. /package/client-dist/{model-registry.module-SBXEJQS5.js.map → model-registry.module-WACRX4PQ.js.map} +0 -0
  211. /package/client-dist/{oc.module-CMLPJHYT.js.map → oc.module-4JYGDCAF.js.map} +0 -0
  212. /package/client-dist/{orc.module-T4UQFZP2.js.map → orc.module-XEK6LG3C.js.map} +0 -0
  213. /package/client-dist/{project-management.module-IMS2UJ2Y.js.map → project-management.module-4DMDWYLX.js.map} +0 -0
  214. /package/client-dist/{project-source-routed.module-SYASSYCH.js.map → project-source-routed.module-75LP5YYX.js.map} +0 -0
  215. /package/client-dist/{scheduler.module-ZBZDUTRF.js.map → scheduler.module-3BGSX7YH.js.map} +0 -0
  216. /package/client-dist/{set.module-6GGTALKI.js.map → set.module-VWNHXENW.js.map} +0 -0
  217. /package/client-dist/{setup.module-FXVCUMRZ.js.map → setup.module-XBBSFHNL.js.map} +0 -0
  218. /package/client-dist/{terminals.module-SVXHFKVL.js.map → terminals.module-YV2CDNLU.js.map} +0 -0
  219. /package/client-dist/{voice-notes-poc.module-RWJ7X6LU.js.map → voice-notes-poc.module-SZHQ55R6.js.map} +0 -0
  220. /package/client-dist/{wfs.module-DP23D57X.js.map → wfs.module-Q4HXNWZW.js.map} +0 -0
@@ -1,3 +1,3 @@
1
- import{a as se}from"./chunk-YDVTXTIB.js";import"./chunk-UL5YKOHQ.js";import"./chunk-QYGC7YHL.js";import"./chunk-TQA7F6A7.js";import{b as Z,c as ee,f as te,i as ne,n as ie,o as oe,p as re,v as j}from"./chunk-EO4DNTT4.js";import{a as A}from"./chunk-5UPNU54P.js";import{j as ae}from"./chunk-7DCMAGXI.js";import{I as le}from"./chunk-6MIKCML7.js";import{C,D as R,E as q,Fa as o,Ga as F,Ha as b,Ia as N,J as u,K as m,Kb as X,L as D,M as J,Ta as Y,Z as s,a as v,aa as w,b as S,d as B,da as k,ga as g,ia as I,k as x,la as h,na as K,oa as M,p as E,pa as z,qa as i,ra as n,sa as P,ua as y,ub as V,va as c,wa as p,xb as Q,y as T,z as U}from"./chunk-TBMJSIBB.js";var de=(()=>{class l{baseUrl=`${le.api.baseUrl}/workflow`;http=C(Q);listWorkflows(e){let t=[];e?.workflowType&&t.push(`type=${e.workflowType}`),e?.isTemplate!==void 0&&t.push(`isTemplate=${e.isTemplate}`);let r=t.length?`?${t.join("&")}`:"";return E(this.http.get(`${this.baseUrl}${r}`))}createWorkflow(e){return E(this.http.post(this.baseUrl,e))}getWorkflow(e){return E(this.http.get(`${this.baseUrl}/${e}`))}updateWorkflow(e){let a=e,{id:t}=a,r=B(a,["id"]);return E(this.http.put(`${this.baseUrl}/${t}`,r))}generateWorkflow(e){return E(this.http.post(`${this.baseUrl}/generate`,{description:e.description,provider:e.provider,model:e.model}))}modifyWorkflow(e){return E(this.http.post(`${this.baseUrl}/modify`,{currentWorkflow:e.currentWorkflow,modificationDescription:e.modificationDescription,provider:e.provider,model:e.model}))}deleteWorkflow(e){return E(this.http.delete(`${this.baseUrl}/${e}`))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var pe=(()=>{class l{workflow_AS=C(de);listWorkflows(e){return x(this,null,function*(){return(yield this.workflow_AS.listWorkflows(e)).workflows})}createWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.createWorkflow(e)).workflow})}getWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.getWorkflow(e)).workflow})}updateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.updateWorkflow(e)).workflow})}generateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.generateWorkflow(e)).workflow})}modifyWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.modifyWorkflow(e)).workflow})}deleteWorkflow(e){return x(this,null,function*(){return this.workflow_AS.deleteWorkflow(e)})}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var L="ccap-workflowSettingsDraft",$=class{static get(){let d=A.readJson(L,null);if(typeof d!="object"||d===null)return null;let e=d,t=typeof e.generationPrompt=="string"?e.generationPrompt:"",r=typeof e.modificationPrompt=="string"?e.modificationPrompt:"",a=typeof e.selectedProvider=="string"?e.selectedProvider:"",_=typeof e.selectedModel=="string"?e.selectedModel:"",W=typeof e.isCreating=="boolean"?e.isCreating:!1,f=e.editingWorkflow&&typeof e.editingWorkflow=="object"?e.editingWorkflow:null;return{generationPrompt:t,modificationPrompt:r,selectedProvider:a,selectedModel:_,isCreating:W,editingWorkflow:f}}static save(d){A.writeJson(L,d)}static clear(){A.remove(L)}};var me=(l,d)=>d._id,H=(l,d)=>d.id;function ce(l,d){if(l&1){let e=y();i(0,"button",5),c("click",function(){u(e);let r=p();return m(r.handleCreateNew())}),o(1," + \xDAj workflow "),n()}}function _e(l,d){l&1&&(i(0,"div",6),o(1,"Bet\xF6lt\xE9s..."),n())}function fe(l,d){l&1&&(i(0,"div",7),o(1," Nincs m\xE9g workflow. Hozz l\xE9tre egyet a gombbal. "),n())}function ge(l,d){l&1&&(i(0,"span",14),o(1," sablon "),n())}function xe(l,d){l&1&&(i(0,"span",15),o(1," Built-in "),n())}function we(l,d){if(l&1){let e=y();i(0,"button",20),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleEdit(r))}),o(1," Szerkeszt\xE9s "),n(),i(2,"button",21),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleDelete(r))}),o(3," T\xF6rl\xE9s "),n()}}function he(l,d){l&1&&(i(0,"span",19),o(1," Readonly "),n())}function ke(l,d){if(l&1&&(i(0,"div",9)(1,"div",10)(2,"div",11)(3,"span",12),o(4),n(),i(5,"span",13),o(6),n(),k(7,ge,2,0,"span",14)(8,xe,2,0,"span",15),n(),i(9,"p",16),o(10),n(),i(11,"div",17),o(12),n()(),i(13,"div",18),k(14,we,4,0)(15,he,2,0,"span",19),n()()),l&2){let e=d.$implicit;s(4),F(e.name),s(2),b(" ",e.workflowType," "),s(),h(e.isTemplate?7:-1),s(),h(e.isBuiltIn?8:-1),s(2),F(e.description),s(2),b(" ",e.phases.length," f\xE1zis "),s(2),h(e.isBuiltIn?15:14)}}function Ee(l,d){if(l&1&&(i(0,"div",8),M(1,ke,16,7,"div",9,me),n()),l&2){let e=p(2);s(),z(e.workflows_$())}}function Ce(l,d){if(l&1&&k(0,_e,2,0,"div",6)(1,fe,2,0,"div",7)(2,Ee,3,0,"div",8),l&2){let e=p();h(e.isLoading_$()?0:e.workflows_$().length===0?1:2)}}function be(l,d){l&1&&(D(),i(0,"svg",27),P(1,"polyline",52),n())}function ve(l,d){l&1&&(D(),i(0,"svg",27),P(1,"rect",53)(2,"path",54),n())}function Se(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function ye(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM dolgozik a workflow-n..."),n())}function $e(l,d){if(l&1){let e=y();i(0,"div",28)(1,"div",42)(2,"span",55),o(3,"Workflow gener\xE1l\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le egyszer\u0171en, mit szeretn\xE9l"),n()(),i(6,"textarea",57),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleGenerationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",59),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,Se,2,3,"option",41,H),n()(),i(17,"button",61),c("click",function(){u(e);let r=p(2);return m(r.handleGenerate())}),o(18),n(),k(19,ye,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.generationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isGenerating_$()||!e.generationPrompt_$()),s(),b(" ",e.isGenerating_$()?"Gener\xE1l\xE1s...":"Gener\xE1l\xE1s"," "),s(),h(e.isGenerating_$()?19:-1)}}function We(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function Me(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM m\xF3dos\xEDtja a workflow-t..."),n())}function ze(l,d){if(l&1){let e=y();i(0,"div",29)(1,"div",42)(2,"span",62),o(3,"Workflow m\xF3dos\xEDt\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le, mit szeretn\xE9l v\xE1ltoztatni"),n()(),i(6,"textarea",63),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModificationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",64),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,We,2,3,"option",41,H),n()(),i(17,"button",65),c("click",function(){u(e);let r=p(2);return m(r.handleModify())}),o(18),n(),k(19,Me,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.modificationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isModifying_$()||!e.modificationPrompt_$()),s(),b(" ",e.isModifying_$()?"M\xF3dos\xEDt\xE1s...":"M\xF3dos\xEDt\xE1s"," "),s(),h(e.isModifying_$()?19:-1)}}function Te(l,d){l&1&&(i(0,"div",36)(1,"div")(2,"h3",66),o(3,"Fel\xE9p\xEDt\xE9s"),n(),i(4,"p"),o(5," Egy j\xF3 workflow "),i(6,"strong",67),o(7,"f\xE1zisokra"),n(),o(8," bontja a feladatot, ahol minden f\xE1zis egyetlen, j\xF3l meghat\xE1rozott c\xE9lt k\xF6vet. A "),i(9,"strong",67),o(10,"vez\xE9rprompt"),n(),o(11," (master prompt) az eg\xE9sz workflow-ra \xE9rv\xE9nyes alapszab\xE1lyokat \xE9s kontextust tartalmazza \u2014 ez minden f\xE1zisban automatikusan megjelenik. "),n()(),i(12,"div")(13,"h3",66),o(14,"Vez\xE9rprompt (master prompt)"),n(),i(15,"ul",68)(16,"li"),o(17,"Projekt kontextus: milyen repo, milyen stack, milyen nyelven dolgozunk"),n(),i(18,"li"),o(19,"Glob\xE1lis szab\xE1lyok: k\xF3dol\xE1si konvenci\xF3k, tiltott m\u0171veletek, commit policy"),n(),i(20,"li"),o(21,'Szerepk\xF6r: milyen "szaktud\xE1s\xFA" agent hajtja v\xE9gre a workflow-t'),n(),i(22,"li"),o(23,"Ne ism\xE9telj meg f\xE1zisonk\xE9nt olyat, ami ide tartozik \u2014 a master prompt mindig jelen van"),n()()(),i(24,"div")(25,"h3",66),o(26,"F\xE1zisok tervez\xE9se"),n(),i(27,"ul",68)(28,"li")(29,"strong",67),o(30,"C\xE9l (goal):"),n(),o(31," egyetlen mondat \u2014 a f\xE1zis sikeress\xE9g\xE9nek m\xE9rc\xE9je "),n(),i(32,"li")(33,"strong",67),o(34,"F\xE1zis prompt:"),n(),o(35,' konkr\xE9t, akci\xF3-orient\xE1lt utas\xEDt\xE1s. Ker\xFCld az \xE1ltal\xE1noss\xE1gokat ("n\xE9zd \xE1t a k\xF3dot") \u2014 \xEDrd le pontosan mit kell csin\xE1lni '),n(),i(36,"li")(37,"strong",67),o(38,"Ism\xE9tl\u0151d\u0151 f\xE1zis:"),n(),o(39,' ha a f\xE1zis nem egyl\xE9p\xE9ses (pl. iterat\xEDv fejleszt\xE9s), kapcsold be az "Ism\xE9tl\u0151d\u0151" opci\xF3t \u2014 a f\xE1zis addig fut, am\xEDg PHASE_DONE jelz\xE9s nem \xE9rkezik '),n()()(),i(40,"div")(41,"h3",66),o(42,"Tipikus f\xE1zis-sorrend"),n(),i(43,"div",69)(44,"span",70),o(45,"1. T\xE1j\xE9koz\xF3d\xE1s / Clarify"),n(),i(46,"span",24),o(47,"\u2192"),n(),i(48,"span",70),o(49,"2. Tervez\xE9s / Plan"),n(),i(50,"span",24),o(51,"\u2192"),n(),i(52,"span",70),o(53,"3. Megval\xF3s\xEDt\xE1s / Dev"),n(),i(54,"span",24),o(55,"\u2192"),n(),i(56,"span",70),o(57,"4. Tesztel\xE9s / Test"),n(),i(58,"span",24),o(59,"\u2192"),n(),i(60,"span",70),o(61,"5. Review / Doc"),n()(),i(62,"p",71),o(63," Nem minden workflow-nak kell minden f\xE1zist tartalmaznia \u2014 haszn\xE1ld azt, ami relev\xE1ns. "),n()(),i(64,"div")(65,"h3",66),o(66,"Tippek"),n(),i(67,"ul",68)(68,"li"),o(69,"A "),i(70,"strong",67),o(71,"sablon (template)"),n(),o(72," workflow-kat gener\xE1l\xE1shoz is haszn\xE1ljuk \u2014 jel\xF6ld be, ha m\xE1sok sz\xE1m\xE1ra is mintak\xE9nt szolg\xE1l"),n(),i(73,"li"),o(74,"A f\xE1zis prompt-ban hivatkozhatsz f\xE1jlokra, mapp\xE1kra, specifik\xE1ci\xF3kra \u2014 min\xE9l konkr\xE9tabb, ann\xE1l jobb"),n(),i(75,"li"),o(76,"T\xF6rekedj arra, hogy egy f\xE1zis "),i(77,"strong",67),o(78,"1 felel\u0151ss\xE9gi k\xF6rrel"),n(),o(79," rendelkezzen (single responsibility)"),n(),i(80,"li"),o(81,"Ha egy f\xE1zis t\xFAl hossz\xFA lenne, bontsd kett\xE9 \u2014 ink\xE1bb legyen t\xF6bb kis f\xE1zis, mint egy nagy"),n()()()())}function De(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e),s(),F(e)}}function Pe(l,d){if(l&1){let e=y();i(0,"div",48)(1,"div",72)(2,"span",73),o(3),n(),i(4,"button",74),c("click",function(){let r=u(e).$index,a=p(2);return m(a.handleRemovePhase(r))}),o(5," Elt\xE1vol\xEDt\xE1s "),n()(),i(6,"div",75)(7,"div")(8,"label",76),o(9,"C\xEDm"),n(),i(10,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"title",value:r}))}),n()(),i(11,"div")(12,"label",76),o(13,"C\xE9l (goal)"),n(),i(14,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"goal",value:r}))}),n()()(),i(15,"div",78)(16,"label",76),o(17,"F\xE1zis prompt"),n(),i(18,"textarea",79),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"phasePrompt",value:r}))}),o(19," "),n()(),i(20,"div",42)(21,"input",43),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"repeatUntilDone",value:r}))}),n(),i(22,"label",80),o(23,"Ism\xE9tl\u0151d\u0151 (am\xEDg PHASE_DONE)"),n()()()}if(l&2){let e=d.$implicit,t=d.$index;s(3),b("F\xE1zis ",t+1,""),s(7),g("ngModel",e.title),s(4),g("ngModel",e.goal),s(4),g("ngModel",e.phasePrompt),s(3),g("ngModel",e.repeatUntilDone)}}function Fe(l,d){if(l&1){let e=y();i(0,"div",4)(1,"div",22)(2,"button",23),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(3," \u2190 Vissza "),n(),i(4,"span",24),o(5,"|"),n(),i(6,"span",25),o(7),n(),i(8,"button",26),c("click",function(){u(e);let r=p();return m(r.handleCopyMarkdown())}),k(9,be,2,0,":svg:svg",27)(10,ve,3,0,":svg:svg",27),n()(),k(11,$e,20,5,"div",28)(12,ze,20,5,"div",29),i(13,"div",30)(14,"button",31),c("click",function(){u(e);let r=p();return m(r.handleToggleBestPractices())}),D(),i(15,"svg",32),P(16,"polyline",33),n(),J(),i(17,"span",34),o(18,"Workflow tervez\xE9si \xFAtmutat\xF3"),n(),i(19,"span",35),o(20,"best practices"),n()(),k(21,Te,82,0,"div",36),n(),i(22,"div",37)(23,"div")(24,"label",38),o(25,"N\xE9v"),n(),i(26,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("name",r))}),n()(),i(27,"div")(28,"label",38),o(29,"T\xEDpus"),n(),i(30,"select",40),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("workflowType",r))}),M(31,De,2,2,"option",41,K),n()()(),i(33,"div")(34,"label",38),o(35,"Le\xEDr\xE1s"),n(),i(36,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("description",r))}),n()(),i(37,"div",42)(38,"input",43),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("isTemplate",r))}),n(),i(39,"label",25),o(40,"Sablon (template)"),n()(),i(41,"div")(42,"label",38),o(43,"Vez\xE9rprompt (master prompt)"),n(),i(44,"textarea",44),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("masterPrompt",r))}),o(45," "),n()(),i(46,"div")(47,"div",45)(48,"h2",46),o(49,"F\xE1zisok"),n(),i(50,"button",47),c("click",function(){u(e);let r=p();return m(r.handleAddPhase())}),o(51," + F\xE1zis "),n()(),M(52,Pe,24,5,"div",48,H),n(),i(54,"div",49)(55,"button",50),c("click",function(){u(e);let r=p();return m(r.handleSave())}),o(56),n(),i(57,"button",51),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(58," M\xE9gse "),n()()()}if(l&2){let e,t,r,a,_,W,f=p();s(7),b(" ",f.isCreating_$()?"\xDAj workflow":"Szerkeszt\xE9s"," "),s(),I("text-neutral-500",!f.isCopied_$())("hover:text-neutral-200",!f.isCopied_$())("text-green-400",f.isCopied_$()),s(),h(f.isCopied_$()?9:10),s(2),h(f.isCreating_$()?11:-1),s(),h(f.isCreating_$()?-1:12),s(3),I("-rotate-90",!f.isBestPracticesOpen_$()),s(6),h(f.isBestPracticesOpen_$()?21:-1),s(5),g("ngModel",(e=f.editingWorkflow_$())==null?null:e.name),s(4),g("ngModel",(t=f.editingWorkflow_$())==null?null:t.workflowType),s(),z(f.workflowTypes),s(5),g("ngModel",(r=f.editingWorkflow_$())==null?null:r.description),s(2),g("ngModel",(a=f.editingWorkflow_$())==null?null:a.isTemplate),s(6),g("ngModel",(_=f.editingWorkflow_$())==null?null:_.masterPrompt),s(8),z((W=f.editingWorkflow_$())==null?null:W.phases),s(3),g("disabled",f.isLoading_$()),s(),b(" ",f.isCreating_$()?"L\xE9trehoz\xE1s":"Ment\xE9s"," ")}}function ue(l){return{id:`phase-${Date.now()}-${l}`,title:"",order:l,goal:"",phasePrompt:"",constraints:[],dod:[],repeatUntilDone:!1,subWorkflowTriggers:[]}}function Ve(){return{name:"",description:"",workflowType:"development",isTemplate:!1,masterPrompt:"",phases:[ue(0)]}}var O=(()=>{class l{workflow_DS=C(pe);globalError_CS=C(ae);modelRegistry_DS=C(se);workflows_$=w([]);editingWorkflow_$=w(null);isLoading_$=w(!1);isCreating_$=w(!1);isBestPracticesOpen_$=w(!1);generationPrompt_$=w("");modificationPrompt_$=w("");isGenerating_$=w(!1);isModifying_$=w(!1);isCopied_$=w(!1);availableModels_$=w([]);selectedProvider_$=w("");selectedModel_$=w("");workflowTypes=["development","research","testing","support","onboarding","review","poc","user-input","bug-report"];ngOnInit(){this.loadWorkflows(),this.loadAvailableModels(),this.restoreDraft()}loadWorkflows(){return x(this,null,function*(){try{this.isLoading_$.set(!0);let e=yield this.workflow_DS.listWorkflows();this.workflows_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleCreateNew(){this.isCreating_$.set(!0),this.editingWorkflow_$.set(Ve()),this.persistDraft()}handleEdit(e){this.isCreating_$.set(!1),this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases]}))}handleCancel(){this.editingWorkflow_$.set(null),$.clear()}handleSave(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(e)try{this.isLoading_$.set(!0),this.isCreating_$()?yield this.workflow_DS.createWorkflow({name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory}):e._id&&(yield this.workflow_DS.updateWorkflow({id:e._id,name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory})),this.editingWorkflow_$.set(null),$.clear(),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleDelete(e){return x(this,null,function*(){if(e._id)try{this.isLoading_$.set(!0),yield this.workflow_DS.deleteWorkflow(e._id),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleAddPhase(){let e=this.editingWorkflow_$();if(!e)return;let t=ue(e.phases.length);this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases,t]})),this.persistDraft()}handleRemovePhase(e){let t=this.editingWorkflow_$();if(!t)return;let r=t.phases.filter((a,_)=>_!==e);this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handlePhaseFieldChange(e){let t=this.editingWorkflow_$();if(!t)return;let r=[...t.phases];r[e.index]=S(v({},r[e.index]),{[e.field]:e.value}),this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handleGenerationPromptChange(e){this.generationPrompt_$.set(e),this.persistDraft()}handleGenerate(){return x(this,null,function*(){let e=this.generationPrompt_$().trim();if(e)try{this.isGenerating_$.set(!0);let t=this.selectedProvider_$(),r=this.selectedModel_$(),a=yield this.workflow_DS.generateWorkflow({description:e,provider:t||void 0,model:r||void 0}),_={type:"generation",prompt:e,timestamp:new Date().toISOString()};this.editingWorkflow_$.set({name:a.name??"",description:a.description??"",workflowType:a.workflowType??"development",isTemplate:a.isTemplate??!1,masterPrompt:a.masterPrompt??"",phases:Array.isArray(a.phases)?a.phases:[],generationHistory:[_]})}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isGenerating_$.set(!1)}})}handleModificationPromptChange(e){this.modificationPrompt_$.set(e),this.persistDraft()}handleModify(){return x(this,null,function*(){let e=this.modificationPrompt_$().trim(),t=this.editingWorkflow_$();if(!(!e||!t))try{this.isModifying_$.set(!0);let r=this.selectedProvider_$(),a=this.selectedModel_$(),_=yield this.workflow_DS.modifyWorkflow({currentWorkflow:t,modificationDescription:e,provider:r||void 0,model:a||void 0}),W={type:"modification",prompt:e,timestamp:new Date().toISOString()},f=t.generationHistory??[];this.editingWorkflow_$.set({_id:t._id,name:_.name??"",description:_.description??"",workflowType:_.workflowType??"development",isTemplate:_.isTemplate??!1,masterPrompt:_.masterPrompt??"",phases:Array.isArray(_.phases)?_.phases:[],generationHistory:[...f,W]}),this.persistDraft()}catch(r){this.globalError_CS.showError(r,"workflow-settings")}finally{this.isModifying_$.set(!1)}})}loadAvailableModels(){return x(this,null,function*(){try{let e=yield this.modelRegistry_DS.loadList({enabled:!0});this.availableModels_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}})}handleModelSelectionChange(e){if(!e){this.selectedProvider_$.set(""),this.selectedModel_$.set("");return}let t=e.indexOf(":");t!==-1&&(this.selectedProvider_$.set(e.substring(0,t)),this.selectedModel_$.set(e.substring(t+1)),this.persistDraft())}handleToggleBestPractices(){this.isBestPracticesOpen_$.set(!this.isBestPracticesOpen_$())}handleFieldChange(e,t){let r=this.editingWorkflow_$();r&&(this.editingWorkflow_$.set(S(v({},r),{[e]:t})),this.persistDraft())}handleCopyMarkdown(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(!e)return;let t=[];t.push(`# ${e.name||"N\xE9vtelen workflow"}`),t.push(""),e.description&&(t.push(`> ${e.description}`),t.push("")),t.push("| Mez\u0151 | \xC9rt\xE9k |"),t.push("|------|-------|"),t.push(`| T\xEDpus | ${e.workflowType} |`),t.push(`| Sablon | ${e.isTemplate?"igen":"nem"} |`),t.push(`| F\xE1zisok sz\xE1ma | ${e.phases.length} |`),t.push(""),e.masterPrompt&&(t.push("## Vez\xE9rprompt (master prompt)"),t.push(""),t.push(e.masterPrompt),t.push("")),t.push("## F\xE1zisok"),t.push("");for(let r of e.phases){if(t.push(`### ${r.order+1}. ${r.title||"N\xE9vtelen f\xE1zis"}`),t.push(""),r.goal&&(t.push(`**C\xE9l:** ${r.goal}`),t.push("")),r.phasePrompt&&(t.push("**F\xE1zis prompt:**"),t.push(""),t.push(r.phasePrompt),t.push("")),r.constraints.length){t.push("**Megk\xF6t\xE9sek:**");for(let a of r.constraints)t.push(`- ${a}`);t.push("")}if(r.dod.length){t.push("**Definition of Done:**");for(let a of r.dod)t.push(`- ${a}`);t.push("")}r.repeatUntilDone&&(t.push("*Ism\xE9tl\u0151d\u0151 f\xE1zis (am\xEDg PHASE_DONE)*"),t.push(""))}try{yield navigator.clipboard.writeText(t.join(`
1
+ import{a as se}from"./chunk-FZFLGRLE.js";import"./chunk-DVUUFWKQ.js";import"./chunk-XIP3DG7D.js";import"./chunk-6OF2NGQO.js";import{b as Z,c as ee,f as te,i as ne,n as ie,o as oe,p as re,v as j}from"./chunk-EO4DNTT4.js";import{a as A}from"./chunk-5UPNU54P.js";import{j as ae}from"./chunk-JPRPSYHF.js";import{I as le}from"./chunk-TGIQ5T5X.js";import{C,D as R,E as q,Fa as o,Ga as F,Ha as b,Ia as N,J as u,K as m,Kb as X,L as D,M as J,Ta as Y,Z as s,a as v,aa as w,b as S,d as B,da as k,ga as g,ia as I,k as x,la as h,na as K,oa as M,p as E,pa as z,qa as i,ra as n,sa as P,ua as y,ub as V,va as c,wa as p,xb as Q,y as T,z as U}from"./chunk-TBMJSIBB.js";var de=(()=>{class l{baseUrl=`${le.api.baseUrl}/workflow`;http=C(Q);listWorkflows(e){let t=[];e?.workflowType&&t.push(`type=${e.workflowType}`),e?.isTemplate!==void 0&&t.push(`isTemplate=${e.isTemplate}`);let r=t.length?`?${t.join("&")}`:"";return E(this.http.get(`${this.baseUrl}${r}`))}createWorkflow(e){return E(this.http.post(this.baseUrl,e))}getWorkflow(e){return E(this.http.get(`${this.baseUrl}/${e}`))}updateWorkflow(e){let a=e,{id:t}=a,r=B(a,["id"]);return E(this.http.put(`${this.baseUrl}/${t}`,r))}generateWorkflow(e){return E(this.http.post(`${this.baseUrl}/generate`,{description:e.description,provider:e.provider,model:e.model}))}modifyWorkflow(e){return E(this.http.post(`${this.baseUrl}/modify`,{currentWorkflow:e.currentWorkflow,modificationDescription:e.modificationDescription,provider:e.provider,model:e.model}))}deleteWorkflow(e){return E(this.http.delete(`${this.baseUrl}/${e}`))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var pe=(()=>{class l{workflow_AS=C(de);listWorkflows(e){return x(this,null,function*(){return(yield this.workflow_AS.listWorkflows(e)).workflows})}createWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.createWorkflow(e)).workflow})}getWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.getWorkflow(e)).workflow})}updateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.updateWorkflow(e)).workflow})}generateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.generateWorkflow(e)).workflow})}modifyWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.modifyWorkflow(e)).workflow})}deleteWorkflow(e){return x(this,null,function*(){return this.workflow_AS.deleteWorkflow(e)})}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var L="ccap-workflowSettingsDraft",$=class{static get(){let d=A.readJson(L,null);if(typeof d!="object"||d===null)return null;let e=d,t=typeof e.generationPrompt=="string"?e.generationPrompt:"",r=typeof e.modificationPrompt=="string"?e.modificationPrompt:"",a=typeof e.selectedProvider=="string"?e.selectedProvider:"",_=typeof e.selectedModel=="string"?e.selectedModel:"",W=typeof e.isCreating=="boolean"?e.isCreating:!1,f=e.editingWorkflow&&typeof e.editingWorkflow=="object"?e.editingWorkflow:null;return{generationPrompt:t,modificationPrompt:r,selectedProvider:a,selectedModel:_,isCreating:W,editingWorkflow:f}}static save(d){A.writeJson(L,d)}static clear(){A.remove(L)}};var me=(l,d)=>d._id,H=(l,d)=>d.id;function ce(l,d){if(l&1){let e=y();i(0,"button",5),c("click",function(){u(e);let r=p();return m(r.handleCreateNew())}),o(1," + \xDAj workflow "),n()}}function _e(l,d){l&1&&(i(0,"div",6),o(1,"Bet\xF6lt\xE9s..."),n())}function fe(l,d){l&1&&(i(0,"div",7),o(1," Nincs m\xE9g workflow. Hozz l\xE9tre egyet a gombbal. "),n())}function ge(l,d){l&1&&(i(0,"span",14),o(1," sablon "),n())}function xe(l,d){l&1&&(i(0,"span",15),o(1," Built-in "),n())}function we(l,d){if(l&1){let e=y();i(0,"button",20),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleEdit(r))}),o(1," Szerkeszt\xE9s "),n(),i(2,"button",21),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleDelete(r))}),o(3," T\xF6rl\xE9s "),n()}}function he(l,d){l&1&&(i(0,"span",19),o(1," Readonly "),n())}function ke(l,d){if(l&1&&(i(0,"div",9)(1,"div",10)(2,"div",11)(3,"span",12),o(4),n(),i(5,"span",13),o(6),n(),k(7,ge,2,0,"span",14)(8,xe,2,0,"span",15),n(),i(9,"p",16),o(10),n(),i(11,"div",17),o(12),n()(),i(13,"div",18),k(14,we,4,0)(15,he,2,0,"span",19),n()()),l&2){let e=d.$implicit;s(4),F(e.name),s(2),b(" ",e.workflowType," "),s(),h(e.isTemplate?7:-1),s(),h(e.isBuiltIn?8:-1),s(2),F(e.description),s(2),b(" ",e.phases.length," f\xE1zis "),s(2),h(e.isBuiltIn?15:14)}}function Ee(l,d){if(l&1&&(i(0,"div",8),M(1,ke,16,7,"div",9,me),n()),l&2){let e=p(2);s(),z(e.workflows_$())}}function Ce(l,d){if(l&1&&k(0,_e,2,0,"div",6)(1,fe,2,0,"div",7)(2,Ee,3,0,"div",8),l&2){let e=p();h(e.isLoading_$()?0:e.workflows_$().length===0?1:2)}}function be(l,d){l&1&&(D(),i(0,"svg",27),P(1,"polyline",52),n())}function ve(l,d){l&1&&(D(),i(0,"svg",27),P(1,"rect",53)(2,"path",54),n())}function Se(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function ye(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM dolgozik a workflow-n..."),n())}function $e(l,d){if(l&1){let e=y();i(0,"div",28)(1,"div",42)(2,"span",55),o(3,"Workflow gener\xE1l\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le egyszer\u0171en, mit szeretn\xE9l"),n()(),i(6,"textarea",57),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleGenerationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",59),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,Se,2,3,"option",41,H),n()(),i(17,"button",61),c("click",function(){u(e);let r=p(2);return m(r.handleGenerate())}),o(18),n(),k(19,ye,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.generationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isGenerating_$()||!e.generationPrompt_$()),s(),b(" ",e.isGenerating_$()?"Gener\xE1l\xE1s...":"Gener\xE1l\xE1s"," "),s(),h(e.isGenerating_$()?19:-1)}}function We(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function Me(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM m\xF3dos\xEDtja a workflow-t..."),n())}function ze(l,d){if(l&1){let e=y();i(0,"div",29)(1,"div",42)(2,"span",62),o(3,"Workflow m\xF3dos\xEDt\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le, mit szeretn\xE9l v\xE1ltoztatni"),n()(),i(6,"textarea",63),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModificationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",64),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,We,2,3,"option",41,H),n()(),i(17,"button",65),c("click",function(){u(e);let r=p(2);return m(r.handleModify())}),o(18),n(),k(19,Me,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.modificationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isModifying_$()||!e.modificationPrompt_$()),s(),b(" ",e.isModifying_$()?"M\xF3dos\xEDt\xE1s...":"M\xF3dos\xEDt\xE1s"," "),s(),h(e.isModifying_$()?19:-1)}}function Te(l,d){l&1&&(i(0,"div",36)(1,"div")(2,"h3",66),o(3,"Fel\xE9p\xEDt\xE9s"),n(),i(4,"p"),o(5," Egy j\xF3 workflow "),i(6,"strong",67),o(7,"f\xE1zisokra"),n(),o(8," bontja a feladatot, ahol minden f\xE1zis egyetlen, j\xF3l meghat\xE1rozott c\xE9lt k\xF6vet. A "),i(9,"strong",67),o(10,"vez\xE9rprompt"),n(),o(11," (master prompt) az eg\xE9sz workflow-ra \xE9rv\xE9nyes alapszab\xE1lyokat \xE9s kontextust tartalmazza \u2014 ez minden f\xE1zisban automatikusan megjelenik. "),n()(),i(12,"div")(13,"h3",66),o(14,"Vez\xE9rprompt (master prompt)"),n(),i(15,"ul",68)(16,"li"),o(17,"Projekt kontextus: milyen repo, milyen stack, milyen nyelven dolgozunk"),n(),i(18,"li"),o(19,"Glob\xE1lis szab\xE1lyok: k\xF3dol\xE1si konvenci\xF3k, tiltott m\u0171veletek, commit policy"),n(),i(20,"li"),o(21,'Szerepk\xF6r: milyen "szaktud\xE1s\xFA" agent hajtja v\xE9gre a workflow-t'),n(),i(22,"li"),o(23,"Ne ism\xE9telj meg f\xE1zisonk\xE9nt olyat, ami ide tartozik \u2014 a master prompt mindig jelen van"),n()()(),i(24,"div")(25,"h3",66),o(26,"F\xE1zisok tervez\xE9se"),n(),i(27,"ul",68)(28,"li")(29,"strong",67),o(30,"C\xE9l (goal):"),n(),o(31," egyetlen mondat \u2014 a f\xE1zis sikeress\xE9g\xE9nek m\xE9rc\xE9je "),n(),i(32,"li")(33,"strong",67),o(34,"F\xE1zis prompt:"),n(),o(35,' konkr\xE9t, akci\xF3-orient\xE1lt utas\xEDt\xE1s. Ker\xFCld az \xE1ltal\xE1noss\xE1gokat ("n\xE9zd \xE1t a k\xF3dot") \u2014 \xEDrd le pontosan mit kell csin\xE1lni '),n(),i(36,"li")(37,"strong",67),o(38,"Ism\xE9tl\u0151d\u0151 f\xE1zis:"),n(),o(39,' ha a f\xE1zis nem egyl\xE9p\xE9ses (pl. iterat\xEDv fejleszt\xE9s), kapcsold be az "Ism\xE9tl\u0151d\u0151" opci\xF3t \u2014 a f\xE1zis addig fut, am\xEDg PHASE_DONE jelz\xE9s nem \xE9rkezik '),n()()(),i(40,"div")(41,"h3",66),o(42,"Tipikus f\xE1zis-sorrend"),n(),i(43,"div",69)(44,"span",70),o(45,"1. T\xE1j\xE9koz\xF3d\xE1s / Clarify"),n(),i(46,"span",24),o(47,"\u2192"),n(),i(48,"span",70),o(49,"2. Tervez\xE9s / Plan"),n(),i(50,"span",24),o(51,"\u2192"),n(),i(52,"span",70),o(53,"3. Megval\xF3s\xEDt\xE1s / Dev"),n(),i(54,"span",24),o(55,"\u2192"),n(),i(56,"span",70),o(57,"4. Tesztel\xE9s / Test"),n(),i(58,"span",24),o(59,"\u2192"),n(),i(60,"span",70),o(61,"5. Review / Doc"),n()(),i(62,"p",71),o(63," Nem minden workflow-nak kell minden f\xE1zist tartalmaznia \u2014 haszn\xE1ld azt, ami relev\xE1ns. "),n()(),i(64,"div")(65,"h3",66),o(66,"Tippek"),n(),i(67,"ul",68)(68,"li"),o(69,"A "),i(70,"strong",67),o(71,"sablon (template)"),n(),o(72," workflow-kat gener\xE1l\xE1shoz is haszn\xE1ljuk \u2014 jel\xF6ld be, ha m\xE1sok sz\xE1m\xE1ra is mintak\xE9nt szolg\xE1l"),n(),i(73,"li"),o(74,"A f\xE1zis prompt-ban hivatkozhatsz f\xE1jlokra, mapp\xE1kra, specifik\xE1ci\xF3kra \u2014 min\xE9l konkr\xE9tabb, ann\xE1l jobb"),n(),i(75,"li"),o(76,"T\xF6rekedj arra, hogy egy f\xE1zis "),i(77,"strong",67),o(78,"1 felel\u0151ss\xE9gi k\xF6rrel"),n(),o(79," rendelkezzen (single responsibility)"),n(),i(80,"li"),o(81,"Ha egy f\xE1zis t\xFAl hossz\xFA lenne, bontsd kett\xE9 \u2014 ink\xE1bb legyen t\xF6bb kis f\xE1zis, mint egy nagy"),n()()()())}function De(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e),s(),F(e)}}function Pe(l,d){if(l&1){let e=y();i(0,"div",48)(1,"div",72)(2,"span",73),o(3),n(),i(4,"button",74),c("click",function(){let r=u(e).$index,a=p(2);return m(a.handleRemovePhase(r))}),o(5," Elt\xE1vol\xEDt\xE1s "),n()(),i(6,"div",75)(7,"div")(8,"label",76),o(9,"C\xEDm"),n(),i(10,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"title",value:r}))}),n()(),i(11,"div")(12,"label",76),o(13,"C\xE9l (goal)"),n(),i(14,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"goal",value:r}))}),n()()(),i(15,"div",78)(16,"label",76),o(17,"F\xE1zis prompt"),n(),i(18,"textarea",79),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"phasePrompt",value:r}))}),o(19," "),n()(),i(20,"div",42)(21,"input",43),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"repeatUntilDone",value:r}))}),n(),i(22,"label",80),o(23,"Ism\xE9tl\u0151d\u0151 (am\xEDg PHASE_DONE)"),n()()()}if(l&2){let e=d.$implicit,t=d.$index;s(3),b("F\xE1zis ",t+1,""),s(7),g("ngModel",e.title),s(4),g("ngModel",e.goal),s(4),g("ngModel",e.phasePrompt),s(3),g("ngModel",e.repeatUntilDone)}}function Fe(l,d){if(l&1){let e=y();i(0,"div",4)(1,"div",22)(2,"button",23),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(3," \u2190 Vissza "),n(),i(4,"span",24),o(5,"|"),n(),i(6,"span",25),o(7),n(),i(8,"button",26),c("click",function(){u(e);let r=p();return m(r.handleCopyMarkdown())}),k(9,be,2,0,":svg:svg",27)(10,ve,3,0,":svg:svg",27),n()(),k(11,$e,20,5,"div",28)(12,ze,20,5,"div",29),i(13,"div",30)(14,"button",31),c("click",function(){u(e);let r=p();return m(r.handleToggleBestPractices())}),D(),i(15,"svg",32),P(16,"polyline",33),n(),J(),i(17,"span",34),o(18,"Workflow tervez\xE9si \xFAtmutat\xF3"),n(),i(19,"span",35),o(20,"best practices"),n()(),k(21,Te,82,0,"div",36),n(),i(22,"div",37)(23,"div")(24,"label",38),o(25,"N\xE9v"),n(),i(26,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("name",r))}),n()(),i(27,"div")(28,"label",38),o(29,"T\xEDpus"),n(),i(30,"select",40),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("workflowType",r))}),M(31,De,2,2,"option",41,K),n()()(),i(33,"div")(34,"label",38),o(35,"Le\xEDr\xE1s"),n(),i(36,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("description",r))}),n()(),i(37,"div",42)(38,"input",43),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("isTemplate",r))}),n(),i(39,"label",25),o(40,"Sablon (template)"),n()(),i(41,"div")(42,"label",38),o(43,"Vez\xE9rprompt (master prompt)"),n(),i(44,"textarea",44),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("masterPrompt",r))}),o(45," "),n()(),i(46,"div")(47,"div",45)(48,"h2",46),o(49,"F\xE1zisok"),n(),i(50,"button",47),c("click",function(){u(e);let r=p();return m(r.handleAddPhase())}),o(51," + F\xE1zis "),n()(),M(52,Pe,24,5,"div",48,H),n(),i(54,"div",49)(55,"button",50),c("click",function(){u(e);let r=p();return m(r.handleSave())}),o(56),n(),i(57,"button",51),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(58," M\xE9gse "),n()()()}if(l&2){let e,t,r,a,_,W,f=p();s(7),b(" ",f.isCreating_$()?"\xDAj workflow":"Szerkeszt\xE9s"," "),s(),I("text-neutral-500",!f.isCopied_$())("hover:text-neutral-200",!f.isCopied_$())("text-green-400",f.isCopied_$()),s(),h(f.isCopied_$()?9:10),s(2),h(f.isCreating_$()?11:-1),s(),h(f.isCreating_$()?-1:12),s(3),I("-rotate-90",!f.isBestPracticesOpen_$()),s(6),h(f.isBestPracticesOpen_$()?21:-1),s(5),g("ngModel",(e=f.editingWorkflow_$())==null?null:e.name),s(4),g("ngModel",(t=f.editingWorkflow_$())==null?null:t.workflowType),s(),z(f.workflowTypes),s(5),g("ngModel",(r=f.editingWorkflow_$())==null?null:r.description),s(2),g("ngModel",(a=f.editingWorkflow_$())==null?null:a.isTemplate),s(6),g("ngModel",(_=f.editingWorkflow_$())==null?null:_.masterPrompt),s(8),z((W=f.editingWorkflow_$())==null?null:W.phases),s(3),g("disabled",f.isLoading_$()),s(),b(" ",f.isCreating_$()?"L\xE9trehoz\xE1s":"Ment\xE9s"," ")}}function ue(l){return{id:`phase-${Date.now()}-${l}`,title:"",order:l,goal:"",phasePrompt:"",constraints:[],dod:[],repeatUntilDone:!1,subWorkflowTriggers:[]}}function Ve(){return{name:"",description:"",workflowType:"development",isTemplate:!1,masterPrompt:"",phases:[ue(0)]}}var O=(()=>{class l{workflow_DS=C(pe);globalError_CS=C(ae);modelRegistry_DS=C(se);workflows_$=w([]);editingWorkflow_$=w(null);isLoading_$=w(!1);isCreating_$=w(!1);isBestPracticesOpen_$=w(!1);generationPrompt_$=w("");modificationPrompt_$=w("");isGenerating_$=w(!1);isModifying_$=w(!1);isCopied_$=w(!1);availableModels_$=w([]);selectedProvider_$=w("");selectedModel_$=w("");workflowTypes=["development","research","testing","support","onboarding","review","poc","user-input","bug-report"];ngOnInit(){this.loadWorkflows(),this.loadAvailableModels(),this.restoreDraft()}loadWorkflows(){return x(this,null,function*(){try{this.isLoading_$.set(!0);let e=yield this.workflow_DS.listWorkflows();this.workflows_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleCreateNew(){this.isCreating_$.set(!0),this.editingWorkflow_$.set(Ve()),this.persistDraft()}handleEdit(e){this.isCreating_$.set(!1),this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases]}))}handleCancel(){this.editingWorkflow_$.set(null),$.clear()}handleSave(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(e)try{this.isLoading_$.set(!0),this.isCreating_$()?yield this.workflow_DS.createWorkflow({name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory}):e._id&&(yield this.workflow_DS.updateWorkflow({id:e._id,name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory})),this.editingWorkflow_$.set(null),$.clear(),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleDelete(e){return x(this,null,function*(){if(e._id)try{this.isLoading_$.set(!0),yield this.workflow_DS.deleteWorkflow(e._id),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleAddPhase(){let e=this.editingWorkflow_$();if(!e)return;let t=ue(e.phases.length);this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases,t]})),this.persistDraft()}handleRemovePhase(e){let t=this.editingWorkflow_$();if(!t)return;let r=t.phases.filter((a,_)=>_!==e);this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handlePhaseFieldChange(e){let t=this.editingWorkflow_$();if(!t)return;let r=[...t.phases];r[e.index]=S(v({},r[e.index]),{[e.field]:e.value}),this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handleGenerationPromptChange(e){this.generationPrompt_$.set(e),this.persistDraft()}handleGenerate(){return x(this,null,function*(){let e=this.generationPrompt_$().trim();if(e)try{this.isGenerating_$.set(!0);let t=this.selectedProvider_$(),r=this.selectedModel_$(),a=yield this.workflow_DS.generateWorkflow({description:e,provider:t||void 0,model:r||void 0}),_={type:"generation",prompt:e,timestamp:new Date().toISOString()};this.editingWorkflow_$.set({name:a.name??"",description:a.description??"",workflowType:a.workflowType??"development",isTemplate:a.isTemplate??!1,masterPrompt:a.masterPrompt??"",phases:Array.isArray(a.phases)?a.phases:[],generationHistory:[_]})}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isGenerating_$.set(!1)}})}handleModificationPromptChange(e){this.modificationPrompt_$.set(e),this.persistDraft()}handleModify(){return x(this,null,function*(){let e=this.modificationPrompt_$().trim(),t=this.editingWorkflow_$();if(!(!e||!t))try{this.isModifying_$.set(!0);let r=this.selectedProvider_$(),a=this.selectedModel_$(),_=yield this.workflow_DS.modifyWorkflow({currentWorkflow:t,modificationDescription:e,provider:r||void 0,model:a||void 0}),W={type:"modification",prompt:e,timestamp:new Date().toISOString()},f=t.generationHistory??[];this.editingWorkflow_$.set({_id:t._id,name:_.name??"",description:_.description??"",workflowType:_.workflowType??"development",isTemplate:_.isTemplate??!1,masterPrompt:_.masterPrompt??"",phases:Array.isArray(_.phases)?_.phases:[],generationHistory:[...f,W]}),this.persistDraft()}catch(r){this.globalError_CS.showError(r,"workflow-settings")}finally{this.isModifying_$.set(!1)}})}loadAvailableModels(){return x(this,null,function*(){try{let e=yield this.modelRegistry_DS.loadList({enabled:!0});this.availableModels_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}})}handleModelSelectionChange(e){if(!e){this.selectedProvider_$.set(""),this.selectedModel_$.set("");return}let t=e.indexOf(":");t!==-1&&(this.selectedProvider_$.set(e.substring(0,t)),this.selectedModel_$.set(e.substring(t+1)),this.persistDraft())}handleToggleBestPractices(){this.isBestPracticesOpen_$.set(!this.isBestPracticesOpen_$())}handleFieldChange(e,t){let r=this.editingWorkflow_$();r&&(this.editingWorkflow_$.set(S(v({},r),{[e]:t})),this.persistDraft())}handleCopyMarkdown(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(!e)return;let t=[];t.push(`# ${e.name||"N\xE9vtelen workflow"}`),t.push(""),e.description&&(t.push(`> ${e.description}`),t.push("")),t.push("| Mez\u0151 | \xC9rt\xE9k |"),t.push("|------|-------|"),t.push(`| T\xEDpus | ${e.workflowType} |`),t.push(`| Sablon | ${e.isTemplate?"igen":"nem"} |`),t.push(`| F\xE1zisok sz\xE1ma | ${e.phases.length} |`),t.push(""),e.masterPrompt&&(t.push("## Vez\xE9rprompt (master prompt)"),t.push(""),t.push(e.masterPrompt),t.push("")),t.push("## F\xE1zisok"),t.push("");for(let r of e.phases){if(t.push(`### ${r.order+1}. ${r.title||"N\xE9vtelen f\xE1zis"}`),t.push(""),r.goal&&(t.push(`**C\xE9l:** ${r.goal}`),t.push("")),r.phasePrompt&&(t.push("**F\xE1zis prompt:**"),t.push(""),t.push(r.phasePrompt),t.push("")),r.constraints.length){t.push("**Megk\xF6t\xE9sek:**");for(let a of r.constraints)t.push(`- ${a}`);t.push("")}if(r.dod.length){t.push("**Definition of Done:**");for(let a of r.dod)t.push(`- ${a}`);t.push("")}r.repeatUntilDone&&(t.push("*Ism\xE9tl\u0151d\u0151 f\xE1zis (am\xEDg PHASE_DONE)*"),t.push(""))}try{yield navigator.clipboard.writeText(t.join(`
2
2
  `)),this.isCopied_$.set(!0),setTimeout(()=>this.isCopied_$.set(!1),2e3)}catch{}})}persistDraft(){$.save({generationPrompt:this.generationPrompt_$(),modificationPrompt:this.modificationPrompt_$(),selectedProvider:this.selectedProvider_$(),selectedModel:this.selectedModel_$(),isCreating:this.isCreating_$(),editingWorkflow:this.editingWorkflow_$()})}restoreDraft(){let e=$.get();e&&(this.generationPrompt_$.set(e.generationPrompt),this.modificationPrompt_$.set(e.modificationPrompt),this.selectedProvider_$.set(e.selectedProvider),this.selectedModel_$.set(e.selectedModel),e.editingWorkflow&&(this.isCreating_$.set(e.isCreating),this.editingWorkflow_$.set(e.editingWorkflow)))}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=R({type:l,selectors:[["app-ccap-workflow-settings"]],standalone:!0,features:[Y],decls:7,vars:3,consts:[[1,"max-w-4xl","mx-auto","p-4","gt-xs:p-6","text-neutral-100"],[1,"flex","items-center","justify-between","mb-6"],[1,"text-2xl","font-bold"],[1,"px-4","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm"],[1,"space-y-4"],[1,"px-4","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm",3,"click"],[1,"text-neutral-500","text-sm"],[1,"rounded-lg","border","border-neutral-700","bg-ccapSurface/50","p-6","text-center","text-neutral-500"],[1,"space-y-3"],[1,"rounded-lg","border","border-neutral-700","bg-ccapSurface/50","p-4","flex","items-start","justify-between","gap-4"],[1,"flex-1","min-w-0"],[1,"flex","items-center","gap-2","mb-1"],[1,"font-semibold","text-neutral-100","truncate"],[1,"text-xs","px-2","py-0.5","rounded","bg-neutral-700","text-neutral-300"],[1,"text-xs","px-2","py-0.5","rounded","bg-neonDefault/20","text-neonDefault"],[1,"text-xs","px-2","py-0.5","rounded","bg-neonCyan/20","text-neonCyan"],[1,"text-neutral-400","text-sm","truncate"],[1,"text-neutral-500","text-xs","mt-1"],[1,"flex","gap-2","shrink-0"],[1,"px-3","py-1.5","text-xs","text-neutral-500","italic"],[1,"px-3","py-1.5","text-xs","border","border-neutral-600","rounded","hover:border-neonDefault","hover:text-neonDefault","transition-colors",3,"click"],[1,"px-3","py-1.5","text-xs","border","border-neutral-600","rounded","text-red-400","hover:border-red-400","transition-colors",3,"click"],[1,"flex","items-center","gap-2","mb-2"],[1,"text-sm","text-neutral-400","hover:text-neutral-200","transition-colors",3,"click"],[1,"text-neutral-600"],[1,"text-sm","text-neutral-300"],["title","Workflow markdown m\xE1sol\xE1sa v\xE1g\xF3lapra",1,"ml-auto","p-1.5","transition-colors","rounded","hover:bg-neutral-700/50",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-4","h-4"],[1,"rounded-lg","border","border-neonDefault/30","bg-neonDefault/5","p-4","space-y-3"],[1,"rounded-lg","border","border-amber-500/30","bg-amber-500/5","p-4","space-y-3"],[1,"rounded-lg","border","border-neutral-700","bg-neutral-800/40"],[1,"w-full","flex","items-center","gap-2","px-4","py-3","text-left","text-sm","text-neutral-300","hover:text-neutral-100","transition-colors",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"font-medium"],[1,"text-xs","text-neutral-500","ml-auto"],[1,"px-4","pb-4","text-sm","text-neutral-400","space-y-4","border-t","border-neutral-700","pt-3"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-4"],[1,"block","text-xs","text-neutral-400","mb-1"],["type","text",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],[1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],[3,"value"],[1,"flex","items-center","gap-2"],["type","checkbox",1,"accent-neonDefault",3,"ngModelChange","ngModel"],["rows","4",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none","resize-y",3,"ngModelChange","ngModel"],[1,"flex","items-center","justify-between","mb-2"],[1,"text-lg","font-semibold"],[1,"px-3","py-1","text-xs","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors",3,"click"],[1,"rounded-lg","border","border-neutral-700","bg-neutral-800/50","p-4","mb-3"],[1,"flex","gap-3","pt-2"],[1,"px-5","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm",3,"click","disabled"],[1,"px-5","py-2","border","border-neutral-600","text-neutral-400","rounded","hover:border-neutral-400","transition-colors","text-sm",3,"click"],["points","20 6 9 17 4 12"],["x","9","y","9","width","13","height","13","rx","2","ry","2"],["d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"],[1,"text-sm","font-medium","text-neonDefault"],[1,"text-xs","text-neutral-500"],["rows","3","placeholder","Pl.: Szeretn\xE9k egy workflow-t, ami el\u0151sz\xF6r \xE1tn\xE9zi a k\xF3dot, azt\xE1n meg\xEDrja a teszteket, v\xE9g\xFCl review-olja az eg\xE9szet...",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none","resize-y","placeholder:text-neutral-600",3,"ngModelChange","ngModel"],[1,"flex","items-center","gap-3"],[1,"bg-neutral-800","border","border-neutral-600","rounded","px-2","py-1.5","text-xs","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],["value",""],[1,"px-4","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled"],[1,"text-sm","font-medium","text-amber-400"],["rows","3","placeholder","Pl.: Adj hozz\xE1 egy tesztel\xE9si f\xE1zist a megval\xF3s\xEDt\xE1s ut\xE1n, \xE9s tedd r\xE9szletesebb\xE9 a review f\xE1zis prompt-j\xE1t...",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-amber-400","outline-none","resize-y","placeholder:text-neutral-600",3,"ngModelChange","ngModel"],[1,"bg-neutral-800","border","border-neutral-600","rounded","px-2","py-1.5","text-xs","text-neutral-100","focus:border-amber-400","outline-none",3,"ngModelChange","ngModel"],[1,"px-4","py-2","border","border-amber-500","text-amber-400","rounded","hover:bg-amber-500/10","transition-colors","text-sm","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled"],[1,"text-neutral-200","font-semibold","mb-1"],[1,"text-neutral-300"],[1,"list-disc","list-inside","space-y-1"],[1,"flex","flex-wrap","gap-2","text-xs"],[1,"px-2","py-1","rounded","bg-neutral-700","text-neutral-300"],[1,"mt-2","text-xs","text-neutral-500"],[1,"flex","items-center","justify-between","mb-3"],[1,"text-sm","font-medium","text-neutral-300"],[1,"text-xs","text-red-400","hover:text-red-300","transition-colors",3,"click"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-3","mb-3"],[1,"block","text-xs","text-neutral-500","mb-1"],["type","text",1,"w-full","bg-neutral-900","border","border-neutral-600","rounded","px-2","py-1.5","text-sm","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],[1,"mb-3"],["rows","3",1,"w-full","bg-neutral-900","border","border-neutral-600","rounded","px-2","py-1.5","text-sm","text-neutral-100","focus:border-neonDefault","outline-none","resize-y",3,"ngModelChange","ngModel"],[1,"text-xs","text-neutral-400"]],template:function(t,r){t&1&&(i(0,"div",0)(1,"div",1)(2,"h1",2),o(3,"Workflow be\xE1ll\xEDt\xE1sok"),n(),k(4,ce,2,0,"button",3),n(),k(5,Ce,3,1)(6,Fe,59,20,"div",4),n()),t&2&&(s(4),h(r.editingWorkflow_$()?-1:4),s(),h(r.editingWorkflow_$()?-1:5),s(),h(r.editingWorkflow_$()?6:-1))},dependencies:[V,j,oe,re,ee,Z,ie,te,ne],encapsulation:2})}return l})();var je=[{path:"",pathMatch:"full",component:O}],mt=(()=>{class l{static \u0275fac=function(t){return new(t||l)};static \u0275mod=q({type:l});static \u0275inj=U({imports:[V,j,X.forChild(je),O]})}return l})();export{mt as WorkflowSettings_Module};
3
- //# sourceMappingURL=wfs.module-DP23D57X.js.map
3
+ //# sourceMappingURL=wfs.module-Q4HXNWZW.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/ccap",
3
- "version": "1.1.2389",
3
+ "version": "1.1.2411",
4
4
  "description": "CCAP Revisioned – Agent architektúra; CLI, server, client, e2e alprojektek.",
5
5
  "bin": {
6
6
  "ccap": "./bin/ccap.js"
@@ -66,6 +66,19 @@ export declare class CC_ extends DyFM_Metadata {
66
66
  costUsdTotal?: number;
67
67
  /** Archiválva van-e (lista szűréshez). */
68
68
  isArchived?: boolean;
69
+ /**
70
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): mikor lett archiválva (audit + auto-archive
71
+ * idő-eredet visszakövetésére). Manuál archive (UI/API) is beállítja, az auto-archive
72
+ * scanner is. Az `isArchived` boolean fő flag marad — ez csak audit metadata.
73
+ */
74
+ archivedAt?: Date;
75
+ /**
76
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): hogyan archiválódott a session.
77
+ * 'manual' = user/API explicit archive; 'auto-age' = scanner inactive > N days;
78
+ * 'auto-count' = scanner per-ccapId active count over threshold (oldest-first).
79
+ * Csak archive-kor töltődik. Ha `isArchived === false`, ez is undefined.
80
+ */
81
+ archivedReason?: string;
69
82
  /** CCAP parent session ID (tool-ból létrehozott session-ökhöz, parent-child kötés). */
70
83
  parentSessionId?: string;
71
84
  /** Forrás session CCAP-internal sessionId (fork origin). */
@@ -1 +1 @@
1
- {"version":3,"file":"cc.data-model.d.ts","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAe,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,GAAI,SAAQ,aAAa;IACpC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAM;IAEpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,MAAM,CAAC,EAAE,cAAc,CAA2B;IAElD,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,cAAc,CAAC,EAAE,IAAI,CAAC;IAEtB,kCAAkC;IAClC,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,oCAAoC;IACpC,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,uEAAuE;IACvE,IAAI,CAAC,EAAE,YAAY,CAAuB;IAE1C,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,wBAAwB,CAAoC;IAE/E,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,kGAAkG;IAClG,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;gBAEV,GAAG,CAAC,EAAE,GAAG;CAOtB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,CAAC,GAAG,CAsC5D,CAAC"}
1
+ {"version":3,"file":"cc.data-model.d.ts","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAe,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,GAAI,SAAQ,aAAa;IACpC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAM;IAEpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,MAAM,CAAC,EAAE,cAAc,CAA2B;IAElD,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,cAAc,CAAC,EAAE,IAAI,CAAC;IAEtB,kCAAkC;IAClC,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,oCAAoC;IACpC,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,uEAAuE;IACvE,IAAI,CAAC,EAAE,YAAY,CAAuB;IAE1C,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,wBAAwB,CAAoC;IAE/E,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,kGAAkG;IAClG,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;gBAEV,GAAG,CAAC,EAAE,GAAG;CAOtB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,CAAC,GAAG,CAwC5D,CAAC"}
@@ -70,6 +70,19 @@ class CC_ extends fsm_dynamo_1.DyFM_Metadata {
70
70
  costUsdTotal;
71
71
  /** Archiválva van-e (lista szűréshez). */
72
72
  isArchived;
73
+ /**
74
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): mikor lett archiválva (audit + auto-archive
75
+ * idő-eredet visszakövetésére). Manuál archive (UI/API) is beállítja, az auto-archive
76
+ * scanner is. Az `isArchived` boolean fő flag marad — ez csak audit metadata.
77
+ */
78
+ archivedAt;
79
+ /**
80
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): hogyan archiválódott a session.
81
+ * 'manual' = user/API explicit archive; 'auto-age' = scanner inactive > N days;
82
+ * 'auto-count' = scanner per-ccapId active count over threshold (oldest-first).
83
+ * Csak archive-kor töltődik. Ha `isArchived === false`, ez is undefined.
84
+ */
85
+ archivedReason;
73
86
  /** CCAP parent session ID (tool-ból létrehozott session-ökhöz, parent-child kötés). */
74
87
  parentSessionId;
75
88
  /** Forrás session CCAP-internal sessionId (fork origin). */
@@ -125,6 +138,8 @@ exports.ccapCcSession_dataParams = new fsm_dynamo_1.DyFM_DataModel_Params({
125
138
  outputTokensTotal: { type: 'number' },
126
139
  costUsdTotal: { type: 'number' },
127
140
  isArchived: { type: 'boolean', index: true },
141
+ archivedAt: { type: 'date' },
142
+ archivedReason: { type: 'string' },
128
143
  parentSessionId: { type: 'string', index: true },
129
144
  forkedFromSessionId: { type: 'string', index: true },
130
145
  forkedFromClaudeSessionId: { type: 'string' },
@@ -1 +1 @@
1
- {"version":3,"file":"cc.data-model.js","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cc.data-model.js","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc.data-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { DyNTS_SingletonService } from '@futdevpro/nts-dynamo';
2
+ import { CC_ } from '../../../_models/data-models/cc.data-model';
3
+ /**
4
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): a CC session-ök listája túl hosszúra
5
+ * nőhet — a user explicit kérése: „a cc session-ök history-ját archiválnunk kell
6
+ * automatikusan (a végét amikor túl hosszú)". Ez a scanner periódikusan végigfut
7
+ * a non-archived session-eken és két szabály alapján auto-archiválja a régieket:
8
+ *
9
+ * 1. **Age threshold**: ha egy session `lastActivityAt`-ja > 30 napja és státusza
10
+ * NEM `running` / `starting` / `waitingInput` (azaz nem aktív), automatikusan
11
+ * archiválódik `archivedReason = 'auto-age'`-el.
12
+ *
13
+ * 2. **Count threshold**: ha egy ccapId-hoz tartozó non-archived session-ek száma
14
+ * > 200, a legrégebbi (lastActivityAt szerint) session-eket addig archiválja,
15
+ * amíg a count <= 200 marad. Aktív (running/starting/waitingInput) session-eket
16
+ * NEM archivál — azok védettek függetlenül a count-tól. Reason: 'auto-count'.
17
+ *
18
+ * A scanner reuse-olja a meglévő `CC_Manager_ControlService.setArchived` hívást,
19
+ * tehát a cascade cleanup (runner terminate, scheduler job disable, SessionQueue
20
+ * purge, configChange broadcast) automatikusan lefut.
21
+ *
22
+ * Lifecycle: `initialize()` indítja a periódikus scan-t (1 órás interval), a
23
+ * manager bootstrap hívja. `shutdown()` clear-eli a timer-t.
24
+ */
25
+ export declare class CC_SessionHistoryArchive_ControlService extends DyNTS_SingletonService {
26
+ /** Auto-archive scanner gyakorisága: 1 óra. */
27
+ private static readonly SCAN_INTERVAL_MS;
28
+ /** Age threshold: 30 napja inaktív (nem-aktív státuszú) session → archive. */
29
+ private static readonly AUTO_ARCHIVE_AGE_MS;
30
+ /**
31
+ * Count threshold: ennél több non-archived session per ccapId esetén az
32
+ * oldest-first archiválás indul. Az aktív (running/starting/waitingInput)
33
+ * session-ek mindig védettek, NEM számítanak bele a kvóta-kalkulációba
34
+ * archive-szempontból.
35
+ */
36
+ private static readonly AUTO_ARCHIVE_COUNT_THRESHOLD;
37
+ /** Aktív státuszok — ezek SOHA nem auto-archive-olhatók. */
38
+ private static readonly ACTIVE_STATUSES;
39
+ /** Singleton accessor. */
40
+ static getInstance(): CC_SessionHistoryArchive_ControlService;
41
+ /** Periódikus scan timer handle — shutdown clear-eli. */
42
+ private scanInterval;
43
+ /**
44
+ * Manager-injected setArchived callback — a cascade cleanup-ot tartalmazó
45
+ * `CC_Manager_ControlService.setArchived` hívás kell hogy ide kerüljön.
46
+ * Cycle elkerülésére callback-pattern (manager → scanner → manager).
47
+ */
48
+ private setArchivedCallback;
49
+ /**
50
+ * Bootstrap-kor a manager hívja a setArchived cascade-callback regisztrálására.
51
+ */
52
+ setSetArchivedCallback(callback: (params: {
53
+ ccapId: string;
54
+ sessionId: string;
55
+ isArchived: boolean;
56
+ archivedReason?: string;
57
+ }) => Promise<void>): void;
58
+ /** Periódikus scan indítása — manager bootstrap hívja egyszer. */
59
+ initialize(): void;
60
+ /** Shutdown — a manager handleGracefulShutdown-ja hívja. */
61
+ shutdown(): void;
62
+ /**
63
+ * Egy scan ciklus — non-archived session-eken iterál, age + count szabályok
64
+ * alapján archive-olja a régieket. NEM dob: minden hibát logol, hogy a timer
65
+ * cycle fennmaradjon.
66
+ */
67
+ scanAndArchive(): Promise<void>;
68
+ /**
69
+ * Pure helper a unit-teszthez: age-szabály — minden non-archived session,
70
+ * amely INAKTÍV státuszú ÉS lastActivityAt > 30 napja.
71
+ */
72
+ static filterAgeCandidates(sessions: CC_[]): CC_[];
73
+ /**
74
+ * Pure helper a unit-teszthez: count-szabály — per ccapId, ha az inaktív
75
+ * session-ek száma > threshold, a legrégebbi inaktívakat archive-olja amíg
76
+ * a quota nem teljesül. Az aktív session-ek SOHA nem szerepelnek a candidate
77
+ * listán (a count-quota alatt is végig védettek).
78
+ */
79
+ static filterCountCandidates(sessions: CC_[]): CC_[];
80
+ /** Aktív status check (running / starting / waitingInput). */
81
+ private static isActiveStatus;
82
+ /** Egy session archive-olása a cascade-aware callback-en keresztül. */
83
+ private archiveOne;
84
+ }
85
+ //# sourceMappingURL=cc-session-history-archive.control-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-session-history-archive.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,GAAG,EAAE,MAAM,4CAA4C,CAAC;AAKjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,uCAAwC,SAAQ,sBAAsB;IAEjF,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAE5D,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoB;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAe;IAEnE,4DAA4D;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAIrC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,WAAW,IAAI,uCAAuC;IAI7D,yDAAyD;IACzD,OAAO,CAAC,YAAY,CAA+C;IAEnE;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAKQ;IAEnC;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;QACxC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI1B,kEAAkE;IAClE,UAAU,IAAI,IAAI;IAelB,4DAA4D;IAC5D,QAAQ,IAAI,IAAI;IAQhB;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDrC;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAoBlD;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAqCpD,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,uEAAuE;YACzD,UAAU;CA+BzB"}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CC_SessionHistoryArchive_ControlService = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
6
+ const cc_status_enum_1 = require("../../../_enums/cc-status.enum");
7
+ const instance_id_service_1 = require("../../../../../_services/instance-id.service");
8
+ const claude_code_data_service_1 = require("../claude-code.data-service");
9
+ /**
10
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): a CC session-ök listája túl hosszúra
11
+ * nőhet — a user explicit kérése: „a cc session-ök history-ját archiválnunk kell
12
+ * automatikusan (a végét amikor túl hosszú)". Ez a scanner periódikusan végigfut
13
+ * a non-archived session-eken és két szabály alapján auto-archiválja a régieket:
14
+ *
15
+ * 1. **Age threshold**: ha egy session `lastActivityAt`-ja > 30 napja és státusza
16
+ * NEM `running` / `starting` / `waitingInput` (azaz nem aktív), automatikusan
17
+ * archiválódik `archivedReason = 'auto-age'`-el.
18
+ *
19
+ * 2. **Count threshold**: ha egy ccapId-hoz tartozó non-archived session-ek száma
20
+ * > 200, a legrégebbi (lastActivityAt szerint) session-eket addig archiválja,
21
+ * amíg a count <= 200 marad. Aktív (running/starting/waitingInput) session-eket
22
+ * NEM archivál — azok védettek függetlenül a count-tól. Reason: 'auto-count'.
23
+ *
24
+ * A scanner reuse-olja a meglévő `CC_Manager_ControlService.setArchived` hívást,
25
+ * tehát a cascade cleanup (runner terminate, scheduler job disable, SessionQueue
26
+ * purge, configChange broadcast) automatikusan lefut.
27
+ *
28
+ * Lifecycle: `initialize()` indítja a periódikus scan-t (1 órás interval), a
29
+ * manager bootstrap hívja. `shutdown()` clear-eli a timer-t.
30
+ */
31
+ class CC_SessionHistoryArchive_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
32
+ /** Auto-archive scanner gyakorisága: 1 óra. */
33
+ static SCAN_INTERVAL_MS = 1 * fsm_dynamo_1.hour;
34
+ /** Age threshold: 30 napja inaktív (nem-aktív státuszú) session → archive. */
35
+ static AUTO_ARCHIVE_AGE_MS = 30 * fsm_dynamo_1.day;
36
+ /**
37
+ * Count threshold: ennél több non-archived session per ccapId esetén az
38
+ * oldest-first archiválás indul. Az aktív (running/starting/waitingInput)
39
+ * session-ek mindig védettek, NEM számítanak bele a kvóta-kalkulációba
40
+ * archive-szempontból.
41
+ */
42
+ static AUTO_ARCHIVE_COUNT_THRESHOLD = 200;
43
+ /** Aktív státuszok — ezek SOHA nem auto-archive-olhatók. */
44
+ static ACTIVE_STATUSES = [
45
+ cc_status_enum_1.CC_Status_Type.running,
46
+ cc_status_enum_1.CC_Status_Type.starting,
47
+ cc_status_enum_1.CC_Status_Type.waitingInput,
48
+ ];
49
+ /** Singleton accessor. */
50
+ static getInstance() {
51
+ return CC_SessionHistoryArchive_ControlService.getSingletonInstance();
52
+ }
53
+ /** Periódikus scan timer handle — shutdown clear-eli. */
54
+ scanInterval = null;
55
+ /**
56
+ * Manager-injected setArchived callback — a cascade cleanup-ot tartalmazó
57
+ * `CC_Manager_ControlService.setArchived` hívás kell hogy ide kerüljön.
58
+ * Cycle elkerülésére callback-pattern (manager → scanner → manager).
59
+ */
60
+ setArchivedCallback = null;
61
+ /**
62
+ * Bootstrap-kor a manager hívja a setArchived cascade-callback regisztrálására.
63
+ */
64
+ setSetArchivedCallback(callback) {
65
+ this.setArchivedCallback = callback;
66
+ }
67
+ /** Periódikus scan indítása — manager bootstrap hívja egyszer. */
68
+ initialize() {
69
+ if (this.scanInterval) {
70
+ return;
71
+ }
72
+ fsm_dynamo_1.DyFM_Log.info(`CCAP_CcSessionHistoryArchive | initialize`
73
+ + ` | scanIntervalMs: ${CC_SessionHistoryArchive_ControlService.SCAN_INTERVAL_MS}`
74
+ + ` | ageThresholdMs: ${CC_SessionHistoryArchive_ControlService.AUTO_ARCHIVE_AGE_MS}`
75
+ + ` | countThreshold: ${CC_SessionHistoryArchive_ControlService.AUTO_ARCHIVE_COUNT_THRESHOLD}`);
76
+ this.scanInterval = setInterval(() => {
77
+ void this.scanAndArchive();
78
+ }, CC_SessionHistoryArchive_ControlService.SCAN_INTERVAL_MS);
79
+ }
80
+ /** Shutdown — a manager handleGracefulShutdown-ja hívja. */
81
+ shutdown() {
82
+ if (this.scanInterval) {
83
+ clearInterval(this.scanInterval);
84
+ this.scanInterval = null;
85
+ }
86
+ fsm_dynamo_1.DyFM_Log.info('CCAP_CcSessionHistoryArchive | shutdown');
87
+ }
88
+ /**
89
+ * Egy scan ciklus — non-archived session-eken iterál, age + count szabályok
90
+ * alapján archive-olja a régieket. NEM dob: minden hibát logol, hogy a timer
91
+ * cycle fennmaradjon.
92
+ */
93
+ async scanAndArchive() {
94
+ try {
95
+ if (!this.setArchivedCallback) {
96
+ return;
97
+ }
98
+ // Auto-archive scanner CSAK a LOKÁLIS instance ccapId-jához tartozó
99
+ // session-eket vizsgálja. A multi-instance setup-ban minden instance a
100
+ // saját listáját kezeli; cross-instance archive a manuál UI-flow-n keresztül
101
+ // megy (PEI dispatch, REQ-CCAP-CROSS-001).
102
+ const localCcapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().tryGetInstanceId();
103
+ if (!localCcapId) {
104
+ return;
105
+ }
106
+ const sessionDS = new claude_code_data_service_1.ClaudeCode_DataService({ issuer: 'cc-session-history-archive' });
107
+ const allActive = await sessionDS.listSessions({ ccapId: localCcapId, includeArchived: false }) ?? [];
108
+ // 1. Age-rule: minden inaktív státuszú session-t, akinek lastActivityAt > 30 nap, archive.
109
+ const ageCandidates = CC_SessionHistoryArchive_ControlService.filterAgeCandidates(allActive);
110
+ for (const session of ageCandidates) {
111
+ await this.archiveOne({ session: session, reason: 'auto-age' });
112
+ }
113
+ // 2. Count-rule: per ccapId csoportosítjuk, a 200-as kvótán felüli legrégebbi
114
+ // INAKTÍV session-eket archive-oljuk (aktívak védettek). Refresh list a friss
115
+ // age-archive után.
116
+ const remainingActive = await sessionDS.listSessions({ ccapId: localCcapId, includeArchived: false }) ?? [];
117
+ const countCandidates = CC_SessionHistoryArchive_ControlService.filterCountCandidates(remainingActive);
118
+ for (const session of countCandidates) {
119
+ await this.archiveOne({ session: session, reason: 'auto-count' });
120
+ }
121
+ const totalArchived = ageCandidates.length + countCandidates.length;
122
+ if (totalArchived > 0) {
123
+ fsm_dynamo_1.DyFM_Log.info(`CCAP_CcSessionHistoryArchive | scan complete`
124
+ + ` | totalArchived: ${totalArchived}`
125
+ + ` | byAge: ${ageCandidates.length}`
126
+ + ` | byCount: ${countCandidates.length}`);
127
+ }
128
+ }
129
+ catch (err) {
130
+ fsm_dynamo_1.DyFM_Log.error(`CCAP_CcSessionHistoryArchive | scan error: ${fsm_dynamo_1.DyFM_Error.getErrorMessage(err)}`);
131
+ }
132
+ }
133
+ /**
134
+ * Pure helper a unit-teszthez: age-szabály — minden non-archived session,
135
+ * amely INAKTÍV státuszú ÉS lastActivityAt > 30 napja.
136
+ */
137
+ static filterAgeCandidates(sessions) {
138
+ const now = Date.now();
139
+ return sessions.filter((s) => {
140
+ if (s.isArchived === true) {
141
+ return false;
142
+ }
143
+ if (CC_SessionHistoryArchive_ControlService.isActiveStatus(s.status)) {
144
+ return false;
145
+ }
146
+ const lastActivityMs = s.lastActivityAt instanceof Date && !Number.isNaN(s.lastActivityAt.getTime())
147
+ ? s.lastActivityAt.getTime()
148
+ : null;
149
+ if (lastActivityMs === null) {
150
+ return false;
151
+ }
152
+ return (now - lastActivityMs) > CC_SessionHistoryArchive_ControlService.AUTO_ARCHIVE_AGE_MS;
153
+ });
154
+ }
155
+ /**
156
+ * Pure helper a unit-teszthez: count-szabály — per ccapId, ha az inaktív
157
+ * session-ek száma > threshold, a legrégebbi inaktívakat archive-olja amíg
158
+ * a quota nem teljesül. Az aktív session-ek SOHA nem szerepelnek a candidate
159
+ * listán (a count-quota alatt is végig védettek).
160
+ */
161
+ static filterCountCandidates(sessions) {
162
+ const inactivePerCcapId = new Map();
163
+ for (const s of sessions) {
164
+ if (s.isArchived === true) {
165
+ continue;
166
+ }
167
+ if (CC_SessionHistoryArchive_ControlService.isActiveStatus(s.status)) {
168
+ continue;
169
+ }
170
+ const ccapId = (s.ccapId ?? '').trim();
171
+ if (!ccapId) {
172
+ continue;
173
+ }
174
+ const arr = inactivePerCcapId.get(ccapId) ?? [];
175
+ arr.push(s);
176
+ inactivePerCcapId.set(ccapId, arr);
177
+ }
178
+ const result = [];
179
+ for (const [, list] of inactivePerCcapId.entries()) {
180
+ if (list.length <= CC_SessionHistoryArchive_ControlService.AUTO_ARCHIVE_COUNT_THRESHOLD) {
181
+ continue;
182
+ }
183
+ // Sort: legrégebbi `lastActivityAt` az elején; null-érték utolsóra (ne archive-oljuk).
184
+ const sorted = [...list].sort((a, b) => {
185
+ const aMs = a.lastActivityAt instanceof Date ? a.lastActivityAt.getTime() : Number.MAX_SAFE_INTEGER;
186
+ const bMs = b.lastActivityAt instanceof Date ? b.lastActivityAt.getTime() : Number.MAX_SAFE_INTEGER;
187
+ return aMs - bMs;
188
+ });
189
+ const overflow = sorted.length - CC_SessionHistoryArchive_ControlService.AUTO_ARCHIVE_COUNT_THRESHOLD;
190
+ for (let i = 0; i < overflow; i++) {
191
+ result.push(sorted[i]);
192
+ }
193
+ }
194
+ return result;
195
+ }
196
+ /** Aktív status check (running / starting / waitingInput). */
197
+ static isActiveStatus(status) {
198
+ if (typeof status !== 'string') {
199
+ return false;
200
+ }
201
+ return CC_SessionHistoryArchive_ControlService.ACTIVE_STATUSES.includes(status);
202
+ }
203
+ /** Egy session archive-olása a cascade-aware callback-en keresztül. */
204
+ async archiveOne(params) {
205
+ if (!this.setArchivedCallback) {
206
+ return;
207
+ }
208
+ const ccapId = (params.session.ccapId ?? '').trim();
209
+ const sessionId = (params.session.sessionId ?? '').trim();
210
+ if (!ccapId || !sessionId) {
211
+ return;
212
+ }
213
+ try {
214
+ await this.setArchivedCallback({
215
+ ccapId: ccapId,
216
+ sessionId: sessionId,
217
+ isArchived: true,
218
+ archivedReason: params.reason,
219
+ });
220
+ fsm_dynamo_1.DyFM_Log.info(`CCAP_CcSessionHistoryArchive | auto-archived`
221
+ + ` | sessionId: ${sessionId}`
222
+ + ` | reason: ${params.reason}`
223
+ + ` | lastActivityAt: ${params.session.lastActivityAt?.toISOString() ?? '-'}`);
224
+ }
225
+ catch (err) {
226
+ fsm_dynamo_1.DyFM_Log.error(`CCAP_CcSessionHistoryArchive | archiveOne error`
227
+ + ` | sessionId: ${sessionId}`
228
+ + ` | reason: ${params.reason}`
229
+ + ` | err: ${fsm_dynamo_1.DyFM_Error.getErrorMessage(err)}`);
230
+ }
231
+ }
232
+ }
233
+ exports.CC_SessionHistoryArchive_ControlService = CC_SessionHistoryArchive_ControlService;
234
+ //# sourceMappingURL=cc-session-history-archive.control-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-session-history-archive.control-service.js","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.ts"],"names":[],"mappings":";;;AAAA,sDAAwE;AACxE,sDAA+D;AAG/D,mEAAgE;AAChE,sFAAsF;AACtF,0EAAqE;AAErE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,uCAAwC,SAAQ,mCAAsB;IAEjF,+CAA+C;IACvC,MAAM,CAAU,gBAAgB,GAAW,CAAC,GAAG,iBAAI,CAAC;IAE5D,8EAA8E;IACtE,MAAM,CAAU,mBAAmB,GAAW,EAAE,GAAG,gBAAG,CAAC;IAE/D;;;;;OAKG;IACK,MAAM,CAAU,4BAA4B,GAAW,GAAG,CAAC;IAEnE,4DAA4D;IACpD,MAAM,CAAU,eAAe,GAAkC;QACvE,+BAAc,CAAC,OAAO;QACtB,+BAAc,CAAC,QAAQ;QACvB,+BAAc,CAAC,YAAY;KAC5B,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,WAAW;QAChB,OAAO,uCAAuC,CAAC,oBAAoB,EAAE,CAAC;IACxE,CAAC;IAED,yDAAyD;IACjD,YAAY,GAA0C,IAAI,CAAC;IAEnE;;;;OAIG;IACK,mBAAmB,GAKG,IAAI,CAAC;IAEnC;;OAEG;IACH,sBAAsB,CAAC,QAKJ;QACjB,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,kEAAkE;IAClE,UAAU;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,qBAAQ,CAAC,IAAI,CACX,2CAA2C;cACzC,sBAAsB,uCAAuC,CAAC,gBAAgB,EAAE;cAChF,sBAAsB,uCAAuC,CAAC,mBAAmB,EAAE;cACnF,sBAAsB,uCAAuC,CAAC,4BAA4B,EAAE,CAC/F,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAS,EAAE;YACzC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,CAAC,EAAE,uCAAuC,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,4DAA4D;IAC5D,QAAQ;QACN,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,qBAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,oEAAoE;YACpE,uEAAuE;YACvE,6EAA6E;YAC7E,2CAA2C;YAC3C,MAAM,WAAW,GAAkB,4CAAsB,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,CAAC;YAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GACb,IAAI,iDAAsB,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACvE,MAAM,SAAS,GACb,MAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAEtF,2FAA2F;YAC3F,MAAM,aAAa,GACjB,uCAAuC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACzE,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,8EAA8E;YAC9E,8EAA8E;YAC9E,oBAAoB;YACpB,MAAM,eAAe,GACnB,MAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YACtF,MAAM,eAAe,GACnB,uCAAuC,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;YACjF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,aAAa,GAAW,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;YAC5E,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,qBAAQ,CAAC,IAAI,CACX,8CAA8C;sBAC5C,qBAAqB,aAAa,EAAE;sBACpC,aAAa,aAAa,CAAC,MAAM,EAAE;sBACnC,eAAe,eAAe,CAAC,MAAM,EAAE,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,qBAAQ,CAAC,KAAK,CACZ,8CAA8C,uBAAU,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAe;QACxC,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,EAAW,EAAE;YACzC,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,uCAAuC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,cAAc,GAClB,CAAC,CAAC,cAAc,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3E,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC5B,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,uCAAuC,CAAC,mBAAmB,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAe;QAC1C,MAAM,iBAAiB,GAAuB,IAAI,GAAG,EAAiB,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,IAAI,uCAAuC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrE,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAW,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAU,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,MAAM,IAAI,uCAAuC,CAAC,4BAA4B,EAAE,CAAC;gBACxF,SAAS;YACX,CAAC;YACD,uFAAuF;YACvF,MAAM,MAAM,GAAU,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAU,EAAE;gBAC9D,MAAM,GAAG,GAAW,CAAC,CAAC,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAC5G,MAAM,GAAG,GAAW,CAAC,CAAC,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAC5G,OAAO,GAAG,GAAG,GAAG,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,GAAG,uCAAuC,CAAC,4BAA4B,CAAC;YACvF,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8DAA8D;IACtD,MAAM,CAAC,cAAc,CAAC,MAA0B;QACtD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,uCAAuC,CAAC,eAAe,CAAC,QAAQ,CACrE,MAAwB,CACzB,CAAC;IACJ,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,UAAU,CAAC,MAAwC;QAC/D,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,MAAM,CAAC,MAAM;aAC9B,CAAC,CAAC;YACH,qBAAQ,CAAC,IAAI,CACX,8CAA8C;kBAC5C,iBAAiB,SAAS,EAAE;kBAC5B,cAAc,MAAM,CAAC,MAAM,EAAE;kBAC7B,sBAAsB,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,CAC9E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,qBAAQ,CAAC,KAAK,CACZ,iDAAiD;kBAC/C,iBAAiB,SAAS,EAAE;kBAC5B,cAAc,MAAM,CAAC,MAAM,EAAE;kBAC7B,WAAW,uBAAU,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAC/C,CAAC;QACJ,CAAC;IACH,CAAC;;AAtPH,0FAuPC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * REQ-CC-AUTO-ARCHIVE-001 (cycle 757): a `CC_SessionHistoryArchive_ControlService`
3
+ * két pure helper-jét teszteljük (filterAgeCandidates + filterCountCandidates).
4
+ * A scanAndArchive integrációs / DB-érintő, itt nem lefedett.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=cc-session-history-archive.control-service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-session-history-archive.control-service.spec.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/archive/cc-session-history-archive.control-service.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}