@futdevpro/ccap 1.1.2606 → 1.1.2617

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 (179) hide show
  1. package/client-dist/{agent-instances.module-MOBPFOVL.js → agent-instances.module-EN3TUWCP.js} +2 -2
  2. package/client-dist/{ca.module-DM43J2RL.js → ca.module-GORAHZS3.js} +2 -2
  3. package/client-dist/{cc.module-2ZVFZLKY.js → cc.module-V7UUWHNN.js} +2 -2
  4. package/client-dist/{chunk-GMQL62IG.js → chunk-3YVLAGRH.js} +2 -2
  5. package/client-dist/{chunk-YCCO4I67.js → chunk-4QEHZHVD.js} +2 -2
  6. package/client-dist/{chunk-5NOVUK7Q.js → chunk-5M33R74G.js} +2 -2
  7. package/client-dist/{chunk-OKVUXJV4.js → chunk-5MXK7YEG.js} +2 -2
  8. package/client-dist/{chunk-DSLYO2MW.js → chunk-6J4SX5W3.js} +2 -2
  9. package/client-dist/{chunk-Y7JANXA6.js → chunk-6R36KJBX.js} +2 -2
  10. package/client-dist/{chunk-24LHGCKT.js → chunk-6UEKWFBY.js} +2 -2
  11. package/client-dist/{chunk-TPJOPS2T.js → chunk-ABFHBZMB.js} +2 -2
  12. package/client-dist/{chunk-F3VLXQ63.js → chunk-BCGCVDWE.js} +2 -2
  13. package/client-dist/{chunk-CBBCF32R.js → chunk-BI53K7S7.js} +2 -2
  14. package/client-dist/{chunk-3BKWXHSS.js → chunk-BMPC7YQQ.js} +2 -2
  15. package/client-dist/{chunk-UAV7AZMZ.js → chunk-BT66EBDO.js} +2 -2
  16. package/client-dist/{chunk-6PGC6OS6.js → chunk-C233ZHXW.js} +2 -2
  17. package/client-dist/{chunk-IQQHAQGU.js → chunk-D7OQ7EDV.js} +2 -2
  18. package/client-dist/{chunk-55X4AMOF.js → chunk-DEIALVMK.js} +2 -2
  19. package/client-dist/{chunk-G6NOOKD3.js → chunk-DQRYQQIF.js} +2 -2
  20. package/client-dist/{chunk-S6ECM2FI.js → chunk-FQGFAUMM.js} +2 -2
  21. package/client-dist/{chunk-JF5GUJ3U.js → chunk-GV7SWYVG.js} +2 -2
  22. package/client-dist/{chunk-6RIVQBDG.js → chunk-IE4EXO7F.js} +2 -2
  23. package/client-dist/{chunk-4IF2BHAL.js → chunk-IVJK5V3T.js} +2 -2
  24. package/client-dist/{chunk-WJCXTUWX.js → chunk-IXD22FGA.js} +2 -2
  25. package/client-dist/{chunk-YMZG362Q.js → chunk-JA6NJ3HY.js} +2 -2
  26. package/client-dist/{chunk-55CP22NE.js → chunk-JB7S5KFM.js} +2 -2
  27. package/client-dist/{chunk-E6DXRM5G.js → chunk-JYN4W4IW.js} +2 -2
  28. package/client-dist/{chunk-NQZUGTQN.js → chunk-K3ABKMDH.js} +2 -2
  29. package/client-dist/{chunk-TPVY4LWK.js → chunk-KU3NFCE3.js} +2 -2
  30. package/client-dist/{chunk-7LGQEUGE.js → chunk-L65JUKSC.js} +2 -2
  31. package/client-dist/{chunk-2IYJPEBE.js → chunk-LVVC3ZN5.js} +2 -2
  32. package/client-dist/{chunk-BVHZC2R4.js → chunk-MUROLI6H.js} +2 -2
  33. package/client-dist/{chunk-UF4JCN2H.js → chunk-N347O4ZR.js} +2 -2
  34. package/client-dist/{chunk-EZKGNMOS.js → chunk-NMGB6Q45.js} +2 -2
  35. package/client-dist/{chunk-WQ72MWYL.js → chunk-OLBAIJHY.js} +2 -2
  36. package/client-dist/{chunk-TGHW5TCX.js → chunk-OMGAJHQQ.js} +2 -2
  37. package/client-dist/{chunk-LEB6J737.js → chunk-PEHTATOM.js} +2 -2
  38. package/client-dist/{chunk-AXNGKE56.js → chunk-PGMQ56NB.js} +2 -2
  39. package/client-dist/{chunk-M4JXLQ5L.js → chunk-PMLUJE5N.js} +2 -2
  40. package/client-dist/{chunk-AWOZUAJ5.js → chunk-PP73DOUH.js} +2 -2
  41. package/client-dist/{chunk-VR77ESZF.js → chunk-QBRWMKSU.js} +2 -2
  42. package/client-dist/{chunk-SAJULCYB.js → chunk-QDW4DDEH.js} +2 -2
  43. package/client-dist/{chunk-Q2CQL2OM.js → chunk-R7CNI5LG.js} +2 -2
  44. package/client-dist/{chunk-FT2VYZF2.js → chunk-RG4B2EC4.js} +2 -2
  45. package/client-dist/{chunk-BCFR5P4Z.js → chunk-RHEQKQT3.js} +2 -2
  46. package/client-dist/{chunk-FDO7MPJN.js → chunk-S6GMI7R3.js} +2 -2
  47. package/client-dist/{chunk-L3ZXU5BF.js → chunk-SNA7RAMU.js} +2 -2
  48. package/client-dist/{chunk-AWTLUF35.js → chunk-SSPO3S2C.js} +2 -2
  49. package/client-dist/{chunk-WYE4ZS2V.js → chunk-SUOO3ZQQ.js} +2 -2
  50. package/client-dist/{chunk-XTFGTT6E.js → chunk-TBE7X4MG.js} +2 -2
  51. package/client-dist/{chunk-6Z6BVIEO.js → chunk-TOU2FRKB.js} +2 -2
  52. package/client-dist/{chunk-YXSOAFPE.js → chunk-URBFZBHB.js} +2 -2
  53. package/client-dist/{chunk-RZPEHHDF.js → chunk-UWC76UG2.js} +2 -2
  54. package/client-dist/{chunk-BOOSIZMO.js → chunk-WH2RXTQX.js} +2 -2
  55. package/client-dist/{chunk-BOOSIZMO.js.map → chunk-WH2RXTQX.js.map} +1 -1
  56. package/client-dist/{chunk-T5PDX35Y.js → chunk-XWRXJ2PQ.js} +2 -2
  57. package/client-dist/{chunk-3D6OZYTY.js → chunk-XWWVDCIV.js} +2 -2
  58. package/client-dist/{chunk-QI5VQ5OL.js → chunk-Y7KI3XKP.js} +2 -2
  59. package/client-dist/{chunk-G4YPCSLP.js → chunk-YASHJ2WC.js} +2 -2
  60. package/client-dist/{chunk-X7VX4ZET.js → chunk-YSPF4PQW.js} +2 -2
  61. package/client-dist/{consultant.module-J3NWWDCO.js → consultant.module-YXJGRCVB.js} +2 -2
  62. package/client-dist/{crd.module-YQX3PO24.js → crd.module-K5IU7FAD.js} +2 -2
  63. package/client-dist/{dashboard.module-ZHOQ5KS4.js → dashboard.module-JZHORI36.js} +2 -2
  64. package/client-dist/{do.module-D3TSFGYV.js → do.module-VJDE653T.js} +2 -2
  65. package/client-dist/{document-library.module-4VZBDNJD.js → document-library.module-S7H4MOVL.js} +2 -2
  66. package/client-dist/{embedding-eval.module-ZFS7MZLL.js → embedding-eval.module-XEHPYHRV.js} +2 -2
  67. package/client-dist/{embedding-registry.module-6AYSLPVY.js → embedding-registry.module-RYDZNKNT.js} +2 -2
  68. package/client-dist/{err.module-CZTPDUZT.js → err.module-PGJZBINE.js} +2 -2
  69. package/client-dist/{feedback.module-D367ZC6J.js → feedback.module-LL2MRM2Q.js} +2 -2
  70. package/client-dist/{host-runtime-mcp.module-SMK75GJX.js → host-runtime-mcp.module-6CUKTPUO.js} +2 -2
  71. package/client-dist/index.html +1 -1
  72. package/client-dist/{live-dev-pipeline.module-TEPDHMXK.js → live-dev-pipeline.module-HFCGROXH.js} +2 -2
  73. package/client-dist/{logs.module-P7XHD6NQ.js → logs.module-DHBSE2KE.js} +2 -2
  74. package/client-dist/{main-PV5MDVZV.js → main-XCMYEZXM.js} +3 -3
  75. package/client-dist/{master-control-remote-poc.module-WNERX4QY.js → master-control-remote-poc.module-SXSUM2KX.js} +2 -2
  76. package/client-dist/{mobile-app.module-AQQ5JZ5D.js → mobile-app.module-VTEZJSGQ.js} +2 -2
  77. package/client-dist/{model-registry.module-7SUM5KSW.js → model-registry.module-AFGLVYHQ.js} +2 -2
  78. package/client-dist/{oc.module-BEC3URVJ.js → oc.module-46CPQK5Q.js} +2 -2
  79. package/client-dist/{orc.module-6Z6OA4MI.js → orc.module-AHFLHGAC.js} +2 -2
  80. package/client-dist/{project-management.module-HHV4PD63.js → project-management.module-IO2GKZSD.js} +2 -2
  81. package/client-dist/project-source-routed.module-2NWLCLTD.js +2 -0
  82. package/client-dist/{scheduler.module-ZPVN2TMK.js → scheduler.module-SSRON4PT.js} +2 -2
  83. package/client-dist/{session.module-2EWXD2LD.js → session.module-LTJ4UVWH.js} +2 -2
  84. package/client-dist/{set.module-MTHEX6W4.js → set.module-PVV66J2Z.js} +2 -2
  85. package/client-dist/{setup.module-Y7ZEG3XX.js → setup.module-RNGQCVLV.js} +2 -2
  86. package/client-dist/{terminals.module-3TZO3TQW.js → terminals.module-73MWV7AD.js} +2 -2
  87. package/client-dist/{voice-notes-poc.module-GJNFEJJI.js → voice-notes-poc.module-AQVKDVVI.js} +2 -2
  88. package/client-dist/{wfs.module-U56HKERK.js → wfs.module-2QEI4QBQ.js} +2 -2
  89. package/package.json +1 -1
  90. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts +20 -43
  91. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
  92. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +43 -43
  93. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
  94. package/client-dist/project-source-routed.module-LWPWTUCB.js +0 -2
  95. /package/client-dist/{agent-instances.module-MOBPFOVL.js.map → agent-instances.module-EN3TUWCP.js.map} +0 -0
  96. /package/client-dist/{ca.module-DM43J2RL.js.map → ca.module-GORAHZS3.js.map} +0 -0
  97. /package/client-dist/{cc.module-2ZVFZLKY.js.map → cc.module-V7UUWHNN.js.map} +0 -0
  98. /package/client-dist/{chunk-GMQL62IG.js.map → chunk-3YVLAGRH.js.map} +0 -0
  99. /package/client-dist/{chunk-YCCO4I67.js.map → chunk-4QEHZHVD.js.map} +0 -0
  100. /package/client-dist/{chunk-5NOVUK7Q.js.map → chunk-5M33R74G.js.map} +0 -0
  101. /package/client-dist/{chunk-OKVUXJV4.js.map → chunk-5MXK7YEG.js.map} +0 -0
  102. /package/client-dist/{chunk-DSLYO2MW.js.map → chunk-6J4SX5W3.js.map} +0 -0
  103. /package/client-dist/{chunk-Y7JANXA6.js.map → chunk-6R36KJBX.js.map} +0 -0
  104. /package/client-dist/{chunk-24LHGCKT.js.map → chunk-6UEKWFBY.js.map} +0 -0
  105. /package/client-dist/{chunk-TPJOPS2T.js.map → chunk-ABFHBZMB.js.map} +0 -0
  106. /package/client-dist/{chunk-F3VLXQ63.js.map → chunk-BCGCVDWE.js.map} +0 -0
  107. /package/client-dist/{chunk-CBBCF32R.js.map → chunk-BI53K7S7.js.map} +0 -0
  108. /package/client-dist/{chunk-3BKWXHSS.js.map → chunk-BMPC7YQQ.js.map} +0 -0
  109. /package/client-dist/{chunk-UAV7AZMZ.js.map → chunk-BT66EBDO.js.map} +0 -0
  110. /package/client-dist/{chunk-6PGC6OS6.js.map → chunk-C233ZHXW.js.map} +0 -0
  111. /package/client-dist/{chunk-IQQHAQGU.js.map → chunk-D7OQ7EDV.js.map} +0 -0
  112. /package/client-dist/{chunk-55X4AMOF.js.map → chunk-DEIALVMK.js.map} +0 -0
  113. /package/client-dist/{chunk-G6NOOKD3.js.map → chunk-DQRYQQIF.js.map} +0 -0
  114. /package/client-dist/{chunk-S6ECM2FI.js.map → chunk-FQGFAUMM.js.map} +0 -0
  115. /package/client-dist/{chunk-JF5GUJ3U.js.map → chunk-GV7SWYVG.js.map} +0 -0
  116. /package/client-dist/{chunk-6RIVQBDG.js.map → chunk-IE4EXO7F.js.map} +0 -0
  117. /package/client-dist/{chunk-4IF2BHAL.js.map → chunk-IVJK5V3T.js.map} +0 -0
  118. /package/client-dist/{chunk-WJCXTUWX.js.map → chunk-IXD22FGA.js.map} +0 -0
  119. /package/client-dist/{chunk-YMZG362Q.js.map → chunk-JA6NJ3HY.js.map} +0 -0
  120. /package/client-dist/{chunk-55CP22NE.js.map → chunk-JB7S5KFM.js.map} +0 -0
  121. /package/client-dist/{chunk-E6DXRM5G.js.map → chunk-JYN4W4IW.js.map} +0 -0
  122. /package/client-dist/{chunk-NQZUGTQN.js.map → chunk-K3ABKMDH.js.map} +0 -0
  123. /package/client-dist/{chunk-TPVY4LWK.js.map → chunk-KU3NFCE3.js.map} +0 -0
  124. /package/client-dist/{chunk-7LGQEUGE.js.map → chunk-L65JUKSC.js.map} +0 -0
  125. /package/client-dist/{chunk-2IYJPEBE.js.map → chunk-LVVC3ZN5.js.map} +0 -0
  126. /package/client-dist/{chunk-BVHZC2R4.js.map → chunk-MUROLI6H.js.map} +0 -0
  127. /package/client-dist/{chunk-UF4JCN2H.js.map → chunk-N347O4ZR.js.map} +0 -0
  128. /package/client-dist/{chunk-EZKGNMOS.js.map → chunk-NMGB6Q45.js.map} +0 -0
  129. /package/client-dist/{chunk-WQ72MWYL.js.map → chunk-OLBAIJHY.js.map} +0 -0
  130. /package/client-dist/{chunk-TGHW5TCX.js.map → chunk-OMGAJHQQ.js.map} +0 -0
  131. /package/client-dist/{chunk-LEB6J737.js.map → chunk-PEHTATOM.js.map} +0 -0
  132. /package/client-dist/{chunk-AXNGKE56.js.map → chunk-PGMQ56NB.js.map} +0 -0
  133. /package/client-dist/{chunk-M4JXLQ5L.js.map → chunk-PMLUJE5N.js.map} +0 -0
  134. /package/client-dist/{chunk-AWOZUAJ5.js.map → chunk-PP73DOUH.js.map} +0 -0
  135. /package/client-dist/{chunk-VR77ESZF.js.map → chunk-QBRWMKSU.js.map} +0 -0
  136. /package/client-dist/{chunk-SAJULCYB.js.map → chunk-QDW4DDEH.js.map} +0 -0
  137. /package/client-dist/{chunk-Q2CQL2OM.js.map → chunk-R7CNI5LG.js.map} +0 -0
  138. /package/client-dist/{chunk-FT2VYZF2.js.map → chunk-RG4B2EC4.js.map} +0 -0
  139. /package/client-dist/{chunk-BCFR5P4Z.js.map → chunk-RHEQKQT3.js.map} +0 -0
  140. /package/client-dist/{chunk-FDO7MPJN.js.map → chunk-S6GMI7R3.js.map} +0 -0
  141. /package/client-dist/{chunk-L3ZXU5BF.js.map → chunk-SNA7RAMU.js.map} +0 -0
  142. /package/client-dist/{chunk-AWTLUF35.js.map → chunk-SSPO3S2C.js.map} +0 -0
  143. /package/client-dist/{chunk-WYE4ZS2V.js.map → chunk-SUOO3ZQQ.js.map} +0 -0
  144. /package/client-dist/{chunk-XTFGTT6E.js.map → chunk-TBE7X4MG.js.map} +0 -0
  145. /package/client-dist/{chunk-6Z6BVIEO.js.map → chunk-TOU2FRKB.js.map} +0 -0
  146. /package/client-dist/{chunk-YXSOAFPE.js.map → chunk-URBFZBHB.js.map} +0 -0
  147. /package/client-dist/{chunk-RZPEHHDF.js.map → chunk-UWC76UG2.js.map} +0 -0
  148. /package/client-dist/{chunk-T5PDX35Y.js.map → chunk-XWRXJ2PQ.js.map} +0 -0
  149. /package/client-dist/{chunk-3D6OZYTY.js.map → chunk-XWWVDCIV.js.map} +0 -0
  150. /package/client-dist/{chunk-QI5VQ5OL.js.map → chunk-Y7KI3XKP.js.map} +0 -0
  151. /package/client-dist/{chunk-G4YPCSLP.js.map → chunk-YASHJ2WC.js.map} +0 -0
  152. /package/client-dist/{chunk-X7VX4ZET.js.map → chunk-YSPF4PQW.js.map} +0 -0
  153. /package/client-dist/{consultant.module-J3NWWDCO.js.map → consultant.module-YXJGRCVB.js.map} +0 -0
  154. /package/client-dist/{crd.module-YQX3PO24.js.map → crd.module-K5IU7FAD.js.map} +0 -0
  155. /package/client-dist/{dashboard.module-ZHOQ5KS4.js.map → dashboard.module-JZHORI36.js.map} +0 -0
  156. /package/client-dist/{do.module-D3TSFGYV.js.map → do.module-VJDE653T.js.map} +0 -0
  157. /package/client-dist/{document-library.module-4VZBDNJD.js.map → document-library.module-S7H4MOVL.js.map} +0 -0
  158. /package/client-dist/{embedding-eval.module-ZFS7MZLL.js.map → embedding-eval.module-XEHPYHRV.js.map} +0 -0
  159. /package/client-dist/{embedding-registry.module-6AYSLPVY.js.map → embedding-registry.module-RYDZNKNT.js.map} +0 -0
  160. /package/client-dist/{err.module-CZTPDUZT.js.map → err.module-PGJZBINE.js.map} +0 -0
  161. /package/client-dist/{feedback.module-D367ZC6J.js.map → feedback.module-LL2MRM2Q.js.map} +0 -0
  162. /package/client-dist/{host-runtime-mcp.module-SMK75GJX.js.map → host-runtime-mcp.module-6CUKTPUO.js.map} +0 -0
  163. /package/client-dist/{live-dev-pipeline.module-TEPDHMXK.js.map → live-dev-pipeline.module-HFCGROXH.js.map} +0 -0
  164. /package/client-dist/{logs.module-P7XHD6NQ.js.map → logs.module-DHBSE2KE.js.map} +0 -0
  165. /package/client-dist/{main-PV5MDVZV.js.map → main-XCMYEZXM.js.map} +0 -0
  166. /package/client-dist/{master-control-remote-poc.module-WNERX4QY.js.map → master-control-remote-poc.module-SXSUM2KX.js.map} +0 -0
  167. /package/client-dist/{mobile-app.module-AQQ5JZ5D.js.map → mobile-app.module-VTEZJSGQ.js.map} +0 -0
  168. /package/client-dist/{model-registry.module-7SUM5KSW.js.map → model-registry.module-AFGLVYHQ.js.map} +0 -0
  169. /package/client-dist/{oc.module-BEC3URVJ.js.map → oc.module-46CPQK5Q.js.map} +0 -0
  170. /package/client-dist/{orc.module-6Z6OA4MI.js.map → orc.module-AHFLHGAC.js.map} +0 -0
  171. /package/client-dist/{project-management.module-HHV4PD63.js.map → project-management.module-IO2GKZSD.js.map} +0 -0
  172. /package/client-dist/{project-source-routed.module-LWPWTUCB.js.map → project-source-routed.module-2NWLCLTD.js.map} +0 -0
  173. /package/client-dist/{scheduler.module-ZPVN2TMK.js.map → scheduler.module-SSRON4PT.js.map} +0 -0
  174. /package/client-dist/{session.module-2EWXD2LD.js.map → session.module-LTJ4UVWH.js.map} +0 -0
  175. /package/client-dist/{set.module-MTHEX6W4.js.map → set.module-PVV66J2Z.js.map} +0 -0
  176. /package/client-dist/{setup.module-Y7ZEG3XX.js.map → setup.module-RNGQCVLV.js.map} +0 -0
  177. /package/client-dist/{terminals.module-3TZO3TQW.js.map → terminals.module-73MWV7AD.js.map} +0 -0
  178. /package/client-dist/{voice-notes-poc.module-GJNFEJJI.js.map → voice-notes-poc.module-AQVKDVVI.js.map} +0 -0
  179. /package/client-dist/{wfs.module-U56HKERK.js.map → wfs.module-2QEI4QBQ.js.map} +0 -0
