@futdevpro/ccap 1.1.3508 → 1.1.3515

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 (185) hide show
  1. package/client-dist/{agent-instances.module-X2EAZWNC.js → agent-instances.module-5DOGNLXO.js} +2 -2
  2. package/client-dist/{ca.module-UKEVG7H5.js → ca.module-XHE46FU5.js} +2 -2
  3. package/client-dist/{cc-usage-dashboard.component-SWKOCSYU.js → cc-usage-dashboard.component-FUIRNB4B.js} +2 -2
  4. package/client-dist/{cc-usage-dashboard.component-SWKOCSYU.js.map → cc-usage-dashboard.component-FUIRNB4B.js.map} +3 -3
  5. package/client-dist/{cc.module-AE3UTLQM.js → cc.module-7CFFLL2A.js} +2 -2
  6. package/client-dist/{chunk-G5RVYENP.js → chunk-26VAQXDU.js} +2 -2
  7. package/client-dist/{chunk-YYASTT5C.js → chunk-2PAMSPPB.js} +2 -2
  8. package/client-dist/{chunk-PQJSMEEO.js → chunk-3OAVFWVG.js} +2 -2
  9. package/client-dist/{chunk-JSLXFS3P.js → chunk-44UE4O3M.js} +2 -2
  10. package/client-dist/{chunk-O2MF2KDY.js → chunk-4WNJ7IKE.js} +2 -2
  11. package/client-dist/{chunk-SY2IF3DK.js → chunk-55GY7S7U.js} +2 -2
  12. package/client-dist/{chunk-ANMHMGCN.js → chunk-5IGMWTXT.js} +2 -2
  13. package/client-dist/{chunk-ANMHMGCN.js.map → chunk-5IGMWTXT.js.map} +1 -1
  14. package/client-dist/{chunk-4BERPGJT.js → chunk-6BHKDJRV.js} +2 -2
  15. package/client-dist/{chunk-R3JWUXQG.js → chunk-6JLSVPOB.js} +2 -2
  16. package/client-dist/{chunk-QBVNLJ7A.js → chunk-6YZDXJ6X.js} +2 -2
  17. package/client-dist/{chunk-5ZNUIE2O.js → chunk-7G7KR4QZ.js} +2 -2
  18. package/client-dist/{chunk-M5JVIKJU.js → chunk-7UZGBEJQ.js} +2 -2
  19. package/client-dist/{chunk-TOIHWXFM.js → chunk-AUQW6PKZ.js} +2 -2
  20. package/client-dist/{chunk-ERROOXHA.js → chunk-BYH47PRM.js} +2 -2
  21. package/client-dist/{chunk-EZD36BDE.js → chunk-DWUR2UF6.js} +2 -2
  22. package/client-dist/{chunk-HJ6Q4JYU.js → chunk-DZKNJL3B.js} +2 -2
  23. package/client-dist/{chunk-NU2XNK5F.js → chunk-EGMYVF63.js} +2 -2
  24. package/client-dist/{chunk-3B2KB7MF.js → chunk-EJO6O6EC.js} +2 -2
  25. package/client-dist/{chunk-KNNGJ7AJ.js → chunk-GT7XB72V.js} +2 -2
  26. package/client-dist/{chunk-7AJI4JCW.js → chunk-HDK4R4DG.js} +2 -2
  27. package/client-dist/{chunk-KOY5WHLS.js → chunk-HY6E2IHK.js} +2 -2
  28. package/client-dist/{chunk-YDJYWSDS.js → chunk-IDPVOORT.js} +2 -2
  29. package/client-dist/{chunk-XBMDDFNC.js → chunk-J6DVPTY6.js} +2 -2
  30. package/client-dist/{chunk-LOGCDPUJ.js → chunk-JENBNAWF.js} +2 -2
  31. package/client-dist/{chunk-BCLGUIFQ.js → chunk-JJSBMY7W.js} +2 -2
  32. package/client-dist/{chunk-2ZCY5YQ7.js → chunk-JXYR2FVY.js} +2 -2
  33. package/client-dist/{chunk-ACYOZ4MP.js → chunk-LD2DR5AV.js} +2 -2
  34. package/client-dist/{chunk-ARE26OH2.js → chunk-LLL5SQYK.js} +2 -2
  35. package/client-dist/{chunk-5GU2SVER.js → chunk-NKTKS3CC.js} +2 -2
  36. package/client-dist/{chunk-ZMT6QVPB.js → chunk-OR2HJC37.js} +2 -2
  37. package/client-dist/{chunk-2HP3VJTA.js → chunk-QAASV4PF.js} +2 -2
  38. package/client-dist/{chunk-HWY2SAVN.js → chunk-QENS5VWV.js} +2 -2
  39. package/client-dist/{chunk-KJBEKLZZ.js → chunk-QM3IE6FW.js} +2 -2
  40. package/client-dist/{chunk-AEAJ2ABL.js → chunk-QMT4EYEY.js} +2 -2
  41. package/client-dist/{chunk-UMM6T6AQ.js → chunk-QVUTIP6O.js} +2 -2
  42. package/client-dist/{chunk-L7MQFYDG.js → chunk-RMXLLPRL.js} +2 -2
  43. package/client-dist/chunk-S3GEEACD.js +3 -0
  44. package/client-dist/chunk-S3GEEACD.js.map +7 -0
  45. package/client-dist/{chunk-XI7FMFIP.js → chunk-S3YWAZOT.js} +2 -2
  46. package/client-dist/{chunk-XJKKZSRS.js → chunk-T66WJFRE.js} +2 -2
  47. package/client-dist/{chunk-4JRMGC33.js → chunk-TBT47423.js} +2 -2
  48. package/client-dist/{chunk-RHNIU2GL.js → chunk-TWJMNHTT.js} +2 -2
  49. package/client-dist/{chunk-NZTD5QPD.js → chunk-U7R547IU.js} +2 -2
  50. package/client-dist/{chunk-BSUZZCBN.js → chunk-UX6DCHMP.js} +2 -2
  51. package/client-dist/{chunk-IVUKHZAE.js → chunk-VHLAHN4W.js} +2 -2
  52. package/client-dist/{chunk-NYV2AR3J.js → chunk-VSVT5EBJ.js} +2 -2
  53. package/client-dist/{chunk-5H5VMEAE.js → chunk-VWURPWCQ.js} +2 -2
  54. package/client-dist/{chunk-U7YD552X.js → chunk-W7RXNJML.js} +2 -2
  55. package/client-dist/{chunk-WIJ2KUXX.js → chunk-WOO4U5C6.js} +2 -2
  56. package/client-dist/{chunk-PHSKINXP.js → chunk-XC224D3K.js} +2 -2
  57. package/client-dist/{chunk-WBU5DC4T.js → chunk-XCALX3WQ.js} +2 -2
  58. package/client-dist/{chunk-2DCZKGMQ.js → chunk-XL2IMPJH.js} +2 -2
  59. package/client-dist/{chunk-2ZPKASXU.js → chunk-Y6BP4ZNN.js} +2 -2
  60. package/client-dist/{chunk-3LJRWGKD.js → chunk-YCBBLDH7.js} +2 -2
  61. package/client-dist/{chunk-WLLWEGK2.js → chunk-YRUJTMBL.js} +2 -2
  62. package/client-dist/{chunk-Y5NZKXVF.js → chunk-ZCNA73AF.js} +2 -2
  63. package/client-dist/{chunk-SOCHCXP2.js → chunk-ZJHMMJDV.js} +2 -2
  64. package/client-dist/{chunk-5CI77L5J.js → chunk-ZNCU4N2R.js} +2 -2
  65. package/client-dist/{consultant.module-HZ7WOFTN.js → consultant.module-PDBKVNXA.js} +2 -2
  66. package/client-dist/{crd.module-OXAMCXDI.js → crd.module-BTDSNWAE.js} +2 -2
  67. package/client-dist/{dashboard.module-VSGVSZBD.js → dashboard.module-NO5DUIKA.js} +2 -2
  68. package/client-dist/{do.module-WC6SE5GC.js → do.module-6WQ46EMR.js} +2 -2
  69. package/client-dist/{document-library.module-LF6PNZZ6.js → document-library.module-CO5QB3GM.js} +2 -2
  70. package/client-dist/{embedding-eval.module-VG2H26HJ.js → embedding-eval.module-AV2EO7PM.js} +2 -2
  71. package/client-dist/{embedding-registry.module-L4VRHDSK.js → embedding-registry.module-OBW2UXRZ.js} +2 -2
  72. package/client-dist/{err.module-7FJCXFSP.js → err.module-LGHLV6S2.js} +2 -2
  73. package/client-dist/{feedback.module-2K2I6WPU.js → feedback.module-XY3XQN65.js} +2 -2
  74. package/client-dist/{host-runtime-mcp.module-JOQ523Q5.js → host-runtime-mcp.module-6MAMMHK7.js} +2 -2
  75. package/client-dist/index.html +1 -1
  76. package/client-dist/{live-dev-pipeline.module-RJBGTQHR.js → live-dev-pipeline.module-EJ4YWZAM.js} +2 -2
  77. package/client-dist/{logs.module-2CBIYME4.js → logs.module-53YFDP7B.js} +2 -2
  78. package/client-dist/{main-TOSGI6VN.js → main-BOSIIGT3.js} +3 -3
  79. package/client-dist/{master-control-remote-poc.module-5USUYVL5.js → master-control-remote-poc.module-XAAURRJ2.js} +2 -2
  80. package/client-dist/{mobile-app.module-7ZWPWWLA.js → mobile-app.module-M5TZCEMQ.js} +2 -2
  81. package/client-dist/{model-registry.module-ENN2P4B7.js → model-registry.module-C6KJUOBE.js} +2 -2
  82. package/client-dist/{oc.module-27SYDDIP.js → oc.module-YCLNVWJS.js} +2 -2
  83. package/client-dist/{orc.module-JXNEWP23.js → orc.module-ENRYSIZP.js} +2 -2
  84. package/client-dist/{project-management.module-4ALXGXV4.js → project-management.module-OKZFJRJ5.js} +2 -2
  85. package/client-dist/project-source-routed.module-7U4KGGVZ.js +2 -0
  86. package/client-dist/{scheduler.module-N6PG2XU5.js → scheduler.module-T2NZBYPO.js} +2 -2
  87. package/client-dist/{session.module-QH4R6K5Q.js → session.module-CEGFEHCL.js} +2 -2
  88. package/client-dist/{set.module-CVDVQQP3.js → set.module-DEUP6N4M.js} +2 -2
  89. package/client-dist/{setup.module-UVOQ7JCG.js → setup.module-HUF56GW6.js} +2 -2
  90. package/client-dist/{terminals.module-FYGH4UWH.js → terminals.module-WU2RY26U.js} +2 -2
  91. package/client-dist/{voice-notes-poc.module-B2ZRFQMS.js → voice-notes-poc.module-PYHY4YL6.js} +2 -2
  92. package/client-dist/{wfs.module-FPVJ74R6.js → wfs.module-JSYNS7N7.js} +2 -2
  93. package/package.json +1 -1
  94. package/server/build/src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.d.ts +9 -0
  95. package/server/build/src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.d.ts.map +1 -1
  96. package/server/build/src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.js +40 -2
  97. package/server/build/src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.js.map +1 -1
  98. package/client-dist/chunk-ORLDSG2B.js +0 -2
  99. package/client-dist/chunk-ORLDSG2B.js.map +0 -7
  100. package/client-dist/project-source-routed.module-BENCKHFP.js +0 -2
  101. /package/client-dist/{agent-instances.module-X2EAZWNC.js.map → agent-instances.module-5DOGNLXO.js.map} +0 -0
  102. /package/client-dist/{ca.module-UKEVG7H5.js.map → ca.module-XHE46FU5.js.map} +0 -0
  103. /package/client-dist/{cc.module-AE3UTLQM.js.map → cc.module-7CFFLL2A.js.map} +0 -0
  104. /package/client-dist/{chunk-G5RVYENP.js.map → chunk-26VAQXDU.js.map} +0 -0
  105. /package/client-dist/{chunk-YYASTT5C.js.map → chunk-2PAMSPPB.js.map} +0 -0
  106. /package/client-dist/{chunk-PQJSMEEO.js.map → chunk-3OAVFWVG.js.map} +0 -0
  107. /package/client-dist/{chunk-JSLXFS3P.js.map → chunk-44UE4O3M.js.map} +0 -0
  108. /package/client-dist/{chunk-O2MF2KDY.js.map → chunk-4WNJ7IKE.js.map} +0 -0
  109. /package/client-dist/{chunk-SY2IF3DK.js.map → chunk-55GY7S7U.js.map} +0 -0
  110. /package/client-dist/{chunk-4BERPGJT.js.map → chunk-6BHKDJRV.js.map} +0 -0
  111. /package/client-dist/{chunk-R3JWUXQG.js.map → chunk-6JLSVPOB.js.map} +0 -0
  112. /package/client-dist/{chunk-QBVNLJ7A.js.map → chunk-6YZDXJ6X.js.map} +0 -0
  113. /package/client-dist/{chunk-5ZNUIE2O.js.map → chunk-7G7KR4QZ.js.map} +0 -0
  114. /package/client-dist/{chunk-M5JVIKJU.js.map → chunk-7UZGBEJQ.js.map} +0 -0
  115. /package/client-dist/{chunk-TOIHWXFM.js.map → chunk-AUQW6PKZ.js.map} +0 -0
  116. /package/client-dist/{chunk-ERROOXHA.js.map → chunk-BYH47PRM.js.map} +0 -0
  117. /package/client-dist/{chunk-EZD36BDE.js.map → chunk-DWUR2UF6.js.map} +0 -0
  118. /package/client-dist/{chunk-HJ6Q4JYU.js.map → chunk-DZKNJL3B.js.map} +0 -0
  119. /package/client-dist/{chunk-NU2XNK5F.js.map → chunk-EGMYVF63.js.map} +0 -0
  120. /package/client-dist/{chunk-3B2KB7MF.js.map → chunk-EJO6O6EC.js.map} +0 -0
  121. /package/client-dist/{chunk-KNNGJ7AJ.js.map → chunk-GT7XB72V.js.map} +0 -0
  122. /package/client-dist/{chunk-7AJI4JCW.js.map → chunk-HDK4R4DG.js.map} +0 -0
  123. /package/client-dist/{chunk-KOY5WHLS.js.map → chunk-HY6E2IHK.js.map} +0 -0
  124. /package/client-dist/{chunk-YDJYWSDS.js.map → chunk-IDPVOORT.js.map} +0 -0
  125. /package/client-dist/{chunk-XBMDDFNC.js.map → chunk-J6DVPTY6.js.map} +0 -0
  126. /package/client-dist/{chunk-LOGCDPUJ.js.map → chunk-JENBNAWF.js.map} +0 -0
  127. /package/client-dist/{chunk-BCLGUIFQ.js.map → chunk-JJSBMY7W.js.map} +0 -0
  128. /package/client-dist/{chunk-2ZCY5YQ7.js.map → chunk-JXYR2FVY.js.map} +0 -0
  129. /package/client-dist/{chunk-ACYOZ4MP.js.map → chunk-LD2DR5AV.js.map} +0 -0
  130. /package/client-dist/{chunk-ARE26OH2.js.map → chunk-LLL5SQYK.js.map} +0 -0
  131. /package/client-dist/{chunk-5GU2SVER.js.map → chunk-NKTKS3CC.js.map} +0 -0
  132. /package/client-dist/{chunk-ZMT6QVPB.js.map → chunk-OR2HJC37.js.map} +0 -0
  133. /package/client-dist/{chunk-2HP3VJTA.js.map → chunk-QAASV4PF.js.map} +0 -0
  134. /package/client-dist/{chunk-HWY2SAVN.js.map → chunk-QENS5VWV.js.map} +0 -0
  135. /package/client-dist/{chunk-KJBEKLZZ.js.map → chunk-QM3IE6FW.js.map} +0 -0
  136. /package/client-dist/{chunk-AEAJ2ABL.js.map → chunk-QMT4EYEY.js.map} +0 -0
  137. /package/client-dist/{chunk-UMM6T6AQ.js.map → chunk-QVUTIP6O.js.map} +0 -0
  138. /package/client-dist/{chunk-L7MQFYDG.js.map → chunk-RMXLLPRL.js.map} +0 -0
  139. /package/client-dist/{chunk-XI7FMFIP.js.map → chunk-S3YWAZOT.js.map} +0 -0
  140. /package/client-dist/{chunk-XJKKZSRS.js.map → chunk-T66WJFRE.js.map} +0 -0
  141. /package/client-dist/{chunk-4JRMGC33.js.map → chunk-TBT47423.js.map} +0 -0
  142. /package/client-dist/{chunk-RHNIU2GL.js.map → chunk-TWJMNHTT.js.map} +0 -0
  143. /package/client-dist/{chunk-NZTD5QPD.js.map → chunk-U7R547IU.js.map} +0 -0
  144. /package/client-dist/{chunk-BSUZZCBN.js.map → chunk-UX6DCHMP.js.map} +0 -0
  145. /package/client-dist/{chunk-IVUKHZAE.js.map → chunk-VHLAHN4W.js.map} +0 -0
  146. /package/client-dist/{chunk-NYV2AR3J.js.map → chunk-VSVT5EBJ.js.map} +0 -0
  147. /package/client-dist/{chunk-5H5VMEAE.js.map → chunk-VWURPWCQ.js.map} +0 -0
  148. /package/client-dist/{chunk-U7YD552X.js.map → chunk-W7RXNJML.js.map} +0 -0
  149. /package/client-dist/{chunk-WIJ2KUXX.js.map → chunk-WOO4U5C6.js.map} +0 -0
  150. /package/client-dist/{chunk-PHSKINXP.js.map → chunk-XC224D3K.js.map} +0 -0
  151. /package/client-dist/{chunk-WBU5DC4T.js.map → chunk-XCALX3WQ.js.map} +0 -0
  152. /package/client-dist/{chunk-2DCZKGMQ.js.map → chunk-XL2IMPJH.js.map} +0 -0
  153. /package/client-dist/{chunk-2ZPKASXU.js.map → chunk-Y6BP4ZNN.js.map} +0 -0
  154. /package/client-dist/{chunk-3LJRWGKD.js.map → chunk-YCBBLDH7.js.map} +0 -0
  155. /package/client-dist/{chunk-WLLWEGK2.js.map → chunk-YRUJTMBL.js.map} +0 -0
  156. /package/client-dist/{chunk-Y5NZKXVF.js.map → chunk-ZCNA73AF.js.map} +0 -0
  157. /package/client-dist/{chunk-SOCHCXP2.js.map → chunk-ZJHMMJDV.js.map} +0 -0
  158. /package/client-dist/{chunk-5CI77L5J.js.map → chunk-ZNCU4N2R.js.map} +0 -0
  159. /package/client-dist/{consultant.module-HZ7WOFTN.js.map → consultant.module-PDBKVNXA.js.map} +0 -0
  160. /package/client-dist/{crd.module-OXAMCXDI.js.map → crd.module-BTDSNWAE.js.map} +0 -0
  161. /package/client-dist/{dashboard.module-VSGVSZBD.js.map → dashboard.module-NO5DUIKA.js.map} +0 -0
  162. /package/client-dist/{do.module-WC6SE5GC.js.map → do.module-6WQ46EMR.js.map} +0 -0
  163. /package/client-dist/{document-library.module-LF6PNZZ6.js.map → document-library.module-CO5QB3GM.js.map} +0 -0
  164. /package/client-dist/{embedding-eval.module-VG2H26HJ.js.map → embedding-eval.module-AV2EO7PM.js.map} +0 -0
  165. /package/client-dist/{embedding-registry.module-L4VRHDSK.js.map → embedding-registry.module-OBW2UXRZ.js.map} +0 -0
  166. /package/client-dist/{err.module-7FJCXFSP.js.map → err.module-LGHLV6S2.js.map} +0 -0
  167. /package/client-dist/{feedback.module-2K2I6WPU.js.map → feedback.module-XY3XQN65.js.map} +0 -0
  168. /package/client-dist/{host-runtime-mcp.module-JOQ523Q5.js.map → host-runtime-mcp.module-6MAMMHK7.js.map} +0 -0
  169. /package/client-dist/{live-dev-pipeline.module-RJBGTQHR.js.map → live-dev-pipeline.module-EJ4YWZAM.js.map} +0 -0
  170. /package/client-dist/{logs.module-2CBIYME4.js.map → logs.module-53YFDP7B.js.map} +0 -0
  171. /package/client-dist/{main-TOSGI6VN.js.map → main-BOSIIGT3.js.map} +0 -0
  172. /package/client-dist/{master-control-remote-poc.module-5USUYVL5.js.map → master-control-remote-poc.module-XAAURRJ2.js.map} +0 -0
  173. /package/client-dist/{mobile-app.module-7ZWPWWLA.js.map → mobile-app.module-M5TZCEMQ.js.map} +0 -0
  174. /package/client-dist/{model-registry.module-ENN2P4B7.js.map → model-registry.module-C6KJUOBE.js.map} +0 -0
  175. /package/client-dist/{oc.module-27SYDDIP.js.map → oc.module-YCLNVWJS.js.map} +0 -0
  176. /package/client-dist/{orc.module-JXNEWP23.js.map → orc.module-ENRYSIZP.js.map} +0 -0
  177. /package/client-dist/{project-management.module-4ALXGXV4.js.map → project-management.module-OKZFJRJ5.js.map} +0 -0
  178. /package/client-dist/{project-source-routed.module-BENCKHFP.js.map → project-source-routed.module-7U4KGGVZ.js.map} +0 -0
  179. /package/client-dist/{scheduler.module-N6PG2XU5.js.map → scheduler.module-T2NZBYPO.js.map} +0 -0
  180. /package/client-dist/{session.module-QH4R6K5Q.js.map → session.module-CEGFEHCL.js.map} +0 -0
  181. /package/client-dist/{set.module-CVDVQQP3.js.map → set.module-DEUP6N4M.js.map} +0 -0
  182. /package/client-dist/{setup.module-UVOQ7JCG.js.map → setup.module-HUF56GW6.js.map} +0 -0
  183. /package/client-dist/{terminals.module-FYGH4UWH.js.map → terminals.module-WU2RY26U.js.map} +0 -0
  184. /package/client-dist/{voice-notes-poc.module-B2ZRFQMS.js.map → voice-notes-poc.module-PYHY4YL6.js.map} +0 -0
  185. /package/client-dist/{wfs.module-FPVJ74R6.js.map → wfs.module-JSYNS7N7.js.map} +0 -0
@@ -1,3 +1,3 @@
1
- import{a as se}from"./chunk-BCLGUIFQ.js";import"./chunk-KJBEKLZZ.js";import"./chunk-3B2KB7MF.js";import"./chunk-2DCZKGMQ.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-PQJSMEEO.js";import{I as le}from"./chunk-ANMHMGCN.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-JJSBMY7W.js";import"./chunk-QM3IE6FW.js";import"./chunk-EJO6O6EC.js";import"./chunk-XL2IMPJH.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-3OAVFWVG.js";import{I as le}from"./chunk-5IGMWTXT.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-FPVJ74R6.js.map
3
+ //# sourceMappingURL=wfs.module-JSYNS7N7.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/ccap",
3
- "version": "1.1.3508",
3
+ "version": "1.1.3515",
4
4
  "description": "CCAP Revisioned – Agent architektúra; CLI, server, client, e2e alprojektek.",
5
5
  "bin": {
6
6
  "ccap": "./bin/ccap.js"
@@ -29,6 +29,15 @@ export declare class Tls_Execution_ControlService extends DyNTS_SingletonService
29
29
  * (Promise.race nem szakítja meg a másik ágat).
30
30
  */
31
31
  private executeWithTimeout;
32
+ /**
33
+ * REQ-SES-PER-SESSION-WORKSPACE-001 Slice 3A-runtime-load (cycle 990): a session
34
+ * workspacePath lekérdezése egyszer / executeTool. Üres sessionId, DB-down vagy
35
+ * NEM-létező session → undefined (a tool implementáció a globális default-ra esik).
36
+ *
37
+ * Fire-and-forget warn-log a hibákra — a tool execution NEM esik error-ba a session-
38
+ * load hibája miatt; a workspacePath csak optimalizáció a session-aware tool-okhoz.
39
+ */
40
+ private lookupSessionWorkspacePath;
32
41
  /**
33
42
  * Átmeneti (retryable) hiba-e az üzenet alapján.
34
43
  * Timeout, hálózati és rate limit jellegű hibáknál true.
@@ -1 +1 @@
1
- {"version":3,"file":"tls-execution.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAKpF,OAAO,EAEL,wBAAwB,EAAE,MAAM,gFAAgF,CAAC;AAwBnH;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB;IAEtE,MAAM,CAAC,WAAW,IAAI,4BAA4B;IAIlD,0BAA0B;IAC1B,OAAO,CAAC,iBAAiB,CACiB;IAE1C;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAgPrC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAmD1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,KAAK;IAMb;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAsBtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,6BAA6B;IA2DrC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO;IAM3E;;;;;;OAMG;IACH,MAAM,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK7D;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAexC"}
1
+ {"version":3,"file":"tls-execution.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAKpF,OAAO,EAEL,wBAAwB,EAAE,MAAM,gFAAgF,CAAC;AAyBnH;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB;IAEtE,MAAM,CAAC,WAAW,IAAI,4BAA4B;IAIlD,0BAA0B;IAC1B,OAAO,CAAC,iBAAiB,CACiB;IAE1C;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwPrC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAuD1B;;;;;;;OAOG;YACW,0BAA0B;IAuBxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,KAAK;IAMb;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAsBtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,6BAA6B;IA2DrC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO;IAM3E;;;;;;OAMG;IACH,MAAM,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK7D;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAexC"}
@@ -17,6 +17,7 @@ const llm_debug_util_1 = require("../../../../ai-systems/_modules/llm/_collectio
17
17
  const monitoring_control_service_1 = require("../../monitoring/_services/control-services/monitoring.control-service");
18
18
  const tool_execution_const_1 = require("../_collections/consts/tool-assembly/tool-execution.const");
19
19
  const tls_registry_control_service_1 = require("./tls-registry.control-service");
20
+ const ccap_sessions_data_service_1 = require("../../ccap-sessions/_services/ccap-sessions.data-service");
20
21
  /** Max karakter toolArguments rögzítéshez (additionalContext), ne törjön túl a surroundingState. */
21
22
  const TOOL_ARGUMENTS_CONTEXT_MAX_CHARS = 2000;
22
23
  /** Max karakter tool result.content előnézetből az error táblába (nincs thrown stack esetén). */
@@ -145,6 +146,11 @@ class Tls_Execution_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
145
146
  });