@@ -1,3 +1,3 @@
1
- import{a as se}from"./chunk-GMQL62IG.js";import"./chunk-BCFR5P4Z.js";import"./chunk-7LGQEUGE.js";import"./chunk-T5PDX35Y.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-3D6OZYTY.js";import{I as le}from"./chunk-BOOSIZMO.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-3YVLAGRH.js";import"./chunk-RHEQKQT3.js";import"./chunk-L65JUKSC.js";import"./chunk-XWRXJ2PQ.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-XWWVDCIV.js";import{I as le}from"./chunk-WH2RXTQX.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-U56HKERK.js.map
3
+ //# sourceMappingURL=wfs.module-2QEI4QBQ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/ccap",
3
- "version": "1.1.2606",
3
+ "version": "1.1.2617",
4
4
  "description": "CCAP Revisioned – Agent architektúra; CLI, server, client, e2e alprojektek.",
5
5
  "bin": {
6
6
  "ccap": "./bin/ccap.js"
@@ -89,42 +89,27 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
89
89
  * írják, a handleTerminalProcessExit kiolvassa és törli, és átadja a classifyExitStatus-nak.
90
90
  */
91
91
  private pendingKillReasons;
92
- /**
93
- * Output callback beállítása (az adapter hívja bootstrap-kor).
94
- */
92
+ /** Output callback (adapter bootstrap). */
95
93
  setOnOutput(callback: CC_OutputCallback_Type): void;
96
- /**
97
- * Process state callback beállítása (az adapter hívja bootstrap-kor).
98
- */
94
+ /** Process state callback (adapter bootstrap). */
99
95
  setOnProcessStateChange(callback: CC_ProcessStateCallback_Type): void;
100
96
  /**
101
- * Terminal mode be/kikapcsolása (settings alapján, a manager hívja).
102
- * Windows és Linux: a settings explicit kapcsolása érvényes. macOS (darwin) és egyéb
103
- * platformon a flag mindig false marad — a spawnTerminalRunner eleve elutasítja ezeket
104
- * (`CCAP-CCS-TERMINAL-PLATFORM-FALLBACK`), ezért a flag bekapcsolása sem érne semmit.
97
+ * Terminal mode be/kikapcsolása (settings alapján). win32/linux esetén a flag effektív;
98
+ * más platformon false marad (spawnTerminalRunner CCAP-CCS-TERMINAL-PLATFORM-FALLBACK).
105
99
  */
106
100
  setTerminalMode(enabled: boolean): void;
107
101
  /**
108
- * Runner reconnect grace period beállítása (másodperc).
109
- * A manager hívja settings beolvasás után (REQ-CCSESS-TR-005).
110
- * Érvénytelen érték esetén a default marad (3600s = 1h, cycle 749 user-bump).
111
- * Range: 5..14400s (REQ-CC-RUNNER-GRACE-LONG-001).
102
+ * Runner reconnect grace period (sec) — settings beolvasás után. Range 5..14400s
103
+ * (REQ-CCSESS-TR-005, REQ-CC-RUNNER-GRACE-LONG-001), invalid → default 3600s marad.
112
104
  */
113
105
  setRunnerGracePeriodSec(sec: number): void;
114
- /**
115
- * Shared sessionConfigs map referencia beállítása (az adapter hívja bootstrap-kor).
116
- * A sendInputViaTerminal és reloadSessionConfigFromDb módszerek használják.
117
- */
106
+ /** Shared sessionConfigs map ref (adapter bootstrap). sendInputViaTerminal + reload használja. */
118
107
  setSessionConfigs(configs: Map<string, CC_SessionConfig_Interface>): void;
119
- /**
120
- * StoppedSessions set referencia beállítása (az adapter hívja bootstrap-kor).
121
- * A handleTerminalProcessExit használja, hogy stop execution után waitingInput-ra váltson.
122
- */
108
+ /** StoppedSessions set ref (adapter bootstrap). handleTerminalProcessExit waitingInput-ra. */
123
109
  setStoppedSessions(stoppedSessions: Set<string>): void;
124
110
  /**
125
- * REQ-CC-EXIT-REASON-001 — pendingKillReasons map referencia beállítása (az adapter hívja
126
- * bootstrap-kor). Shared map: ugyanaz az instance, amibe az adapter `markPendingKill`
127
- * is ír. A handleTerminalProcessExit használja a kill ok kiolvasásához.
111
+ * REQ-CC-EXIT-REASON-001 — pendingKillReasons map ref (adapter bootstrap, shared).
112
+ * markPendingKill ír, handleTerminalProcessExit olvas + classifyExitStatus reason-suffix.
128
113
  */
129
114
  setPendingKillReasons(map: Map<string, string>): void;
130
115
  /**
@@ -217,10 +202,8 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
217
202
  sessionId: string;
218
203
  }): boolean;
219
204
  /**
220
- * Reconnect utáni buffered output lekérése és törlése.
221
- * A manager hívja a runtimeState létrehozása után, hogy a runner reconnect
222
- * alatt összegyűjtött output-ot feldolgozza (event rögzítés, stream push).
223
- * Ha nincs pending output, üres tömböt ad vissza.
205
+ * Reconnect utáni buffered output lekérése + törlése (manager runtimeState
206
+ * létrehozás után hívja a recovery flush-hoz). Üres ha nincs pending.
224
207
  */
225
208
  consumePendingBufferedOutput(params: {
226
209
  sessionId: string;
@@ -249,10 +232,9 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
249
232
  terminalId: string;
250
233
  }>;
251
234
  /**
252
- * Runner sequence state törléseha a runner process teljesen kilépett
253
- * (terminate / lifecycle-terminate), az új runner 1-től kezdi a sequence-t,
254
- * tehát a szerveroldali dedup state-et is reset-elni kell. A disconnect (socket
255
- * drop) NEM hívja — ott a runner ugyanaz a process, és a sequence folytatódik.
235
+ * Runner sequence state resetrunner full-exit (terminate / lifecycle-terminate)
236
+ * esetén kell hívni, mert új runner 1-től kezdi a sequence-t. Disconnect (socket
237
+ * drop) NEM hívja ott ugyanaz a process, sequence folytatódik.
256
238
  */
257
239
  clearRunnerSequenceState(params: {
258
240
  sessionId: string;
@@ -271,11 +253,9 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
271
253
  */
272
254
  private waitForTerminalRegister;
273
255
  /**
274
- * Terminal runner regisztrálás kezelése (cc:register event).
275
- * A runner Socket.IO-n keresztül regisztrálja magát a sessionId + terminalId párral.
276
- * Cycle 781 (REQ-SYS-INSTALL-VERSION-CHECK-001): a `runnerVersion` mező
277
- * eltárolódik a `runnerVersions` Map-ben — később a no-ACK error context +
278
- * version-info endpoint használja a verzió-mismatch detektáláshoz.
256
+ * Terminal runner cc:register event handler (sessionId + terminalId párral).
257
+ * Cycle 781: `runnerVersion` mező `runnerVersions` Map-be (no-ACK error context
258
+ * + version-info endpoint mismatch-detektálás).
279
259
  */
280
260
  private handleTerminalRegister;
281
261
  /**
@@ -308,11 +288,8 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
308
288
  */
309
289
  private handleTerminalBufferedOutput;
310
290
  /**
311
- * Runner buffer overflow esemény kezelése (cc:overflow).
312
- * A runner körpuffer eldobott output item-eket a szerver rögzít egy dedikált
313
- * runnerOverflow event-et a session event-log-jába, és az output callback-en
314
- * keresztül propagálja a manager-nek (az stream-eli a kliens felé).
315
- * REQ-CCSESS-TR-006.
291
+ * Runner buffer overflow (cc:overflow) — runnerOverflow event-et logol az event-log-ba
292
+ * + output callback-en továbbít a manager-nek (REQ-CCSESS-TR-006).
316
293
  */
317
294
  private handleTerminalOverflow;
318
295
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cc-adapter-terminal.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cc-adapter-terminal.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CC_AdapterTerminal_ControlService = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const child_process_1 = require("child_process");
6
+ const fs = tslib_1.__importStar(require("fs"));
6
7
  const path = tslib_1.__importStar(require("path"));
7
8
  const crypto_1 = require("crypto");
8
9
  const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
@@ -122,57 +123,42 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
122
123
  */
123
124
  pendingKillReasons = new Map();
124
125
  // ── Callback setters ───────────────────────────────────────
125
- /**
126
- * Output callback beállítása (az adapter hívja bootstrap-kor).
127
- */
126
+ /** Output callback (adapter bootstrap). */
128
127
  setOnOutput(callback) {
129
128
  this.onOutput = callback;
130
129
  }
131
- /**
132
- * Process state callback beállítása (az adapter hívja bootstrap-kor).
133
- */
130
+ /** Process state callback (adapter bootstrap). */
134
131
  setOnProcessStateChange(callback) {
135
132
  this.onProcessStateChange = callback;
136
133
  }
137
134
  /**
138
- * Terminal mode be/kikapcsolása (settings alapján, a manager hívja).
139
- * Windows és Linux: a settings explicit kapcsolása érvényes. macOS (darwin) és egyéb
140
- * platformon a flag mindig false marad — a spawnTerminalRunner eleve elutasítja ezeket
141
- * (`CCAP-CCS-TERMINAL-PLATFORM-FALLBACK`), ezért a flag bekapcsolása sem érne semmit.
135
+ * Terminal mode be/kikapcsolása (settings alapján). win32/linux esetén a flag effektív;
136
+ * más platformon false marad (spawnTerminalRunner CCAP-CCS-TERMINAL-PLATFORM-FALLBACK).
142
137
  */
143
138
  setTerminalMode(enabled) {
144
139
  const platformSupportsTerminalMode = process.platform === 'win32' || process.platform === 'linux';
145
140
  this.isTerminalModeEnabled = enabled && platformSupportsTerminalMode;
146
141
  }
147
142
  /**
148
- * Runner reconnect grace period beállítása (másodperc).
149
- * A manager hívja settings beolvasás után (REQ-CCSESS-TR-005).
150
- * Érvénytelen érték esetén a default marad (3600s = 1h, cycle 749 user-bump).
151
- * Range: 5..14400s (REQ-CC-RUNNER-GRACE-LONG-001).
143
+ * Runner reconnect grace period (sec) — settings beolvasás után. Range 5..14400s
144
+ * (REQ-CCSESS-TR-005, REQ-CC-RUNNER-GRACE-LONG-001), invalid → default 3600s marad.
152
145
  */
153
146
  setRunnerGracePeriodSec(sec) {
154
147
  if (Number.isFinite(sec) && sec >= 5 && sec <= 14400) {
155
148
  this.runnerGracePeriodSec = Math.floor(sec);
156
149
  }
157
150
  }
158
- /**
159
- * Shared sessionConfigs map referencia beállítása (az adapter hívja bootstrap-kor).
160
- * A sendInputViaTerminal és reloadSessionConfigFromDb módszerek használják.
161
- */
151
+ /** Shared sessionConfigs map ref (adapter bootstrap). sendInputViaTerminal + reload használja. */
162
152
  setSessionConfigs(configs) {
163
153
  this.sessionConfigs = configs;
164
154
  }
165
- /**
166
- * StoppedSessions set referencia beállítása (az adapter hívja bootstrap-kor).
167
- * A handleTerminalProcessExit használja, hogy stop execution után waitingInput-ra váltson.
168
- */
155
+ /** StoppedSessions set ref (adapter bootstrap). handleTerminalProcessExit waitingInput-ra. */
169
156
  setStoppedSessions(stoppedSessions) {
170
157
  this.stoppedSessions = stoppedSessions;
171
158
  }
172
159
  /**
173
- * REQ-CC-EXIT-REASON-001 — pendingKillReasons map referencia beállítása (az adapter hívja
174
- * bootstrap-kor). Shared map: ugyanaz az instance, amibe az adapter `markPendingKill`
175
- * is ír. A handleTerminalProcessExit használja a kill ok kiolvasásához.
160
+ * REQ-CC-EXIT-REASON-001 — pendingKillReasons map ref (adapter bootstrap, shared).
161
+ * markPendingKill ír, handleTerminalProcessExit olvas + classifyExitStatus reason-suffix.
176
162
  */
177
163
  setPendingKillReasons(map) {
178
164
  this.pendingKillReasons = map;
@@ -383,10 +369,8 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
383
369
  return socket != null && socket.connected === true;
384
370
  }
385
371
  /**
386
- * Reconnect utáni buffered output lekérése és törlése.
387
- * A manager hívja a runtimeState létrehozása után, hogy a runner reconnect
388
- * alatt összegyűjtött output-ot feldolgozza (event rögzítés, stream push).
389
- * Ha nincs pending output, üres tömböt ad vissza.
372
+ * Reconnect utáni buffered output lekérése + törlése (manager runtimeState
373
+ * létrehozás után hívja a recovery flush-hoz). Üres ha nincs pending.
390
374
  */
391
375
  consumePendingBufferedOutput(params) {
392
376
  const items = this.pendingBufferedOutputs.get(params.sessionId);
@@ -422,6 +406,28 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
422
406
  }),
423
407
  });
424
408
  }
409
+ // BUG-CC-TERM-SILENT-SPAWN-001 (cycle 812): pre-spawn cwd validation
410
+ // (REQ-SYS-SILENT-001). A `spawn(..., {cwd})` bad-cwd esetén ASYNC ENOENT-et
411
+ // dob — sync return mégis `spawned=true`, az async error csak DyFM_Log.info-ba
412
+ // megy → user 30s REG-TIMEOUT + cycle 801 queue-fallback 10×30s csendes loop-ot
413
+ // lát. Tipikus okozó: cross-platform stale workspacePath (`E:\TestZone\...` Linux-on).
414
+ if (!fs.existsSync(params.workspacePath)) {
415
+ throw new ccap_error_control_model_1.CCAP_Error({
416
+ message: `CC Session terminal workspace path does not exist: ${params.workspacePath}`
417
+ + ' — terminal spawn aborted (cycle 812 pre-spawn fail-fast)',
418
+ errorCode: 'CCAP-CCS-WORKSPACE-NOT-FOUND',
419
+ status: 400,
420
+ error: new Error(`workspace path does not exist: ${params.workspacePath}`),
421
+ additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
422
+ additionalContext: {
423
+ source: 'cc-adapter-terminal | spawnTerminalRunner | pre-spawn-cwd-validation',
424
+ sessionId: params.sessionId,
425
+ workspacePath: params.workspacePath,
426
+ platform: process.platform,
427
+ },
428
+ }),
429
+ });
430
+ }
425
431
  const terminalId = (0, crypto_1.randomUUID)();