146
147
  return contextSubstitutionErrorResult;
147
148
  }
149
+ // REQ-SES-PER-SESSION-WORKSPACE-001 Slice 3A-runtime-load (cycle 990): per-session
150
+ // workspace path lookup egyszer / executeTool — a retry-loop összes attempt-je
151
+ // ugyanazt a workspacePath-et használja. Ha session-DS load fail (DB-down / nincs
152
+ // sessionId), workspacePath undefined → tool implementation a globális default-ra esik.
153
+ const workspacePath = await this.lookupSessionWorkspacePath(params.sessionId);
148
154
  const maxAttempts = tool_execution_const_1.TOOL_EXECUTION_MAX_RETRIES + 1;
149
155
  let lastErrorResult = null;
150
156
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
@@ -157,7 +163,8 @@ class Tls_Execution_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
157
163
  arguments: execArgs,
158
164
  timeoutMs: effectiveTimeoutMs,
159
165
  sessionId: params.sessionId,
160
- runId: params.runId
166
+ runId: params.runId,
167
+ workspacePath: workspacePath
161
168
  });
162
169
  // Sikeres tool result: méret ellenőrzés
163
170
  const resultSize = result.content.length;
@@ -285,7 +292,10 @@ class Tls_Execution_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
285
292
  arguments: params.arguments,
286
293
  executionContext: {
287
294
  sessionId: params.sessionId,
288
- runId: params.runId
295
+ runId: params.runId,
296
+ // REQ-SES-PER-SESSION-WORKSPACE-001 Slice 3A-runtime-load: a session.workspacePath
297
+ // a tool felé. Ha undefined, a tool implementáció globális default-ra esik.
298
+ workspacePath: params.workspacePath
289
299
  }
290
300
  });
291
301
  const guardedExecution = executionPromise.finally(() => {
@@ -296,6 +306,34 @@ class Tls_Execution_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
296
306
  });
297
307
  return Promise.race([guardedExecution, timeoutPromise]);
298
308
  }