426
432
  const ccapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId() ?? '';
427
433
  // DB rekord létrehozása.
@@ -581,10 +587,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
581
587
  return { terminalId: terminalId };
582
588
  }
583
589
  /**
584
- * Runner sequence state törléseha a runner process teljesen kilépett
585
- * (terminate / lifecycle-terminate), az új runner 1-től kezdi a sequence-t,
586
- * tehát a szerveroldali dedup state-et is reset-elni kell. A disconnect (socket
587
- * drop) NEM hívja — ott a runner ugyanaz a process, és a sequence folytatódik.
590
+ * Runner sequence state resetrunner full-exit (terminate / lifecycle-terminate)
591
+ * esetén kell hívni, mert új runner 1-től kezdi a sequence-t. Disconnect (socket
592
+ * drop) NEM hívja ott ugyanaz a process, sequence folytatódik.
588
593
  */
589
594
  clearRunnerSequenceState(params) {
590
595
  this.lastProcessedRunnerSequence.delete(params.sessionId);
@@ -826,11 +831,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
826
831
  });
827
832
  }
828
833
  /**
829
- * Terminal runner regisztrálás kezelése (cc:register event).
830
- * A runner Socket.IO-n keresztül regisztrálja magát a sessionId + terminalId párral.
831
- * Cycle 781 (REQ-SYS-INSTALL-VERSION-CHECK-001): a `runnerVersion` mező
832
- * eltárolódik a `runnerVersions` Map-ben — később a no-ACK error context +
833
- * version-info endpoint használja a verzió-mismatch detektáláshoz.
834
+ * Terminal runner cc:register event handler (sessionId + terminalId párral).
835
+ * Cycle 781: `runnerVersion` mező `runnerVersions` Map-be (no-ACK error context
836
+ * + version-info endpoint mismatch-detektálás).
834
837
  */
835
838
  handleTerminalRegister(params) {
836
839
  const sessionId = (params.data.sessionId ?? '').trim();
@@ -1205,11 +1208,8 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
1205
1208
  }
1206
1209
  }
1207
1210
  /**
1208
- * Runner buffer overflow esemény kezelése (cc:overflow).
1209
- * A runner körpuffer eldobott output item-eket a szerver rögzít egy dedikált
1210
- * runnerOverflow event-et a session event-log-jába, és az output callback-en
1211
- * keresztül propagálja a manager-nek (az stream-eli a kliens felé).
1212
- * REQ-CCSESS-TR-006.
1211
+ * Runner buffer overflow (cc:overflow) — runnerOverflow event-et logol az event-log-ba
1212
+ * + output callback-en továbbít a manager-nek (REQ-CCSESS-TR-006).
1213
1213
  */
1214
1214
  handleTerminalOverflow(params) {
1215
1215
  // A sessionId-t a socket → sessionId map-ből visszafejtjük (a socket connection idején regisztrálva).