309
+ /**
310
+ * REQ-SES-PER-SESSION-WORKSPACE-001 Slice 3A-runtime-load (cycle 990): a session
311
+ * workspacePath lekérdezése egyszer / executeTool. Üres sessionId, DB-down vagy
312
+ * NEM-létező session → undefined (a tool implementáció a globális default-ra esik).
313
+ *
314
+ * Fire-and-forget warn-log a hibákra — a tool execution NEM esik error-ba a session-
315
+ * load hibája miatt; a workspacePath csak optimalizáció a session-aware tool-okhoz.
316
+ */
317
+ async lookupSessionWorkspacePath(sessionId) {
318
+ if (!sessionId || sessionId.trim().length === 0) {
319
+ return undefined;
320
+ }
321
+ try {
322
+ const sessionDS = new ccap_sessions_data_service_1.CcapSessions_DataService({ issuer: 'tls-execution-workspace-lookup' });
323
+ const session = await sessionDS.getSession(sessionId);
324
+ const raw = session?.workspacePath;
325
+ if (typeof raw !== 'string') {
326
+ return undefined;
327
+ }
328
+ const trimmed = raw.trim();
329
+ return trimmed.length > 0 ? trimmed : undefined;
330
+ }
331
+ catch (err) {
332
+ fsm_dynamo_1.DyFM_Log.warn(`CCAP_ToolExecution | session workspace-path lookup failed (non-fatal — falls back to global default) `
333
+ + `| sessionId: ${sessionId} | error: ${fsm_dynamo_1.DyFM_Error.getErrorMessage(err)}`);
334
+ return undefined;
335
+ }
336
+ }
299
337
  /**
300
338
  * Átmeneti (retryable) hiba-e az üzenet alapján.
301
339
  * Timeout, hálózati és rate limit jellegű hibáknál true.
@@ -1 +1 @@
1
- {"version":3,"file":"tls-execution.control-service.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tls-execution.control-service.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ccap-agent/_modules/tools/_services/tls-execution.control-service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{e as rt}from"./chunk-2DCZKGMQ.js";import{I as st}from"./chunk-ANMHMGCN.js";import{$a as K,C,D as Z,Fa as u,Ga as V,Ha as T,J as G,K as L,L as S,M as q,Pa as W,Qa as B,R as J,Ra as U,Ta as tt,Ua as et,Z as o,aa as x,bb as N,da as y,fa as v,ga as H,ha as R,hb as nt,ia as A,ja as E,jb as j,k as p,la as g,na as Q,oa as k,p as m,pa as D,pb as it,qa as s,ra as a,sa as b,ua as P,ub as ot,va as F,wa as d,xb as at,y as O}from"./chunk-TBMJSIBB.js";var lt=(()=>{class n{baseUrl=`${st.api.baseUrl}/cc-account`;http=C(at);listAccounts(){return m(this.http.get(`${this.baseUrl}/list`))}listAccountsByIdentity(){return m(this.http.get(`${this.baseUrl}/list-by-identity`))}backfillIdentity(){return m(this.http.post(`${this.baseUrl}/backfill-identity`,{}))}auditIdentityDuplicates(){return m(this.http.get(`${this.baseUrl}/identity-audit`))}refreshLocalAccounts(){return m(this.http.post(`${this.baseUrl}/refresh`,{}))}getInstanceMapping(){return m(this.http.get(`${this.baseUrl}/instance-mapping`))}getAccount(t){return m(this.http.get(`${this.baseUrl}/${t}`))}getAccountUsage(t){return m(this.http.get(`${this.baseUrl}/${t}/usage`))}getAccountUsageHistory(t){let e=[];t.windowType!=null&&t.windowType!==""&&e.push(`windowType=${encodeURIComponent(t.windowType)}`),t.fromMs!=null&&e.push(`fromMs=${t.fromMs}`),t.toMs!=null&&e.push(`toMs=${t.toMs}`);let i=e.length>0?`?${e.join("&")}`:"";return m(this.http.get(`${this.baseUrl}/${t.accountKey}/usage-history${i}`))}refreshAccountUsage(t){return m(this.http.post(`${this.baseUrl}/${t}/refresh-usage`,{}))}renameAccount(t){let e={};return t.displayName!==void 0&&(e.displayName=t.displayName),t.email!==void 0&&(e.email=t.email),m(this.http.patch(`${this.baseUrl}/${t.accountKey}`,e))}static \u0275fac=function(e){return new(e||n)};static \u0275prov=O({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var pt="cc:account-usage-update",_t="cc:account-list-update",ut=(()=>{class n{account_AS=C(lt);socket_CS=C(rt);ngZone=C(J);socketSubscription=null;accounts_$=x([]);accountUsageMap_$=x(new Map);instanceMapping_$=x(null);usageHistoryMap_$=x(new Map);identityGroups_$=x([]);isLoading_$=x(!1);loadError_$=x(null);loadDashboardBootstrap(){return p(this,null,function*(){this.isLoading_$.set(!0),this.loadError_$.set(null);try{let[t,e,i]=yield Promise.all([this.account_AS.listAccounts(),this.account_AS.getInstanceMapping(),this.account_AS.listAccountsByIdentity()]);this.accounts_$.set(t.items),this.instanceMapping_$.set(e),this.identityGroups_$.set(i.groups);let r=new Map(this.accountUsageMap_$());for(let _ of i.groups)r.set(_.primary.accountKey,_.mergedUsage);this.accountUsageMap_$.set(r)}catch(t){this.loadError_$.set(this.errorMessageOf(t))}finally{this.isLoading_$.set(!1)}})}loadIdentityGroups(){return p(this,null,function*(){try{let t=yield this.account_AS.listAccountsByIdentity();this.identityGroups_$.set(t.groups);let e=new Map(this.accountUsageMap_$());for(let i of t.groups)e.set(i.primary.accountKey,i.mergedUsage);this.accountUsageMap_$.set(e)}catch(t){this.loadError_$.set(this.errorMessageOf(t))}})}loadAccounts(){return p(this,null,function*(){try{let t=yield this.account_AS.listAccounts();this.accounts_$.set(t.items)}catch(t){this.loadError_$.set(this.errorMessageOf(t))}})}loadAccountUsage(t){return p(this,null,function*(){try{let e=yield this.account_AS.getAccountUsage(t),i=new Map(this.accountUsageMap_$());i.set(t,e.items),this.accountUsageMap_$.set(i)}catch(e){this.loadError_$.set(this.errorMessageOf(e))}})}loadAccountUsageHistory(t){return p(this,null,function*(){try{let e=yield this.account_AS.getAccountUsageHistory(t),i=new Map(this.usageHistoryMap_$());i.set(t.accountKey,e.items),this.usageHistoryMap_$.set(i)}catch(e){this.loadError_$.set(this.errorMessageOf(e))}})}loadInstanceMapping(){return p(this,null,function*(){try{let t=yield this.account_AS.getInstanceMapping();this.instanceMapping_$.set(t)}catch(t){this.loadError_$.set(this.errorMessageOf(t))}})}refreshAccounts(){return p(this,null,function*(){this.isLoading_$.set(!0),this.loadError_$.set(null);try{let t=yield this.account_AS.refreshLocalAccounts();return yield this.loadAccounts(),t}catch(t){return this.loadError_$.set(this.errorMessageOf(t)),{refreshedKeys:[],scannedPaths:0}}finally{this.isLoading_$.set(!1)}})}refreshAccountUsage(t){return p(this,null,function*(){try{let e=yield this.account_AS.refreshAccountUsage(t);return yield this.loadAccountUsage(t),yield this.loadAccounts(),e}catch(e){return this.loadError_$.set(this.errorMessageOf(e)),{status:"error",windowsUpserted:0,email:null}}})}renameAccount(t){return p(this,null,function*(){try{let e=yield this.account_AS.renameAccount(t),i=this.accounts_$().map(r=>r.accountKey===t.accountKey?e:r);this.accounts_$.set(i)}catch(e){this.loadError_$.set(this.errorMessageOf(e))}})}startLiveUpdates(){this.socketSubscription==null&&(this.socketSubscription=this.socket_CS.event$.subscribe(t=>{this.ngZone.run(()=>{t.event===pt?this.handleAccountUsageUpdate(t.payload):t.event===_t&&this.handleAccountListUpdate(t.payload)})}))}stopLiveUpdates(){this.socketSubscription!=null&&(this.socketSubscription.unsubscribe(),this.socketSubscription=null)}ngOnDestroy(){this.stopLiveUpdates()}handleAccountUsageUpdate(t){let e=t.accountKey,i=t.windowType;if(typeof e!="string"||e===""||typeof i!="string")return;let r={accountKey:e,windowType:i,utilization:typeof t.utilization=="number"?t.utilization:void 0,resetsAtMs:typeof t.resetsAtMs=="number"?t.resetsAtMs:void 0,lastObservedStatus:typeof t.lastObservedStatus=="string"?t.lastObservedStatus:void 0,observedAt:typeof t.observedAt=="string"?t.observedAt:void 0,lastObservedByCcapId:typeof t.lastObservedByCcapId=="string"?t.lastObservedByCcapId:void 0,lastObservedBySessionId:typeof t.lastObservedBySessionId=="string"?t.lastObservedBySessionId:void 0},_=new Map(this.accountUsageMap_$()),l=(_.get(e)??[]).filter(f=>f.windowType!==i);l.push(r),_.set(e,l),this.accountUsageMap_$.set(_)}handleAccountListUpdate(t){this.loadAccounts(),this.loadIdentityGroups()}errorMessageOf(t){if(t instanceof Error)return t.message;if(typeof t=="object"&&t!==null){let e=t;if(typeof e.message=="string")return e.message}return String(t)}static \u0275fac=function(e){return new(e||n)};static \u0275prov=O({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var $=(()=>{class n{static CHART_WIDTH=100;static CHART_HEIGHT=40;static COLOR_MAP={five_hour:"#10b981",seven_day:"#06b6d4",seven_day_opus:"#a855f7",seven_day_sonnet:"#f59e0b",extra_usage:"#f43f5e"};static WINDOW_LABEL_MAP={five_hour:"5h",seven_day:"Weekly",seven_day_opus:"Opus",seven_day_sonnet:"Sonnet",extra_usage:"Extra"};static WINDOW_ORDER=["five_hour","seven_day","seven_day_opus","seven_day_sonnet","extra_usage"];static buildChart(t){let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,r=0;for(let l of t){if(typeof l.observedAt!="string"||l.observedAt===""||typeof l.utilization!="number"||!isFinite(l.utilization))continue;let f=Date.parse(l.observedAt);isFinite(f)&&(f<e&&(e=f),f>i&&(i=f),r++)}if(r===0)return{lines:n.WINDOW_ORDER.map(l=>({windowType:l,label:n.WINDOW_LABEL_MAP[l]??l,colorHex:n.COLOR_MAP[l]??"#9ca3af",pathPoints:"",hasData:!1,pointCount:0,lastX:0,lastY:0})),hasAnyData:!1,minTimeMs:0,maxTimeMs:0};i-e<1&&(i=e+36e5);let _=i-e,M=n.WINDOW_ORDER.map(l=>{let f=[];for(let h of t){if(h.windowType!==l||typeof h.observedAt!="string"||h.observedAt===""||typeof h.utilization!="number"||!isFinite(h.utilization))continue;let w=Date.parse(h.observedAt);isFinite(w)&&f.push({t:w,u:Math.max(0,Math.min(1,h.utilization))})}f.sort((h,w)=>h.t-w.t);let I=[],z=0,Y=0;for(let h of f){let w=(h.t-e)/_*n.CHART_WIDTH,X=n.CHART_HEIGHT-h.u*n.CHART_HEIGHT;I.push(`${w.toFixed(2)},${X.toFixed(2)}`),z=w,Y=X}return{windowType:l,label:n.WINDOW_LABEL_MAP[l]??l,colorHex:n.COLOR_MAP[l]??"#9ca3af",pathPoints:I.join(" "),hasData:I.length>0,pointCount:I.length,lastX:z,lastY:Y}});return{lines:M,hasAnyData:M.some(l=>l.hasData),minTimeMs:e,maxTimeMs:i}}}return n})();var dt=(n,c)=>c.windowType,ht=()=>["five_hour","seven_day","seven_day_opus","seven_day_sonnet","extra_usage"];function mt(n,c){if(n&1&&b(0,"div"),n&2){d();let t=U(0),e=d();E("h-full transition-all "+e.utilizationBarColorClass(t.utilization)),R("width",e.utilizationPercent(t.utilization),"%")}}function ft(n,c){if(n&1&&(W(0),s(1,"div")(2,"div",4),u(3),a(),s(4,"div",5)(5,"div"),y(6,mt,1,4,"div",6),a(),s(7,"span",7),u(8),a()(),s(9,"div",8),u(10),a()()),n&2){let t,e=c.$implicit,i=d(),r=B(i.usageItemOfWindow(e));o(),E(i.compact?"grid grid-cols-[90px_1fr_56px] items-center gap-2 text-[10px]":"grid grid-cols-[110px_1fr_64px] items-center gap-2 text-[11px]"),A("opacity-50",!r),o(),H("title",e),o(),T(" ",i.windowLabelOf(e)," "),o(2),E(i.compact?"flex-1 h-1.5 bg-neutral-800 rounded-full overflow-hidden":"flex-1 h-2 bg-neutral-800 rounded-full overflow-hidden"),o(),g(r?6:-1),o(),E(i.compact?"w-8 text-[10px]":"w-9"),o(),T(" ",i.formatUtilization((t=r==null?null:r.utilization)!==null&&t!==void 0?t:null)," "),o(),H("title","Resets in "+i.formatResetCountdown(r==null?null:r.resetsAtMs)),o(),T(" ",i.formatResetCountdown(r==null?null:r.resetsAtMs)," ")}}function gt(n,c){n&1&&(s(0,"div",2),u(1," No data yet \u2014 click "),s(2,"strong",9),u(3,"Pull"),a(),u(4," or wait for the next rate-limit event. "),a())}function xt(n,c){n&1&&(s(0,"div",14),u(1," No graph data yet \u2014 pull usage or wait for a CC session rate-limit event. "),a())}function yt(n,c){if(n&1&&(S(),b(0,"circle",25)),n&2){let t=d(2).$implicit;v("cx",t.lastX)("cy",t.lastY)("fill",t.colorHex)}}function Ct(n,c){if(n&1&&(S(),b(0,"polyline",26)(1,"circle",27)),n&2){let t=d(2).$implicit;v("points",t.pathPoints)("stroke",t.colorHex),o(),v("cx",t.lastX)("cy",t.lastY)("fill",t.colorHex)}}function vt(n,c){if(n&1&&y(0,yt,1,3,":svg:circle",25)(1,Ct,2,5),n&2){let t=d().$implicit;g(t.pointCount===1?0:1)}}function wt(n,c){if(n&1&&y(0,vt,2,1),n&2){let t=c.$implicit;g(t.hasData?0:-1)}}function At(n,c){if(n&1&&(s(0,"span",31),u(1,"\xB7"),a(),s(2,"span",32),u(3),a()),n&2){let t=d().$implicit,e=d(4);o(3),T(" ",((e.chartH-t.lastY)/e.chartH*100).toFixed(0),"% ")}}function bt(n,c){if(n&1&&(s(0,"div",28),b(1,"span",29),s(2,"span",30),u(3),a(),y(4,At,4,1),a()),n&2){let t=c.$implicit;A("opacity-40",!t.hasData),o(),R("background-color",t.colorHex),o(2),V(t.label),o(),g(t.hasData?4:-1)}}function $t(n,c){if(n&1&&(s(0,"span"),u(1),K(2,"date"),a()),n&2){d(2);let t=U(0);o(),V(N(2,1,t.minTimeMs,"yyyy-MM-dd HH:mm"))}}function Mt(n,c){n&1&&(s(0,"span"),u(1,"\u2014"),a())}function Tt(n,c){if(n&1&&(s(0,"span"),u(1),K(2,"date"),a()),n&2){d(2);let t=U(0);o(),V(N(2,1,t.maxTimeMs,"yyyy-MM-dd HH:mm"))}}function St(n,c){n&1&&(s(0,"span"),u(1,"\u2014"),a())}function Et(n,c){if(n&1){let t=P();s(0,"div",15),S(),s(1,"svg",16),b(2,"line",17)(3,"line",18)(4,"line",19),k(5,wt,1,1,null,null,dt),a(),q(),s(7,"div",20)(8,"span"),u(9,"100%"),a(),s(10,"span"),u(11,"50%"),a(),s(12,"span"),u(13,"0%"),a()()(),s(14,"div",21),k(15,bt,5,6,"div",22,dt),a(),s(17,"div",23),y(18,$t,3,4,"span")(19,Mt,2,0,"span"),s(20,"button",24),F("click",function(){G(t);let i=d(3);return L(i.handleRefreshGraph())}),u(21," \u21BB Refresh "),a(),y(22,Tt,3,4,"span")(23,St,2,0,"span"),a()}if(n&2){d();let t=U(0),e=d(2);o(),A("h-24",e.compact)("h-32",!e.compact),v("viewBox",e.chartViewBox),o(),v("y1",e.chartH)("x2",e.chartW)("y2",e.chartH),o(),v("y1",e.chartMidY)("x2",e.chartW)("y2",e.chartMidY),o(),v("x2",e.chartW),o(),D(t.lines),o(10),D(t.lines),o(3),g(t.minTimeMs?18:19),o(4),g(t.maxTimeMs?22:23)}}function Ut(n,c){if(n&1&&(W(0),s(1,"div",13),y(2,xt,2,0,"div",14)(3,Et,24,14),a()),n&2){let t=B(d(2).chart_$());o(2),g(t.hasAnyData?3:2)}}function It(n,c){if(n&1){let t=P();s(0,"div",3)(1,"button",10),F("click",function(){G(t);let i=d();return L(i.handleToggleGraph())}),S(),s(2,"svg",11),b(3,"path",12),a(),u(4),a(),y(5,Ut,4,2,"div",13),a()}if(n&2){let t=d();o(),H("title",t.isGraphOpen_$()?"Hide usage graph":"Show usage graph (utilization over time per window)"),o(),A("rotate-90",t.isGraphOpen_$()),o(2),T(" \u{1F4C8} ",t.isGraphOpen_$()?"Hide":"Show"," graph "),o(),g(t.isGraphOpen_$()?5:-1)}}var Jt=(()=>{class n{account_DS=C(ut);accountKey="";compact=!1;showGraphToggle=!0;initiallyOpenGraph=!1;isGraphOpen_$=x(!1);chart_$=nt(()=>$.buildChart(this.account_DS.usageHistoryMap_$().get(this.accountKey)??[]));chartViewBox=`0 0 ${$.CHART_WIDTH} ${$.CHART_HEIGHT}`;chartW=$.CHART_WIDTH;chartH=$.CHART_HEIGHT;chartMidY=$.CHART_HEIGHT/2;usageEffect=j(()=>{let t=this.accountKey;t&&(this.account_DS.accountUsageMap_$().has(t)||this.account_DS.loadAccountUsage(t))});initialOpenEffect=j(()=>{this.initiallyOpenGraph&&this.isGraphOpen_$.set(!0)});handleToggleGraph(){return p(this,null,function*(){let t=!this.isGraphOpen_$();this.isGraphOpen_$.set(t),t&&!this.account_DS.usageHistoryMap_$().has(this.accountKey)&&(yield this.account_DS.loadAccountUsageHistory({accountKey:this.accountKey}))})}handleRefreshGraph(){return p(this,null,function*(){yield this.account_DS.loadAccountUsageHistory({accountKey:this.accountKey})})}usageItemOfWindow(t){let e=this.account_DS.accountUsageMap_$().get(this.accountKey)??[];for(let i of e)if(i.windowType===t)return i;return null}hasAnyUsageData(){return(this.account_DS.accountUsageMap_$().get(this.accountKey)??[]).length>0}windowLabelOf(t){switch(t){case"five_hour":return"5-hour session";case"seven_day":return"Weekly";case"seven_day_opus":return"Weekly \xB7 Opus";case"seven_day_sonnet":return"Weekly \xB7 Sonnet";case"extra_usage":return"Extra (pay-as-you-go)";default:return t}}utilizationPercent(t){return t==null||!isFinite(t)?0:Math.max(0,Math.min(100,Math.round(t*100)))}formatUtilization(t){return t==null?"\u2014":`${Math.round(t*100)}%`}utilizationBarColorClass(t){return t==null||!isFinite(t)?"bg-neutral-600":t>=.85?"bg-red-500":t>=.5?"bg-amber-500":"bg-emerald-500"}formatResetCountdown(t){if(t==null||!isFinite(t)||t<=0)return"\u2014";let e=t-Date.now();if(e<=0)return"expired";let i=Math.floor(e/6e4),r=Math.floor(i/(60*24)),_=Math.floor(i%(60*24)/60),M=i%60;return r>0?`${r}d ${_}h`:_>0?`${_}h ${M}m`:`${M}m`}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Z({type:n,selectors:[["app-cc-account-usage-view"]],inputs:{accountKey:"accountKey",compact:"compact",showGraphToggle:"showGraphToggle",initiallyOpenGraph:"initiallyOpenGraph"},standalone:!0,features:[tt],decls:6,vars:11,consts:[[1,"flex","flex-col"],[3,"class","opacity-50"],[1,"text-[10px]","text-neutral-500","italic","pt-1","border-t","border-neutral-800/40"],[1,"border-t","border-neutral-800/40","pt-2"],[1,"text-neutral-300","font-medium","truncate",3,"title"],[1,"flex","items-center","gap-2","min-w-0"],[3,"class","width"],[1,"font-mono","text-neutral-200","text-right","shrink-0"],[1,"font-mono","text-neutral-500","text-right","text-[10px]","truncate",3,"title"],[1,"text-neutral-400"],["type","button",1,"text-[11px]","text-neutral-400","hover:text-neonCyan","flex","items-center","gap-1","transition-colors",3,"click","title"],["fill","none","stroke","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-3","h-3","transition-transform"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M9 5l7 7-7 7"],[1,"mt-2","rounded-md","border","border-neutral-800","bg-neutral-950/40","p-2"],[1,"text-[11px]","text-neutral-500","italic","px-2","py-3","text-center"],[1,"relative","w-full"],["preserveAspectRatio","none",1,"w-full","block"],["x1","0","stroke","#3f3f46","stroke-width","0.3"],["x1","0","stroke","#3f3f46","stroke-width","0.2","stroke-dasharray","1,1"],["x1","0","y1","0","y2","0","stroke","#3f3f46","stroke-width","0.2","stroke-dasharray","1,1"],[1,"absolute","inset-y-0","left-0","flex","flex-col","justify-between","text-[8px]","text-neutral-600","font-mono","pointer-events-none"],[1,"mt-2","flex","flex-wrap","items-center","gap-2","text-[10px]"],[1,"flex","items-center","gap-1",3,"opacity-40"],[1,"mt-1","flex","items-center","justify-between","text-[9px]","text-neutral-600"],["type","button","title","Re-fetch usage event history for this graph.",1,"text-[10px]","text-neutral-400","hover:text-neonCyan","border","border-neutral-700","hover:border-neonCyan","rounded","px-1.5","py-0.5","transition-colors",3,"click"],["r","0.8"],["fill","none","stroke-width","0.6","stroke-linecap","round","stroke-linejoin","round","vector-effect","non-scaling-stroke"],["r","0.6"],[1,"flex","items-center","gap-1"],[1,"inline-block","w-2","h-2","rounded-sm"],[1,"text-neutral-300"],[1,"text-neutral-500"],[1,"font-mono","text-neutral-400"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div"),k(2,ft,11,15,"div",1,Q),a(),y(4,gt,5,0,"div",2)(5,It,6,5,"div",3),a()),e&2&&(A("gap-1",i.compact)("gap-2",!i.compact),o(),A("space-y-1",i.compact)("space-y-2",!i.compact),o(),D(et(10,ht)),o(2),g(i.hasAnyUsageData()?-1:4),o(),g(i.showGraphToggle?5:-1))},dependencies:[ot,it],encapsulation:2})}return n})();export{ut as a,Jt as b};
2
- //# sourceMappingURL=chunk-ORLDSG2B.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["src/app/_modules/external-sessions/_modules/claude-code/_services/cc-account.api-service.ts", "src/app/_modules/external-sessions/_modules/claude-code/_services/cc-account.data-service.ts", "src/app/_modules/external-sessions/_modules/claude-code/_collections/cc-account-usage-chart.util.ts", "src/app/_modules/external-sessions/_modules/claude-code/_components/cc-account-usage-view/cc-account-usage-view.component.ts", "src/app/_modules/external-sessions/_modules/claude-code/_components/cc-account-usage-view/cc-account-usage-view.component.html"],
4
- "sourcesContent": ["import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { CC_Account_Response } from '../_models/interfaces/cc-account/cc-account.interface';\nimport { CC_AccountUsageEvent_Response } from '../_models/interfaces/cc-account/cc-account-usage-event.interface';\nimport {\n CC_AccountInstanceMapping_Response,\n CC_AccountUsageState_Response,\n} from '../_models/interfaces/cc-account/cc-account-usage-state.interface';\nimport { CC_AccountIdentityList_Response } from '../_models/interfaces/cc-account/cc-account-identity-group.interface';\nimport { environment } from '../../../../../../environments/environment';\n\n/**\n * CC Account REST API service (REQ-CC-USAGE-DASHBOARD-001 Slice 5 cycle 856).\n *\n * HTTP-bridge a server-oldali `CC_Account_Controller` endpoint-jaihoz\n * (`/cc-account/*`). Egyszerű thin api-service mintán a\n * `cc-cci-instance-data.api-service.ts`-hez hasonlóan: minden hívás\n * `firstValueFrom`-mal Promise-ra fordított `HttpClient` get/post/patch.\n *\n * A Slice 5+ Dashboard komponensek és a Slice 6 instance-mapping view\n * data-service-en keresztül használja.\n */\n@Injectable({ providedIn: 'root' })\nexport class CC_Account_ApiService {\n\n private readonly baseUrl: string = `${environment.api.baseUrl}/cc-account`;\n\n private readonly http: HttpClient = inject(HttpClient);\n\n /** GET /cc-account/list — cross-instance account-lista. */\n listAccounts(): Promise<{ items: CC_Account_Response[] }> {\n return firstValueFrom(\n this.http.get<{ items: CC_Account_Response[] }>(`${this.baseUrl}/list`),\n );\n }\n\n /**\n * GET /cc-account/list-by-identity — REQ-CC-ACCOUNT-IDENTITY-EMAIL-001 Slice 3\n * part-1 (cycle 890): account-lista accountIdentity szerint csoportosítva.\n * A Dashboard ezt használja a per-email view-hoz (a token-rotation\n * duplikátumok egyetlen kártyán).\n */\n listAccountsByIdentity(): Promise<CC_AccountIdentityList_Response> {\n return firstValueFrom(\n this.http.get<CC_AccountIdentityList_Response>(`${this.baseUrl}/list-by-identity`),\n );\n }\n\n /**\n * POST /cc-account/backfill-identity — REQ-CC-ACCOUNT-IDENTITY-EMAIL-001\n * Slice 2 (cycle 889): manuális identity-backfill trigger.\n */\n backfillIdentity(): Promise<{\n totalScanned: number;\n alreadyPopulated: number;\n populated: number;\n skippedMissingFile: number;\n skippedInvalidPayload: number;\n failures: number;\n }> {\n return firstValueFrom(\n this.http.post<{\n totalScanned: number;\n alreadyPopulated: number;\n populated: number;\n skippedMissingFile: number;\n skippedInvalidPayload: number;\n failures: number;\n }>(`${this.baseUrl}/backfill-identity`, {}),\n );\n }\n\n /**\n * GET /cc-account/identity-audit — REQ-CC-ACCOUNT-IDENTITY-EMAIL-001 Slice 2\n * (cycle 889): identity-duplikáció audit.\n */\n auditIdentityDuplicates(): Promise<{\n duplicateGroups: { accountIdentity: string; accountKeys: string[]; count: number }[];\n totalDuplicates: number;\n uniqueIdentities: number;\n recordsWithoutIdentity: number;\n }> {\n return firstValueFrom(\n this.http.get<{\n duplicateGroups: { accountIdentity: string; accountKeys: string[]; count: number }[];\n totalDuplicates: number;\n uniqueIdentities: number;\n recordsWithoutIdentity: number;\n }>(`${this.baseUrl}/identity-audit`),\n );\n }\n\n /** POST /cc-account/refresh — a hívó CCAP instance-en credential-discovery újrafutás. */\n refreshLocalAccounts(): Promise<{ refreshedKeys: string[]; scannedPaths: number }> {\n return firstValueFrom(\n this.http.post<{ refreshedKeys: string[]; scannedPaths: number }>(\n `${this.baseUrl}/refresh`,\n {},\n ),\n );\n }\n\n /**\n * GET /cc-account/instance-mapping — Slice 4 cross-instance aggregate.\n * Minden ismert CCAP instance group-by lastObservedByCcapId — melyik account-okat\n * látta utoljára.\n */\n getInstanceMapping(): Promise<CC_AccountInstanceMapping_Response> {\n return firstValueFrom(\n this.http.get<CC_AccountInstanceMapping_Response>(`${this.baseUrl}/instance-mapping`),\n );\n }\n\n /** GET /cc-account/:accountKey — egy account részletek. */\n getAccount(accountKey: string): Promise<CC_Account_Response> {\n return firstValueFrom(\n this.http.get<CC_Account_Response>(`${this.baseUrl}/${accountKey}`),\n );\n }\n\n /**\n * GET /cc-account/:accountKey/usage — Slice 3 per-account usage state-ek.\n * 0..5 rekord (egy windowType-onként).\n */\n getAccountUsage(accountKey: string): Promise<{ items: CC_AccountUsageState_Response[] }> {\n return firstValueFrom(\n this.http.get<{ items: CC_AccountUsageState_Response[] }>(\n `${this.baseUrl}/${accountKey}/usage`,\n ),\n );\n }\n\n /**\n * GET /cc-account/:accountKey/usage-history — történeti event-lista\n * (REQ-CC-USAGE-DASHBOARD-001 cycle 879). Append-only timeline; opcionális\n * windowType + idő-tartomány szűrők (`fromMs`, `toMs`).\n */\n getAccountUsageHistory(params: {\n accountKey: string;\n windowType?: string;\n fromMs?: number;\n toMs?: number;\n }): Promise<{ items: CC_AccountUsageEvent_Response[] }> {\n const query: string[] = [];\n if (params.windowType != null && params.windowType !== '') {\n query.push(`windowType=${encodeURIComponent(params.windowType)}`);\n }\n if (params.fromMs != null) {\n query.push(`fromMs=${params.fromMs}`);\n }\n if (params.toMs != null) {\n query.push(`toMs=${params.toMs}`);\n }\n const qs: string = query.length > 0 ? `?${query.join('&')}` : '';\n return firstValueFrom(\n this.http.get<{ items: CC_AccountUsageEvent_Response[] }>(\n `${this.baseUrl}/${params.accountKey}/usage-history${qs}`,\n ),\n );\n }\n\n /**\n * POST /cc-account/:accountKey/refresh-usage — aktív Anthropic usage-pull\n * (REQ-CC-USAGE-DASHBOARD-001 cycle 873). A server credential-fájl + Bearer-rel\n * hív, az 5 window state-et upsert-eli, profile-mezőket (email/orgId/planTier)\n * a CC_Account-ba updateli, socket-broadcast.\n */\n refreshAccountUsage(accountKey: string): Promise<{ status: string; windowsUpserted: number; email: string | null }> {\n return firstValueFrom(\n this.http.post<{ status: string; windowsUpserted: number; email: string | null }>(\n `${this.baseUrl}/${accountKey}/refresh-usage`,\n {},\n ),\n );\n }\n\n /**\n * PATCH /cc-account/:accountKey — user-editable mezők frissítése (cycle 876):\n * `displayName` és/vagy `email`. Mindkettő opcionális; legalább egy kell.\n * `email: null` (vagy üres string) → kitörli (clear). Server-side validáció:\n * displayName 200-char + control-char tiltás, email RFC alap-formátum + 320-char.\n */\n renameAccount(params: {\n accountKey: string;\n displayName?: string;\n email?: string | null;\n }): Promise<CC_Account_Response> {\n const body: Record<string, unknown> = {};\n if (params.displayName !== undefined) {\n body.displayName = params.displayName;\n }\n if (params.email !== undefined) {\n body.email = params.email;\n }\n return firstValueFrom(\n this.http.patch<CC_Account_Response>(\n `${this.baseUrl}/${params.accountKey}`,\n body,\n ),\n );\n }\n}\n", "import { inject, Injectable, NgZone, OnDestroy, signal } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { CCAP_Socket_ControlService } from '../../../../../_services/control-services/ccap-socket.control-service';\nimport { CC_Account_ApiService } from './cc-account.api-service';\nimport { CC_Account_Response } from '../_models/interfaces/cc-account/cc-account.interface';\nimport { CC_AccountUsageEvent_Response } from '../_models/interfaces/cc-account/cc-account-usage-event.interface';\nimport {\n CC_AccountInstanceMapping_Response,\n CC_AccountUsageState_Response,\n} from '../_models/interfaces/cc-account/cc-account-usage-state.interface';\nimport {\n CC_AccountIdentityGroup_Response,\n} from '../_models/interfaces/cc-account/cc-account-identity-group.interface';\n\n/** Socket envelope shape — `CCAP_Socket_ControlService.event$` Subject közvetíti. */\ninterface SocketEnvelope_Interface {\n event: string;\n payload: Record<string, unknown>;\n}\n\n/** REQ-CC-USAGE-DASHBOARD-001 Slice 6 second-half: socket event nevek. */\nconst SOCKET_EVENT_CC_ACCOUNT_USAGE_UPDATE: string = 'cc:account-usage-update';\nconst SOCKET_EVENT_CC_ACCOUNT_LIST_UPDATE: string = 'cc:account-list-update';\n\n/**\n * CC Account Dashboard data service (REQ-CC-USAGE-DASHBOARD-001 Slice 5 cycle 857).\n *\n * SSOT a Slice 5+ Dashboard kliens-oldali state-jéhez. Signal-ek a komponensek\n * change-detection-jéhez (`accounts_$`, `accountUsageMap_$`, `instanceMapping_$`,\n * `isLoading_$`, `loadError_$`); async metódusok REST hívásokhoz a\n * `CC_Account_ApiService`-en át (cycle 856).\n *\n * NEM perzisztál (a backend DBNT a SSOT) — a kliens csak cache-eli a fetch-eket\n * a komponens élettartam alatt. Refresh: explicit user-action (`refreshAccounts`)\n * vagy szocket-event (Slice 6).\n */\n@Injectable({ providedIn: 'root' })\nexport class CC_Account_DataService implements OnDestroy {\n\n private readonly account_AS: CC_Account_ApiService = inject(CC_Account_ApiService);\n private readonly socket_CS: CCAP_Socket_ControlService = inject(CCAP_Socket_ControlService);\n private readonly ngZone: NgZone = inject(NgZone);\n\n /** Socket envelope subscription élettartam-kezelése. */\n private socketSubscription: Subscription | null = null;\n\n /** Cross-instance account-lista (a `listAccounts` REST eredménye). */\n readonly accounts_$ = signal<CC_Account_Response[]>([]);\n\n /**\n * Per-account usage state cache: `accountKey → usage-state[]` (5 windowType-onként\n * egy rekord max). A Slice 5 Dashboard account-card-ok ebből rendernek.\n */\n readonly accountUsageMap_$ = signal<Map<string, CC_AccountUsageState_Response[]>>(\n new Map(),\n );\n\n /** Cross-instance aggregate (Slice 4 instance-mapping endpoint cache). */\n readonly instanceMapping_$ = signal<CC_AccountInstanceMapping_Response | null>(null);\n\n /**\n * Per-account usage-history cache: `accountKey → event[]` (REQ-CC-USAGE-DASHBOARD-001\n * cycle 879). Append-only timeline a `ccap_cc_account_usage_event` collection-ből;\n * lazy-loaded a Dashboard expand-panel megnyitásakor.\n */\n readonly usageHistoryMap_$ = signal<Map<string, CC_AccountUsageEvent_Response[]>>(\n new Map(),\n );\n\n /**\n * REQ-CC-ACCOUNT-IDENTITY-EMAIL-001 Slice 3 part-1 (cycle 890): identity-\n * csoportosított account-lista — per-email view a Dashboard-on. A\n * `accounts_$` (raw rekordok, duplikátumokkal) MELLETT él; a Dashboard a\n * `identityGroups_$`-ot rendereli (egy kártya / identity), az `accounts_$`\n * audit / admin-célokra megmarad.\n */\n readonly identityGroups_$ = signal<CC_AccountIdentityGroup_Response[]>([]);\n\n /** Bármelyik load folyamatban-e (UI spinner-hez). */\n readonly isLoading_$ = signal<boolean>(false);\n\n /** Utolsó load hiba — null ha sikeres vagy nem futott. */\n readonly loadError_$ = signal<string | null>(null);\n\n /**\n * Bootstrap fetch: account-list + instance-mapping párhuzamosan, majd a\n * megismert account-okhoz az 5 windowType-os usage state-eket is lehúzzuk\n * (REQ-CC-USAGE-DASHBOARD-001 cycle 883). Ez biztosítja, hogy a Dashboard\n * megnyitásakor azonnal látszanak az utolsó perzisztált usage értékek —\n * nem kell auto-pull socket-eventre vagy manuális Pull-clickre várni.\n */\n async loadDashboardBootstrap(): Promise<void> {\n this.isLoading_$.set(true);\n this.loadError_$.set(null);\n try {\n // REQ-CC-ACCOUNT-IDENTITY-EMAIL-001 Slice 3 part-1 (cycle 890): a Dashboard\n // most az identity-group endpoint-ot is használja a per-email view-hoz.\n // Párhuzamosan az accountsList + instance-mapping + identity-groups.\n const [accountsResp, mappingResp, groupsResp] = await Promise.all([\n this.account_AS.listAccounts(),\n this.account_AS.getInstanceMapping(),\n this.account_AS.listAccountsByIdentity(),\n ]);\n this.accounts_$.set(accountsResp.items);\n this.instanceMapping_$.set(mappingResp);\n this.identityGroups_$.set(groupsResp.groups);\n // A `accountUsageMap_$` cache-be a group merged-usage-eket is beleírjuk\n // — a `<app-cc-account-usage-view [accountKey]>` komponens (per identity-group\n // a primary.accountKey-vel) ezt olvassa.\n const nextMap: Map<string, CC_AccountUsageState_Response[]> = new Map(this.accountUsageMap_$());\n for (const group of groupsResp.groups) {\n nextMap.set(group.primary.accountKey, group.mergedUsage);\n }\n this.accountUsageMap_$.set(nextMap);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n } finally {\n this.isLoading_$.set(false);\n }\n }\n\n /**\n * REQ-CC-ACCOUNT-IDENTITY-EMAIL-001 Slice 3 part-1 (cycle 890): csak az\n * identity-groups refetch-je (a refresh-after-pull / list-update szocketnél).\n */\n async loadIdentityGroups(): Promise<void> {\n try {\n const resp = await this.account_AS.listAccountsByIdentity();\n this.identityGroups_$.set(resp.groups);\n // Merged-usage cache update is.\n const nextMap: Map<string, CC_AccountUsageState_Response[]> = new Map(this.accountUsageMap_$());\n for (const group of resp.groups) {\n nextMap.set(group.primary.accountKey, group.mergedUsage);\n }\n this.accountUsageMap_$.set(nextMap);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n }\n }\n\n /** Csak az account-listát tölti újra (kis fetch). */\n async loadAccounts(): Promise<void> {\n try {\n const resp = await this.account_AS.listAccounts();\n this.accounts_$.set(resp.items);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n }\n }\n\n /**\n * Per-account usage-state fetch + cache-be írás. A Slice 5 account-card\n * komponens ezt hívja a saját accountKey-jére.\n */\n async loadAccountUsage(accountKey: string): Promise<void> {\n try {\n const resp = await this.account_AS.getAccountUsage(accountKey);\n const next: Map<string, CC_AccountUsageState_Response[]> = new Map(this.accountUsageMap_$());\n next.set(accountKey, resp.items);\n this.accountUsageMap_$.set(next);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n }\n }\n\n /**\n * Per-account usage-history fetch + cache-be írás (REQ-CC-USAGE-DASHBOARD-001\n * cycle 879). Lazy: a Dashboard expand-panel megnyitásakor hívjuk. Opcionális\n * windowType + idő-tartomány szűrőkkel.\n */\n async loadAccountUsageHistory(params: {\n accountKey: string;\n windowType?: string;\n fromMs?: number;\n toMs?: number;\n }): Promise<void> {\n try {\n const resp = await this.account_AS.getAccountUsageHistory(params);\n const next: Map<string, CC_AccountUsageEvent_Response[]> = new Map(this.usageHistoryMap_$());\n next.set(params.accountKey, resp.items);\n this.usageHistoryMap_$.set(next);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n }\n }\n\n /** Cross-instance aggregate refetch (Slice 4 — Slice 6 view bootstrap-jánál). */\n async loadInstanceMapping(): Promise<void> {\n try {\n const resp = await this.account_AS.getInstanceMapping();\n this.instanceMapping_$.set(resp);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n }\n }\n\n /**\n * Explicit user-trigger: a hívó CCAP instance-en credential-discovery újrafutás\n * + account-lista refetch. POST /refresh után automatikusan listAccounts-szal frissít.\n */\n async refreshAccounts(): Promise<{ refreshedKeys: string[]; scannedPaths: number }> {\n this.isLoading_$.set(true);\n this.loadError_$.set(null);\n try {\n const refreshResult = await this.account_AS.refreshLocalAccounts();\n await this.loadAccounts();\n return refreshResult;\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n return { refreshedKeys: [], scannedPaths: 0 };\n } finally {\n this.isLoading_$.set(false);\n }\n }\n\n /**\n * Aktív usage-pull egy adott account-ra (REQ-CC-USAGE-DASHBOARD-001 cycle 873).\n * A server `POST /cc-account/:accountKey/refresh-usage`-t hívja, ami az\n * Anthropic `/api/oauth/usage` endpoint-ját triggeri Bearer-rel. A pull\n * eredménye automatikusan jön socket-eventként (`cc:account-usage-update`),\n * de a sikeres POST után explicit re-fetch-eljük is az adott account usage-ét\n * + a teljes account-listát (a profile-mezők is updatelődtek).\n */\n async refreshAccountUsage(accountKey: string): Promise<{ status: string; windowsUpserted: number; email: string | null }> {\n try {\n const result = await this.account_AS.refreshAccountUsage(accountKey);\n // Re-fetch a friss state-et — bár a socket-event is jön, a cache-frissítés\n // garantált a user-action végén.\n await this.loadAccountUsage(accountKey);\n await this.loadAccounts();\n return result;\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n return { status: 'error', windowsUpserted: 0, email: null };\n }\n }\n\n /**\n * Display-name átírása + a cache-elt account-lista frissítése (a megfelelő\n * elem displayName mezőjének felülírása, signal-update).\n */\n async renameAccount(params: {\n accountKey: string;\n displayName?: string;\n email?: string | null;\n }): Promise<void> {\n try {\n const updated = await this.account_AS.renameAccount(params);\n const next: CC_Account_Response[] = this.accounts_$().map(\n (a): CC_Account_Response => (a.accountKey === params.accountKey ? updated : a),\n );\n this.accounts_$.set(next);\n } catch (err: unknown) {\n this.loadError_$.set(this.errorMessageOf(err));\n }\n }\n\n /**\n * Socket subscription init (REQ-CC-USAGE-DASHBOARD-001 Slice 6 second-half cycle 871).\n * A `CCAP_Socket_ControlService.event$` Subject minden socket-event-et közvetít\n * envelope-formában (event-name + payload). Mi az `cc:account-usage-update`\n * és `cc:account-list-update` event-ekre szűrünk és a megfelelő signal-eket frissítjük.\n *\n * Late subscription: a Dashboard component `ngOnInit`-jéből hívjuk (vagy explicit\n * service-init-kor), hogy ne legyen subscription-overhead, ha a Dashboard sose\n * nyílik meg.\n */\n startLiveUpdates(): void {\n if (this.socketSubscription != null) {\n return;\n }\n this.socketSubscription = this.socket_CS.event$.subscribe(\n (envelope: SocketEnvelope_Interface): void => {\n this.ngZone.run((): void => {\n if (envelope.event === SOCKET_EVENT_CC_ACCOUNT_USAGE_UPDATE) {\n this.handleAccountUsageUpdate(envelope.payload);\n } else if (envelope.event === SOCKET_EVENT_CC_ACCOUNT_LIST_UPDATE) {\n this.handleAccountListUpdate(envelope.payload);\n }\n });\n },\n );\n }\n\n /** Socket subscription teardown (component destroy / explicit stop). */\n stopLiveUpdates(): void {\n if (this.socketSubscription != null) {\n this.socketSubscription.unsubscribe();\n this.socketSubscription = null;\n }\n }\n\n ngOnDestroy(): void {\n this.stopLiveUpdates();\n }\n\n /**\n * Per-account usage state real-time frissítés. A server `persistAccountUsageState`\n * upsert sikere után emit-elt event-ből építjük újra a `accountUsageMap_$`\n * megfelelő `accountKey` bejegyzését. Ha a windowType már szerepel, lecseréljük;\n * különben hozzáadjuk.\n */\n private handleAccountUsageUpdate(payload: Record<string, unknown>): void {\n const accountKey: unknown = payload.accountKey;\n const windowType: unknown = payload.windowType;\n if (typeof accountKey !== 'string' || accountKey === '' || typeof windowType !== 'string') {\n return;\n }\n const newItem: CC_AccountUsageState_Response = {\n accountKey: accountKey,\n windowType: windowType,\n utilization: typeof payload.utilization === 'number' ? payload.utilization : undefined,\n resetsAtMs: typeof payload.resetsAtMs === 'number' ? payload.resetsAtMs : undefined,\n lastObservedStatus: typeof payload.lastObservedStatus === 'string' ? payload.lastObservedStatus : undefined,\n observedAt: typeof payload.observedAt === 'string' ? payload.observedAt : undefined,\n lastObservedByCcapId: typeof payload.lastObservedByCcapId === 'string' ? payload.lastObservedByCcapId : undefined,\n lastObservedBySessionId: typeof payload.lastObservedBySessionId === 'string' ? payload.lastObservedBySessionId : undefined,\n };\n\n const next: Map<string, CC_AccountUsageState_Response[]> = new Map(this.accountUsageMap_$());\n const existing: CC_AccountUsageState_Response[] = next.get(accountKey) ?? [];\n const replaced: CC_AccountUsageState_Response[] = existing.filter(\n (item: CC_AccountUsageState_Response): boolean => item.windowType !== windowType,\n );\n replaced.push(newItem);\n next.set(accountKey, replaced);\n this.accountUsageMap_$.set(next);\n }\n\n /**\n * Account-pool változás (új account felfedezve, displayName-átírás): a\n * legegyszerűbb és legbiztonságosabb módon `loadAccounts()` re-fetch-csel\n * frissítjük a `accounts_$` signal-t. Cross-instance change-ek esetén is\n * ez a megközelítés robosztus (a DB SSOT-ből minden instance ugyanazt látja).\n */\n private handleAccountListUpdate(_payload: Record<string, unknown>): void {\n void this.loadAccounts();\n // REQ-CC-ACCOUNT-IDENTITY-EMAIL-001 Slice 3 part-1 (cycle 890): a Dashboard\n // identity-groups view is frissül a socket-eventre — egyébként új account\n // (vagy backfill utáni identity-update) nem jutna el a Dashboard kártyáira.\n void this.loadIdentityGroups();\n }\n\n /** Hibaüzenet kinyerés tipikus shape-ekből (HttpErrorResponse / Error / unknown). */\n private errorMessageOf(err: unknown): string {\n if (err instanceof Error) {\n return err.message;\n }\n if (typeof err === 'object' && err !== null) {\n const rec: Record<string, unknown> = err as Record<string, unknown>;\n if (typeof rec.message === 'string') {\n return rec.message;\n }\n }\n return String(err);\n }\n}\n", "import { CC_AccountUsageEvent_Response } from '../_models/interfaces/cc-account/cc-account-usage-event.interface';\nimport {\n CC_AccountUsageChartLine_Interface,\n CC_AccountUsageChart_Result,\n} from '../_models/interfaces/cc-account/cc-account-usage-chart.interface';\n\n/**\n * Account usage-history → SVG chart-line projektor (REQ-CC-USAGE-DASHBOARD-001\n * cycle 884). Az event-eket windowType-onként szétválogatja, observedAt szerint\n * növekvő sorrendbe rendezi, majd a `(t, utilization)` párokat egy 100×40 unit-os\n * viewBox-ba projektálja (x: 0..100 idő-tengely, y: 0=tele/100% .. 40=üres/0%).\n *\n * A 5 fix windowType-onkénti szín stabil (a Dashboard-kártyák és a Session-info\n * popover is ugyanezt használja, mint vizuális SSOT).\n */\nexport class CC_AccountUsageChart_Util {\n\n static readonly CHART_WIDTH: number = 100;\n static readonly CHART_HEIGHT: number = 40;\n\n /** Fix windowType-onkénti szín-paletta (stroke hex). */\n static readonly COLOR_MAP: Record<string, string> = {\n five_hour: '#10b981',\n seven_day: '#06b6d4',\n seven_day_opus: '#a855f7',\n seven_day_sonnet: '#f59e0b',\n extra_usage: '#f43f5e',\n };\n\n static readonly WINDOW_LABEL_MAP: Record<string, string> = {\n five_hour: '5h',\n seven_day: 'Weekly',\n seven_day_opus: 'Opus',\n seven_day_sonnet: 'Sonnet',\n extra_usage: 'Extra',\n };\n\n /** Fix windowType render-sorrend (stabil legend-sorrend). */\n static readonly WINDOW_ORDER: string[] = [\n 'five_hour',\n 'seven_day',\n 'seven_day_opus',\n 'seven_day_sonnet',\n 'extra_usage',\n ];\n\n /**\n * Account-history events → chart-line projektálás.\n * Üres input → üres result (`hasAnyData=false`); a hívó tudja kezelni az\n * \"no data yet\" placeholder render-t.\n */\n static buildChart(events: CC_AccountUsageEvent_Response[]): CC_AccountUsageChart_Result {\n // Idő-tartomány + érvényes pontok detektálása egy menetben.\n let minT: number = Number.POSITIVE_INFINITY;\n let maxT: number = Number.NEGATIVE_INFINITY;\n let validCount: number = 0;\n for (const e of events) {\n if (typeof e.observedAt !== 'string' || e.observedAt === '') {\n continue;\n }\n if (typeof e.utilization !== 'number' || !isFinite(e.utilization)) {\n continue;\n }\n const t: number = Date.parse(e.observedAt);\n if (!isFinite(t)) {\n continue;\n }\n if (t < minT) {\n minT = t;\n }\n if (t > maxT) {\n maxT = t;\n }\n validCount++;\n }\n\n if (validCount === 0) {\n return {\n lines: CC_AccountUsageChart_Util.WINDOW_ORDER.map(\n (wt: string): CC_AccountUsageChartLine_Interface => ({\n windowType: wt,\n label: CC_AccountUsageChart_Util.WINDOW_LABEL_MAP[wt] ?? wt,\n colorHex: CC_AccountUsageChart_Util.COLOR_MAP[wt] ?? '#9ca3af',\n pathPoints: '',\n hasData: false,\n pointCount: 0,\n lastX: 0,\n lastY: 0,\n }),\n ),\n hasAnyData: false,\n minTimeMs: 0,\n maxTimeMs: 0,\n };\n }\n\n // Degenerate eset: minden esemény ugyanabban a ms-ben — expand-eljük 1h-vel,\n // hogy a vízszintes vonalak ne 0-szélességűek legyenek.\n if (maxT - minT < 1) {\n maxT = minT + 3_600_000;\n }\n const range: number = maxT - minT;\n\n const lines: CC_AccountUsageChartLine_Interface[] =\n CC_AccountUsageChart_Util.WINDOW_ORDER.map((wt: string): CC_AccountUsageChartLine_Interface => {\n // windowType-onkénti gyűjtés + növekvő idő szerinti rendezés.\n const points: { t: number; u: number }[] = [];\n for (const e of events) {\n if (e.windowType !== wt) {\n continue;\n }\n if (typeof e.observedAt !== 'string' || e.observedAt === '') {\n continue;\n }\n if (typeof e.utilization !== 'number' || !isFinite(e.utilization)) {\n continue;\n }\n const t: number = Date.parse(e.observedAt);\n if (!isFinite(t)) {\n continue;\n }\n points.push({ t: t, u: Math.max(0, Math.min(1, e.utilization)) });\n }\n points.sort((a: { t: number; u: number }, b: { t: number; u: number }): number => a.t - b.t);\n\n const coords: string[] = [];\n let lastX: number = 0;\n let lastY: number = 0;\n for (const p of points) {\n const x: number = ((p.t - minT) / range) * CC_AccountUsageChart_Util.CHART_WIDTH;\n const y: number = CC_AccountUsageChart_Util.CHART_HEIGHT\n - (p.u * CC_AccountUsageChart_Util.CHART_HEIGHT);\n coords.push(`${x.toFixed(2)},${y.toFixed(2)}`);\n lastX = x;\n lastY = y;\n }\n\n return {\n windowType: wt,\n label: CC_AccountUsageChart_Util.WINDOW_LABEL_MAP[wt] ?? wt,\n colorHex: CC_AccountUsageChart_Util.COLOR_MAP[wt] ?? '#9ca3af',\n pathPoints: coords.join(' '),\n hasData: coords.length > 0,\n pointCount: coords.length,\n lastX: lastX,\n lastY: lastY,\n };\n });\n\n return {\n lines: lines,\n hasAnyData: lines.some((l: CC_AccountUsageChartLine_Interface): boolean => l.hasData),\n minTimeMs: minT,\n maxTimeMs: maxT,\n };\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject, Input, signal, Signal } from '@angular/core';\n\nimport { CC_Account_DataService } from '../../_services/cc-account.data-service';\nimport { CC_AccountUsageState_Response } from '../../_models/interfaces/cc-account/cc-account-usage-state.interface';\nimport { CC_AccountUsageChart_Result } from '../../_models/interfaces/cc-account/cc-account-usage-chart.interface';\nimport { CC_AccountUsageChart_Util } from '../../_collections/cc-account-usage-chart.util';\n\n/**\n * CC Account Usage View — megosztott komponens (REQ-CC-USAGE-DASHBOARD-001 cycle 885).\n *\n * Egy account `accountKey`-éhez tartozó 5 windowType-os usage státusz + opcionális\n * időbeli SVG-graph render. Több helyen használt:\n * - CC Usage Dashboard (account-cards) — `compact=false`, graph elérhető\n * - CC Session info-panel popover — `compact=true` szűk popover-hez\n * - bárhol ahol egy accountKey-hez kell mutatni a usage-snapshot-ot\n *\n * SSOT: a `CC_Account_DataService.accountUsageMap_$` és `usageHistoryMap_$` signal-okat\n * olvassa. Lazy-fetch saját maga: ha a state cache-ben még nincs, indítja a\n * `loadAccountUsage`-t. A history-fetch csak akkor fut, ha a graph megnyílik.\n */\n@Component({\n selector: 'app-cc-account-usage-view',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './cc-account-usage-view.component.html',\n})\n/**\n * REQ-CC-USAGE-DASHBOARD-001 (cycle 885) — shared CC account-usage megjelenítő.\n * Egyetlen komponens a per-account utilization graph + status egységes renderéhez,\n * amit a Dashboard és a CC Session info-panel egyaránt használ (graph + status\n * SSOT). Csak Render-only: state-et a `CC_Account_DataService`-ből olvas.\n */\nexport class CC_AccountUsageView_Component {\n\n private readonly account_DS: CC_Account_DataService = inject(CC_Account_DataService);\n\n /** Account stable kulcs — kötelező input. */\n @Input({ required: true }) accountKey: string = '';\n\n /** Kompakt layout (kisebb fontok, szűkebb padding) — popover-be javasolt. */\n @Input() compact: boolean = false;\n\n /** Igaz → a graph toggle gomb meg fog jelenni (default: true). */\n @Input() showGraphToggle: boolean = true;\n\n /** Igaz → a graph-panel induláskor nyitva (default: false → lezárt). */\n @Input() initiallyOpenGraph: boolean = false;\n\n /** Lokális UI state: a graph-panel nyitva/zárva. */\n readonly isGraphOpen_$ = signal<boolean>(false);\n\n /** SVG chart-data builder az adott account-history cache-éből. */\n readonly chart_$: Signal<CC_AccountUsageChart_Result> = computed(\n (): CC_AccountUsageChart_Result => {\n return CC_AccountUsageChart_Util.buildChart(\n this.account_DS.usageHistoryMap_$().get(this.accountKey) ?? [],\n );\n },\n );\n\n /** SVG viewBox literal (a template használja). */\n readonly chartViewBox: string = `0 0 ${CC_AccountUsageChart_Util.CHART_WIDTH} ${CC_AccountUsageChart_Util.CHART_HEIGHT}`;\n readonly chartW: number = CC_AccountUsageChart_Util.CHART_WIDTH;\n readonly chartH: number = CC_AccountUsageChart_Util.CHART_HEIGHT;\n readonly chartMidY: number = CC_AccountUsageChart_Util.CHART_HEIGHT / 2;\n\n /**\n * Reaktív lazy-fetch: ha az accountKey változik vagy a cache üres, lekérjük\n * a perzisztált usage state-et. Ez azoknál a használati helyeknél kritikus\n * (popover, CC sessions dashboard), ahol a Dashboard-bootstrap NEM futott.\n */\n private readonly usageEffect = effect((): void => {\n const key: string = this.accountKey;\n if (!key) {\n return;\n }\n if (!this.account_DS.accountUsageMap_$().has(key)) {\n void this.account_DS.loadAccountUsage(key);\n }\n });\n\n /** initiallyOpenGraph input alkalmazása az isGraphOpen_$-ra. */\n private readonly initialOpenEffect = effect((): void => {\n if (this.initiallyOpenGraph) {\n this.isGraphOpen_$.set(true);\n }\n });\n\n /** Graph-toggle handler — első megnyitás-kor history-fetch. */\n async handleToggleGraph(): Promise<void> {\n const next: boolean = !this.isGraphOpen_$();\n this.isGraphOpen_$.set(next);\n if (next && !this.account_DS.usageHistoryMap_$().has(this.accountKey)) {\n await this.account_DS.loadAccountUsageHistory({ accountKey: this.accountKey });\n }\n }\n\n /** Explicit refresh — history-fetch reload. */\n async handleRefreshGraph(): Promise<void> {\n await this.account_DS.loadAccountUsageHistory({ accountKey: this.accountKey });\n }\n\n /** Egy adott windowType state-jét adja vissza, vagy null. */\n usageItemOfWindow(windowType: string): CC_AccountUsageState_Response | null {\n const items: CC_AccountUsageState_Response[] = this.account_DS.accountUsageMap_$().get(this.accountKey) ?? [];\n for (const item of items) {\n if (item.windowType === windowType) {\n return item;\n }\n }\n return null;\n }\n\n /** True ha legalább egy windowType-ra van adat. */\n hasAnyUsageData(): boolean {\n const items: CC_AccountUsageState_Response[] = this.account_DS.accountUsageMap_$().get(this.accountKey) ?? [];\n return items.length > 0;\n }\n\n /** Window-typeName → emberi label (pure mapping). */\n windowLabelOf(windowType: string): string {\n switch (windowType) {\n case 'five_hour': return '5-hour session';\n case 'seven_day': return 'Weekly';\n case 'seven_day_opus': return 'Weekly · Opus';\n case 'seven_day_sonnet': return 'Weekly · Sonnet';\n case 'extra_usage': return 'Extra (pay-as-you-go)';\n default: return windowType;\n }\n }\n\n /** Utilization → progress-bar width (0..100%, 0 ha null). */\n utilizationPercent(utilization: number | undefined): number {\n if (utilization == null || !isFinite(utilization)) {\n return 0;\n }\n return Math.max(0, Math.min(100, Math.round(utilization * 100)));\n }\n\n /** Utilization fraction (0..1) → percent string '42%'. null → '—'. */\n formatUtilization(utilization: number | null | undefined): string {\n if (utilization == null) {\n return '—';\n }\n return `${Math.round(utilization * 100)}%`;\n }\n\n /** Progress-bar szín-osztály utilization alapján (zöld/sárga/piros). */\n utilizationBarColorClass(utilization: number | undefined): string {\n if (utilization == null || !isFinite(utilization)) {\n return 'bg-neutral-600';\n }\n if (utilization >= 0.85) {\n return 'bg-red-500';\n }\n if (utilization >= 0.5) {\n return 'bg-amber-500';\n }\n return 'bg-emerald-500';\n }\n\n /** Reset countdown — emberi olvasható ('2h 34m', '5d 1h', 'expired', '—'). */\n formatResetCountdown(resetsAtMs: number | undefined): string {\n if (resetsAtMs == null || !isFinite(resetsAtMs) || resetsAtMs <= 0) {\n return '—';\n }\n const diffMs: number = resetsAtMs - Date.now();\n if (diffMs <= 0) {\n return 'expired';\n }\n const totalMinutes: number = Math.floor(diffMs / 60_000);\n const days: number = Math.floor(totalMinutes / (60 * 24));\n const hours: number = Math.floor((totalMinutes % (60 * 24)) / 60);\n const minutes: number = totalMinutes % 60;\n if (days > 0) {\n return `${days}d ${hours}h`;\n }\n if (hours > 0) {\n return `${hours}h ${minutes}m`;\n }\n return `${minutes}m`;\n }\n}\n", "<!-- CC Account Usage View — megosztott komponens (cycle 885).\n A 5 usage-sor mindig látszik (placeholder ha üres), a graph opcionális toggle-able. -->\n<div class=\"flex flex-col\" [class.gap-1]=\"compact\" [class.gap-2]=\"!compact\">\n <!-- 5 usage-sor: a mindig-látható status block. -->\n <div [class.space-y-1]=\"compact\" [class.space-y-2]=\"!compact\">\n @for (windowType of ['five_hour', 'seven_day', 'seven_day_opus', 'seven_day_sonnet', 'extra_usage']; track windowType) {\n @let item = usageItemOfWindow(windowType);\n <div [class]=\"compact ? 'grid grid-cols-[90px_1fr_56px] items-center gap-2 text-[10px]' : 'grid grid-cols-[110px_1fr_64px] items-center gap-2 text-[11px]'\"\n [class.opacity-50]=\"!item\">\n <div class=\"text-neutral-300 font-medium truncate\" [title]=\"windowType\">\n {{ windowLabelOf(windowType) }}\n </div>\n <div class=\"flex items-center gap-2 min-w-0\">\n <div [class]=\"compact ? 'flex-1 h-1.5 bg-neutral-800 rounded-full overflow-hidden' : 'flex-1 h-2 bg-neutral-800 rounded-full overflow-hidden'\">\n @if (item) {\n <div [class]=\"'h-full transition-all ' + utilizationBarColorClass(item.utilization)\"\n [style.width.%]=\"utilizationPercent(item.utilization)\"></div>\n }\n </div>\n <span class=\"font-mono text-neutral-200 text-right shrink-0\"\n [class]=\"compact ? 'w-8 text-[10px]' : 'w-9'\">\n {{ formatUtilization(item?.utilization ?? null) }}\n </span>\n </div>\n <div class=\"font-mono text-neutral-500 text-right text-[10px] truncate\"\n [title]=\"'Resets in ' + formatResetCountdown(item?.resetsAtMs)\">\n {{ formatResetCountdown(item?.resetsAtMs) }}\n </div>\n </div>\n }\n </div>\n\n @if (!hasAnyUsageData()) {\n <div class=\"text-[10px] text-neutral-500 italic pt-1 border-t border-neutral-800/40\">\n No data yet — click <strong class=\"text-neutral-400\">Pull</strong> or wait for the next rate-limit event.\n </div>\n }\n\n <!-- Graph toggle + SVG line-chart (cycle 884 portolva ide). -->\n @if (showGraphToggle) {\n <div class=\"border-t border-neutral-800/40 pt-2\">\n <button\n type=\"button\"\n class=\"text-[11px] text-neutral-400 hover:text-neonCyan flex items-center gap-1 transition-colors\"\n (click)=\"handleToggleGraph()\"\n [title]=\"isGraphOpen_$() ? 'Hide usage graph' : 'Show usage graph (utilization over time per window)'\"\n >\n <svg class=\"w-3 h-3 transition-transform\"\n [class.rotate-90]=\"isGraphOpen_$()\"\n fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"/>\n </svg>\n 📈 {{ isGraphOpen_$() ? 'Hide' : 'Show' }} graph\n </button>\n\n @if (isGraphOpen_$()) {\n @let chart = chart_$();\n <div class=\"mt-2 rounded-md border border-neutral-800 bg-neutral-950/40 p-2\">\n @if (!chart.hasAnyData) {\n <div class=\"text-[11px] text-neutral-500 italic px-2 py-3 text-center\">\n No graph data yet — pull usage or wait for a CC session rate-limit event.\n </div>\n } @else {\n <div class=\"relative w-full\">\n <svg [attr.viewBox]=\"chartViewBox\" preserveAspectRatio=\"none\"\n class=\"w-full block\"\n [class.h-24]=\"compact\"\n [class.h-32]=\"!compact\">\n <!-- Háttér + 0%, 50%, 100% referencia-vonalak. -->\n <line x1=\"0\" [attr.y1]=\"chartH\" [attr.x2]=\"chartW\" [attr.y2]=\"chartH\"\n stroke=\"#3f3f46\" stroke-width=\"0.3\"/>\n <line x1=\"0\" [attr.y1]=\"chartMidY\" [attr.x2]=\"chartW\" [attr.y2]=\"chartMidY\"\n stroke=\"#3f3f46\" stroke-width=\"0.2\" stroke-dasharray=\"1,1\"/>\n <line x1=\"0\" y1=\"0\" [attr.x2]=\"chartW\" y2=\"0\"\n stroke=\"#3f3f46\" stroke-width=\"0.2\" stroke-dasharray=\"1,1\"/>\n @for (line of chart.lines; track line.windowType) {\n @if (line.hasData) {\n @if (line.pointCount === 1) {\n <circle [attr.cx]=\"line.lastX\" [attr.cy]=\"line.lastY\" r=\"0.8\" [attr.fill]=\"line.colorHex\"/>\n } @else {\n <polyline [attr.points]=\"line.pathPoints\"\n [attr.stroke]=\"line.colorHex\"\n fill=\"none\" stroke-width=\"0.6\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\"\n vector-effect=\"non-scaling-stroke\"/>\n <circle [attr.cx]=\"line.lastX\" [attr.cy]=\"line.lastY\" r=\"0.6\" [attr.fill]=\"line.colorHex\"/>\n }\n }\n }\n </svg>\n <div class=\"absolute inset-y-0 left-0 flex flex-col justify-between text-[8px] text-neutral-600 font-mono pointer-events-none\">\n <span>100%</span>\n <span>50%</span>\n <span>0%</span>\n </div>\n </div>\n <div class=\"mt-2 flex flex-wrap items-center gap-2 text-[10px]\">\n @for (line of chart.lines; track line.windowType) {\n <div class=\"flex items-center gap-1\" [class.opacity-40]=\"!line.hasData\">\n <span class=\"inline-block w-2 h-2 rounded-sm\" [style.background-color]=\"line.colorHex\"></span>\n <span class=\"text-neutral-300\">{{ line.label }}</span>\n @if (line.hasData) {\n <span class=\"text-neutral-500\">·</span>\n <span class=\"font-mono text-neutral-400\">\n {{ ((chartH - line.lastY) / chartH * 100).toFixed(0) }}%\n </span>\n }\n </div>\n }\n </div>\n <div class=\"mt-1 flex items-center justify-between text-[9px] text-neutral-600\">\n @if (chart.minTimeMs) {\n <span>{{ chart.minTimeMs | date:'yyyy-MM-dd HH:mm' }}</span>\n } @else {\n <span>—</span>\n }\n <button\n type=\"button\"\n class=\"text-[10px] text-neutral-400 hover:text-neonCyan border border-neutral-700\n hover:border-neonCyan rounded px-1.5 py-0.5 transition-colors\"\n (click)=\"handleRefreshGraph()\"\n title=\"Re-fetch usage event history for this graph.\"\n >\n ↻ Refresh\n </button>\n @if (chart.maxTimeMs) {\n <span>{{ chart.maxTimeMs | date:'yyyy-MM-dd HH:mm' }}</span>\n } @else {\n <span>—</span>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n</div>\n"],
5
- "mappings": "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",
6
- "names": ["CC_Account_ApiService", "baseUrl", "environment", "api", "http", "inject", "HttpClient", "listAccounts", "firstValueFrom", "get", "listAccountsByIdentity", "backfillIdentity", "post", "auditIdentityDuplicates", "refreshLocalAccounts", "getInstanceMapping", "getAccount", "accountKey", "getAccountUsage", "getAccountUsageHistory", "params", "query", "windowType", "push", "encodeURIComponent", "fromMs", "toMs", "qs", "length", "join", "refreshAccountUsage", "renameAccount", "body", "displayName", "undefined", "email", "patch", "factory", "\u0275fac", "providedIn", "SOCKET_EVENT_CC_ACCOUNT_USAGE_UPDATE", "SOCKET_EVENT_CC_ACCOUNT_LIST_UPDATE", "CC_Account_DataService", "account_AS", "inject", "CC_Account_ApiService", "socket_CS", "CCAP_Socket_ControlService", "ngZone", "NgZone", "socketSubscription", "accounts_$", "signal", "accountUsageMap_$", "Map", "instanceMapping_$", "usageHistoryMap_$", "identityGroups_$", "isLoading_$", "loadError_$", "loadDashboardBootstrap", "__async", "set", "accountsResp", "mappingResp", "groupsResp", "Promise", "all", "listAccounts", "getInstanceMapping", "listAccountsByIdentity", "items", "groups", "nextMap", "group", "primary", "accountKey", "mergedUsage", "err", "errorMessageOf", "loadIdentityGroups", "resp", "loadAccounts", "loadAccountUsage", "getAccountUsage", "next", "loadAccountUsageHistory", "params", "getAccountUsageHistory", "loadInstanceMapping", "refreshAccounts", "refreshResult", "refreshLocalAccounts", "refreshedKeys", "scannedPaths", "refreshAccountUsage", "result", "status", "windowsUpserted", "email", "renameAccount", "updated", "map", "a", "startLiveUpdates", "event$", "subscribe", "envelope", "run", "event", "handleAccountUsageUpdate", "payload", "handleAccountListUpdate", "stopLiveUpdates", "unsubscribe", "ngOnDestroy", "windowType", "newItem", "utilization", "undefined", "resetsAtMs", "lastObservedStatus", "observedAt", "lastObservedByCcapId", "lastObservedBySessionId", "replaced", "get", "filter", "item", "push", "_payload", "Error", "message", "rec", "String", "factory", "\u0275fac", "providedIn", "CC_AccountUsageChart_Util", "CHART_WIDTH", "CHART_HEIGHT", "COLOR_MAP", "five_hour", "seven_day", "seven_day_opus", "seven_day_sonnet", "extra_usage", "WINDOW_LABEL_MAP", "WINDOW_ORDER", "buildChart", "events", "minT", "Number", "POSITIVE_INFINITY", "maxT", "NEGATIVE_INFINITY", "validCount", "e", "observedAt", "utilization", "isFinite", "t", "Date", "parse", "lines", "map", "wt", "windowType", "label", "colorHex", "pathPoints", "hasData", "pointCount", "lastX", "lastY", "hasAnyData", "minTimeMs", "maxTimeMs", "range", "points", "push", "u", "Math", "max", "min", "sort", "a", "b", "coords", "p", "x", "y", "toFixed", "join", "length", "some", "l", "\u0275\u0275element", "\u0275\u0275classMap", "ctx_r1", "utilizationBarColorClass", "item_r1", "utilization", "\u0275\u0275styleProp", "utilizationPercent", "\u0275\u0275declareLet", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "CC_AccountUsageView_Component_For_3_Conditional_6_Template", "\u0275\u0275storeLet", "usageItemOfWindow", "windowType_r3", "\u0275\u0275advance", "compact", "\u0275\u0275classProp", "item_r4", "\u0275\u0275property", "\u0275\u0275textInterpolate1", "windowLabelOf", "\u0275\u0275conditional", "formatUtilization", "tmp_18_0", "undefined", "formatResetCountdown", "resetsAtMs", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_For_6_Conditional_0_Conditional_0_Template", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_For_6_Conditional_0_Conditional_1_Template", "line_r7", "pointCount", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_For_6_Conditional_0_Template", "hasData", "chartH", "line_r8", "lastY", "toFixed", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_For_16_Conditional_4_Template", "colorHex", "\u0275\u0275textInterpolate", "label", "\u0275\u0275pipeBind2", "chart_r9", "minTimeMs", "maxTimeMs", "\u0275\u0275repeaterCreate", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_For_6_Template", "_forTrack0", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_For_16_Template", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_Conditional_18_Template", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_Conditional_19_Template", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r6", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleRefreshGraph", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_Conditional_22_Template", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_Conditional_23_Template", "\u0275\u0275repeater", "lines", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_2_Template", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Conditional_3_Template", "chart_$", "chart_r10", "hasAnyData", "_r5", "handleToggleGraph", "CC_AccountUsageView_Component_Conditional_5_Conditional_5_Template", "isGraphOpen_$", "CC_AccountUsageView_Component", "account_DS", "inject", "CC_Account_DataService", "accountKey", "showGraphToggle", "initiallyOpenGraph", "signal", "computed", "CC_AccountUsageChart_Util", "buildChart", "usageHistoryMap_$", "get", "chartViewBox", "CHART_WIDTH", "CHART_HEIGHT", "chartW", "chartMidY", "usageEffect", "effect", "key", "accountUsageMap_$", "has", "loadAccountUsage", "initialOpenEffect", "set", "__async", "next", "loadAccountUsageHistory", "windowType", "items", "item", "hasAnyUsageData", "length", "isFinite", "Math", "max", "min", "round", "diffMs", "Date", "now", "totalMinutes", "floor", "days", "hours", "minutes", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "CC_AccountUsageView_Component_For_3_Template", "\u0275\u0275repeaterTrackByIdentity", "CC_AccountUsageView_Component_Conditional_4_Template", "CC_AccountUsageView_Component_Conditional_5_Template", "\u0275\u0275pureFunction0", "_c0", "CommonModule", "DatePipe", "encapsulation"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as i,b as c}from"./chunk-TOIHWXFM.js";import"./chunk-Q2PKIGLB.js";import"./chunk-XJKKZSRS.js";import"./chunk-NZTD5QPD.js";import"./chunk-7JUIBZEE.js";import"./chunk-C7XPBJTG.js";import"./chunk-7AJI4JCW.js";import"./chunk-WPHEQXWB.js";import"./chunk-5ZNUIE2O.js";import"./chunk-EZD36BDE.js";import"./chunk-LOGCDPUJ.js";import"./chunk-M5JVIKJU.js";import"./chunk-Q2NVIOCY.js";import"./chunk-WIJ2KUXX.js";import"./chunk-KJBEKLZZ.js";import"./chunk-3B2KB7MF.js";import"./chunk-V3VQWJQL.js";import"./chunk-XI7FMFIP.js";import"./chunk-ZBTWQZNB.js";import"./chunk-FLAJXIYW.js";import"./chunk-EO4DNTT4.js";import"./chunk-5CI77L5J.js";import"./chunk-5UPNU54P.js";import"./chunk-PQJSMEEO.js";import"./chunk-ANMHMGCN.js";import{E as e,Kb as r,z as t}from"./chunk-TBMJSIBB.js";var n=[{path:"",component:i}],s=(()=>{class o{static \u0275fac=function(m){return new(m||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[c,r.forChild(n)]})}return o})();export{s as ProjectSource_RoutedModule};
2
- //# sourceMappingURL=project-source-routed.module-BENCKHFP.js.map