@futdevpro/ccap 1.1.2617 → 1.1.2632
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.
- package/client-dist/{agent-instances.module-EN3TUWCP.js → agent-instances.module-CPZFUQT2.js} +2 -2
- package/client-dist/{ca.module-GORAHZS3.js → ca.module-52URKFMV.js} +2 -2
- package/client-dist/cc.module-7ZVGKTQK.js +4 -0
- package/client-dist/{cc.module-V7UUWHNN.js.map → cc.module-7ZVGKTQK.js.map} +3 -3
- package/client-dist/{chunk-RHEQKQT3.js → chunk-2PJN4LMV.js} +2 -2
- package/client-dist/{chunk-JB7S5KFM.js → chunk-2WRMA5BC.js} +2 -2
- package/client-dist/{chunk-OLBAIJHY.js → chunk-3QBHMOST.js} +2 -2
- package/client-dist/{chunk-DQRYQQIF.js → chunk-422OSM4X.js} +2 -2
- package/client-dist/{chunk-BI53K7S7.js → chunk-47MHSRAJ.js} +2 -2
- package/client-dist/{chunk-SSPO3S2C.js → chunk-4Q7WWE4H.js} +2 -2
- package/client-dist/{chunk-5MXK7YEG.js → chunk-6FMWDOOY.js} +2 -2
- package/client-dist/chunk-6JMNXWBN.js +18 -0
- package/client-dist/chunk-6JMNXWBN.js.map +7 -0
- package/client-dist/{chunk-5M33R74G.js → chunk-6WWCUGHJ.js} +2 -2
- package/client-dist/{chunk-LVVC3ZN5.js → chunk-6ZIZF7CZ.js} +2 -2
- package/client-dist/{chunk-3YVLAGRH.js → chunk-7B5WQKKT.js} +2 -2
- package/client-dist/{chunk-D7OQ7EDV.js → chunk-7LAWVJLV.js} +2 -2
- package/client-dist/{chunk-OMGAJHQQ.js → chunk-AC463TRS.js} +2 -2
- package/client-dist/{chunk-WH2RXTQX.js → chunk-AHDC3CNB.js} +2 -2
- package/client-dist/{chunk-WH2RXTQX.js.map → chunk-AHDC3CNB.js.map} +1 -1
- package/client-dist/{chunk-R7CNI5LG.js → chunk-CUU6RSBJ.js} +2 -2
- package/client-dist/{chunk-K3ABKMDH.js → chunk-DW2ZYMW2.js} +2 -2
- package/client-dist/{chunk-4QEHZHVD.js → chunk-DWXCLFXA.js} +2 -2
- package/client-dist/{chunk-IVJK5V3T.js → chunk-E3HTMVME.js} +2 -2
- package/client-dist/{chunk-IXD22FGA.js → chunk-HIFOGJPW.js} +2 -2
- package/client-dist/{chunk-PGMQ56NB.js → chunk-HOV4WT63.js} +2 -2
- package/client-dist/{chunk-JYN4W4IW.js → chunk-I6CZQ5GZ.js} +2 -2
- package/client-dist/{chunk-QDW4DDEH.js → chunk-IDDWHJ7Q.js} +2 -2
- package/client-dist/{chunk-6J4SX5W3.js → chunk-IZA34XYT.js} +2 -2
- package/client-dist/{chunk-SUOO3ZQQ.js → chunk-J3D3HGFW.js} +2 -2
- package/client-dist/{chunk-S6GMI7R3.js → chunk-JY7OZT7C.js} +2 -2
- package/client-dist/{chunk-FQGFAUMM.js → chunk-KFUZSDOM.js} +2 -2
- package/client-dist/{chunk-N347O4ZR.js → chunk-KWFT3MYQ.js} +2 -2
- package/client-dist/{chunk-JA6NJ3HY.js → chunk-L656Z3WW.js} +2 -2
- package/client-dist/{chunk-TBE7X4MG.js → chunk-M55QIDGE.js} +2 -2
- package/client-dist/{chunk-KU3NFCE3.js → chunk-MM4JCYOK.js} +2 -2
- package/client-dist/{chunk-QBRWMKSU.js → chunk-NFBWF4SW.js} +2 -2
- package/client-dist/{chunk-DEIALVMK.js → chunk-O5HKHY3L.js} +2 -2
- package/client-dist/{chunk-PP73DOUH.js → chunk-OVBWEXZY.js} +2 -2
- package/client-dist/{chunk-Y7KI3XKP.js → chunk-PONTJYSJ.js} +2 -2
- package/client-dist/{chunk-IE4EXO7F.js → chunk-PUZSKF5U.js} +2 -2
- package/client-dist/{chunk-RG4B2EC4.js → chunk-PVGZKSSW.js} +2 -2
- package/client-dist/{chunk-ABFHBZMB.js → chunk-PWM2DMOJ.js} +2 -2
- package/client-dist/{chunk-PMLUJE5N.js → chunk-QYEVQUL7.js} +2 -2
- package/client-dist/{chunk-XWRXJ2PQ.js → chunk-R4ZHIFF7.js} +2 -2
- package/client-dist/{chunk-YASHJ2WC.js → chunk-S35H7ZNH.js} +2 -2
- package/client-dist/{chunk-SNA7RAMU.js → chunk-SDMYA4IA.js} +2 -2
- package/client-dist/chunk-TEHBCUFY.js +73 -0
- package/client-dist/chunk-TEHBCUFY.js.map +1 -0
- package/client-dist/{chunk-L65JUKSC.js → chunk-UPGF4ROP.js} +2 -2
- package/client-dist/{chunk-UWC76UG2.js → chunk-UZAJOMA5.js} +2 -2
- package/client-dist/{chunk-PEHTATOM.js → chunk-V5A7WPO3.js} +2 -2
- package/client-dist/{chunk-6R36KJBX.js → chunk-VSP7RQUF.js} +2 -2
- package/client-dist/{chunk-6UEKWFBY.js → chunk-XRVB3F3U.js} +2 -2
- package/client-dist/{chunk-XWWVDCIV.js → chunk-XS72BKOX.js} +2 -2
- package/client-dist/{chunk-C233ZHXW.js → chunk-Y2ZI66KH.js} +2 -2
- package/client-dist/{chunk-MUROLI6H.js → chunk-YPFYCIYO.js} +2 -2
- package/client-dist/{chunk-GV7SWYVG.js → chunk-YQ6HYORB.js} +2 -2
- package/client-dist/{chunk-BMPC7YQQ.js → chunk-YXUP4BQR.js} +2 -2
- package/client-dist/{chunk-URBFZBHB.js → chunk-YYJX54V7.js} +2 -2
- package/client-dist/{chunk-TOU2FRKB.js → chunk-ZIGVWPRQ.js} +2 -2
- package/client-dist/{chunk-BCGCVDWE.js → chunk-ZLXT53MV.js} +2 -2
- package/client-dist/{chunk-BT66EBDO.js → chunk-ZPU6NXDY.js} +2 -2
- package/client-dist/{consultant.module-YXJGRCVB.js → consultant.module-S64RHTRA.js} +2 -2
- package/client-dist/{crd.module-K5IU7FAD.js → crd.module-UYKOTPBT.js} +2 -2
- package/client-dist/{dashboard.module-JZHORI36.js → dashboard.module-2YFLFOJC.js} +2 -2
- package/client-dist/{do.module-VJDE653T.js → do.module-C5LHORRA.js} +2 -2
- package/client-dist/{document-library.module-S7H4MOVL.js → document-library.module-IUII2HAX.js} +2 -2
- package/client-dist/{embedding-eval.module-XEHPYHRV.js → embedding-eval.module-BUAI7QHS.js} +2 -2
- package/client-dist/{embedding-registry.module-RYDZNKNT.js → embedding-registry.module-T3W45OP6.js} +2 -2
- package/client-dist/{err.module-PGJZBINE.js → err.module-4I3WGOED.js} +2 -2
- package/client-dist/{feedback.module-LL2MRM2Q.js → feedback.module-ZM4XMA33.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-6CUKTPUO.js → host-runtime-mcp.module-GVNEDUN4.js} +2 -2
- package/client-dist/index.html +2 -2
- package/client-dist/{live-dev-pipeline.module-HFCGROXH.js → live-dev-pipeline.module-Y4IWCLG3.js} +2 -2
- package/client-dist/{logs.module-DHBSE2KE.js → logs.module-KM6ZUTMP.js} +2 -2
- package/client-dist/{main-XCMYEZXM.js → main-JAKNTVNO.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-SXSUM2KX.js → master-control-remote-poc.module-BKOZBAUK.js} +2 -2
- package/client-dist/{mobile-app.module-VTEZJSGQ.js → mobile-app.module-U2OOR5F5.js} +2 -2
- package/client-dist/{model-registry.module-AFGLVYHQ.js → model-registry.module-FUF4I6P4.js} +2 -2
- package/client-dist/{oc.module-46CPQK5Q.js → oc.module-35L5RB73.js} +2 -2
- package/client-dist/orc.module-DLUIFVSV.js +2 -0
- package/client-dist/{orc.module-AHFLHGAC.js.map → orc.module-DLUIFVSV.js.map} +1 -1
- package/client-dist/{project-management.module-IO2GKZSD.js → project-management.module-RDH6NB4R.js} +2 -2
- package/client-dist/project-source-routed.module-AGXVMSIV.js +2 -0
- package/client-dist/{scheduler.module-SSRON4PT.js → scheduler.module-GN46RYWL.js} +2 -2
- package/client-dist/{session.module-LTJ4UVWH.js → session.module-BSK3QFQI.js} +10 -10
- package/client-dist/{session.module-LTJ4UVWH.js.map → session.module-BSK3QFQI.js.map} +2 -2
- package/client-dist/{set.module-PVV66J2Z.js → set.module-VVAAS2C6.js} +2 -2
- package/client-dist/{setup.module-RNGQCVLV.js → setup.module-5V2UMKHO.js} +2 -2
- package/client-dist/styles-WS3OIV37.css +2 -0
- package/client-dist/styles-WS3OIV37.css.map +7 -0
- package/client-dist/{terminals.module-73MWV7AD.js → terminals.module-6WKL4IZW.js} +2 -2
- package/client-dist/{voice-notes-poc.module-AQVKDVVI.js → voice-notes-poc.module-AOTJSI74.js} +2 -2
- package/client-dist/{wfs.module-2QEI4QBQ.js → wfs.module-GMJQXV4G.js} +2 -2
- package/package.json +1 -1
- package/client-dist/cc.module-V7UUWHNN.js +0 -4
- package/client-dist/chunk-NMGB6Q45.js +0 -73
- package/client-dist/chunk-NMGB6Q45.js.map +0 -1
- package/client-dist/chunk-YSPF4PQW.js +0 -3
- package/client-dist/chunk-YSPF4PQW.js.map +0 -7
- package/client-dist/orc.module-AHFLHGAC.js +0 -2
- package/client-dist/project-source-routed.module-2NWLCLTD.js +0 -2
- package/client-dist/styles-L7NC2VZH.css +0 -2
- package/client-dist/styles-L7NC2VZH.css.map +0 -7
- /package/client-dist/{agent-instances.module-EN3TUWCP.js.map → agent-instances.module-CPZFUQT2.js.map} +0 -0
- /package/client-dist/{ca.module-GORAHZS3.js.map → ca.module-52URKFMV.js.map} +0 -0
- /package/client-dist/{chunk-RHEQKQT3.js.map → chunk-2PJN4LMV.js.map} +0 -0
- /package/client-dist/{chunk-JB7S5KFM.js.map → chunk-2WRMA5BC.js.map} +0 -0
- /package/client-dist/{chunk-OLBAIJHY.js.map → chunk-3QBHMOST.js.map} +0 -0
- /package/client-dist/{chunk-DQRYQQIF.js.map → chunk-422OSM4X.js.map} +0 -0
- /package/client-dist/{chunk-BI53K7S7.js.map → chunk-47MHSRAJ.js.map} +0 -0
- /package/client-dist/{chunk-SSPO3S2C.js.map → chunk-4Q7WWE4H.js.map} +0 -0
- /package/client-dist/{chunk-5MXK7YEG.js.map → chunk-6FMWDOOY.js.map} +0 -0
- /package/client-dist/{chunk-5M33R74G.js.map → chunk-6WWCUGHJ.js.map} +0 -0
- /package/client-dist/{chunk-LVVC3ZN5.js.map → chunk-6ZIZF7CZ.js.map} +0 -0
- /package/client-dist/{chunk-3YVLAGRH.js.map → chunk-7B5WQKKT.js.map} +0 -0
- /package/client-dist/{chunk-D7OQ7EDV.js.map → chunk-7LAWVJLV.js.map} +0 -0
- /package/client-dist/{chunk-OMGAJHQQ.js.map → chunk-AC463TRS.js.map} +0 -0
- /package/client-dist/{chunk-R7CNI5LG.js.map → chunk-CUU6RSBJ.js.map} +0 -0
- /package/client-dist/{chunk-K3ABKMDH.js.map → chunk-DW2ZYMW2.js.map} +0 -0
- /package/client-dist/{chunk-4QEHZHVD.js.map → chunk-DWXCLFXA.js.map} +0 -0
- /package/client-dist/{chunk-IVJK5V3T.js.map → chunk-E3HTMVME.js.map} +0 -0
- /package/client-dist/{chunk-IXD22FGA.js.map → chunk-HIFOGJPW.js.map} +0 -0
- /package/client-dist/{chunk-PGMQ56NB.js.map → chunk-HOV4WT63.js.map} +0 -0
- /package/client-dist/{chunk-JYN4W4IW.js.map → chunk-I6CZQ5GZ.js.map} +0 -0
- /package/client-dist/{chunk-QDW4DDEH.js.map → chunk-IDDWHJ7Q.js.map} +0 -0
- /package/client-dist/{chunk-6J4SX5W3.js.map → chunk-IZA34XYT.js.map} +0 -0
- /package/client-dist/{chunk-SUOO3ZQQ.js.map → chunk-J3D3HGFW.js.map} +0 -0
- /package/client-dist/{chunk-S6GMI7R3.js.map → chunk-JY7OZT7C.js.map} +0 -0
- /package/client-dist/{chunk-FQGFAUMM.js.map → chunk-KFUZSDOM.js.map} +0 -0
- /package/client-dist/{chunk-N347O4ZR.js.map → chunk-KWFT3MYQ.js.map} +0 -0
- /package/client-dist/{chunk-JA6NJ3HY.js.map → chunk-L656Z3WW.js.map} +0 -0
- /package/client-dist/{chunk-TBE7X4MG.js.map → chunk-M55QIDGE.js.map} +0 -0
- /package/client-dist/{chunk-KU3NFCE3.js.map → chunk-MM4JCYOK.js.map} +0 -0
- /package/client-dist/{chunk-QBRWMKSU.js.map → chunk-NFBWF4SW.js.map} +0 -0
- /package/client-dist/{chunk-DEIALVMK.js.map → chunk-O5HKHY3L.js.map} +0 -0
- /package/client-dist/{chunk-PP73DOUH.js.map → chunk-OVBWEXZY.js.map} +0 -0
- /package/client-dist/{chunk-Y7KI3XKP.js.map → chunk-PONTJYSJ.js.map} +0 -0
- /package/client-dist/{chunk-IE4EXO7F.js.map → chunk-PUZSKF5U.js.map} +0 -0
- /package/client-dist/{chunk-RG4B2EC4.js.map → chunk-PVGZKSSW.js.map} +0 -0
- /package/client-dist/{chunk-ABFHBZMB.js.map → chunk-PWM2DMOJ.js.map} +0 -0
- /package/client-dist/{chunk-PMLUJE5N.js.map → chunk-QYEVQUL7.js.map} +0 -0
- /package/client-dist/{chunk-XWRXJ2PQ.js.map → chunk-R4ZHIFF7.js.map} +0 -0
- /package/client-dist/{chunk-YASHJ2WC.js.map → chunk-S35H7ZNH.js.map} +0 -0
- /package/client-dist/{chunk-SNA7RAMU.js.map → chunk-SDMYA4IA.js.map} +0 -0
- /package/client-dist/{chunk-L65JUKSC.js.map → chunk-UPGF4ROP.js.map} +0 -0
- /package/client-dist/{chunk-UWC76UG2.js.map → chunk-UZAJOMA5.js.map} +0 -0
- /package/client-dist/{chunk-PEHTATOM.js.map → chunk-V5A7WPO3.js.map} +0 -0
- /package/client-dist/{chunk-6R36KJBX.js.map → chunk-VSP7RQUF.js.map} +0 -0
- /package/client-dist/{chunk-6UEKWFBY.js.map → chunk-XRVB3F3U.js.map} +0 -0
- /package/client-dist/{chunk-XWWVDCIV.js.map → chunk-XS72BKOX.js.map} +0 -0
- /package/client-dist/{chunk-C233ZHXW.js.map → chunk-Y2ZI66KH.js.map} +0 -0
- /package/client-dist/{chunk-MUROLI6H.js.map → chunk-YPFYCIYO.js.map} +0 -0
- /package/client-dist/{chunk-GV7SWYVG.js.map → chunk-YQ6HYORB.js.map} +0 -0
- /package/client-dist/{chunk-BMPC7YQQ.js.map → chunk-YXUP4BQR.js.map} +0 -0
- /package/client-dist/{chunk-URBFZBHB.js.map → chunk-YYJX54V7.js.map} +0 -0
- /package/client-dist/{chunk-TOU2FRKB.js.map → chunk-ZIGVWPRQ.js.map} +0 -0
- /package/client-dist/{chunk-BCGCVDWE.js.map → chunk-ZLXT53MV.js.map} +0 -0
- /package/client-dist/{chunk-BT66EBDO.js.map → chunk-ZPU6NXDY.js.map} +0 -0
- /package/client-dist/{consultant.module-YXJGRCVB.js.map → consultant.module-S64RHTRA.js.map} +0 -0
- /package/client-dist/{crd.module-K5IU7FAD.js.map → crd.module-UYKOTPBT.js.map} +0 -0
- /package/client-dist/{dashboard.module-JZHORI36.js.map → dashboard.module-2YFLFOJC.js.map} +0 -0
- /package/client-dist/{do.module-VJDE653T.js.map → do.module-C5LHORRA.js.map} +0 -0
- /package/client-dist/{document-library.module-S7H4MOVL.js.map → document-library.module-IUII2HAX.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-XEHPYHRV.js.map → embedding-eval.module-BUAI7QHS.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-RYDZNKNT.js.map → embedding-registry.module-T3W45OP6.js.map} +0 -0
- /package/client-dist/{err.module-PGJZBINE.js.map → err.module-4I3WGOED.js.map} +0 -0
- /package/client-dist/{feedback.module-LL2MRM2Q.js.map → feedback.module-ZM4XMA33.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-6CUKTPUO.js.map → host-runtime-mcp.module-GVNEDUN4.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-HFCGROXH.js.map → live-dev-pipeline.module-Y4IWCLG3.js.map} +0 -0
- /package/client-dist/{logs.module-DHBSE2KE.js.map → logs.module-KM6ZUTMP.js.map} +0 -0
- /package/client-dist/{main-XCMYEZXM.js.map → main-JAKNTVNO.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-SXSUM2KX.js.map → master-control-remote-poc.module-BKOZBAUK.js.map} +0 -0
- /package/client-dist/{mobile-app.module-VTEZJSGQ.js.map → mobile-app.module-U2OOR5F5.js.map} +0 -0
- /package/client-dist/{model-registry.module-AFGLVYHQ.js.map → model-registry.module-FUF4I6P4.js.map} +0 -0
- /package/client-dist/{oc.module-46CPQK5Q.js.map → oc.module-35L5RB73.js.map} +0 -0
- /package/client-dist/{project-management.module-IO2GKZSD.js.map → project-management.module-RDH6NB4R.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-2NWLCLTD.js.map → project-source-routed.module-AGXVMSIV.js.map} +0 -0
- /package/client-dist/{scheduler.module-SSRON4PT.js.map → scheduler.module-GN46RYWL.js.map} +0 -0
- /package/client-dist/{set.module-PVV66J2Z.js.map → set.module-VVAAS2C6.js.map} +0 -0
- /package/client-dist/{setup.module-RNGQCVLV.js.map → setup.module-5V2UMKHO.js.map} +0 -0
- /package/client-dist/{terminals.module-73MWV7AD.js.map → terminals.module-6WKL4IZW.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-AQVKDVVI.js.map → voice-notes-poc.module-AOTJSI74.js.map} +0 -0
- /package/client-dist/{wfs.module-2QEI4QBQ.js.map → wfs.module-GMJQXV4G.js.map} +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{a as ue}from"./chunk-PP73DOUH.js";import{a as pe}from"./chunk-N347O4ZR.js";import{a as se,b as re}from"./chunk-S6GMI7R3.js";import{a as ce,b as J}from"./chunk-L44637OO.js";import{a as ae}from"./chunk-IXD22FGA.js";import{b as oe}from"./chunk-SNA7RAMU.js";import{d as le}from"./chunk-6UEKWFBY.js";import{g as de}from"./chunk-NMGB6Q45.js";import{a as ie}from"./chunk-FLAJXIYW.js";import{f as G,i as X,n as Z,o as ee,p as te,v as ne}from"./chunk-EO4DNTT4.js";import{p as ye}from"./chunk-WH2RXTQX.js";import{$a as L,C as E,D as v,Fa as r,Ga as y,Ha as _,Ia as U,J as h,K as C,L as O,Q as q,T as Q,Ta as I,U as R,Ua as M,Va as Y,Z as s,aa as b,bb as V,da as f,fa as F,ga as u,h as Ce,hb as S,ia as k,k as P,la as m,mb as z,na as W,oa as T,pa as D,pb as B,qa as a,ra as o,sa as g,ua as w,ub as A,va as x,wa as c}from"./chunk-TBMJSIBB.js";var _e=Ce(ye());var H=(()=>{class i{static SESSION_LIMIT_TYPE="five_hour";static WEEKLY_LIMIT_TYPE="seven_day";static formatResetText(e){if(!e?.resetsAt)return"";let n=new Date(e.resetsAt*1e3),t=new Date,l=n.getTime()-t.getTime();if(l<=0)return"expired";let p=Math.floor(l/6e4),$=Math.floor(p/60),j=p%60;return $>0?`${$}h ${j}m`:`${j}m`}static formatResetTextPrecise(e){if(!e?.resetsAt)return"";let n=new Date(e.resetsAt*1e3),t=new Date,l=Math.floor((n.getTime()-t.getTime())/1e3);if(l<=0)return"expired";let p=Math.floor(l/86400),$=Math.floor(l%86400/3600),j=Math.floor(l%3600/60),he=l%60,N=[];return p&&N.push(`${p}d`),(p||$)&&N.push(`${$}h`),(p||$||j)&&N.push(`${j}m`),N.push(`${he}s`),N.join(" ")}static computeUtilizationPercent(e){if(!e)return 0;let n=typeof e.utilization=="number"?e.utilization:0,t=Math.max(0,Math.min(1,n));return Math.round(t*100)}static computeThresholdPercent(e){if(!e)return 0;let n=typeof e.surpassedThreshold=="number"?e.surpassedThreshold:0,t=Math.max(0,Math.min(1,n));return Math.round(t*100)}static isOverThreshold(e){if(!e)return!1;let n=typeof e.utilization=="number"?e.utilization:0,t=typeof e.surpassedThreshold=="number"?e.surpassedThreshold:1;return n>=t&&t>0}static formatLimitScopeLabel(e){return e?.rateLimitType?e.rateLimitType===i.SESSION_LIMIT_TYPE?"Session":e.rateLimitType===i.WEEKLY_LIMIT_TYPE?"Weekly":e.rateLimitType:""}}return i})();function ge(i,d){if(i&1&&(a(0,"div",0)(1,"span",1),r(2," Rate limit "),o(),a(3,"span",2),r(4,"Scope"),o(),a(5,"span",3),r(6),o(),a(7,"span",2),r(8,"St\xE1tusz"),o(),a(9,"span",3),r(10),o(),a(11,"span",2),r(12,"Utilization"),o(),a(13,"span",4),r(14),o(),a(15,"span",2),r(16,"Reset"),o(),a(17,"span",4),r(18),o(),a(19,"span",2),r(20,"Utols\xF3 \xE9szlel\xE9s"),o(),a(21,"span",5),r(22),L(23,"date"),o()()),i&2){let e=d,n=c();s(6),y(n.limitScopeLabel_$()||"\u2014"),s(3),k("text-neonRed",e.status==="limited")("text-yellow-400",e.status==="allowed_warning")("text-neutral-300",e.status==="allowed"),s(),_(" ",e.status||"\u2014"," "),s(4),_("",n.utilizationPercent_$(),"%"),s(4),y(n.resetText_$()||"\u2014"),s(4),_(" ",V(23,11,e.receivedAt,"yyyy-MM-dd HH:mm:ss")||"\u2014"," ")}}var fe=(()=>{class i{claudeCode_AS=E(se);_ccapId="";set ccapId(e){this._ccapId=e?.trim()??"",this.refreshRateLimitState()}get ccapId(){return this._ccapId}rateLimitInfo_$=b(null);utilizationPercent_$=S(()=>H.computeUtilizationPercent(this.rateLimitInfo_$()));resetText_$=S(()=>H.formatResetText(this.rateLimitInfo_$()));limitScopeLabel_$=S(()=>H.formatLimitScopeLabel(this.rateLimitInfo_$()));refreshRateLimitState(){if(!this._ccapId){this.rateLimitInfo_$.set(null);return}this.claudeCode_AS.getRateLimitState({ccapId:this._ccapId}).then(e=>{let n=re.mapServerItemsToClientInfo(e.items);this.rateLimitInfo_$.set(n)}).catch(e=>{_e.DyFM_Log.warn(`s-cc-rate-limit-info | rate-limit fetch failed | ccapId: ${this._ccapId} | err: ${String(e)}`),this.rateLimitInfo_$.set(null)})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-cc-rate-limit-info"]],inputs:{ccapId:"ccapId"},standalone:!0,features:[I],decls:1,vars:1,consts:[[1,"grid","grid-cols-[minmax(8rem,auto)_1fr]","gap-x-3","gap-y-2","text-xs","text-neutral-200"],[1,"col-span-2","text-[11px]","uppercase","tracking-wider","text-neutral-500"],[1,"text-neutral-500","shrink-0"],[1,"whitespace-nowrap"],[1,"whitespace-nowrap","font-mono"],[1,"font-mono","text-[11px]","whitespace-nowrap"]],template:function(n,t){if(n&1&&f(0,ge,24,14,"div",0),n&2){let l;m((l=t.rateLimitInfo_$())?0:-1,l)}},dependencies:[A,B],encapsulation:2})}return i})();function ve(i,d){if(i&1&&(a(0,"span",1),r(1,"Instance presence"),o(),a(2,"span",4),g(3,"app-s-instance-presence-badge",8),o()),i&2){let e=d;s(3),u("presence",e.presence)("lastHeartbeatAt",e.lastHeartbeatAt)("wsConnected",e.wsConnected)}}function be(i,d){if(i&1&&(a(0,"span",9),r(1,"Run / tev\xE9kenys\xE9g"),o(),a(2,"span",10)(3,"span",11),r(4),o(),a(5,"span",12),r(6),o()(),a(7,"span",1),r(8,"Utols\xF3 aktivit\xE1s"),o(),a(9,"span",13),r(10),L(11,"date"),o(),a(12,"span",1),r(13,"Utols\xF3 \xFCzenet"),o(),a(14,"span",14),r(15),o()),i&2){let e=d;s(4),y(e.activeRunPhase||"\u2014"),s(2),y(e.activitySummary||"\u2014"),s(4),_(" ",V(11,4,e.lastActivityAt,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),s(5),y(e.lastMessage||"\u2014")}}var xe=(()=>{class i{row;presence=void 0;static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-instance-detail-view"]],inputs:{row:"row",presence:"presence"},standalone:!0,features:[I],decls:43,vars:18,consts:[[1,"grid","grid-cols-[minmax(8rem,auto)_1fr]","gap-x-3","gap-y-2","text-xs","text-neutral-200"],[1,"text-neutral-500","shrink-0"],[1,"font-mono","break-all"],[1,"break-all"],[1,"whitespace-nowrap"],[1,"font-mono","whitespace-nowrap"],[1,"mt-2","pt-2","border-t","border-neutral-800"],[3,"ccapId"],[3,"presence","lastHeartbeatAt","wsConnected"],[1,"text-neutral-500","shrink-0","self-start","pt-0.5"],[1,"break-words"],[1,"font-mono","text-[11px]","text-neutral-400","block"],[1,"text-neutral-300"],[1,"font-mono","text-[11px]","whitespace-nowrap"],[1,"break-words","text-neutral-300"]],template:function(n,t){if(n&1&&(a(0,"div",0)(1,"span",1),r(2,"instanceKey"),o(),a(3,"span",2),r(4),o(),a(5,"span",1),r(6,"N\xE9v"),o(),a(7,"span",3),r(8),o(),a(9,"span",1),r(10,"St\xE1tusz"),o(),a(11,"span",4),r(12),o(),f(13,ve,4,3),a(14,"span",1),r(15,"Session presence"),o(),a(16,"span",4),r(17),o(),f(18,be,16,7),a(19,"span",1),r(20,"MAC"),o(),a(21,"span",2),r(22),o(),a(23,"span",1),r(24,"Install path"),o(),a(25,"span",2),r(26),o(),a(27,"span",1),r(28,"hostName"),o(),a(29,"span",3),r(30),o(),a(31,"span",1),r(32,"registry __created"),o(),a(33,"span",5),r(34),L(35,"date"),o(),a(36,"span",1),r(37,"registry __updated"),o(),a(38,"span",5),r(39),L(40,"date"),o()(),a(41,"div",6),g(42,"app-s-cc-rate-limit-info",7),o()),n&2){let l,p;s(4),y(t.row.registry.instanceKey||"\u2014"),s(4),y((t.row.instanceData==null||t.row.instanceData.name==null?null:t.row.instanceData.name.trim())||"\u2014"),s(4),y((t.row.instanceData==null?null:t.row.instanceData.status)||"\u2014"),s(),m((l=t.presence)?13:-1,l),s(4),_(" ",(t.row.instanceData==null||t.row.instanceData.sessionStatuses==null||t.row.instanceData.sessionStatuses[0]==null?null:t.row.instanceData.sessionStatuses[0].presence)||"\u2014"," "),s(),m((p=t.row.instanceData==null||t.row.instanceData.sessionStatuses==null?null:t.row.instanceData.sessionStatuses[0])?18:-1,p),s(4),y(t.row.registry.primaryMacAddress||"\u2014"),s(4),y(t.row.registry.installLocationPath||"\u2014"),s(4),y(t.row.registry.hostName||"\u2014"),s(4),_(" ",V(35,12,t.row.registry.__created,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),s(5),_(" ",V(40,15,t.row.registry.__updated,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),s(3),u("ccapId",t.row.registry.instanceKey||"")}},dependencies:[A,B,fe,J],encapsulation:2})}return i})();var we=(i,d)=>d.instanceKey,Ie=i=>({"bg-ccapAccent/10":i});function $e(i,d){if(i&1&&g(0,"app-s-instance-presence-badge",5),i&2){let e=d;u("presence",e.presence)("lastHeartbeatAt",e.lastHeartbeatAt)("wsConnected",e.wsConnected)("showLabel",!1)}}function Ee(i,d){i&1&&(a(0,"span",6),r(1,"(local)"),o())}function ke(i,d){i&1&&g(0,"span",7)}function Me(i,d){if(i&1){let e=w();a(0,"div",2)(1,"button",4),x("click",function(){let t,l=h(e).$implicit,p=c();return C(p.handleSelectInstance((t=l.instanceKey)!==null&&t!==void 0?t:""))}),f(2,$e,1,4,"app-s-instance-presence-badge",5),r(3),f(4,Ee,2,0,"span",6)(5,ke,1,0,"span",7),o(),a(6,"button",8),x("click",function(){let t,l=h(e).$implicit,p=c();return C(p.handleInfoClick((t=l.instanceKey)!==null&&t!==void 0?t:""))}),r(7," i "),o()()}if(i&2){let e,n=d.$implicit,t=c();s(),k("border-ccapAccent",t.isSelected(n))("text-ccapAccent",t.isSelected(n))("border-neonDefault",!t.isSelected(n))("text-neutral-400",!t.isSelected(n))("hover:text-neutral-200",!t.isSelected(n))("hover:border-neutral-500",!t.isSelected(n)),u("ngClass",Y(17,Ie,t.isSelected(n))),s(),m((e=t.getPresenceForRow(n))?2:-1,e),s(),_(" ",t.getDisplayLabel(n)," "),s(),m(t.isLocal(n)?4:-1),s(),m(t.getActiveSessionForRow(n)?5:-1)}}function Te(i,d){i&1&&(a(0,"span",3),r(1,"loading..."),o())}var Se=(()=>{class i{peiContext_DS=E(ae);presenceMap=new Map;activeSessionMap=new Map;infoRequested=new q;instances_$=S(()=>this.peiContext_DS.instanceList_$());selectedCcapId_$=S(()=>this.peiContext_DS.activeCcapId_$());localKey_$=S(()=>this.peiContext_DS.localInstanceKey_$());ngOnInit(){this.peiContext_DS.initialize()}handleSelectInstance(e){this.peiContext_DS.selectInstance(e)}handleInfoClick(e){this.infoRequested.emit({instanceKey:e})}getDisplayLabel(e){let n=e.hostName??"",t=(e.instanceKey??"").slice(-6);return n?`${n} (${t})`:t||"?"}isSelected(e){return(e.instanceKey??"")===this.selectedCcapId_$()}isLocal(e){return(e.instanceKey??"")===this.localKey_$()}getPresenceForRow(e){let n=e.instanceKey??"";return n?this.presenceMap.get(n)??null:null}getActiveSessionForRow(e){let n=e.instanceKey??"";return n?this.activeSessionMap.get(n)===!0:!1}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-instance-selector"]],hostAttrs:[1,"block"],inputs:{presenceMap:"presenceMap",activeSessionMap:"activeSessionMap"},outputs:{infoRequested:"infoRequested"},standalone:!0,features:[I],decls:6,vars:1,consts:[[1,"flex","gap-1","flex-wrap","items-center"],[1,"text-[10px]","text-neutral-500","mr-1","uppercase","tracking-wider"],[1,"flex","items-center","gap-0.5","group"],[1,"text-[10px]","text-neutral-600","italic"],[1,"px-2","py-0.5","text-[11px]","rounded-full","border","transition-colors","flex","items-center","gap-1",3,"click","ngClass"],[3,"presence","lastHeartbeatAt","wsConnected","showLabel"],[1,"ml-0.5","text-[9px]","text-neutral-500"],["title","Akt\xEDv session fut ezen az instance-en","aria-label","Akt\xEDv session fut ezen az instance-en","data-testid","s-instance-active-session-dot",1,"inline-block","w-1.5","h-1.5","rounded-full","bg-yellow-400","animate-pulse","shrink-0"],["type","button","title","Instance details","aria-label","Show instance details","data-testid","s-instance-selector-info-btn",1,"text-[11px]","leading-none","w-4","h-4","rounded-full","border","border-neutral-700","text-neutral-500","hover:text-ccapAccent","hover:border-ccapAccent","transition-colors","flex","items-center","justify-center",3,"click"]],template:function(n,t){n&1&&(a(0,"div",0)(1,"span",1),r(2,"Instance:"),o(),T(3,Me,8,19,"div",2,we),f(5,Te,2,0,"span",3),o()),n&2&&(s(3),D(t.instances_$()),s(2),m(t.instances_$().length?-1:5))},dependencies:[A,z,J],encapsulation:2})}return i})();function De(i,d){if(i&1&&g(0,"app-s-instance-detail-view",3),i&2){let e=c(2);u("row",d)("presence",e.getPresenceForSelectedRow())}}function Ae(i,d){if(i&1){let e=w();a(0,"app-s-modal",2),x("closed",function(){h(e);let t=c();return C(t.handleModalClosed())}),f(1,De,1,2,"app-s-instance-detail-view",3),o()}if(i&2){let e,n=c();u("isOpen",!0)("title",n.modalTitle_$())("maxWidth","lg"),s(),m((e=n.selectedRow_$())?1:-1,e)}}var Ot=(()=>{class i{instanceRegistry_DS=E(oe);runtimeInstances_DS=E(le);presenceMap=new Map;activeSessionMap=new Map;selectedInstanceKey_$=b(null);viewRows_$=S(()=>ce.buildViewRows(this.instanceRegistry_DS.list_$(),this.runtimeInstances_DS.ccapInstanceList_$()));selectedRow_$=S(()=>{let e=this.selectedInstanceKey_$();return e?this.viewRows_$().find(n=>(n.registry.instanceKey??"")===e)??null:null});isModalOpen_$=S(()=>this.selectedRow_$()!==null);modalTitle_$=S(()=>{let e=this.selectedRow_$();if(!e)return"";let n=e.registry.hostName??"",t=e.registry.instanceKey??"";return n?`Instance \u2014 ${n}`:`Instance \u2014 ${t.slice(-6)||"?"}`});handleInfoRequested(e){this.selectedInstanceKey_$.set(e.instanceKey)}getPresenceForSelectedRow(){let e=this.selectedRow_$();if(!e)return;let n=e.registry.instanceKey??"";if(n)return this.presenceMap.get(n)}handleModalClosed(){this.selectedInstanceKey_$.set(null)}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-instance-chip-row-with-info"]],hostAttrs:[1,"block"],inputs:{presenceMap:"presenceMap",activeSessionMap:"activeSessionMap"},standalone:!0,features:[I],decls:2,vars:3,consts:[[3,"infoRequested","presenceMap","activeSessionMap"],[3,"isOpen","title","maxWidth"],[3,"closed","isOpen","title","maxWidth"],[3,"row","presence"]],template:function(n,t){n&1&&(a(0,"app-s-instance-selector",0),x("infoRequested",function(p){return t.handleInfoRequested(p)}),o(),f(1,Ae,2,4,"app-s-modal",1)),n&2&&(u("presenceMap",t.presenceMap)("activeSessionMap",t.activeSessionMap),s(),m(t.isModalOpen_$()?1:-1))},dependencies:[A,Se,ie,xe],encapsulation:2})}return i})();var Oe=(i,d)=>d._id,Re=()=>["border-neonCyan/60","text-neonCyan","shadow-neon-glow-cyan","hover:border-neonCyan","hover:bg-neonCyan/10"],Fe=()=>["border-neutral-700","text-neutral-600"];function Le(i,d){if(i&1&&(a(0,"span",4),r(1),o()),i&2){let e=c();s(),_(" ",e.sessionJobs_$().length>9?"9+":e.sessionJobs_$().length," ")}}function Ve(i,d){if(i&1&&(a(0,"span",12),r(1),o()),i&2){let e=c().$implicit;s(),_(" ",e.schedule==null?null:e.schedule.preset," ")}}function ze(i,d){if(i&1){let e=w();a(0,"div",9)(1,"div",10)(2,"span",11),r(3),o(),f(4,Ve,2,1,"span",12),o(),a(5,"button",13),x("click",function(){let t=h(e).$implicit,l=c(2);return C(l.handleTriggerNow(t))}),O(),a(6,"svg",14),g(7,"path",15),o()()()}if(i&2){let e,n,t,l,p=d.$implicit,$=c(2);s(2),u("title",(e=p.name)!==null&&e!==void 0?e:""),s(),_(" ",((n=p.name)!==null&&n!==void 0?n:"").trim()||"Unnamed schedule"," "),s(),m(p.schedule!=null&&p.schedule.preset?4:-1),s(),u("disabled",$.busyJobIds_$().has((t=p._id)!==null&&t!==void 0?t:""))("title",$.busyJobIds_$().has((l=p._id)!==null&&l!==void 0?l:"")?"Ind\xEDt\xE1s folyamatban\u2026":"Most futtatni (Trigger Now)")}}function Ke(i,d){if(i&1){let e=w();a(0,"div",5)(1,"div",6)(2,"span",7),r(3),o(),a(4,"button",8),x("click",function(){h(e);let t=c();return C(t.handleToggle())}),r(5," \xD7 "),o()(),T(6,ze,8,5,"div",9,Oe),o()}if(i&2){let e=c();s(3),_(" Schedule (",e.sessionJobs_$().length,") "),s(3),D(e.sessionJobs_$())}}var Kt=(()=>{class i{sessionId=R.required();scheduledJobs_DS=E(pe);isOpen_$=b(!1);busyJobIds_$=b(new Set);sessionJobs_$=S(()=>{let e=(this.sessionId()??"").trim();return e?this.scheduledJobs_DS.jobs_$().filter(t=>t.enabled===!1?!1:(t.target?.payload?.sessionId??"").trim()===e):[]});hasSchedule_$=S(()=>this.sessionJobs_$().length>0);ngOnInit(){this.scheduledJobs_DS.jobs_$().length===0&&this.scheduledJobs_DS.loadAll()}handleToggle(){this.isOpen_$.update(e=>!e)}handleTriggerNow(e){return P(this,null,function*(){let n=(e._id??"").trim();if(n&&!this.busyJobIds_$().has(n)){this.busyJobIds_$.update(t=>{let l=new Set(t);return l.add(n),l});try{yield this.scheduledJobs_DS.triggerNow({jobId:n,reason:"session-overlay-manual"})}finally{this.busyJobIds_$.update(t=>{let l=new Set(t);return l.delete(n),l})}}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-session-schedule-overlay"]],hostAttrs:[1,"absolute","bottom-4","left-0","z-30","pointer-events-none"],inputs:{sessionId:[1,"sessionId"]},standalone:!0,features:[I],decls:6,vars:12,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","Schedule",1,"relative","flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","rounded-r-lg","transition-all","duration-200","ease-out","disabled:cursor-not-allowed",3,"click","disabled","title","ngClass"],["fill","none","stroke","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d",`M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5
|
|
2
|
-
a2 2 0 00-2 2v12a2 2 0 002 2z`],["aria-hidden","true",1,"absolute","-top-1","-right-1","min-w-[14px]","h-[14px]","px-[2px]","bg-neonAmber","text-neutral-900","rounded-full","text-[9px]","font-mono","font-bold","leading-[14px]","text-center","shadow-neon-glow-orange"],[1,"bg-neutral-900","border-2","border-neonCyan/60","rounded-lg","p-3","flex","flex-col","gap-2","min-w-[16rem]","max-w-xs","shadow-neon-glow-cyan"],[1,"flex","items-center","justify-between","gap-2"],[1,"text-[10px]","uppercase","tracking-wider","text-neonCyan","font-mono"],["type","button","title","Bez\xE1r\xE1s","aria-label","Schedule panel bez\xE1r\xE1sa",1,"text-neutral-400","hover:text-neonCyan","leading-none","px-1","transition-colors",3,"click"],[1,"flex","items-center","justify-between","gap-2","border-t","border-neutral-800","pt-2","first:border-t-0","first:pt-0"],[1,"flex","flex-col","min-w-0"],[1,"text-sm","text-neutral-100","truncate",3,"title"],[1,"text-[10px]","text-neutral-500","font-mono"],["type","button","aria-label","Trigger now",1,"shrink-0","flex","items-center","justify-center","w-7","h-7","rounded-full","bg-neutral-900","border-2","border-neonCyan/60","text-neonCyan","hover:border-neonCyan","hover:bg-neonCyan/10","hover:shadow-neon-glow-cyan","disabled:opacity-40","disabled:cursor-not-allowed","transition-all",3,"click","disabled","title"],["fill","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-3.5","h-3.5"],["d","M8 5v14l11-7z"]],template:function(n,t){n&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return t.handleToggle()}),O(),a(2,"svg",2),g(3,"path",3),o(),f(4,Le,2,1,"span",4),o(),f(5,Ke,8,1,"div",5),o()),n&2&&(s(),k("-translate-x-2",!t.isOpen_$())("translate-x-2",t.isOpen_$()),u("disabled",!t.hasSchedule_$())("title",t.hasSchedule_$()?t.isOpen_$()?"Schedule panel bez\xE1r\xE1sa":"Schedule megjelen\xEDt\xE9se ("+t.sessionJobs_$().length+" job)":"Nincs schedule ehhez a sessionh\xF6z")("ngClass",t.hasSchedule_$()?M(10,Re):M(11,Fe)),F("aria-expanded",t.isOpen_$()),s(3),m(t.hasSchedule_$()&&t.sessionJobs_$().length>1?4:-1),s(),m(t.isOpen_$()?5:-1))},dependencies:[z],encapsulation:2})}return i})();function je(i,d){if(i&1){let e=w();a(0,"button",10),x("click",function(){let t=h(e).$implicit,l=c(2);return C(l.handleAction(t))}),r(1),o()}if(i&2){let e=d.$implicit,n=c(2);u("disabled",n.pendingAction_$()===e),s(),_(" ",n.pendingAction_$()===e?"Sending\u2026":e," ")}}function Ne(i,d){if(i&1){let e=w();a(0,"div",4)(1,"div",5)(2,"span",6),r(3," QuickCast "),o(),a(4,"button",7),x("click",function(){h(e);let t=c();return C(t.handleToggle())}),r(5," \xD7 "),o()(),a(6,"div",8),T(7,je,2,2,"button",9,W),o()()}if(i&2){let e=c();s(7),D(e.actions())}}var Jt=(()=>{class i{actions=R(["Go","Continue","OK","Proceed","implement","Review Very Very Carefully","Ensure Documentations","tervezd meg nagyon alaposan \xE9s fejleszd le"]);actionSelected=Q();isOpen_$=b(!1);pendingAction_$=b(null);handleToggle(){this.isOpen_$.update(e=>!e)}handleAction(e){this.pendingAction_$()===null&&(this.pendingAction_$.set(e),this.actionSelected.emit(e),setTimeout(()=>{this.pendingAction_$()===e&&this.pendingAction_$.set(null)},800))}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-session-quickcast-overlay"]],hostAttrs:[1,"absolute","bottom-16","left-0","z-30","pointer-events-none"],inputs:{actions:[1,"actions"]},outputs:{actionSelected:"actionSelected"},standalone:!0,features:[I],decls:5,vars:7,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","QuickCast",1,"flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","border-neonCyan/60","rounded-r-lg","text-neonCyan","shadow-neon-glow-cyan","hover:border-neonCyan","hover:bg-neonCyan/10","transition-all","duration-200","ease-out",3,"click","title"],["fill","none","stroke","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M13 10V3L4 14h7v7l9-11h-7z"],[1,"bg-neutral-900","border-2","border-neonCyan/60","rounded-md","p-1.5","flex","flex-col","gap-1","min-w-[8rem]","max-w-[13rem]","shadow-neon-glow-cyan"],[1,"flex","items-center","justify-between","gap-1"],[1,"text-[10px]","uppercase","tracking-wider","text-neonCyan","font-mono","leading-none"],["type","button","title","Bez\xE1r\xE1s","aria-label","QuickCast panel bez\xE1r\xE1sa",1,"text-neutral-400","hover:text-neonCyan","leading-none","text-xs","px-1","transition-colors",3,"click"],[1,"flex","flex-col","gap-1"],["type","button",1,"px-1.5","py-0.5","rounded","border-2","border-neonCyan/60","text-neonCyan","text-[11px]","font-medium","hover:border-neonCyan","hover:bg-neonCyan/10","hover:shadow-neon-glow-cyan","disabled:opacity-40","disabled:cursor-not-allowed","transition-all","leading-tight",3,"disabled"],["type","button",1,"px-1.5","py-0.5","rounded","border-2","border-neonCyan/60","text-neonCyan","text-[11px]","font-medium","hover:border-neonCyan","hover:bg-neonCyan/10","hover:shadow-neon-glow-cyan","disabled:opacity-40","disabled:cursor-not-allowed","transition-all","leading-tight",3,"click","disabled"]],template:function(n,t){n&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return t.handleToggle()}),O(),a(2,"svg",2),g(3,"path",3),o()(),f(4,Ne,9,0,"div",4),o()),n&2&&(s(),k("-translate-x-2",!t.isOpen_$())("translate-x-2",t.isOpen_$()),u("title",t.isOpen_$()?"QuickCast bez\xE1r\xE1sa":"QuickCast megnyit\xE1sa"),F("aria-expanded",t.isOpen_$()),s(3),m(t.isOpen_$()?4:-1))},encapsulation:2})}return i})();var Pe=(i,d)=>d.provider+":::"+d.modelName,Be=()=>["border-neonAmber/60","text-neonAmber","shadow-neon-glow-orange","hover:border-neonAmber","hover:bg-neonAmber/10"],Je=()=>["border-neutral-700","text-neutral-500","hover:border-neutral-500","hover:bg-neutral-800/50"],He=()=>["border-neonAmber/60","shadow-neon-glow-orange"],qe=()=>["border-neutral-700"],Qe=()=>["text-neonAmber"],We=()=>["text-neutral-400"];function Ue(i,d){if(i&1&&(a(0,"div",10)(1,"span",11),r(2,"provider"),o(),a(3,"span",14),r(4),o()()),i&2){let e=c();s(3),u("title",e.providerName),s(),_(" ",e.providerName," ")}}function Ye(i,d){if(i&1&&(a(0,"div",10)(1,"span",11),r(2,"model"),o(),a(3,"span",14),r(4),o()()),i&2){let e=c();s(3),u("title",e.model),s(),y(e.model)}}function Ge(i,d){if(i&1&&(a(0,"div",10)(1,"span",11),r(2,"workflow"),o(),a(3,"span",14),r(4),o()()),i&2){let e=c();s(3),u("title",e.workflowId),s(),_(" ",e.workflowId," ")}}function Xe(i,d){if(i&1){let e=w();a(0,"div",9)(1,"div",10)(2,"span",11),r(3,"status"),o(),a(4,"span",12),r(5),o()(),f(6,Ue,5,2,"div",10)(7,Ye,5,2,"div",10)(8,Ge,5,2,"div",10),o(),a(9,"button",13),x("click",function(){h(e);let t=c(2);return C(t.handleStop())}),r(10),o()}if(i&2){let e=d,n=c(2);s(5),y(e.status),s(),m(e.providerName?6:-1),s(),m(e.model?7:-1),s(),m(e.workflowId?8:-1),s(),u("disabled",n.isBusy_$()),s(),_(" ",n.isBusy_$()?"Stopping\u2026":"Stop"," ")}}function Ze(i,d){if(i&1&&(a(0,"option",18),r(1),o()),i&2){let e=d.$implicit;u("value",e.provider+":::"+e.modelName),s(),U(" ",e.provider," / ",e.modelName," ")}}function et(i,d){if(i&1){let e=w();a(0,"span",15),r(1," Nincs assigned coordinator \u2014 v\xE1lassz modellt \xE9s kattints az Assign-ra. "),o(),a(2,"select",16),x("ngModelChange",function(t){h(e);let l=c(2);return C(l.selectedModelKey_$.set(t))}),a(3,"option",17),r(4,"\u2014 v\xE1lassz modellt \u2014"),o(),T(5,Ze,2,3,"option",18,Pe),o(),a(7,"button",13),x("click",function(){h(e);let t=c(2);return C(t.handleAssign())}),r(8),o()}if(i&2){let e=c(2);s(2),u("ngModel",e.selectedModelKey_$()),s(3),D(e.modelOptions_$()),s(2),u("disabled",!e.selectedModelKey_$()||e.isBusy_$()),s(),_(" ",e.isBusy_$()?"Assigning\u2026":"Assign"," ")}}function tt(i,d){if(i&1){let e=w();a(0,"div",5)(1,"div",6)(2,"span",7),r(3," Coordinator "),o(),a(4,"button",8),x("click",function(){h(e);let t=c();return C(t.handleToggle())}),r(5," \xD7 "),o()(),f(6,Xe,11,6)(7,et,9,3),o()}if(i&2){let e,n=c();u("ngClass",n.isAssigned_$()?M(3,He):M(4,qe)),s(2),u("ngClass",n.isAssigned_$()?M(5,Qe):M(6,We)),s(4),m((e=n.assignedCoordinator_$())?6:7,e)}}var Zt=(()=>{class i{sessionId=R.required();coordinator_DS=E(ue);registrySsot_CS=E(de);isOpen_$=b(!1);isBusy_$=b(!1);selectedModelKey_$=b("");modelOptions_$=S(()=>this.registrySsot_CS.enabledLlmModels_$());assignedCoordinator_$=S(()=>{let e=(this.sessionId()??"").trim();return!e||!this.coordinator_DS.coordinatedSessionIds_$().has(e)?null:this.coordinator_DS.globalCoordinatorsList_$().find(l=>{let p=(l.sessionId??"").trim(),$=(l.status??"").trim().toLowerCase();return p===e&&$!=="stopped"&&$!=="completed"})??null});isAssigned_$=S(()=>this.assignedCoordinator_$()!==null);ngOnInit(){this.coordinator_DS.globalCoordinatorsList_$().length===0&&this.coordinator_DS.loadAllCoordinatorsForManagementPage(),this.registrySsot_CS.ensureLoaded("llm")}handleToggle(){this.isOpen_$.update(e=>!e)}handleAssign(){return P(this,null,function*(){let e=(this.sessionId()??"").trim(),n=this.selectedModelKey_$().trim();if(!e||!n||this.isBusy_$())return;let t=n.split(":::");if(t.length!==2)return;let l=t[0],p=t[1];if(!(!l||!p)){this.isBusy_$.set(!0);try{yield this.coordinator_DS.startCoordinator({sessionId:e,providerName:l,model:p}),this.coordinator_DS.loadAllCoordinatorsForManagementPage()}finally{this.isBusy_$.set(!1)}}})}handleStop(){return P(this,null,function*(){let e=(this.sessionId()??"").trim();if(!(!e||this.isBusy_$())){this.isBusy_$.set(!0);try{yield this.coordinator_DS.stopCoordinator(e),this.coordinator_DS.loadAllCoordinatorsForManagementPage()}finally{this.isBusy_$.set(!1)}}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=v({type:i,selectors:[["app-s-session-coordinator-overlay"]],hostAttrs:[1,"absolute","bottom-28","left-0","z-30","pointer-events-none"],inputs:{sessionId:[1,"sessionId"]},standalone:!0,features:[I],decls:6,vars:10,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","Coordinator",1,"relative","flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","rounded-r-lg","transition-all","duration-200","ease-out",3,"click","title","ngClass"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"w-4","h-4"],["cx","12","cy","12","r","10"],["points","16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"],[1,"bg-neutral-900","border-2","rounded-lg","p-3","flex","flex-col","gap-2","min-w-[16rem]","max-w-xs",3,"ngClass"],[1,"flex","items-center","justify-between","gap-2"],[1,"text-[10px]","uppercase","tracking-wider","font-mono",3,"ngClass"],["type","button","title","Bez\xE1r\xE1s","aria-label","Coordinator panel bez\xE1r\xE1sa",1,"text-neutral-400","hover:text-neonAmber","leading-none","px-1","transition-colors",3,"click"],[1,"flex","flex-col","gap-1","text-xs"],[1,"flex","justify-between","gap-2"],[1,"text-neutral-500","font-mono","text-[10px]"],[1,"text-neutral-100"],["type","button",1,"self-end","px-2","py-1","rounded","border-2","border-neonAmber/60","text-neonAmber","text-xs","font-medium","hover:bg-neonAmber/10","hover:shadow-neon-glow-orange","disabled:opacity-40","disabled:cursor-not-allowed","transition-all",3,"click","disabled"],[1,"text-neutral-100","truncate",3,"title"],[1,"text-[11px]","text-neutral-400"],[1,"bg-neutral-900","border","border-neutral-700","rounded","px-2","py-1","text-xs","text-neutral-100","focus:outline-none","focus:border-neonAmber/60",3,"ngModelChange","ngModel"],["value","","disabled",""],[3,"value"]],template:function(n,t){if(n&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return t.handleToggle()}),O(),a(2,"svg",2),g(3,"circle",3)(4,"polygon",4),o()(),f(5,tt,8,7,"div",5),o()),n&2){let l;s(),k("-translate-x-2",!t.isOpen_$())("translate-x-2",t.isOpen_$()),u("title",t.isAssigned_$()?t.isOpen_$()?"Coordinator panel bez\xE1r\xE1sa":"Coordinator: "+((l=(l=t.assignedCoordinator_$())==null?null:l.status)!==null&&l!==void 0?l:""):t.isOpen_$()?"Coordinator panel bez\xE1r\xE1sa":"Nincs coordinator \u2014 assign-ol\xE1shoz kattints")("ngClass",t.isAssigned_$()?M(8,Be):M(9,Je)),F("aria-expanded",t.isOpen_$()),s(4),m(t.isOpen_$()?5:-1)}},dependencies:[z,ne,ee,te,Z,G,X],encapsulation:2})}return i})();export{H as a,Ot as b,Kt as c,Jt as d,Zt as e};
|
|
3
|
-
//# sourceMappingURL=chunk-YSPF4PQW.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["src/app/_modules/shared/_components/s-cc-rate-limit-info/s-cc-rate-limit-info.component.ts", "src/app/_modules/shared/_components/s-cc-rate-limit-info/s-cc-rate-limit-info.component.html", "src/app/_modules/external-sessions/_modules/claude-code/_collections/cc-rate-limit-display.util.ts", "src/app/_modules/shared/_components/s-instance-detail-view/s-instance-detail-view.component.ts", "src/app/_modules/shared/_components/s-instance-detail-view/s-instance-detail-view.component.html", "src/app/_modules/shared/_components/s-instance-selector/s-instance-selector.component.ts", "src/app/_modules/shared/_components/s-instance-selector/s-instance-selector.component.html", "src/app/_modules/shared/_components/s-instance-chip-row-with-info/s-instance-chip-row-with-info.component.ts", "src/app/_modules/shared/_components/s-instance-chip-row-with-info/s-instance-chip-row-with-info.component.html", "src/app/_modules/shared/_components/session-ui/s-session-schedule-overlay/s-session-schedule-overlay.component.ts", "src/app/_modules/shared/_components/session-ui/s-session-schedule-overlay/s-session-schedule-overlay.component.html", "src/app/_modules/shared/_components/session-ui/s-session-quickcast-overlay/s-session-quickcast-overlay.component.ts", "src/app/_modules/shared/_components/session-ui/s-session-quickcast-overlay/s-session-quickcast-overlay.component.html", "src/app/_modules/shared/_components/session-ui/s-session-coordinator-overlay/s-session-coordinator-overlay.component.ts", "src/app/_modules/shared/_components/session-ui/s-session-coordinator-overlay/s-session-coordinator-overlay.component.html"],
|
|
4
|
-
"sourcesContent": ["import { Component, computed, inject, Input, Signal, signal, WritableSignal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DyFM_Log } from '@futdevpro/fsm-dynamo';\n\nimport { CcSessionRateLimitInfo_Interface }\n from '../../../external-sessions/_modules/claude-code/_services/cc.data-service.interface';\nimport { CC_RateLimitDisplay_Util }\n from '../../../external-sessions/_modules/claude-code/_collections/cc-rate-limit-display.util';\nimport { CC_RateLimitStateMapper_Util }\n from '../../../external-sessions/_modules/claude-code/_collections/cc-rate-limit-state-mapper.util';\nimport { CC_RateLimitStateServerItem_Response }\n from '../../../external-sessions/_modules/claude-code/_models/interfaces/cc-rate-limit-state-server-item.interface';\nimport { ClaudeCode_ApiService }\n from '../../../external-sessions/_modules/claude-code/_services/claude-code.api-service';\n\n/**\n * REQ-CC-USAGE-001 Slice 1 (cycle 258) — shared CC Session rate-limit info component.\n *\n * Egyetlen forrásból mutatja a per-CCAP-instance rate-limit állapotot, amit korábban\n * a `S_InstanceDetailView_Component` belső blokkja kezelt. A komponens elérhető\n * minden CC Sessions felületről (settings instance popup, session detail metadata,\n * dashboard popup), egyetlen prezentációval — REQ-CC-USAGE-001 fő architecture\n * decision: ne legyen duplikált rate-limit-fetch + display logika.\n *\n * Inputs:\n * - `ccapId` (required) — a célzott CCAP instance kulcsa. Ha üres / undefined,\n * silent skip (nincs blokk).\n *\n * Internal state:\n * - `rateLimitInfo_$` — perzisztált állapot a `GET /cc-session/rate-limit-state/:ccapId`-ról.\n * - Computed signal-ok a CC_RateLimitDisplay_Util formatter-jeiből.\n *\n * Hibakezelés: silent-fail a fetch hibájára (DyFM_Log.warn diagnosztikához), a komponens\n * üres marad — analóg az eredeti `S_InstanceDetailView_Component` viselkedéssel.\n */\n@Component({\n selector: 'app-s-cc-rate-limit-info',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './s-cc-rate-limit-info.component.html',\n})\n/** S_CcRateLimitInfo_Component class — REQ-CC-USAGE-001 Slice 1. */\nexport class S_CcRateLimitInfo_Component {\n\n readonly claudeCode_AS: ClaudeCode_ApiService = inject(ClaudeCode_ApiService);\n\n private _ccapId: string = '';\n\n /** A célzott CCAP instance kulcsa (`ccapId`). Üres → nincs fetch, blokk rejtve. */\n @Input({ required: true })\n set ccapId(value: string) {\n this._ccapId = value?.trim() ?? '';\n this.refreshRateLimitState();\n }\n get ccapId(): string {\n return this._ccapId;\n }\n\n /**\n * Perzisztált rate-limit állapot. `null` ha nincs adat / fetch hibázott.\n */\n readonly rateLimitInfo_$: WritableSignal<CcSessionRateLimitInfo_Interface | null> =\n signal<CcSessionRateLimitInfo_Interface | null>(null);\n\n /** Utilization százalék (computed a rateLimitInfo_$-ból). */\n readonly utilizationPercent_$: Signal<number> = computed((): number => {\n return CC_RateLimitDisplay_Util.computeUtilizationPercent(this.rateLimitInfo_$());\n });\n\n /** Reset countdown szöveg (pl. \"2h 15m\" / \"expired\"). */\n readonly resetText_$: Signal<string> = computed((): string => {\n return CC_RateLimitDisplay_Util.formatResetText(this.rateLimitInfo_$());\n });\n\n /** Limit scope címke (\"Session\" / \"Weekly\" / raw). */\n readonly limitScopeLabel_$: Signal<string> = computed((): string => {\n return CC_RateLimitDisplay_Util.formatLimitScopeLabel(this.rateLimitInfo_$());\n });\n\n /**\n * Rate-limit state frissítése a jelenlegi `ccapId`-hez. Üres kulcs → ürítés.\n * Hibakezelés: silent-fail (DyFM_Log.warn) — a UI üres marad, nincs popup-blokk.\n */\n private refreshRateLimitState(): void {\n if (!this._ccapId) {\n this.rateLimitInfo_$.set(null);\n return;\n }\n\n this.claudeCode_AS.getRateLimitState({ ccapId: this._ccapId })\n .then((result: { items: CC_RateLimitStateServerItem_Response[] }): void => {\n const info: CcSessionRateLimitInfo_Interface | null =\n CC_RateLimitStateMapper_Util.mapServerItemsToClientInfo(result.items);\n this.rateLimitInfo_$.set(info);\n })\n .catch((err: unknown): void => {\n DyFM_Log.warn(\n `s-cc-rate-limit-info | rate-limit fetch failed | ccapId: ${this._ccapId} | err: ${String(err)}`,\n );\n this.rateLimitInfo_$.set(null);\n });\n }\n}\n", "<!-- REQ-CC-USAGE-001 Slice 1: shared CC Session rate-limit info display.\n Csak akkor renderel, ha a szerver tartott fenn rate-limit state-et az adott ccapId-re. -->\n@if (rateLimitInfo_$(); as rl) {\n <div class=\"grid grid-cols-[minmax(8rem,auto)_1fr] gap-x-3 gap-y-2 text-xs text-neutral-200\">\n <span\n class=\"col-span-2 text-[11px] uppercase tracking-wider text-neutral-500\">\n Rate limit\n </span>\n\n <span class=\"text-neutral-500 shrink-0\">Scope</span>\n <span class=\"whitespace-nowrap\">{{ limitScopeLabel_$() || '—' }}</span>\n\n <span class=\"text-neutral-500 shrink-0\">Státusz</span>\n <span\n class=\"whitespace-nowrap\"\n [class.text-neonRed]=\"rl.status === 'limited'\"\n [class.text-yellow-400]=\"rl.status === 'allowed_warning'\"\n [class.text-neutral-300]=\"rl.status === 'allowed'\">\n {{ rl.status || '—' }}\n </span>\n\n <span class=\"text-neutral-500 shrink-0\">Utilization</span>\n <span class=\"whitespace-nowrap font-mono\">{{ utilizationPercent_$() }}%</span>\n\n <span class=\"text-neutral-500 shrink-0\">Reset</span>\n <span class=\"whitespace-nowrap font-mono\">{{ resetText_$() || '—' }}</span>\n\n <span class=\"text-neutral-500 shrink-0\">Utolsó észlelés</span>\n <span class=\"font-mono text-[11px] whitespace-nowrap\">\n {{ (rl.receivedAt | date:'yyyy-MM-dd HH:mm:ss') || '—' }}\n </span>\n </div>\n}\n", "import { CcSessionRateLimitInfo_Interface } from '../_services/cc.data-service.interface';\n\n/**\n * CC Session rate limit UI segédmetódusok.\n * Közös képlettár a metadata popover, az Agent Update status-update sáv és a top banner számára.\n * A `utilization` és `surpassedThreshold` az új rate_limit_event payload mezőiből jön (0..1).\n */\nexport class CC_RateLimitDisplay_Util {\n\n /** Session (per-conversation) limit azonosítója a rate_limit_event.rateLimitType mezőben. */\n static readonly SESSION_LIMIT_TYPE: string = 'five_hour';\n\n /** Weekly (7 napos) limit azonosítója a rate_limit_event.rateLimitType mezőben. */\n static readonly WEEKLY_LIMIT_TYPE: string = 'seven_day';\n\n /**\n * Relatív reset szöveg (rövid forma: \"2h 15m\" / \"8m\" / \"expired\").\n * A metadata gomb és a status-update pirula használja.\n */\n static formatResetText(info: CcSessionRateLimitInfo_Interface | null): string {\n if (!info?.resetsAt) {\n return '';\n }\n const resetDate: Date = new Date(info.resetsAt * 1000);\n const now: Date = new Date();\n const diffMs: number = resetDate.getTime() - now.getTime();\n if (diffMs <= 0) {\n return 'expired';\n }\n const diffMin: number = Math.floor(diffMs / 60000);\n const hours: number = Math.floor(diffMin / 60);\n const mins: number = diffMin % 60;\n return hours > 0 ? `${hours}h ${mins}m` : `${mins}m`;\n }\n\n /**\n * Pontos reset szöveg napok/órák/percek/másodperc bontásban (pl. \"6d 11h 45m 12s\").\n * A top banner használja — a user kérte, hogy pontosan lássa, mikor ér véget a limit.\n */\n static formatResetTextPrecise(info: CcSessionRateLimitInfo_Interface | null): string {\n if (!info?.resetsAt) {\n return '';\n }\n const resetDate: Date = new Date(info.resetsAt * 1000);\n const now: Date = new Date();\n const diffSec: number = Math.floor((resetDate.getTime() - now.getTime()) / 1000);\n if (diffSec <= 0) {\n return 'expired';\n }\n const days: number = Math.floor(diffSec / 86400);\n const hours: number = Math.floor((diffSec % 86400) / 3600);\n const mins: number = Math.floor((diffSec % 3600) / 60);\n const secs: number = diffSec % 60;\n const parts: string[] = [];\n if (days) {\n parts.push(`${days}d`);\n }\n if (days || hours) {\n parts.push(`${hours}h`);\n }\n if (days || hours || mins) {\n parts.push(`${mins}m`);\n }\n parts.push(`${secs}s`);\n return parts.join(' ');\n }\n\n /**\n * Utilization százalék (0..100, egész szám).\n * Közvetlenül a payload `utilization` mezőjéből (0..1) — nem becslés, hanem a CLI által jelentett érték.\n */\n static computeUtilizationPercent(info: CcSessionRateLimitInfo_Interface | null): number {\n if (!info) {\n return 0;\n }\n const raw: number = typeof info.utilization === 'number' ? info.utilization : 0;\n const clamped: number = Math.max(0, Math.min(1, raw));\n return Math.round(clamped * 100);\n }\n\n /**\n * Threshold százalék (0..100, egész szám).\n * A küszöb, ami felett warning/limited státusz aktiválódik.\n */\n static computeThresholdPercent(info: CcSessionRateLimitInfo_Interface | null): number {\n if (!info) {\n return 0;\n }\n const raw: number = typeof info.surpassedThreshold === 'number' ? info.surpassedThreshold : 0;\n const clamped: number = Math.max(0, Math.min(1, raw));\n return Math.round(clamped * 100);\n }\n\n /**\n * Igaz, ha a jelenlegi utilization átlépte a threshold-ot (warning banner triggere).\n */\n static isOverThreshold(info: CcSessionRateLimitInfo_Interface | null): boolean {\n if (!info) {\n return false;\n }\n const util: number = typeof info.utilization === 'number' ? info.utilization : 0;\n const thr: number = typeof info.surpassedThreshold === 'number' ? info.surpassedThreshold : 1;\n return util >= thr && thr > 0;\n }\n\n /**\n * Limit scope emberbarát címke — \"Session\" (five_hour) vagy \"Weekly\" (seven_day) vagy a nyers érték.\n * A user kérte, hogy a banner egyértelműen jelezze, melyik limitről van szó.\n */\n static formatLimitScopeLabel(info: CcSessionRateLimitInfo_Interface | null): string {\n if (!info?.rateLimitType) {\n return '';\n }\n if (info.rateLimitType === CC_RateLimitDisplay_Util.SESSION_LIMIT_TYPE) {\n return 'Session';\n }\n if (info.rateLimitType === CC_RateLimitDisplay_Util.WEEKLY_LIMIT_TYPE) {\n return 'Weekly';\n }\n return info.rateLimitType;\n }\n}\n", "import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Set_InstanceRegistryViewRow_Interface }\n from '../../../config/_modules/settings/_models/interfaces/set-instance-registry-view-row.interface';\nimport { S_CcRateLimitInfo_Component } from '../s-cc-rate-limit-info/s-cc-rate-limit-info.component';\nimport { S_InstancePresenceBadge_Component } from '../s-instance-presence-badge/s-instance-presence-badge.component';\nimport { EXS_InstancePresenceInfo_ClientInterface } from '../../../external-sessions/_services/data-services/exs-instance-presence-info.interface';\n\n/**\n * REQ-UI-INST-001 Slice 1 + REQ-CC-RATE-002 part (a) — megosztott instance detail view.\n *\n * Egy registry ViewRow mezőit jeleníti meg label/value grid-ben. Read-only view.\n * Cél: (a) a Settings táblázat sor-kibontásaként, és (b) a chip-info popup\n * tartalmaként — ugyanaz a layout / SSOT (REQ-UI-INST-001).\n *\n * **REQ-CC-RATE-002 part (a)** + **REQ-CC-USAGE-001 Slice 1 (cycle 258)**:\n * a rate-limit blokk delegálva van a `S_CcRateLimitInfo_Component`-re — egyetlen\n * forrás ezen logikának, így minden CC Sessions felület ugyanazt a komponenst\n * használja. A korábbi belső fetch + signal-állítás logika átkerült az új komponensbe.\n *\n * Template date formázás: Angular built-in `date` pipe — nincs metódushívás (CLAUDE.md).\n */\n@Component({\n selector: 'app-s-instance-detail-view',\n standalone: true,\n imports: [CommonModule, S_CcRateLimitInfo_Component, S_InstancePresenceBadge_Component],\n templateUrl: './s-instance-detail-view.component.html',\n})\n/** S_InstanceDetailView_Component class. */\nexport class S_InstanceDetailView_Component {\n\n /** A megjelenítendő ViewRow (registry + opcionális instanceData). */\n @Input({ required: true })\n row!: Set_InstanceRegistryViewRow_Interface;\n\n /**\n * REQ-INST-STATE-001 Slice 5b (cycle 695) — opcionális presence info a\n * detail-view badge-éhez. Parent-injection pattern (lásd s-instance-selector\n * jsdoc): a SZÜLŐ-komponens szolgáltatja a presence-info-t, így a detail-view\n * NEM inject-eli a `ExS_InstancePresence_DataService`-t (HttpClient chain\n * elkerülés). Ha undefined → nincs badge sor (backward-compatible).\n */\n @Input()\n presence: EXS_InstancePresenceInfo_ClientInterface | undefined = undefined;\n}\n", "<!-- REQ-UI-INST-001 Slice 1: instance detail SSOT view — label/value grid -->\n<div class=\"grid grid-cols-[minmax(8rem,auto)_1fr] gap-x-3 gap-y-2 text-xs text-neutral-200\">\n\n <!-- Registry basics -->\n <span class=\"text-neutral-500 shrink-0\">instanceKey</span>\n <span class=\"font-mono break-all\">{{ row.registry.instanceKey || '—' }}</span>\n\n <span class=\"text-neutral-500 shrink-0\">Név</span>\n <span class=\"break-all\">{{ (row.instanceData?.name?.trim()) || '—' }}</span>\n\n <span class=\"text-neutral-500 shrink-0\">Státusz</span>\n <span class=\"whitespace-nowrap\">{{ row.instanceData?.status || '—' }}</span>\n\n <!-- REQ-INST-STATE-001 Slice 5b (cycle 695): instance presence badge — csak\n akkor jelenik meg, ha a szülő szolgáltatott `presence` Input-ot\n (parent-injection pattern). -->\n @if (presence; as p) {\n <span class=\"text-neutral-500 shrink-0\">Instance presence</span>\n <span class=\"whitespace-nowrap\">\n <app-s-instance-presence-badge\n [presence]=\"p.presence\"\n [lastHeartbeatAt]=\"p.lastHeartbeatAt\"\n [wsConnected]=\"p.wsConnected\"\n />\n </span>\n }\n\n <span class=\"text-neutral-500 shrink-0\">Session presence</span>\n <span class=\"whitespace-nowrap\">\n {{ row.instanceData?.sessionStatuses?.[0]?.presence || '—' }}\n </span>\n\n <!-- Aktivitás / run -->\n @if (row.instanceData?.sessionStatuses?.[0]; as ss) {\n <span class=\"text-neutral-500 shrink-0 self-start pt-0.5\">Run / tevékenység</span>\n <span class=\"break-words\">\n <span class=\"font-mono text-[11px] text-neutral-400 block\">{{ ss.activeRunPhase || '—' }}</span>\n <span class=\"text-neutral-300\">{{ ss.activitySummary || '—' }}</span>\n </span>\n\n <span class=\"text-neutral-500 shrink-0\">Utolsó aktivitás</span>\n <span class=\"font-mono text-[11px] whitespace-nowrap\">\n {{ (ss.lastActivityAt | date:'yyyy-MM-dd HH:mm:ss') || '—' }}\n </span>\n\n <span class=\"text-neutral-500 shrink-0\">Utolsó üzenet</span>\n <span class=\"break-words text-neutral-300\">{{ ss.lastMessage || '—' }}</span>\n }\n\n <!-- Hardware / hoszt / telepítés -->\n <span class=\"text-neutral-500 shrink-0\">MAC</span>\n <span class=\"font-mono break-all\">{{ row.registry.primaryMacAddress || '—' }}</span>\n\n <span class=\"text-neutral-500 shrink-0\">Install path</span>\n <span class=\"font-mono break-all\">{{ row.registry.installLocationPath || '—' }}</span>\n\n <span class=\"text-neutral-500 shrink-0\">hostName</span>\n <span class=\"break-all\">{{ row.registry.hostName || '—' }}</span>\n\n <!-- Registry metadata (DyFM_Metadata) -->\n <span class=\"text-neutral-500 shrink-0\">registry __created</span>\n <span class=\"font-mono whitespace-nowrap\">\n {{ (row.registry.__created | date:'yyyy-MM-dd HH:mm:ss') || '—' }}\n </span>\n\n <span class=\"text-neutral-500 shrink-0\">registry __updated</span>\n <span class=\"font-mono whitespace-nowrap\">\n {{ (row.registry.__updated | date:'yyyy-MM-dd HH:mm:ss') || '—' }}\n </span>\n\n\n</div>\n\n<!-- REQ-CC-RATE-002 part (a) + REQ-CC-USAGE-001 Slice 1 (cycle 258): rate-limit blokk\n a megosztott s-cc-rate-limit-info komponensben. A registry instanceKey-ből\n fetch-eli + render-eli, csak akkor látszik, ha a szerver tartott fenn state-et. -->\n<div class=\"mt-2 pt-2 border-t border-neutral-800\">\n <app-s-cc-rate-limit-info [ccapId]=\"row.registry.instanceKey || ''\" />\n</div>\n", "import { Component, computed, EventEmitter, inject, Input, OnInit, Output, Signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ExS_InstanceContext_DataService } from '../../../external-sessions/_services/exs-instance-context.data-service';\nimport { ExS_InstanceRegistryRow_Response } from '../../../external-sessions/_services/exs-instance-registry-row.interface';\nimport { EXS_InstancePresenceInfo_ClientInterface } from '../../../external-sessions/_services/data-services/exs-instance-presence-info.interface';\nimport { S_InstancePresenceBadge_Component } from '../s-instance-presence-badge/s-instance-presence-badge.component';\n\n/**\n * Instance-szelektor pill/dropdown: a session listák tetején jelenik meg,\n * lehetővé téve a felhasználó számára, hogy másik CCAP instance session-jeit kezelje.\n * A kiválasztott ccapId a `ExS_InstanceContext_DataService.selectedCcapId_$` signal-ba kerül.\n * Standalone component — bármelyik modul importálhatja.\n * REQ-PEI-016 §15.3.\n */\n@Component({\n selector: 'app-s-instance-selector',\n standalone: true,\n imports: [CommonModule, S_InstancePresenceBadge_Component],\n templateUrl: './s-instance-selector.component.html',\n host: { class: 'block' },\n})\n/** S_InstanceSelector_Component class. */\nexport class S_InstanceSelector_Component implements OnInit {\n\n readonly peiContext_DS: ExS_InstanceContext_DataService =\n inject(ExS_InstanceContext_DataService);\n\n /**\n * REQ-INST-STATE-001 Slice 5b (cycle 695) — opcionális presence map a chip\n * badge-ekhez. Parent-injection pattern: a selector NEM inject-eli a\n * `ExS_InstancePresence_DataService`-t (mert az HttpClient injection chain-t\n * von vele, ami 63 spec-ben tört volna). Helyette a SZÜLŐ-komponens\n * gondoskodik a presence map szolgáltatásáról:\n *\n * ```html\n * <app-s-instance-selector [presenceMap]=\"presence_DS.instancePresenceMap_$()\" />\n * ```\n *\n * Ha nincs megadva (default empty Map) → nincs badge a chip-eken\n * (backward-compatible meglévő használókkal).\n */\n @Input()\n presenceMap: Map<string, EXS_InstancePresenceInfo_ClientInterface> = new Map();\n\n /**\n * REQ-UI-INST-CHIP-INDICATORS-001 part 2 (USER-INPUT_4 2. tétel) — Slice 1\n * plumbing: parent-injection map a chip-szintű \"van aktív session\" sárga\n * dot indikátorhoz. Kulcs az `instanceKey`, érték `true`, ha az adott\n * instance-en legalább egy CC / CCAP / CA / OC session running-like\n * státuszban van. Default empty Map → no dot → backward-compat.\n *\n * A selector NEM származtatja saját maga a flag-et, mert az session-\n * lista DS-ek injektálása ugyanazt a HttpClient cascade failure-t okozná,\n * mint cycle 695-ben a presence_DS-szel. A parent-komponens (pl. cc-\n * dashboard, ses-list, set-agent) felel a map összerakásáért és átadásáért.\n */\n @Input()\n activeSessionMap: Map<string, boolean> = new Map();\n\n /**\n * Info ikon klikk event — REQ-UI-INST-001 Slice 3.\n * A szülő komponens ezt fogja használni, hogy a megadott instance-hez popup-ot nyisson\n * a megosztott S_InstanceDetailView_Component tartalmával (Slice 4 composite wrapper).\n */\n @Output() infoRequested: EventEmitter<{ instanceKey: string }> =\n new EventEmitter<{ instanceKey: string }>();\n\n /**\n * Instance lista pill-ekhez: registry-ből, online/offline jelzéssel.\n */\n readonly instances_$: Signal<ExS_InstanceRegistryRow_Response[]> = computed(\n (): ExS_InstanceRegistryRow_Response[] => this.peiContext_DS.instanceList_$(),\n );\n\n /**\n * Aktuálisan kiválasztott ccapId.\n */\n readonly selectedCcapId_$: Signal<string> = computed(\n (): string => this.peiContext_DS.activeCcapId_$(),\n );\n\n /**\n * Lokális instance key (a „saját\" instance kiemeléshez).\n */\n readonly localKey_$: Signal<string> = computed(\n (): string => this.peiContext_DS.localInstanceKey_$(),\n );\n\n ngOnInit(): void {\n void this.peiContext_DS.initialize();\n }\n\n /**\n * Instance pill kattintás handler.\n */\n handleSelectInstance(ccapId: string): void {\n this.peiContext_DS.selectInstance(ccapId);\n }\n\n /**\n * Info ikon klikk handler — REQ-UI-INST-001 Slice 3.\n * Nem változtat selectedCcapId-t; csak a `infoRequested` Output-ot emittálja,\n * hogy a szülő egy popup-ban megjelenítse a megadott instance registry-detail-jét.\n */\n handleInfoClick(instanceKey: string): void {\n this.infoRequested.emit({ instanceKey: instanceKey });\n }\n\n /**\n * Instance megjelenítési név: hostName (utolsó 6 karakter az instanceKey-ből).\n */\n getDisplayLabel(row: ExS_InstanceRegistryRow_Response): string {\n const host: string = row.hostName ?? '';\n const keySuffix: string = (row.instanceKey ?? '').slice(-6);\n if (host) {\n return `${host} (${keySuffix})`;\n }\n return keySuffix || '?';\n }\n\n /**\n * Instance az aktuálisan kiválasztott-e.\n */\n isSelected(row: ExS_InstanceRegistryRow_Response): boolean {\n return (row.instanceKey ?? '') === this.selectedCcapId_$();\n }\n\n /**\n * Instance a lokális-e (saját szerver).\n */\n isLocal(row: ExS_InstanceRegistryRow_Response): boolean {\n return (row.instanceKey ?? '') === this.localKey_$();\n }\n\n /**\n * REQ-INST-STATE-001 Slice 5b: presence info lekérése a map-ből.\n * Ha az instanceKey nincs a map-ben (parent nem szolgáltatott vagy még\n * nem refresh-elt), `null`-t ad vissza — a template ekkor nem rendel\n * badge-t. Ez backward-compatible: a meglévő használók empty map-pel\n * → null → no badge → változatlan render.\n */\n getPresenceForRow(row: ExS_InstanceRegistryRow_Response): EXS_InstancePresenceInfo_ClientInterface | null {\n const key: string = row.instanceKey ?? '';\n if (!key) {\n return null;\n }\n return this.presenceMap.get(key) ?? null;\n }\n\n /**\n * REQ-UI-INST-CHIP-INDICATORS-001 part 2: active-session flag lekérése a\n * map-ből. Üres key vagy nincs entry → false (no dot). Backward-compat:\n * meglévő használók empty map-pel → minden row false → változatlan render.\n */\n getActiveSessionForRow(row: ExS_InstanceRegistryRow_Response): boolean {\n const key: string = row.instanceKey ?? '';\n if (!key) {\n return false;\n }\n return this.activeSessionMap.get(key) === true;\n }\n}\n", "<!-- Instance-szelektor pill sor (REQ-PEI-016 §15.3) -->\n<div class=\"flex gap-1 flex-wrap items-center\">\n <span class=\"text-[10px] text-neutral-500 mr-1 uppercase tracking-wider\">Instance:</span>\n\n @for (instance of instances_$(); track instance.instanceKey) {\n <!-- Chip + info icon csoport — REQ-UI-INST-001 Slice 3. Két külön <button>,\n mert a HTML nem engedi a button-in-button-t. REQ-INST-STATE-001\n Slice 5b (cycle 695): presence dot a chip előtt, ha a parent\n szolgáltatott `presenceMap`-et. -->\n <div class=\"flex items-center gap-0.5 group\">\n <button\n class=\"px-2 py-0.5 text-[11px] rounded-full border transition-colors flex items-center gap-1\"\n [class.border-ccapAccent]=\"isSelected(instance)\"\n [class.text-ccapAccent]=\"isSelected(instance)\"\n [ngClass]=\"{'bg-ccapAccent/10': isSelected(instance)}\"\n [class.border-neonDefault]=\"!isSelected(instance)\"\n [class.text-neutral-400]=\"!isSelected(instance)\"\n [class.hover:text-neutral-200]=\"!isSelected(instance)\"\n [class.hover:border-neutral-500]=\"!isSelected(instance)\"\n (click)=\"handleSelectInstance(instance.instanceKey ?? '')\">\n @if (getPresenceForRow(instance); as p) {\n <app-s-instance-presence-badge\n [presence]=\"p.presence\"\n [lastHeartbeatAt]=\"p.lastHeartbeatAt\"\n [wsConnected]=\"p.wsConnected\"\n [showLabel]=\"false\"\n />\n }\n {{ getDisplayLabel(instance) }}\n @if (isLocal(instance)) {\n <span class=\"ml-0.5 text-[9px] text-neutral-500\">(local)</span>\n }\n @if (getActiveSessionForRow(instance)) {\n <!-- REQ-UI-INST-CHIP-INDICATORS-001 part 2: sárga spinning dot,\n ha az adott instance-en aktív session fut. -->\n <span class=\"inline-block w-1.5 h-1.5 rounded-full bg-yellow-400 animate-pulse shrink-0\"\n title=\"Aktív session fut ezen az instance-en\"\n aria-label=\"Aktív session fut ezen az instance-en\"\n data-testid=\"s-instance-active-session-dot\"></span>\n }\n </button>\n <button\n type=\"button\"\n class=\"text-[11px] leading-none w-4 h-4 rounded-full border border-neutral-700 text-neutral-500 hover:text-ccapAccent hover:border-ccapAccent transition-colors flex items-center justify-center\"\n title=\"Instance details\"\n aria-label=\"Show instance details\"\n data-testid=\"s-instance-selector-info-btn\"\n (click)=\"handleInfoClick(instance.instanceKey ?? '')\">\n i\n </button>\n </div>\n }\n\n @if (!instances_$().length) {\n <span class=\"text-[10px] text-neutral-600 italic\">loading...</span>\n }\n</div>\n", "import { Component, computed, inject, Input, signal, Signal, WritableSignal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ExS_InstanceRegistry_DataService } from '../../../external-sessions/_services/exs-instance-registry.data-service';\nimport { ExS_RuntimeInstances_DataService } from '../../../external-sessions/_services/data-services/exs-runtime-instances.data-service';\nimport { EXS_InstancePresenceInfo_ClientInterface } from '../../../external-sessions/_services/data-services/exs-instance-presence-info.interface';\nimport { Set_InstanceRegistryViewRows_Util } from '../../../config/_modules/settings/_collections/set-instance-registry-view-rows.util';\nimport { Set_InstanceRegistryViewRow_Interface } from '../../../config/_modules/settings/_models/interfaces/set-instance-registry-view-row.interface';\nimport { S_InstanceDetailView_Component } from '../s-instance-detail-view/s-instance-detail-view.component';\nimport { S_InstanceSelector_Component } from '../s-instance-selector/s-instance-selector.component';\nimport { S_Modal_Component } from '../s-modal/s-modal.component';\n\n/**\n * REQ-UI-INST-001 Slice 4 — composite wrapper: instance chip-sor + info-popup host.\n *\n * A komponens magában tartja az info-popup state-et (`selectedInstanceKey_$`),\n * fog-adja a gyerek `S_InstanceSelector_Component` `infoRequested` eventjét, és\n * a kiválasztott instance-hez a Settings-beli SSOT ViewRow-t (`Set_InstanceRegistryViewRow_Interface`)\n * betölti a megosztott `S_InstanceDetailView_Component`-be egy `s-modal` popup-ban.\n *\n * A chip-sor main click-je (instance select) változatlanul a `S_InstanceSelector_Component`\n * belsejében marad — ez a wrapper csak a popup-ot adja hozzá. A parent komponensek\n * (`ses-list`, `cc-dashboard`, `ca-dashboard`, `oc-dashboard`, `set-agent`) Slice 5-ben állnak át\n * erre a wrapperre.\n */\n@Component({\n selector: 'app-s-instance-chip-row-with-info',\n standalone: true,\n imports: [\n CommonModule,\n S_InstanceSelector_Component,\n S_Modal_Component,\n S_InstanceDetailView_Component,\n ],\n templateUrl: './s-instance-chip-row-with-info.component.html',\n host: { class: 'block' },\n})\n/** S_InstanceChipRowWithInfo_Component class. */\nexport class S_InstanceChipRowWithInfo_Component {\n\n readonly instanceRegistry_DS: ExS_InstanceRegistry_DataService =\n inject(ExS_InstanceRegistry_DataService);\n\n readonly runtimeInstances_DS: ExS_RuntimeInstances_DataService =\n inject(ExS_RuntimeInstances_DataService);\n\n /**\n * REQ-INST-STATE-001 Slice 5b consumer wire-up + REQ-UI-INST-CHIP-INDICATORS-001\n * (cycle 706, USER-INPUT_4 user-prio): a parent komponens szolgáltathatja a\n * presence map-et, amit a wrapper továbbítja a selector + detail-view\n * gyerekkomponenseknek. Default empty Map → no badge → backward-compat\n * a 19+ consumer-spec-tel.\n *\n * A wrapper NEM inject-eli a presence_DS-t, mert az HttpClient injection\n * chain failure-t okozna a downstream specekben (cycle 698 tanulság).\n * A consumer (parent) felel a presence_DS injection-ért és a presenceMap\n * átadásáért.\n */\n @Input()\n presenceMap: Map<string, EXS_InstancePresenceInfo_ClientInterface> = new Map();\n\n /**\n * REQ-UI-INST-CHIP-INDICATORS-001 part 2 (USER-INPUT_4 2. tétel) — Slice 1:\n * parent-injection map a chip-szintű \"van aktív session\" sárga dot\n * indikátorhoz. A wrapper csak átengedi a selector gyerekkomponensnek;\n * a tényleges aggregálást a parent (cc-dashboard / ses-list / set-agent)\n * felel össze a session lista DS-ek alapján. Default empty Map → no dot.\n */\n @Input()\n activeSessionMap: Map<string, boolean> = new Map();\n\n /**\n * A popup-hoz kiválasztott instance key (null = zárt modal).\n */\n readonly selectedInstanceKey_$: WritableSignal<string | null> =\n signal<string | null>(null);\n\n /**\n * Registry + instance_data join ViewRow lista (SSOT: Set_InstanceRegistryViewRows_Util).\n * Ugyanaz az adatforrás, mint a Settings → Instances táblázat.\n */\n readonly viewRows_$: Signal<Set_InstanceRegistryViewRow_Interface[]> = computed(\n (): Set_InstanceRegistryViewRow_Interface[] =>\n Set_InstanceRegistryViewRows_Util.buildViewRows(\n this.instanceRegistry_DS.list_$(),\n this.runtimeInstances_DS.ccapInstanceList_$(),\n ),\n );\n\n /**\n * A kiválasztott instance-hez tartozó ViewRow, vagy null ha nincs egyezés.\n */\n readonly selectedRow_$: Signal<Set_InstanceRegistryViewRow_Interface | null> = computed(\n (): Set_InstanceRegistryViewRow_Interface | null => {\n const key: string | null = this.selectedInstanceKey_$();\n if (!key) {\n return null;\n }\n return this.viewRows_$().find(\n (row: Set_InstanceRegistryViewRow_Interface): boolean =>\n (row.registry.instanceKey ?? '') === key,\n ) ?? null;\n },\n );\n\n /**\n * Modal nyitva akkor és csak akkor, ha van kiválasztott ViewRow.\n */\n readonly isModalOpen_$: Signal<boolean> = computed(\n (): boolean => this.selectedRow_$() !== null,\n );\n\n /**\n * Modal cím — instance hostName vagy instanceKey-suffix.\n */\n readonly modalTitle_$: Signal<string> = computed((): string => {\n const row: Set_InstanceRegistryViewRow_Interface | null = this.selectedRow_$();\n if (!row) {\n return '';\n }\n const host: string = row.registry.hostName ?? '';\n const key: string = row.registry.instanceKey ?? '';\n if (host) {\n return `Instance — ${host}`;\n }\n return `Instance — ${key.slice(-6) || '?'}`;\n });\n\n /**\n * Gyerek chip-sor `infoRequested` handler — megnyitja a popup-ot.\n */\n handleInfoRequested(event: { instanceKey: string }): void {\n this.selectedInstanceKey_$.set(event.instanceKey);\n }\n\n /**\n * REQ-INST-STATE-001 Slice 5b: a kiválasztott row presence info-ja a\n * detail-view számára. Cached lookup a presenceMap-ből; ha nincs entry\n * → undefined (detail-view template @if nem render-eli az \"Instance\n * presence\" sort).\n */\n getPresenceForSelectedRow(): EXS_InstancePresenceInfo_ClientInterface | undefined {\n const row: Set_InstanceRegistryViewRow_Interface | null = this.selectedRow_$();\n if (!row) {\n return undefined;\n }\n const key: string = row.registry.instanceKey ?? '';\n if (!key) {\n return undefined;\n }\n return this.presenceMap.get(key);\n }\n\n /**\n * Modal close handler — bezárja a popup-ot (X / Escape / backdrop).\n */\n handleModalClosed(): void {\n this.selectedInstanceKey_$.set(null);\n }\n}\n", "<!-- REQ-UI-INST-001 Slice 4: instance chip-sor + info popup host (composite wrapper).\n REQ-INST-STATE-001 Slice 5b consumer + REQ-UI-INST-CHIP-INDICATORS-001\n (cycle 706 part 1 + cycle 709 part 2): presenceMap = chip presence dot-ok\n (zöld/sárga/szürke); activeSessionMap = sárga spinning \"aktív session\"\n dot. Mindkettő parent-injection (default empty Map → no dot). -->\n<app-s-instance-selector\n [presenceMap]=\"presenceMap\"\n [activeSessionMap]=\"activeSessionMap\"\n (infoRequested)=\"handleInfoRequested($event)\" />\n\n@if (isModalOpen_$()) {\n <app-s-modal\n [isOpen]=\"true\"\n [title]=\"modalTitle_$()\"\n [maxWidth]=\"'lg'\"\n (closed)=\"handleModalClosed()\">\n @if (selectedRow_$(); as row) {\n <app-s-instance-detail-view\n [row]=\"row\"\n [presence]=\"getPresenceForSelectedRow()\" />\n }\n </app-s-modal>\n}\n", "import { Component, computed, inject, input, InputSignal, OnInit, signal, Signal, WritableSignal } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SCH_Job_Response } from '../../../../scheduler/_models/interfaces/sch-job.interface';\nimport { SCH_ScheduledJobs_DataService } from '../../../../scheduler/_services/data-services/sch-scheduled-jobs.data-service';\n\n/**\n * Session schedule floating overlay — bal alul \"belógó\" gomb a chat oszlop fölött.\n *\n * A tab-gomb mindig látszik. Aktív állapot (van enabled scheduled job a sessionhöz):\n * neon cyan border + glow, kattintható, panel kinyitható. Inaktív (nincs schedule):\n * szürke border, nem világít, `disabled` — kattintásra nem nyílik panel.\n * Klikk aktív gombon: a gomb beljebb csúszik, jobbra kinyit egy panel, amin a session-höz\n * tartozó job(-ok) mellett `Trigger Now` gomb található.\n *\n * A komponens self-loading: ha `jobs_$()` üres (a user még nem járt a Schedule\n * felületen), `loadAll()`-t hív induláskor — így a kis indikátor mindig megjelenik\n * ott, ahol kell, függetlenül attól, hogy más dashboard-ot előbb látott-e a user.\n *\n * Slot-tartalom: a `[sChatColumnOverlay]` slotba projektálódik a shared\n * `S_SessionChatColumnLayout_Component`-ben — a host `absolute bottom-4 left-0`\n * a teljes chat oszlop relative ankerére települ.\n */\n@Component({\n selector: 'app-s-session-schedule-overlay',\n standalone: true,\n imports: [NgClass],\n templateUrl: './s-session-schedule-overlay.component.html',\n host: { class: 'absolute bottom-4 left-0 z-30 pointer-events-none' },\n})\n/** S_SessionScheduleOverlay_Component class. */\nexport class S_SessionScheduleOverlay_Component implements OnInit {\n\n /** A session ID, amihez a scheduled job-okat keressük (target.payload.sessionId match). */\n readonly sessionId: InputSignal<string> = input.required<string>();\n\n private readonly scheduledJobs_DS: SCH_ScheduledJobs_DataService =\n inject(SCH_ScheduledJobs_DataService);\n\n /** Panel nyitva van-e (klikk után true → gomb beljebb + panel látszik). */\n readonly isOpen_$: WritableSignal<boolean> = signal<boolean>(false);\n\n /** Per-job folyamatban-lévő trigger flagek — disable + label-csere a gombon. */\n readonly busyJobIds_$: WritableSignal<Set<string>> = signal<Set<string>>(new Set<string>());\n\n /**\n * A jelenlegi sessionId-hoz tartozó aktív (enabled) scheduled job-ok.\n * Üres lista esetén az overlay teljesen elrejti magát.\n */\n readonly sessionJobs_$: Signal<SCH_Job_Response[]> = computed(\n (): SCH_Job_Response[] => {\n const sid: string = (this.sessionId() ?? '').trim();\n if (!sid) {\n return [];\n }\n const all: SCH_Job_Response[] = this.scheduledJobs_DS.jobs_$();\n return all.filter(\n (job: SCH_Job_Response): boolean => {\n if (job.enabled === false) {\n return false;\n }\n const jobSid: string = (job.target?.payload?.sessionId ?? '').trim();\n return jobSid === sid;\n },\n );\n },\n );\n\n /** Van-e legalább 1 job — render-gate; ha nincs, semmit nem mutat az overlay. */\n readonly hasSchedule_$: Signal<boolean> = computed(\n (): boolean => this.sessionJobs_$().length > 0,\n );\n\n ngOnInit(): void {\n // Self-load: ha a scheduler list még üres, lekérjük (best-effort, nem blokkolja a UI-t).\n if (this.scheduledJobs_DS.jobs_$().length === 0) {\n void this.scheduledJobs_DS.loadAll();\n }\n }\n\n /** Tab-gomb klikk — panel toggle. */\n handleToggle(): void {\n this.isOpen_$.update((v: boolean): boolean => !v);\n }\n\n /**\n * `Trigger Now` klikk: scheduledJobs_DS.triggerNow hívás a job _id-jával.\n * A gomb a hívás idejére disabled (busy set), siker/hiba után visszakapcsol.\n */\n async handleTriggerNow(job: SCH_Job_Response): Promise<void> {\n const jobId: string = (job._id ?? '').trim();\n if (!jobId) {\n return;\n }\n if (this.busyJobIds_$().has(jobId)) {\n return;\n }\n this.busyJobIds_$.update((prev: Set<string>): Set<string> => {\n const next: Set<string> = new Set<string>(prev);\n next.add(jobId);\n return next;\n });\n try {\n await this.scheduledJobs_DS.triggerNow({ jobId: jobId, reason: 'session-overlay-manual' });\n } finally {\n this.busyJobIds_$.update((prev: Set<string>): Set<string> => {\n const next: Set<string> = new Set<string>(prev);\n next.delete(jobId);\n return next;\n });\n }\n }\n}\n", "<div class=\"flex items-end gap-2 pointer-events-auto\">\n\n <!-- Bal szélen \"belógó\" ikon-tab.\n Aktív (van schedule): neon cyan + shadow-glow, kattintható.\n Inaktív (nincs schedule): szürke + nem világít, `disabled` — kattintásra nem nyílik panel. -->\n <button type=\"button\"\n (click)=\"handleToggle()\"\n [disabled]=\"!hasSchedule_$()\"\n [attr.aria-expanded]=\"isOpen_$()\"\n aria-label=\"Schedule\"\n [title]=\"!hasSchedule_$()\n ? 'Nincs schedule ehhez a sessionhöz'\n : (isOpen_$() ? 'Schedule panel bezárása' : 'Schedule megjelenítése (' + sessionJobs_$().length + ' job)')\"\n class=\"relative flex items-center justify-center h-8 w-7 bg-neutral-900\n border-2 border-l-0 rounded-r-lg\n transition-all duration-200 ease-out\n disabled:cursor-not-allowed\"\n [ngClass]=\"hasSchedule_$()\n ? ['border-neonCyan/60', 'text-neonCyan', 'shadow-neon-glow-cyan',\n 'hover:border-neonCyan', 'hover:bg-neonCyan/10']\n : ['border-neutral-700', 'text-neutral-600']\"\n [class.-translate-x-2]=\"!isOpen_$()\"\n [class.translate-x-2]=\"isOpen_$()\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5\n a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n @if (hasSchedule_$() && sessionJobs_$().length > 1) {\n <span aria-hidden=\"true\"\n class=\"absolute -top-1 -right-1 min-w-[14px] h-[14px] px-[2px]\n bg-neonAmber text-neutral-900 rounded-full text-[9px]\n font-mono font-bold leading-[14px] text-center\n shadow-neon-glow-orange\">\n {{ sessionJobs_$().length > 9 ? '9+' : sessionJobs_$().length }}\n </span>\n }\n </button>\n\n <!-- Slide-out panel: csak nyitva renderelünk, hogy zárt állapotban semmi\n interaktív elem ne lógjon a chat fölé. -->\n @if (isOpen_$()) {\n <div class=\"bg-neutral-900 border-2 border-neonCyan/60 rounded-lg p-3\n flex flex-col gap-2 min-w-[16rem] max-w-xs\n shadow-neon-glow-cyan\">\n\n <div class=\"flex items-center justify-between gap-2\">\n <span class=\"text-[10px] uppercase tracking-wider text-neonCyan font-mono\">\n Schedule ({{ sessionJobs_$().length }})\n </span>\n <button type=\"button\"\n (click)=\"handleToggle()\"\n title=\"Bezárás\"\n aria-label=\"Schedule panel bezárása\"\n class=\"text-neutral-400 hover:text-neonCyan leading-none px-1 transition-colors\">\n ×\n </button>\n </div>\n\n @for (job of sessionJobs_$(); track job._id) {\n <div class=\"flex items-center justify-between gap-2 border-t border-neutral-800\n pt-2 first:border-t-0 first:pt-0\">\n <div class=\"flex flex-col min-w-0\">\n <span class=\"text-sm text-neutral-100 truncate\" [title]=\"job.name ?? ''\">\n {{ (job.name ?? '').trim() || 'Unnamed schedule' }}\n </span>\n @if (job.schedule?.preset) {\n <span class=\"text-[10px] text-neutral-500 font-mono\">\n {{ job.schedule?.preset }}\n </span>\n }\n </div>\n <!-- Trigger Now ikon-gomb: play / \"▶\" SVG. Neon cyan minta a Queue gombéhoz hasonlóan. -->\n <button type=\"button\"\n (click)=\"handleTriggerNow(job)\"\n [disabled]=\"busyJobIds_$().has(job._id ?? '')\"\n aria-label=\"Trigger now\"\n [title]=\"busyJobIds_$().has(job._id ?? '') ? 'Indítás folyamatban…' : 'Most futtatni (Trigger Now)'\"\n class=\"shrink-0 flex items-center justify-center w-7 h-7 rounded-full\n bg-neutral-900 border-2 border-neonCyan/60 text-neonCyan\n hover:border-neonCyan hover:bg-neonCyan/10 hover:shadow-neon-glow-cyan\n disabled:opacity-40 disabled:cursor-not-allowed\n transition-all\">\n <svg class=\"w-3.5 h-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M8 5v14l11-7z\" />\n </svg>\n </button>\n </div>\n }\n\n </div>\n }\n\n</div>\n", "import {\n Component,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n signal,\n WritableSignal,\n} from '@angular/core';\n\n/**\n * QuickCast floating overlay — bal alul \"belógó\" gomb a Schedule overlay fölött.\n *\n * Default állapot: kis villám-ikon tab a bal szélen. Klikk → a gomb beljebb csúszik\n * és jobbra kinyit egy panel, amin néhány rövid akciógomb található (Go, Continue,\n * OK, Proceed). Bármelyik gombra kattintva a komponens a `actionSelected` output-on\n * emittálja a kiválasztott szöveget — a parent maga küldi el a session-be (így a\n * komponens nem köti magát a CCAP `Session_DataService`-hez, működni tud későbbi\n * OC / CA / CC bekötéssel is).\n *\n * Duplikátum-védelem: az utolsó klikk után 800ms-ig minden további klikk no-op\n * (in-component throttle), miközben az adott gomb `pending` állapotban látszódik.\n *\n * Slot: `[sChatColumnOverlay]` — a shared `S_SessionChatColumnLayout_Component`\n * relative ankerére települ; host class `absolute bottom-16 left-0` → a Schedule\n * overlay (bottom-4) fölött jelenik meg.\n */\n@Component({\n selector: 'app-s-session-quickcast-overlay',\n standalone: true,\n templateUrl: './s-session-quickcast-overlay.component.html',\n host: { class: 'absolute bottom-16 left-0 z-30 pointer-events-none' },\n})\n/** S_SessionQuickCast_Overlay_Component class. */\nexport class S_SessionQuickCast_Overlay_Component {\n\n /** Akciógomb-feliratok (egyben a session-be küldött szöveg). */\n readonly actions: InputSignal<string[]> = input<string[]>([\n 'Go',\n 'Continue',\n 'OK',\n 'Proceed',\n 'implement',\n 'Review Very Very Carefully',\n 'Ensure Documentations',\n 'tervezd meg nagyon alaposan és fejleszd le',\n ]);\n\n /** Egy akciógomb klikk → a parent kapja a szöveget és küldi a session-be. */\n readonly actionSelected: OutputEmitterRef<string> = output<string>();\n\n /** Panel nyitva van-e — kattintásra nyit, panel marad nyitva több akcióhoz. */\n readonly isOpen_$: WritableSignal<boolean> = signal<boolean>(false);\n\n /**\n * Az utoljára kattintott akció (vagy null) — duplikátum-védelmi cooldown alatt.\n * Csak az adott akciógomb látszódik disabled / pending-ben, a többi kattintható.\n */\n readonly pendingAction_$: WritableSignal<string | null> = signal<string | null>(null);\n\n /** Tab-gomb klikk — panel toggle. */\n handleToggle(): void {\n this.isOpen_$.update((v: boolean): boolean => !v);\n }\n\n /**\n * Akció gomb klikk: throttle ha már fut egy másik akció (800ms cooldown), különben\n * pending-be teszi az adott akciót, kibocsátja a parent-nek és időzítve nullázza.\n */\n handleAction(action: string): void {\n if (this.pendingAction_$() !== null) {\n return;\n }\n this.pendingAction_$.set(action);\n this.actionSelected.emit(action);\n setTimeout((): void => {\n if (this.pendingAction_$() === action) {\n this.pendingAction_$.set(null);\n }\n }, 800);\n }\n}\n", "<div class=\"flex items-end gap-2 pointer-events-auto\">\n\n <!-- Bal szélen \"belógó\" ikon-gomb. Closed: -translate-x-2 (jobban balra tucked).\n Open: translate-x-2. Neon cyan stílus a Send/Queue/Stop minta szerint. -->\n <button type=\"button\"\n (click)=\"handleToggle()\"\n [attr.aria-expanded]=\"isOpen_$()\"\n aria-label=\"QuickCast\"\n [title]=\"isOpen_$() ? 'QuickCast bezárása' : 'QuickCast megnyitása'\"\n class=\"flex items-center justify-center h-8 w-7 bg-neutral-900\n border-2 border-l-0 border-neonCyan/60 rounded-r-lg text-neonCyan\n shadow-neon-glow-cyan\n hover:border-neonCyan hover:bg-neonCyan/10\n transition-all duration-200 ease-out\"\n [class.-translate-x-2]=\"!isOpen_$()\"\n [class.translate-x-2]=\"isOpen_$()\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M13 10V3L4 14h7v7l9-11h-7z\" />\n </svg>\n </button>\n\n <!-- Slide-out panel: csak nyitva renderelünk; akciógombok kompakt egy-oszlopos listában. -->\n @if (isOpen_$()) {\n <div class=\"bg-neutral-900 border-2 border-neonCyan/60 rounded-md p-1.5\n flex flex-col gap-1 min-w-[8rem] max-w-[13rem]\n shadow-neon-glow-cyan\">\n\n <div class=\"flex items-center justify-between gap-1\">\n <span class=\"text-[10px] uppercase tracking-wider text-neonCyan font-mono leading-none\">\n QuickCast\n </span>\n <button type=\"button\"\n (click)=\"handleToggle()\"\n title=\"Bezárás\"\n aria-label=\"QuickCast panel bezárása\"\n class=\"text-neutral-400 hover:text-neonCyan leading-none text-xs px-1 transition-colors\">\n ×\n </button>\n </div>\n\n <div class=\"flex flex-col gap-1\">\n @for (action of actions(); track action) {\n <button type=\"button\"\n (click)=\"handleAction(action)\"\n [disabled]=\"pendingAction_$() === action\"\n class=\"px-1.5 py-0.5 rounded border-2 border-neonCyan/60 text-neonCyan\n text-[11px] font-medium\n hover:border-neonCyan hover:bg-neonCyan/10 hover:shadow-neon-glow-cyan\n disabled:opacity-40 disabled:cursor-not-allowed\n transition-all leading-tight\">\n {{ pendingAction_$() === action ? 'Sending…' : action }}\n </button>\n }\n </div>\n\n </div>\n }\n\n</div>\n", "import { Component, computed, inject, input, InputSignal, OnInit, signal, Signal, WritableSignal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgClass } from '@angular/common';\n\nimport { CCAP_CoordinatorSession_Response } from '../../../../../_models/interfaces/coordinator/ccap-coordinator-session.interface';\nimport { Coordinator_DataService } from '../../../../coordinator/_services/coordinator.data-service';\nimport { AIS_RegistrySsot_ControlService } from '../../../../ai-systems/_services/ais-registry-ssot.control-service';\nimport { MRg_ListItem_Response } from '../../../../ai-systems/_modules/model-registry/_services/mrg-list-item.interface';\n\n/**\n * Session coordinator floating overlay — bal alul \"belógó\" gomb a QuickCast fölött.\n *\n * A tab-gomb mindig látszik. Aktív állapot (van coordinator a sessionhöz, status nem\n * `stopped`/`completed`): neon amber border + glow. Inaktív állapot (nincs assigned\n * coordinator): szürke border, nem világít — DE továbbra is kattintható, hogy a user\n * a panelen keresztül assign-olhasson koordinátort.\n *\n * Panel — assigned ágon: provider / model / status info + Stop gomb (unassign).\n * Panel — nem assigned ágon: model dropdown + Assign gomb (`startCoordinator`).\n *\n * A komponens self-loading: ngOnInit-ben ha `globalCoordinatorsList_$` üres, hív\n * `loadAllCoordinatorsForManagementPage()`-t; az AIS registry LLM listáját is biztosítja\n * (`ensureLoaded('llm')`), hogy a dropdown azonnal feltöltődjön.\n *\n * Slot-tartalom: a `[sChatColumnOverlay]` slotba projektálódik a shared\n * `S_SessionChatColumnLayout_Component`-ben — host `absolute bottom-28 left-0`,\n * a Schedule (bottom-4) és QuickCast (bottom-16) overlay-ek FÖLÖTT.\n */\n@Component({\n selector: 'app-s-session-coordinator-overlay',\n standalone: true,\n imports: [NgClass, FormsModule],\n templateUrl: './s-session-coordinator-overlay.component.html',\n host: { class: 'absolute bottom-28 left-0 z-30 pointer-events-none' },\n})\n/** S_SessionCoordinator_Overlay_Component class. */\nexport class S_SessionCoordinator_Overlay_Component implements OnInit {\n\n /** A session ID, amihez a coordinator-t keressük / assign-oljuk. */\n readonly sessionId: InputSignal<string> = input.required<string>();\n\n private readonly coordinator_DS: Coordinator_DataService = inject(Coordinator_DataService);\n private readonly registrySsot_CS: AIS_RegistrySsot_ControlService = inject(AIS_RegistrySsot_ControlService);\n\n /** Panel nyitva van-e (klikk → toggle, panel marad nyitva amíg user be nem zárja). */\n readonly isOpen_$: WritableSignal<boolean> = signal<boolean>(false);\n\n /** Assign / stop hívás folyamatban — gomb disabled + felirat-csere. */\n readonly isBusy_$: WritableSignal<boolean> = signal<boolean>(false);\n\n /** Model dropdown kiválasztott értéke (`provider:::modelName` composite key). */\n readonly selectedModelKey_$: WritableSignal<string> = signal<string>('');\n\n /** AIS registry enabled LLM modellek a dropdown-hoz. */\n readonly modelOptions_$: Signal<MRg_ListItem_Response[]> = computed(\n (): MRg_ListItem_Response[] => this.registrySsot_CS.enabledLlmModels_$(),\n );\n\n /**\n * A jelenlegi sessionId-hoz tartozó assigned (aktív) coordinator (vagy null).\n * Tükrözi a `coordinatedSessionIds_$` set döntését — `stopped`/`completed` kizárva.\n */\n readonly assignedCoordinator_$: Signal<CCAP_CoordinatorSession_Response | null> = computed(\n (): CCAP_CoordinatorSession_Response | null => {\n const sid: string = (this.sessionId() ?? '').trim();\n if (!sid) {\n return null;\n }\n const ids: Set<string> = this.coordinator_DS.coordinatedSessionIds_$();\n if (!ids.has(sid)) {\n return null;\n }\n const list: CCAP_CoordinatorSession_Response[] = this.coordinator_DS.globalCoordinatorsList_$();\n return list.find((c: CCAP_CoordinatorSession_Response): boolean => {\n const csid: string = (c.sessionId ?? '').trim();\n const status: string = (c.status ?? '').trim().toLowerCase();\n return csid === sid && status !== 'stopped' && status !== 'completed';\n }) ?? null;\n },\n );\n\n /** Van-e aktív coordinator — tab-gomb és panel-mód váltó. */\n readonly isAssigned_$: Signal<boolean> = computed(\n (): boolean => this.assignedCoordinator_$() !== null,\n );\n\n ngOnInit(): void {\n // Self-load: ha üres a coordinator lista, induló fetch.\n if (this.coordinator_DS.globalCoordinatorsList_$().length === 0) {\n void this.coordinator_DS.loadAllCoordinatorsForManagementPage();\n }\n // Assign-panel-hez kell a model dropdown adat.\n this.registrySsot_CS.ensureLoaded('llm');\n }\n\n /** Tab-gomb klikk — panel toggle (akkor is nyit, ha nincs assigned coordinator). */\n handleToggle(): void {\n this.isOpen_$.update((v: boolean): boolean => !v);\n }\n\n /**\n * Assign — a kiválasztott modellt használja `startCoordinator` paramként.\n * A `selectedModelKey_$` formátuma `provider:::modelName`.\n */\n async handleAssign(): Promise<void> {\n const sid: string = (this.sessionId() ?? '').trim();\n const key: string = this.selectedModelKey_$().trim();\n if (!sid || !key || this.isBusy_$()) {\n return;\n }\n const parts: string[] = key.split(':::');\n if (parts.length !== 2) {\n return;\n }\n const providerName: string = parts[0];\n const model: string = parts[1];\n if (!providerName || !model) {\n return;\n }\n this.isBusy_$.set(true);\n try {\n await this.coordinator_DS.startCoordinator({\n sessionId: sid,\n providerName: providerName,\n model: model,\n });\n // Sikeres assign → a globális lista frissítése, hogy a coordinatedSessionIds_$\n // tükrözze az új koordinátort (a startCoordinator a coordinator_$-t állítja, de\n // a globalCoordinatorsList_$-t nem).\n void this.coordinator_DS.loadAllCoordinatorsForManagementPage();\n } finally {\n this.isBusy_$.set(false);\n }\n }\n\n /**\n * Stop — leállítja az assigned coordinator-t (`stopCoordinator`), majd frissíti\n * a globális listát hogy az UI inactive állapotba váltson.\n */\n async handleStop(): Promise<void> {\n const sid: string = (this.sessionId() ?? '').trim();\n if (!sid || this.isBusy_$()) {\n return;\n }\n this.isBusy_$.set(true);\n try {\n await this.coordinator_DS.stopCoordinator(sid);\n void this.coordinator_DS.loadAllCoordinatorsForManagementPage();\n } finally {\n this.isBusy_$.set(false);\n }\n }\n}\n", "<div class=\"flex items-end gap-2 pointer-events-auto\">\n\n <!-- Bal szélen \"belógó\" ikon-tab.\n Aktív (assigned coordinator): neon amber + glow.\n Inaktív (nincs assigned): szürke, nem világít — DE továbbra is kattintható, hogy\n a panelből assign-olhasson koordinátort a user. -->\n <button type=\"button\"\n (click)=\"handleToggle()\"\n [attr.aria-expanded]=\"isOpen_$()\"\n aria-label=\"Coordinator\"\n [title]=\"isAssigned_$()\n ? (isOpen_$() ? 'Coordinator panel bezárása' : 'Coordinator: ' + (assignedCoordinator_$()?.status ?? ''))\n : (isOpen_$() ? 'Coordinator panel bezárása' : 'Nincs coordinator — assign-oláshoz kattints')\"\n class=\"relative flex items-center justify-center h-8 w-7 bg-neutral-900\n border-2 border-l-0 rounded-r-lg\n transition-all duration-200 ease-out\"\n [ngClass]=\"isAssigned_$()\n ? ['border-neonAmber/60', 'text-neonAmber', 'shadow-neon-glow-orange',\n 'hover:border-neonAmber', 'hover:bg-neonAmber/10']\n : ['border-neutral-700', 'text-neutral-500',\n 'hover:border-neutral-500', 'hover:bg-neutral-800/50']\"\n [class.-translate-x-2]=\"!isOpen_$()\"\n [class.translate-x-2]=\"isOpen_$()\">\n <svg class=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polygon points=\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\" />\n </svg>\n </button>\n\n <!-- Slide-out panel. Két mód: assigned (info + Stop) vagy nem assigned (assign UI). -->\n @if (isOpen_$()) {\n <div class=\"bg-neutral-900 border-2 rounded-lg p-3\n flex flex-col gap-2 min-w-[16rem] max-w-xs\"\n [ngClass]=\"isAssigned_$()\n ? ['border-neonAmber/60', 'shadow-neon-glow-orange']\n : ['border-neutral-700']\">\n\n <div class=\"flex items-center justify-between gap-2\">\n <span class=\"text-[10px] uppercase tracking-wider font-mono\"\n [ngClass]=\"isAssigned_$() ? ['text-neonAmber'] : ['text-neutral-400']\">\n Coordinator\n </span>\n <button type=\"button\"\n (click)=\"handleToggle()\"\n title=\"Bezárás\"\n aria-label=\"Coordinator panel bezárása\"\n class=\"text-neutral-400 hover:text-neonAmber leading-none px-1 transition-colors\">\n ×\n </button>\n </div>\n\n @if (assignedCoordinator_$(); as coord) {\n <!-- Assigned ág: info + Stop -->\n <div class=\"flex flex-col gap-1 text-xs\">\n <div class=\"flex justify-between gap-2\">\n <span class=\"text-neutral-500 font-mono text-[10px]\">status</span>\n <span class=\"text-neutral-100\">{{ coord.status }}</span>\n </div>\n @if (coord.providerName) {\n <div class=\"flex justify-between gap-2\">\n <span class=\"text-neutral-500 font-mono text-[10px]\">provider</span>\n <span class=\"text-neutral-100 truncate\" [title]=\"coord.providerName\">\n {{ coord.providerName }}\n </span>\n </div>\n }\n @if (coord.model) {\n <div class=\"flex justify-between gap-2\">\n <span class=\"text-neutral-500 font-mono text-[10px]\">model</span>\n <span class=\"text-neutral-100 truncate\" [title]=\"coord.model\">{{ coord.model }}</span>\n </div>\n }\n @if (coord.workflowId) {\n <div class=\"flex justify-between gap-2\">\n <span class=\"text-neutral-500 font-mono text-[10px]\">workflow</span>\n <span class=\"text-neutral-100 truncate\" [title]=\"coord.workflowId\">\n {{ coord.workflowId }}\n </span>\n </div>\n }\n </div>\n <button type=\"button\"\n (click)=\"handleStop()\"\n [disabled]=\"isBusy_$()\"\n class=\"self-end px-2 py-1 rounded border-2 border-neonAmber/60 text-neonAmber\n text-xs font-medium hover:bg-neonAmber/10 hover:shadow-neon-glow-orange\n disabled:opacity-40 disabled:cursor-not-allowed transition-all\">\n {{ isBusy_$() ? 'Stopping…' : 'Stop' }}\n </button>\n } @else {\n <!-- Assign ág: model dropdown + Assign gomb -->\n <span class=\"text-[11px] text-neutral-400\">\n Nincs assigned coordinator — válassz modellt és kattints az Assign-ra.\n </span>\n <select [ngModel]=\"selectedModelKey_$()\"\n (ngModelChange)=\"selectedModelKey_$.set($event)\"\n class=\"bg-neutral-900 border border-neutral-700 rounded px-2 py-1 text-xs\n text-neutral-100 focus:outline-none focus:border-neonAmber/60\">\n <option value=\"\" disabled>— válassz modellt —</option>\n @for (m of modelOptions_$(); track m.provider + ':::' + m.modelName) {\n <option [value]=\"m.provider + ':::' + m.modelName\">\n {{ m.provider }} / {{ m.modelName }}\n </option>\n }\n </select>\n <button type=\"button\"\n (click)=\"handleAssign()\"\n [disabled]=\"!selectedModelKey_$() || isBusy_$()\"\n class=\"self-end px-2 py-1 rounded border-2 border-neonAmber/60 text-neonAmber\n text-xs font-medium hover:bg-neonAmber/10 hover:shadow-neon-glow-orange\n disabled:opacity-40 disabled:cursor-not-allowed transition-all\">\n {{ isBusy_$() ? 'Assigning…' : 'Assign' }}\n </button>\n }\n\n </div>\n }\n\n</div>\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_fsm_dynamo", "CC_RateLimitDisplay_Util", "SESSION_LIMIT_TYPE", "WEEKLY_LIMIT_TYPE", "formatResetText", "info", "resetsAt", "resetDate", "Date", "now", "diffMs", "getTime", "diffMin", "Math", "floor", "hours", "mins", "formatResetTextPrecise", "diffSec", "days", "secs", "parts", "push", "join", "computeUtilizationPercent", "raw", "utilization", "clamped", "max", "min", "round", "computeThresholdPercent", "surpassedThreshold", "isOverThreshold", "util", "thr", "formatLimitScopeLabel", "rateLimitType", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "ctx_r1", "limitScopeLabel_$", "\u0275\u0275classProp", "rl_r1", "status", "\u0275\u0275textInterpolate1", "utilizationPercent_$", "resetText_$", "\u0275\u0275pipeBind2", "receivedAt", "S_CcRateLimitInfo_Component", "claudeCode_AS", "inject", "ClaudeCode_ApiService", "_ccapId", "ccapId", "value", "trim", "refreshRateLimitState", "rateLimitInfo_$", "signal", "computed", "CC_RateLimitDisplay_Util", "computeUtilizationPercent", "formatResetText", "formatLimitScopeLabel", "set", "getRateLimitState", "then", "result", "info", "CC_RateLimitStateMapper_Util", "mapServerItemsToClientInfo", "items", "catch", "err", "DyFM_Log", "warn", "String", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "S_CcRateLimitInfo_Component_Conditional_0_Template", "\u0275\u0275conditional", "tmp_0_0", "CommonModule", "DatePipe", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "p_r1", "presence", "lastHeartbeatAt", "wsConnected", "\u0275\u0275textInterpolate", "ss_r2", "activeRunPhase", "activitySummary", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "lastActivityAt", "lastMessage", "S_InstanceDetailView_Component", "row", "undefined", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "S_InstanceDetailView_Component_Conditional_13_Template", "S_InstanceDetailView_Component_Conditional_18_Template", "registry", "instanceKey", "instanceData", "name", "trim", "status", "\u0275\u0275conditional", "tmp_3_0", "sessionStatuses", "tmp_5_0", "primaryMacAddress", "installLocationPath", "hostName", "__created", "__updated", "CommonModule", "DatePipe", "S_CcRateLimitInfo_Component", "S_InstancePresenceBadge_Component", "encapsulation", "\u0275\u0275element", "\u0275\u0275property", "p_r4", "presence", "lastHeartbeatAt", "wsConnected", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "tmp_11_0", "instance_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelectInstance", "instanceKey", "undefined", "\u0275\u0275template", "S_InstanceSelector_Component_For_4_Conditional_2_Template", "S_InstanceSelector_Component_For_4_Conditional_4_Template", "S_InstanceSelector_Component_For_4_Conditional_5_Template", "handleInfoClick", "\u0275\u0275advance", "\u0275\u0275classProp", "isSelected", "\u0275\u0275pureFunction1", "_c0", "\u0275\u0275conditional", "tmp_17_0", "getPresenceForRow", "\u0275\u0275textInterpolate1", "getDisplayLabel", "isLocal", "getActiveSessionForRow", "S_InstanceSelector_Component", "peiContext_DS", "inject", "ExS_InstanceContext_DataService", "presenceMap", "Map", "activeSessionMap", "infoRequested", "EventEmitter", "instances_$", "computed", "instanceList_$", "selectedCcapId_$", "activeCcapId_$", "localKey_$", "localInstanceKey_$", "ngOnInit", "initialize", "ccapId", "selectInstance", "emit", "row", "host", "hostName", "keySuffix", "slice", "key", "get", "selectors", "hostAttrs", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275repeaterCreate", "S_InstanceSelector_Component_For_4_Template", "_forTrack0", "S_InstanceSelector_Component_Conditional_5_Template", "\u0275\u0275repeater", "length", "CommonModule", "NgClass", "S_InstancePresenceBadge_Component", "encapsulation", "\u0275\u0275element", "\u0275\u0275property", "ctx", "ctx_r1", "getPresenceForSelectedRow", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleModalClosed", "\u0275\u0275template", "S_InstanceChipRowWithInfo_Component_Conditional_1_Conditional_1_Template", "\u0275\u0275elementEnd", "modalTitle_$", "\u0275\u0275advance", "\u0275\u0275conditional", "tmp_4_0", "selectedRow_$", "S_InstanceChipRowWithInfo_Component", "instanceRegistry_DS", "inject", "ExS_InstanceRegistry_DataService", "runtimeInstances_DS", "ExS_RuntimeInstances_DataService", "presenceMap", "Map", "activeSessionMap", "selectedInstanceKey_$", "signal", "viewRows_$", "computed", "Set_InstanceRegistryViewRows_Util", "buildViewRows", "list_$", "ccapInstanceList_$", "key", "find", "row", "registry", "instanceKey", "isModalOpen_$", "host", "hostName", "slice", "handleInfoRequested", "event", "set", "get", "selectors", "hostAttrs", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "$event", "S_InstanceChipRowWithInfo_Component_Conditional_1_Template", "CommonModule", "S_InstanceSelector_Component", "S_Modal_Component", "S_InstanceDetailView_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "sessionJobs_$", "length", "job_r4", "schedule", "preset", "\u0275\u0275template", "S_SessionScheduleOverlay_Component_Conditional_5_For_7_Conditional_4_Template", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleTriggerNow", "\u0275\u0275element", "\u0275\u0275property", "tmp_11_0", "name", "undefined", "tmp_12_0", "trim", "\u0275\u0275conditional", "busyJobIds_$", "has", "tmp_14_0", "_id", "tmp_15_0", "_r2", "handleToggle", "\u0275\u0275repeaterCreate", "S_SessionScheduleOverlay_Component_Conditional_5_For_7_Template", "_forTrack0", "\u0275\u0275repeater", "S_SessionScheduleOverlay_Component", "sessionId", "input", "required", "scheduledJobs_DS", "inject", "SCH_ScheduledJobs_DataService", "isOpen_$", "signal", "Set", "computed", "sid", "jobs_$", "filter", "job", "enabled", "target", "payload", "hasSchedule_$", "ngOnInit", "loadAll", "update", "v", "__async", "jobId", "prev", "next", "add", "triggerNow", "reason", "delete", "selectors", "hostAttrs", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "S_SessionScheduleOverlay_Component_Conditional_4_Template", "S_SessionScheduleOverlay_Component_Conditional_5_Template", "\u0275\u0275classProp", "\u0275\u0275pureFunction0", "_c0", "_c1", "NgClass", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275listener", "action_r4", "\u0275\u0275restoreView", "_r3", "$implicit", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleAction", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "pendingAction_$", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "_r1", "handleToggle", "\u0275\u0275repeaterCreate", "S_SessionQuickCast_Overlay_Component_Conditional_4_For_8_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "actions", "S_SessionQuickCast_Overlay_Component", "input", "actionSelected", "output", "isOpen_$", "signal", "update", "v", "action", "set", "emit", "setTimeout", "selectors", "hostAttrs", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275template", "S_SessionQuickCast_Overlay_Component_Conditional_4_Template", "\u0275\u0275classProp", "\u0275\u0275conditional", "$item", "modelName", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "coord_r4", "providerName", "\u0275\u0275textInterpolate1", "model", "\u0275\u0275textInterpolate", "workflowId", "\u0275\u0275template", "S_SessionCoordinator_Overlay_Component_Conditional_5_Conditional_6_Conditional_6_Template", "S_SessionCoordinator_Overlay_Component_Conditional_5_Conditional_6_Conditional_7_Template", "S_SessionCoordinator_Overlay_Component_Conditional_5_Conditional_6_Conditional_8_Template", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleStop", "status", "\u0275\u0275conditional", "isBusy_$", "m_r6", "provider", "\u0275\u0275textInterpolate2", "$event", "_r5", "selectedModelKey_$", "set", "\u0275\u0275repeaterCreate", "S_SessionCoordinator_Overlay_Component_Conditional_5_Conditional_7_For_6_Template", "_forTrack0", "handleAssign", "\u0275\u0275repeater", "modelOptions_$", "_r1", "handleToggle", "S_SessionCoordinator_Overlay_Component_Conditional_5_Conditional_6_Template", "S_SessionCoordinator_Overlay_Component_Conditional_5_Conditional_7_Template", "isAssigned_$", "\u0275\u0275pureFunction0", "_c2", "_c3", "_c4", "_c5", "tmp_3_0", "assignedCoordinator_$", "S_SessionCoordinator_Overlay_Component", "sessionId", "input", "required", "coordinator_DS", "inject", "Coordinator_DataService", "registrySsot_CS", "AIS_RegistrySsot_ControlService", "isOpen_$", "signal", "computed", "enabledLlmModels_$", "sid", "trim", "coordinatedSessionIds_$", "has", "globalCoordinatorsList_$", "find", "c", "csid", "toLowerCase", "ngOnInit", "length", "loadAllCoordinatorsForManagementPage", "ensureLoaded", "update", "v", "__async", "key", "parts", "split", "startCoordinator", "stopCoordinator", "selectors", "hostAttrs", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "S_SessionCoordinator_Overlay_Component_Conditional_5_Template", "\u0275\u0275classProp", "tmp_2_0", "undefined", "_c0", "_c1", "NgClass", "FormsModule", "NgSelectOption", "\u0275NgSelectMultipleOption", "SelectControlValueAccessor", "NgControlStatus", "NgModel", "encapsulation"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as ne,d as Qe,e as V,f as oe,h as He}from"./chunk-OLBAIJHY.js";import{a as Ge}from"./chunk-BCGCVDWE.js";import"./chunk-MUROLI6H.js";import"./chunk-DEIALVMK.js";import"./chunk-COVCHZOZ.js";import"./chunk-UFBTR2BG.js";import"./chunk-IXD22FGA.js";import"./chunk-SNA7RAMU.js";import{a as qe}from"./chunk-7JUIBZEE.js";import{b as P,e as Be,f as Ue}from"./chunk-NMGB6Q45.js";import{a as ye}from"./chunk-RG4B2EC4.js";import"./chunk-QDW4DDEH.js";import"./chunk-TBE7X4MG.js";import"./chunk-K3ABKMDH.js";import"./chunk-RHEQKQT3.js";import"./chunk-L65JUKSC.js";import"./chunk-V3VQWJQL.js";import"./chunk-PEHTATOM.js";import{e as J}from"./chunk-XWRXJ2PQ.js";import{a as je}from"./chunk-FLAJXIYW.js";import{c as H,f as K,g as pe,h as _e,i as X,j as me,n as ue,o as he,p as fe,s as ze,v as Y}from"./chunk-EO4DNTT4.js";import"./chunk-XWWVDCIV.js";import{I as We,p as re}from"./chunk-WH2RXTQX.js";import{Aa as Le,Ba as Ve,C as x,D as O,E as $e,Eb as Ne,Fa as a,Ga as g,Ha as v,Hb as de,Ia as ce,J as m,K as u,Kb as Q,Ma as N,Na as z,Oa as W,P as Te,T as Ie,Ta as R,U as De,Va as Fe,Z as s,a as ee,aa as b,b as te,ca as Me,da as k,ga as C,h as ie,hb as q,ia as E,k as _,la as f,na as le,oa as D,p as w,pa as M,qa as n,ra as o,sa as A,t as G,ua as S,ub as $,va as p,wa as d,xb as Ae,y as j,z as Re,za as Pe}from"./chunk-TBMJSIBB.js";var B=ie(re());var T=ie(re());var Ke=(()=>{class r{http=x(Ae);baseUrl=`${We.api.baseUrl}/orchestrator`;createOrchestrator(e){return w(this.http.post(this.baseUrl,e))}listOrchestrators(e={}){let t=[];e.projectId&&t.push(`projectId=${encodeURIComponent(e.projectId)}`),e.scope&&t.push(`scope=${encodeURIComponent(e.scope)}`),e.status&&t.push(`status=${encodeURIComponent(e.status)}`);let i=t.length?`?${t.join("&")}`:"";return w(this.http.get(`${this.baseUrl}${i}`))}getOrchestrator(e){return w(this.http.get(`${this.baseUrl}/${e}`))}startOrchestrator(e){return w(this.http.post(`${this.baseUrl}/${e}/start`,{}))}pauseOrchestrator(e){return w(this.http.post(`${this.baseUrl}/${e}/pause`,{}))}resumeOrchestrator(e){return w(this.http.post(`${this.baseUrl}/${e}/resume`,{}))}stopOrchestrator(e){return w(this.http.post(`${this.baseUrl}/${e}/stop`,{}))}listTasks(e,t){let i=t?`?status=${encodeURIComponent(t)}`:"";return w(this.http.get(`${this.baseUrl}/${e}/tasks${i}`))}listMessages(e,t){let i=t?`?limit=${t}`:"";return w(this.http.get(`${this.baseUrl}/${e}/messages${i}`))}postUserMessage(e,t){return w(this.http.post(`${this.baseUrl}/${e}/messages`,{rawContent:t}))}listQuestions(e,t=!1){let i=t?"?openOnly=true":"";return w(this.http.get(`${this.baseUrl}/${e}/questions${i}`))}confirmBootstrap(e){return w(this.http.post(`${this.baseUrl}/${e}/bootstrap/confirm`,{}))}submitQuestionAnswer(e,t,i){return w(this.http.post(`${this.baseUrl}/${e}/questions/${t}/answer`,{answer:i}))}switchMode(e,t){return w(this.http.post(`${this.baseUrl}/${e}/mode`,{mode:t}))}getGlobalSummary(){return w(this.http.get(`${this.baseUrl}/summary`))}listWorkflows(e){return w(this.http.get(`${this.baseUrl}/${e}/workflows`))}getWorkflowById(e,t){return w(this.http.get(`${this.baseUrl}/${e}/workflows/${t}`))}listBatches(e){return w(this.http.get(`${this.baseUrl}/${e}/batches`))}listDecisions(e,t){let i=t?`?limit=${t}`:"";return w(this.http.get(`${this.baseUrl}/${e}/decisions${i}`))}static \u0275fac=function(t){return new(t||r)};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var I=(()=>{class r{orc_AS=x(Ke);orchestratorListRaw_$=b([]);currentOrchestratorRaw_$=b(null);currentTasksRaw_$=b([]);currentMessagesRaw_$=b([]);isResponseGeneratingRaw_$=b(!1);orchestratorList_$=this.orchestratorListRaw_$.asReadonly();currentOrchestrator_$=this.currentOrchestratorRaw_$.asReadonly();currentTasks_$=this.currentTasksRaw_$.asReadonly();currentMessages_$=this.currentMessagesRaw_$.asReadonly();isResponseGenerating_$=this.isResponseGeneratingRaw_$.asReadonly();activeCount_$=q(()=>this.orchestratorList_$().filter(e=>e.status==="active"||e.status==="bootstrap"||e.status==="waiting-for-user").length);refreshList(){return _(this,null,function*(){try{let e=yield this.orc_AS.listOrchestrators();this.orchestratorListRaw_$.set(e.orchestrators)}catch(e){T.DyFM_Log.error("Orchestrator_DataService | refreshList failed",e)}})}refreshCurrent(e){return _(this,null,function*(){try{let t=yield this.orc_AS.getOrchestrator(e);this.currentOrchestratorRaw_$.set(t.orchestrator)}catch(t){T.DyFM_Log.error("Orchestrator_DataService | refreshCurrent failed",t)}})}refreshCurrentTasks(e){return _(this,null,function*(){try{let t=yield this.orc_AS.listTasks(e);this.currentTasksRaw_$.set(t.tasks)}catch(t){T.DyFM_Log.error("Orchestrator_DataService | refreshCurrentTasks failed",t)}})}createOrchestrator(e){return _(this,null,function*(){let t=yield this.orc_AS.createOrchestrator(e);return yield this.refreshList(),t.orchestrator})}startOrchestrator(e){return _(this,null,function*(){yield this.orc_AS.startOrchestrator(e),yield Promise.all([this.refreshList(),this.refreshCurrent(e)])})}pauseOrchestrator(e){return _(this,null,function*(){yield this.orc_AS.pauseOrchestrator(e),yield Promise.all([this.refreshList(),this.refreshCurrent(e)])})}resumeOrchestrator(e){return _(this,null,function*(){yield this.orc_AS.resumeOrchestrator(e),yield Promise.all([this.refreshList(),this.refreshCurrent(e)])})}stopOrchestrator(e){return _(this,null,function*(){yield this.orc_AS.stopOrchestrator(e),yield Promise.all([this.refreshList(),this.refreshCurrent(e)])})}confirmBootstrap(e){return _(this,null,function*(){yield this.orc_AS.confirmBootstrap(e),yield Promise.all([this.refreshList(),this.refreshCurrent(e)])})}switchMode(e,t){return _(this,null,function*(){yield this.orc_AS.switchMode(e,t),yield this.refreshCurrent(e)})}refreshCurrentMessages(e){return _(this,null,function*(){try{let t=yield this.orc_AS.listMessages(e,100);this.currentMessagesRaw_$.set(t.messages)}catch(t){T.DyFM_Log.error("Orchestrator_DataService | refreshCurrentMessages failed",t)}})}setResponseGenerating(e){this.isResponseGeneratingRaw_$.set(e)}clearCurrent(){this.currentOrchestratorRaw_$.set(null),this.currentTasksRaw_$.set([]),this.currentMessagesRaw_$.set([]),this.isResponseGeneratingRaw_$.set(!1)}listWorkflows(e){return _(this,null,function*(){try{return(yield this.orc_AS.listWorkflows(e)).workflows}catch(t){return T.DyFM_Log.error("Orchestrator_DataService | listWorkflows failed",t),[]}})}getWorkflowById(e,t){return _(this,null,function*(){try{return(yield this.orc_AS.getWorkflowById(e,t)).workflow}catch(i){return T.DyFM_Log.error("Orchestrator_DataService | getWorkflowById failed",i),null}})}listMessages(e,t){return _(this,null,function*(){try{return(yield this.orc_AS.listMessages(e,t)).messages}catch(i){return T.DyFM_Log.error("Orchestrator_DataService | listMessages failed",i),[]}})}postUserMessage(e,t){return _(this,null,function*(){try{return(yield this.orc_AS.postUserMessage(e,t)).message}catch(i){return T.DyFM_Log.error("Orchestrator_DataService | postUserMessage failed",i),null}})}listQuestions(e,t){return _(this,null,function*(){try{return(yield this.orc_AS.listQuestions(e,t)).questions}catch(i){return T.DyFM_Log.error("Orchestrator_DataService | listQuestions failed",i),[]}})}submitQuestionAnswer(e,t,i){return _(this,null,function*(){try{return(yield this.orc_AS.submitQuestionAnswer(e,t,i)).question}catch(l){return T.DyFM_Log.error("Orchestrator_DataService | submitQuestionAnswer failed",l),null}})}getGlobalSummary(){return _(this,null,function*(){try{return(yield this.orc_AS.getGlobalSummary()).summary}catch(e){return T.DyFM_Log.error("Orchestrator_DataService | getGlobalSummary failed",e),null}})}static \u0275fac=function(t){return new(t||r)};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var nt=new Set(["orc:created","orc:statusChanged","orc:started","orc:paused","orc:resumed","orc:stopped","orc:waitingForUser"]),ot=new Set(["orc:statusChanged","orc:modeChanged","orc:iterationStarted","orc:iterationCompleted","orc:decisionAdded","orc:taskCreated","orc:taskStatusChanged","orc:taskCompleted","orc:batchStarted","orc:batchCompleted","orc:agentLaunched","orc:agentCompleted","orc:userQuestionAsked","orc:userQuestionAnswered","orc:messageAdded","orc:bootstrapCompleted","orc:responseStarted","orc:responseCompleted","orc:responseToolCall","orc:responseToolResult"]),at=new Set(["orc:messageAdded","orc:responseToolCall","orc:responseToolResult"]),xe=(()=>{class r{ccapSocket_CS=x(J);orchestrator_DS=x(I);globalSub=null;detailSub=null;responseSub=null;currentOrchestratorId=null;subscribeGlobal(){this.globalSub||(this.globalSub=this.ccapSocket_CS.event$.pipe(G(e=>nt.has(e.event))).subscribe(()=>_(this,null,function*(){yield this.orchestrator_DS.refreshList()})))}subscribeDetail(e){this.unsubscribeDetail(),this.currentOrchestratorId=e,this.detailSub=this.ccapSocket_CS.event$.pipe(G(t=>ot.has(t.event)&&this.isForCurrent(t.payload))).subscribe(t=>_(this,null,function*(){let i=this.currentOrchestratorId;i&&(t.event==="orc:responseStarted"&&this.orchestrator_DS.setResponseGenerating(!0),t.event==="orc:responseCompleted"&&this.orchestrator_DS.setResponseGenerating(!1),yield Promise.all([this.orchestrator_DS.refreshCurrent(i),this.orchestrator_DS.refreshCurrentTasks(i)]))})),this.responseSub=this.ccapSocket_CS.event$.pipe(G(t=>at.has(t.event)&&this.isForCurrent(t.payload))).subscribe(()=>_(this,null,function*(){let t=this.currentOrchestratorId;t&&(yield this.orchestrator_DS.refreshCurrentMessages(t))}))}unsubscribeDetail(){this.detailSub?.unsubscribe(),this.responseSub?.unsubscribe(),this.detailSub=null,this.responseSub=null,this.currentOrchestratorId=null}isForCurrent(e){return this.currentOrchestratorId?e?.orchestratorId===this.currentOrchestratorId:!1}ngOnDestroy(){this.globalSub?.unsubscribe(),this.detailSub?.unsubscribe(),this.responseSub?.unsubscribe(),this.globalSub=null,this.detailSub=null,this.responseSub=null}static \u0275fac=function(t){return new(t||r)};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var we=[{id:"orc-wake",label:"Wake",phase:"wake",category:V.milestone},{id:"orc-collect",label:"Collect",phase:"collect",category:V.phase},{id:"orc-analyze",label:"Analyze",phase:"analyze",category:V.llmCall},{id:"orc-sync-tasks",label:"Sync Tasks",phase:"sync-tasks",category:V.phase},{id:"orc-decide-next",label:"Decide Next",phase:"decide-next",category:V.llmCall},{id:"orc-execute",label:"Execute",phase:"execute",category:V.phase},{id:"orc-report",label:"Report",phase:"report",category:V.phase},{id:"orc-sleep",label:"Sleep",phase:"sleep",category:V.milestone}],ae=class{static buildSkeletonLayout(){let c=48+220/2,e=48,t=[],i=[];for(let y=0;y<we.length;y++){let F=we[y],Z=F.category===V.milestone,U=Z?200:220,Oe=Z?48:60,rt=oe.createNode({id:F.id,category:F.category,label:F.label,phase:F.phase,x:c-U/2,y:e,width:U,height:Oe});t.push(rt),y>0&&i.push(oe.createEdge(we[y-1].id,F.id,Qe.sequential)),e+=Oe+36}let l=i.map(y=>{let F=t.find(U=>U.id===y.sourceNodeId),Z=t.find(U=>U.id===y.targetNodeId);return!F||!Z?y:te(ee({},y),{pathD:oe.computeEdgePath(F,Z,y.category)})}),h=oe.recalculateViewBox(t,48);return{nodes:t,edges:l,viewBox:h,loopContainerBounds:null}}};var pt={wake:"orc-wake",collect:"orc-collect",analyze:"orc-analyze","sync-tasks":"orc-sync-tasks","decide-next":"orc-decide-next",execute:"orc-execute",report:"orc-report",sleep:"orc-sleep"},_t=["orc-wake","orc-collect","orc-analyze","orc-sync-tasks","orc-decide-next","orc-execute","orc-report","orc-sleep"],mt=new Set(["orc:iterationStarted","orc:iterationCompleted","orc:statusChanged","orc:started","orc:paused","orc:stopped"]),Ce=(()=>{class r{ccapSocket_CS=x(J);destroyRef=x(Te);graphLayout_$=b(null);activeNodeId_$=b("");selectedNodeId_$=b("");isGraphOpen_$=b(!1);graphOrchestratorId_$=b("");isLoading_$=b(!1);eventSubscription=null;constructor(){this.destroyRef.onDestroy(()=>{this.disposeSubscription()})}openGraph(e){this.disposeSubscription(),this.resetState(),this.graphOrchestratorId_$.set(e),this.isGraphOpen_$.set(!0);let t=ae.buildSkeletonLayout();this.graphLayout_$.set(t),this.eventSubscription=this.ccapSocket_CS.event$.pipe(G(i=>mt.has(i.event)&&i.payload?.orchestratorId===e)).subscribe(i=>{this.applyOrcEvent(i.event,i.payload)})}closeGraph(){this.disposeSubscription(),this.isGraphOpen_$.set(!1),this.selectedNodeId_$.set("")}selectNode(e){let t=this.selectedNodeId_$();this.selectedNodeId_$.set(t===e?"":e)}clearSelection(){this.selectedNodeId_$.set("")}applyOrcEvent(e,t){if(e==="orc:iterationStarted"){this.applyPhaseActive("wake");return}if(e==="orc:iterationCompleted"){this.markAllCompleted();return}if(e==="orc:statusChanged"){let i=t.status;i==="active"&&this.applyPhaseActive("wake"),(i==="paused"||i==="stopped"||i==="failed")&&this.markAllCompleted();return}if(e==="orc:started"){let i=ae.buildSkeletonLayout();this.graphLayout_$.set(i)}}applyPhaseActive(e){let t=pt[e];if(!t)return;let i=this.graphLayout_$();if(!i)return;let l=!1;for(let h of _t)h===t?(i=this.setNodeState(i,h,ne.active),l=!0):l||(i=this.setNodeState(i,h,ne.completed));this.activeNodeId_$.set(t),this.graphLayout_$.set(i)}markAllCompleted(){let e=this.graphLayout_$();if(e){for(let t of e.nodes)t.state!==ne.error&&(e=this.setNodeState(e,t.id,ne.completed));this.activeNodeId_$.set(""),this.graphLayout_$.set(e)}}setNodeState(e,t,i){let l=e.nodes.findIndex(y=>y.id===t);if(l<0)return e;let h=[...e.nodes];return h[l]=te(ee({},h[l]),{state:i}),te(ee({},e),{nodes:h})}resetState(){this.graphLayout_$.set(null),this.activeNodeId_$.set(""),this.selectedNodeId_$.set(""),this.isLoading_$.set(!1)}disposeSubscription(){this.eventSubscription&&(this.eventSubscription.unsubscribe(),this.eventSubscription=null)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var be=ie(re());var ge=class r{static mapAll(c){return c.map(e=>r.mapSingle(e))}static mapSingle(c){let e=r.resolveKind(c),t=c.from==="user";return{listKey:c._id,kind:e,bodyText:c.rawContent,timestampIso:c.__created,toolName:c.toolName??void 0,isUserAligned:t,headerStatusDot:e===P.error?"error":void 0,flags:{showCopy:!0,showRawInfo:!1,useEditDiffForExpandable:!1},toolCallId:c.toolCallId??void 0}}static resolveKind(c){switch(c.messageType){case"user-message":return P.userPrompt;case"orchestrator-response":return P.assistant;case"orchestrator-thinking":return P.thinking;case"tool-call":return P.tool;case"tool-result":return P.toolResult;case"iteration-summary":return P.statusUpdate;case"status-message":return P.info;default:return c.from==="user"?P.userPrompt:P.assistant}}};var ut=["scrollAnchor"],ht=(r,c)=>c.listKey,ft=(r,c)=>c._id;function xt(r,c){if(r&1&&(n(0,"p",14),a(1),o()),r&2){let e=d().$implicit;s(),v("Kontext: ",e.context,"")}}function Ct(r,c){if(r&1){let e=S();n(0,"div",15)(1,"button",18),p("click",function(){m(e);let i=d().$implicit,l=d(2);return u(l.handleYesNoChoice(i._id,"yes"))}),a(2," Igen "),o(),n(3,"button",18),p("click",function(){m(e);let i=d().$implicit,l=d(2);return u(l.handleYesNoChoice(i._id,"no"))}),a(4," Nem "),o(),n(5,"button",19),p("click",function(){m(e);let i=d().$implicit,l=d(2);return u(l.handleSubmitAnswer(i._id,i.questionType))}),a(6," K\xFCld\xE9s "),o()()}if(r&2){let e=d().$implicit,t=d(2);s(),E("bg-green-700",t.selectedChoice[e._id]==="yes")("bg-slate-700",t.selectedChoice[e._id]!=="yes"),s(2),E("bg-red-700",t.selectedChoice[e._id]==="no")("bg-slate-700",t.selectedChoice[e._id]!=="no"),s(2),C("disabled",!t.selectedChoice[e._id])}}function gt(r,c){if(r&1){let e=S();n(0,"label",20)(1,"input",22),p("change",function(){let i=m(e).$implicit,l=d(2).$implicit,h=d(2);return u(h.handleMultipleChoice(l._id,i))}),o(),a(2),o()}if(r&2){let e=c.$implicit,t=d(2).$implicit,i=d(2);s(),C("name",t._id)("value",e)("checked",i.selectedChoice[t._id]===e),s(),v(" ",e," ")}}function bt(r,c){if(r&1){let e=S();n(0,"div",16),D(1,gt,3,4,"label",20,le),n(3,"button",21),p("click",function(){m(e);let i=d().$implicit,l=d(2);return u(l.handleSubmitAnswer(i._id,i.questionType))}),a(4," K\xFCld\xE9s "),o()()}if(r&2){let e=d().$implicit,t=d(2);s(),M(e.possibleAnswers),s(2),C("disabled",!t.selectedChoice[e._id])}}function yt(r,c){if(r&1){let e=S();n(0,"div",17)(1,"textarea",23),W("ngModelChange",function(i){m(e);let l=d().$implicit,h=d(2);return z(h.answerDrafts[l._id],i)||(h.answerDrafts[l._id]=i),u(i)}),o(),n(2,"button",24),p("click",function(){m(e);let i=d().$implicit,l=d(2);return u(l.handleSubmitAnswer(i._id,i.questionType))}),a(3," K\xFCld\xE9s "),o()()}if(r&2){let e=d().$implicit,t=d(2);s(),N("ngModel",t.answerDrafts[e._id]),C("name",e._id),s(),C("disabled",!t.answerDrafts[e._id])}}function St(r,c){if(r&1&&(n(0,"div",12)(1,"p",13),a(2),o(),k(3,xt,2,1,"p",14)(4,Ct,7,9,"div",15)(5,bt,5,1,"div",16)(6,yt,4,3,"div",17),o()),r&2){let e=c.$implicit;s(2),g(e.questionText),s(),f(e.context?3:-1),s(),f(e.questionType==="yes-no"?4:-1),s(),f(e.questionType==="multiple-choice"&&e.possibleAnswers?5:-1),s(),f(e.questionType==="open"||e.questionType==="task-priority"?6:-1)}}function wt(r,c){if(r&1&&(n(0,"div",2)(1,"h3",11),a(2),o(),D(3,St,7,5,"div",12,ft),o()),r&2){let e=d();s(2),v("V\xE1laszra v\xE1r\xF3 k\xE9rd\xE9sek (",e.openQuestions_$().length,")"),s(),M(e.openQuestions_$())}}function vt(r,c){if(r&1&&A(0,"app-s-agent-console-message-bubble",4),r&2){let e=c.$implicit;C("view",e)}}function kt(r,c){r&1&&(n(0,"p",5),a(1,"M\xE9g nincs \xFCzenet."),o())}function Et(r,c){r&1&&(n(0,"div",6)(1,"div",25)(2,"span",26),a(3,"ORCHESTRATOR"),o(),n(4,"span",27),a(5,"gondolkodik..."),o()()())}var Ot=new Set(["orc:messageAdded","orc:userQuestionAsked","orc:userQuestionAnswered"]),Je=(()=>{class r extends Ge{orchestrator_DS=x(I);ccapSocket_CS=x(J);orchestratorId;scrollAnchor;questionsRaw_$=b([]);bubbleViews_$=q(()=>ge.mapAll(this.orchestrator_DS.currentMessages_$()));openQuestions_$=this.questionsRaw_$.asReadonly();isResponseGenerating_$=this.orchestrator_DS.isResponseGenerating_$;userInput="";answerDrafts={};selectedChoice={};constructor(){super()}ngOnInit(){this.refresh(),this.addSubscription(this.ccapSocket_CS.event$.pipe(G(e=>Ot.has(e.event)&&e.payload?.orchestratorId===this.orchestratorId)).subscribe(()=>_(this,null,function*(){yield this.refresh(),this.scrollToBottom()})))}handleSendMessage(){return _(this,null,function*(){if(!this.userInput)return;let e=this.userInput;this.userInput="";try{yield this.orchestrator_DS.postUserMessage(this.orchestratorId,e),yield this.orchestrator_DS.refreshCurrentMessages(this.orchestratorId),this.scrollToBottom()}catch(t){be.DyFM_Log.error("ORC_Chat | sendMessage failed",t),this.userInput=e}})}handleSubmitAnswer(e,t){return _(this,null,function*(){let i=t==="multiple-choice"||t==="yes-no"?this.selectedChoice[e]??"":this.answerDrafts[e]??"";if(i)try{yield this.orchestrator_DS.submitQuestionAnswer(this.orchestratorId,e,i),delete this.answerDrafts[e],delete this.selectedChoice[e],yield this.refresh()}catch(l){be.DyFM_Log.error("ORC_Chat | submitAnswer failed",l)}})}handleYesNoChoice(e,t){this.selectedChoice[e]=t}handleMultipleChoice(e,t){this.selectedChoice[e]=t}refresh(){return _(this,null,function*(){try{let e=yield this.orchestrator_DS.listQuestions(this.orchestratorId,!0);this.questionsRaw_$.set(e)}catch(e){be.DyFM_Log.error("ORC_Chat | refresh failed",e)}})}scrollToBottom(){setTimeout(()=>{this.scrollAnchor?.nativeElement?.scrollIntoView({behavior:"smooth"})},50)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-chat-panel"]],viewQuery:function(t,i){if(t&1&&Pe(ut,5),t&2){let l;Le(l=Ve())&&(i.scrollAnchor=l.first)}},hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],inputs:{orchestratorId:"orchestratorId"},standalone:!0,features:[Me,R],decls:15,vars:5,consts:[["scrollAnchor",""],["sChatColumnHeader",""],[1,"bg-cyan-950","border-b","border-cyan-500","p-3","space-y-3"],["sChatColumnScroll","",1,"p-3","space-y-2"],[3,"view"],[1,"text-sm","text-slate-500","italic","text-center","py-8"],[1,"flex","gap-2","py-2"],["sChatColumnComposer","",1,"border-t","border-slate-800","p-3"],[1,"flex","gap-2",3,"ngSubmit"],["rows","2","name","userInput","placeholder","\xDCzenet az Orchestrator-nak...",1,"flex-1","bg-slate-800","border","border-slate-700","rounded","px-3","py-2","text-white","text-sm","resize-none",3,"ngModelChange","ngModel"],["type","submit",1,"px-4","py-2","bg-cyan-600","hover:bg-cyan-500","text-white","rounded","text-sm","self-end","whitespace-nowrap",3,"disabled"],[1,"text-cyan-300","font-semibold","text-sm"],[1,"bg-cyan-900/50","border","border-cyan-700","rounded","p-3","space-y-2"],[1,"text-cyan-100","font-medium","text-sm"],[1,"text-xs","text-cyan-300","italic"],[1,"flex","gap-2"],[1,"space-y-1"],[1,"space-y-2"],[1,"px-3","py-1","rounded","text-sm","font-bold",3,"click"],[1,"ml-auto","px-4","py-1","bg-cyan-600","hover:bg-cyan-500","text-white","rounded","text-sm",3,"click","disabled"],[1,"flex","items-center","gap-2","text-sm","text-slate-200","cursor-pointer"],[1,"mt-2","px-4","py-1","bg-cyan-600","hover:bg-cyan-500","text-white","rounded","text-sm",3,"click","disabled"],["type","radio",3,"change","name","value","checked"],["rows","2","placeholder","V\xE1lasz...",1,"w-full","bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white","text-sm",3,"ngModelChange","ngModel","name"],[1,"px-4","py-1","bg-cyan-600","hover:bg-cyan-500","text-white","rounded","text-sm",3,"click","disabled"],[1,"max-w-[80%]","rounded","px-3","py-2","bg-slate-800","text-slate-400","text-sm","animate-pulse"],[1,"font-mono","text-xs"],[1,"ml-2"]],template:function(t,i){if(t&1){let l=S();n(0,"app-s-session-chat-column-layout")(1,"div",1),k(2,wt,5,1,"div",2),o(),n(3,"div",3),D(4,vt,1,1,"app-s-agent-console-message-bubble",4,ht,!1,kt,2,0,"p",5),k(7,Et,6,0,"div",6),A(8,"div",null,0),o(),n(10,"div",7)(11,"form",8),p("ngSubmit",function(){return m(l),u(i.handleSendMessage())}),n(12,"textarea",9),W("ngModelChange",function(y){return m(l),z(i.userInput,y)||(i.userInput=y),u(y)}),o(),n(13,"button",10),a(14," K\xFCld\xE9s "),o()()()()}t&2&&(s(2),f(i.openQuestions_$().length>0?2:-1),s(2),M(i.bubbleViews_$()),s(3),f(i.isResponseGenerating_$()?7:-1),s(5),N("ngModel",i.userInput),s(),C("disabled",!i.userInput))},dependencies:[$,Y,me,H,K,pe,X,_e,Ue,Be],encapsulation:2})}return r})();var Ze=(()=>{class r{graph_DS=x(Ce);isOpen_$=this.graph_DS.isGraphOpen_$;layout_$=this.graph_DS.graphLayout_$;activeNodeId_$=this.graph_DS.activeNodeId_$;selectedNodeId_$=this.graph_DS.selectedNodeId_$;isLoading_$=this.graph_DS.isLoading_$;handleClose(){this.graph_DS.closeGraph()}handleNodeClick(e){this.graph_DS.selectNode(e)}handleDetailClose(){this.graph_DS.clearSelection()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-graph-modal"]],standalone:!0,features:[R],decls:2,vars:6,consts:[["title","Orchestrator Flow Graph","maxWidth","7xl","headerBorderClass","border-cyan-600/30",3,"closed","isOpen","bodyFlexColumn"],[1,"flex-1","min-h-0",3,"nodeClicked","detailClosed","layout","activeNodeId","selectedNodeId","isLoading"]],template:function(t,i){t&1&&(n(0,"app-s-modal",0),p("closed",function(){return i.handleClose()}),n(1,"app-ses-graph-view",1),p("nodeClicked",function(h){return i.handleNodeClick(h)})("detailClosed",function(){return i.handleDetailClose()}),o()()),t&2&&(C("isOpen",i.isOpen_$())("bodyFlexColumn",!0),s(),C("layout",i.layout_$())("activeNodeId",i.activeNodeId_$())("selectedNodeId",i.selectedNodeId_$())("isLoading",i.isLoading_$()))},dependencies:[$,je,He],encapsulation:2})}return r})();var et=(()=>{class r{mode_$=De.required({alias:"mode_$"});modeChanged=Ie();handleToggle(){let t=this.mode_$()==="active"?"passive":"active";this.modeChanged.emit(t)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-mode-switcher"]],inputs:{mode_$:[1,"mode_$"]},outputs:{modeChanged:"modeChanged"},standalone:!0,features:[R],decls:5,vars:18,consts:[[1,"inline-flex","rounded-full","border","border-slate-600","overflow-hidden","text-xs","font-semibold"],["title","Auton\xF3m loop m\xF3d \u2014 az orchestrator \xF6n\xE1ll\xF3an futtatja az iter\xE1ci\xF3kat",1,"px-3","py-1","transition-colors",3,"click","disabled"],["title","Chat m\xF3d \u2014 az orchestrator a user \xFCzenetekre v\xE1laszol",1,"px-3","py-1","transition-colors",3,"click","disabled"]],template:function(t,i){t&1&&(n(0,"div",0)(1,"button",1),p("click",function(){return i.handleToggle()}),a(2," Active Loop "),o(),n(3,"button",2),p("click",function(){return i.handleToggle()}),a(4," Chat Mode "),o()()),t&2&&(s(),E("bg-green-800",i.mode_$()==="active")("text-green-200",i.mode_$()==="active")("bg-transparent",i.mode_$()!=="active")("text-slate-400",i.mode_$()!=="active"),C("disabled",i.mode_$()==="active"),s(2),E("bg-cyan-800",i.mode_$()==="passive")("text-cyan-200",i.mode_$()==="passive")("bg-transparent",i.mode_$()!=="passive")("text-slate-400",i.mode_$()!=="passive"),C("disabled",i.mode_$()==="passive"))},encapsulation:2})}return r})();var Rt=(r,c)=>c._id;function $t(r,c){r&1&&(n(0,"p",31),a(1," Nincs a sz\u0171r\u0151knek megfelel\u0151 task. "),o())}function Tt(r,c){if(r&1&&(n(0,"tr",38)(1,"td",39),a(2),o(),n(3,"td",40),a(4),o(),n(5,"td",41),a(6),o(),n(7,"td",42)(8,"span"),a(9),o()(),n(10,"td",43),a(11),o(),n(12,"td",44),a(13),o()()),r&2){let e=c.$implicit;s(2),g(e.code),s(2),g(e.title),s(2),g(e.type),s(2),E("text-red-400",e.priority==="critical")("text-orange-400",e.priority==="high")("text-slate-400",e.priority==="normal")("text-slate-600",e.priority==="low"),s(),v(" ",e.priority," "),s(2),g(e.source),s(2),v(" ",e.assignedAgentType||"\u2014"," ")}}function It(r,c){if(r&1&&(n(0,"div",32)(1,"div",33),a(2),n(3,"span",34),a(4),o()(),n(5,"table",35)(6,"thead",36)(7,"tr")(8,"th",37),a(9,"Code"),o(),n(10,"th",37),a(11,"Title"),o(),n(12,"th",37),a(13,"Type"),o(),n(14,"th",37),a(15,"Priority"),o(),n(16,"th",37),a(17,"Source"),o(),n(18,"th",37),a(19,"Agent"),o()()(),n(20,"tbody"),D(21,Tt,14,14,"tr",38,Rt),o()()()),r&2){let e=c.$implicit,t=d();s(2),v(" ",e," "),s(2),v("(",t.groupedByStatus_$()[e].length,")"),s(17),M(t.groupedByStatus_$()[e])}}var tt=(()=>{class r{orchestrator_DS=x(I);tasks_$;filterStatus_$=b("all");filterType_$=b("all");filterPriority_$=b("all");searchText_$=b("");filteredTasks_$=q(()=>{let e=this.tasks_$(),t=this.filterStatus_$(),i=this.filterType_$(),l=this.filterPriority_$(),h=this.searchText_$();return e.filter(y=>!(t!=="all"&&y.status!==t||i!=="all"&&y.type!==i||l!=="all"&&y.priority!==l||h.trim()&&!ye.includesText(y.title,h)&&!ye.includesText(y.description,h)))});groupedByStatus_$=q(()=>{let e={};for(let t of this.filteredTasks_$()){let i=t.status;e[i]||(e[i]=[]),e[i].push(t)}return e});statusOrder=["in-progress","waiting-on-agent","waiting-on-user","scheduled","pending","completed","failed","cancelled"];orderedGroupKeys_$=q(()=>{let e=this.groupedByStatus_$();return this.statusOrder.filter(t=>(e[t]?.length??0)>0)});handleFilterStatus(e){this.filterStatus_$.set(e)}handleFilterType(e){this.filterType_$.set(e)}handleFilterPriority(e){this.filterPriority_$.set(e)}handleSearchText(e){this.searchText_$.set(e)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-task-queue-panel"]],inputs:{tasks_$:"tasks_$"},standalone:!0,features:[R],decls:62,vars:7,consts:[[1,"bg-slate-900","border","border-slate-800","rounded","p-4","space-y-3"],[1,"flex","items-center","justify-between"],[1,"text-lg","font-semibold","text-cyan-300"],[1,"text-xs","text-slate-500","font-mono"],[1,"grid","grid-cols-2","md:grid-cols-4","gap-2"],["name","filterStatus",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white","text-xs",3,"ngModelChange","ngModel"],["value","all"],["value","pending"],["value","scheduled"],["value","in-progress"],["value","waiting-on-user"],["value","waiting-on-agent"],["value","completed"],["value","failed"],["value","cancelled"],["name","filterType",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white","text-xs",3,"ngModelChange","ngModel"],["value","implementation"],["value","bug-fix"],["value","review"],["value","documentation"],["value","refactor"],["value","research"],["value","spec-extension"],["value","maintenance"],["value","bootstrap-project-cleanup"],["name","filterPriority",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white","text-xs",3,"ngModelChange","ngModel"],["value","critical"],["value","high"],["value","normal"],["value","low"],["name","searchText","placeholder","Keres\xE9s c\xEDm / le\xEDr\xE1s...",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white","text-xs",3,"ngModelChange","ngModel"],[1,"text-sm","text-slate-500","italic","text-center","py-8"],[1,"bg-slate-950","border","border-slate-800","rounded","overflow-hidden"],[1,"bg-slate-800","px-3","py-1","text-xs","font-bold","text-slate-300","uppercase","tracking-wider"],[1,"text-slate-500","ml-2"],[1,"w-full","text-xs"],[1,"bg-slate-900"],[1,"text-left","px-2","py-1","text-slate-400","font-normal"],[1,"border-t","border-slate-800","hover:bg-slate-800/30"],[1,"px-2","py-1","font-mono","text-cyan-400"],[1,"px-2","py-1","text-slate-200"],[1,"px-2","py-1","text-slate-400"],[1,"px-2","py-1"],[1,"px-2","py-1","text-slate-500"],[1,"px-2","py-1","text-slate-400","text-xs"]],template:function(t,i){t&1&&(n(0,"div",0)(1,"div",1)(2,"h2",2),a(3,"Task Queue"),o(),n(4,"span",3),a(5),o()(),n(6,"div",4)(7,"select",5),p("ngModelChange",function(h){return i.handleFilterStatus(h)}),n(8,"option",6),a(9,"\xD6sszes st\xE1tusz"),o(),n(10,"option",7),a(11,"pending"),o(),n(12,"option",8),a(13,"scheduled"),o(),n(14,"option",9),a(15,"in-progress"),o(),n(16,"option",10),a(17,"waiting-on-user"),o(),n(18,"option",11),a(19,"waiting-on-agent"),o(),n(20,"option",12),a(21,"completed"),o(),n(22,"option",13),a(23,"failed"),o(),n(24,"option",14),a(25,"cancelled"),o()(),n(26,"select",15),p("ngModelChange",function(h){return i.handleFilterType(h)}),n(27,"option",6),a(28,"\xD6sszes t\xEDpus"),o(),n(29,"option",16),a(30,"implementation"),o(),n(31,"option",17),a(32,"bug-fix"),o(),n(33,"option",18),a(34,"review"),o(),n(35,"option",19),a(36,"documentation"),o(),n(37,"option",20),a(38,"refactor"),o(),n(39,"option",21),a(40,"research"),o(),n(41,"option",22),a(42,"spec-extension"),o(),n(43,"option",23),a(44,"maintenance"),o(),n(45,"option",24),a(46,"bootstrap"),o()(),n(47,"select",25),p("ngModelChange",function(h){return i.handleFilterPriority(h)}),n(48,"option",6),a(49,"\xD6sszes priorit\xE1s"),o(),n(50,"option",26),a(51,"critical"),o(),n(52,"option",27),a(53,"high"),o(),n(54,"option",28),a(55,"normal"),o(),n(56,"option",29),a(57,"low"),o()(),n(58,"input",30),p("ngModelChange",function(h){return i.handleSearchText(h)}),o()(),k(59,$t,2,0,"p",31),D(60,It,23,2,"div",32,le),o()),t&2&&(s(5),ce(" ",i.filteredTasks_$().length," / ",i.tasks_$().length," task "),s(2),C("ngModel",i.filterStatus_$()),s(19),C("ngModel",i.filterType_$()),s(21),C("ngModel",i.filterPriority_$()),s(11),C("ngModel",i.searchText_$()),s(),f(i.orderedGroupKeys_$().length===0?59:-1),s(),M(i.orderedGroupKeys_$()))},dependencies:[$,Y,he,fe,H,ue,K,X],encapsulation:2})}return r})();var ve=ie(re());var Dt=(r,c)=>c.id;function Mt(r,c){r&1&&(n(0,"p",4),a(1,"Nincs bet\xF6lt\xF6tt workflow."),o())}function Pt(r,c){if(r&1){let e=S();n(0,"div",8),p("click",function(){let i=m(e).$implicit,l=d();return u(l.handleOpenDetails(i.id))}),n(1,"h3",9),a(2),o(),n(3,"p",10),a(4),o()()}if(r&2){let e=c.$implicit;s(2),g(e.name),s(2),g(e.summary)}}function Lt(r,c){if(r&1){let e=S();n(0,"div",11),p("click",function(){m(e);let i=d();return u(i.handleCloseDetails())}),n(1,"div",12),p("click",function(i){return m(e),u(i.stopPropagation())}),n(2,"div",13)(3,"h3",14),a(4),o(),n(5,"button",15),p("click",function(){m(e);let i=d();return u(i.handleCloseDetails())}),a(6,"\u2715"),o()(),n(7,"pre",16),a(8),o()()()}if(r&2){let e=c;s(4),g(e.filename),s(4),g(e.rawText)}}var it=(()=>{class r{orchestrator_DS=x(I);orchestratorId;workflowsRaw_$=b([]);selectedRaw_$=b(null);loadingRaw_$=b(!1);workflows_$=this.workflowsRaw_$.asReadonly();selected_$=this.selectedRaw_$.asReadonly();loading_$=this.loadingRaw_$.asReadonly();ngOnInit(){this.loadList()}handleOpenDetails(e){return _(this,null,function*(){try{this.loadingRaw_$.set(!0);let t=yield this.orchestrator_DS.getWorkflowById(this.orchestratorId,e);this.selectedRaw_$.set(t)}catch(t){ve.DyFM_Log.error("WorkflowLibrary | getWorkflow failed",t)}finally{this.loadingRaw_$.set(!1)}})}handleCloseDetails(){this.selectedRaw_$.set(null)}loadList(){return _(this,null,function*(){try{let e=yield this.orchestrator_DS.listWorkflows(this.orchestratorId);this.workflowsRaw_$.set(e)}catch(e){ve.DyFM_Log.error("WorkflowLibrary | listWorkflows failed",e)}})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-workflow-library-panel"]],inputs:{orchestratorId:"orchestratorId"},standalone:!0,features:[R],decls:11,vars:3,consts:[[1,"bg-slate-900","border","border-slate-800","rounded","p-4","space-y-3"],[1,"flex","items-center","justify-between"],[1,"text-lg","font-semibold","text-cyan-300"],[1,"text-xs","text-slate-500","font-mono"],[1,"text-sm","text-slate-500","italic"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-2"],[1,"bg-slate-950","border","border-slate-800","rounded","p-3","hover:border-cyan-700","cursor-pointer","transition"],[1,"fixed","inset-0","bg-black/70","flex","items-center","justify-center","p-4","z-50"],[1,"bg-slate-950","border","border-slate-800","rounded","p-3","hover:border-cyan-700","cursor-pointer","transition",3,"click"],[1,"text-cyan-400","font-mono","text-sm"],[1,"text-xs","text-slate-400","mt-1","line-clamp-3"],[1,"fixed","inset-0","bg-black/70","flex","items-center","justify-center","p-4","z-50",3,"click"],[1,"bg-slate-900","border","border-cyan-700","rounded","p-4","max-w-3xl","max-h-[80vh]","overflow-auto","w-full",2,"max-height","80dvh",3,"click"],[1,"flex","items-center","justify-between","mb-3"],[1,"text-cyan-300","font-bold"],[1,"text-slate-400","hover:text-white",3,"click"],[1,"text-xs","text-slate-200","whitespace-pre-wrap","font-mono"]],template:function(t,i){if(t&1&&(n(0,"div",0)(1,"div",1)(2,"h2",2),a(3,"Workflow Library"),o(),n(4,"span",3),a(5),o()(),k(6,Mt,2,0,"p",4),n(7,"div",5),D(8,Pt,5,2,"div",6,Dt),o(),k(10,Lt,9,2,"div",7),o()),t&2){let l;s(5),v("",i.workflows_$().length," workflow"),s(),f(i.workflows_$().length===0?6:-1),s(2),M(i.workflows_$()),s(2),f((l=i.selected_$())?10:-1,l)}},dependencies:[$],encapsulation:2})}return r})();function Ft(r,c){if(r&1){let e=S();n(0,"button",27),p("click",function(){m(e);let i=d(2);return u(i.handleStart())}),a(1,"Start"),o()}}function At(r,c){if(r&1){let e=S();n(0,"button",28),p("click",function(){m(e);let i=d(2);return u(i.handlePause())}),a(1,"Pause"),o()}}function Nt(r,c){if(r&1){let e=S();n(0,"button",27),p("click",function(){m(e);let i=d(2);return u(i.handleResume())}),a(1,"Resume"),o()}}function zt(r,c){if(r&1){let e=S();n(0,"button",29),p("click",function(){m(e);let i=d(2);return u(i.handleStop())}),a(1,"Stop"),o()}}function Wt(r,c){if(r&1){let e=S();n(0,"div",18)(1,"div")(2,"h3",30),a(3,"Bootstrap \u2014 user j\xF3v\xE1hagy\uFFFD\uFFFDs sz\xFCks\xE9ges"),o(),n(4,"p",31),a(5,"N\xE9zd \xE1t a task-list\xE1t, \xE9s kattints az Elfogadom gombra."),o()(),n(6,"button",32),p("click",function(){m(e);let i=d(2);return u(i.handleConfirmBootstrap())}),a(7," Elfogadom "),o()()}}function Gt(r,c){if(r&1&&A(0,"app-orc-task-queue-panel",24),r&2){let e=d(2);C("tasks_$",e.tasks_$)}}function jt(r,c){if(r&1&&A(0,"app-orc-workflow-library-panel",25),r&2){let e,t=d(2);C("orchestratorId",(e=t.orchestratorId)!==null&&e!==void 0?e:"")}}function qt(r,c){if(r&1&&(n(0,"div",26)(1,"div")(2,"span",33),a(3,"Scope"),o(),n(4,"span",34),a(5),o()(),n(6,"div")(7,"span",33),a(8,"Projekt"),o(),n(9,"span",35),a(10),o()(),n(11,"div")(12,"span",33),a(13,"LLM"),o(),n(14,"span",34),a(15),o()(),n(16,"div")(17,"span",33),a(18,"Iter\xE1ci\xF3"),o(),n(19,"span",36),a(20),o()(),n(21,"div")(22,"span",33),a(23,"Max parallel"),o(),n(24,"span",36),a(25),o()(),n(26,"div")(27,"span",33),a(28,"Poll (s)"),o(),n(29,"span",36),a(30),o()(),n(31,"div")(32,"span",33),a(33,"Mode"),o(),n(34,"span",34),a(35),o()()()),r&2){let e=d();s(5),g(e.scope),s(5),g(e.projectId||"\u2014"),s(5),ce("",e.providerName," / ",e.model,""),s(5),g(e.iterationCount),s(5),g(e.maxParallelism),s(5),g(e.pollIntervalSeconds),s(5),g(e.operationMode)}}function Bt(r,c){if(r&1){let e=S();n(0,"app-s-session-detail-three-column-layout",2),p("endResizeStart",function(i){m(e);let l=d();return u(l.handleSidebarResizeStart(i))}),n(1,"div",3)(2,"div",4)(3,"a",5),a(4,"\u2190"),o(),n(5,"div",6)(6,"h1",7),a(7),o(),n(8,"p",8),a(9),o()(),n(10,"span",9),a(11),o(),n(12,"app-orc-mode-switcher",10),p("modeChanged",function(i){m(e);let l=d();return u(l.handleModeSwitch(i))}),o(),A(13,"span",11),n(14,"div",12),k(15,Ft,2,0,"button",13)(16,At,2,0,"button",14)(17,Nt,2,0,"button",13)(18,zt,2,0,"button",15),o(),n(19,"button",16),p("click",function(){m(e);let i=d();return u(i.handleOpenGraph())}),a(20," Graph "),o(),n(21,"button",17),p("click",function(){m(e);let i=d();return u(i.handleToggleSidebar())}),a(22),o()(),k(23,Wt,8,0,"div",18),A(24,"app-orc-chat-panel",19),o(),n(25,"div",20)(26,"div",21)(27,"button",22),p("click",function(){m(e);let i=d();return u(i.sidebarTab="tasks")}),a(28),o(),n(29,"button",22),p("click",function(){m(e);let i=d();return u(i.sidebarTab="workflows")}),a(30," Workflows "),o(),n(31,"button",22),p("click",function(){m(e);let i=d();return u(i.sidebarTab="info")}),a(32," Info "),o()(),n(33,"div",23),k(34,Gt,1,1,"app-orc-task-queue-panel",24)(35,jt,1,1,"app-orc-workflow-library-panel",25)(36,qt,36,8,"div",26),o()()()}if(r&2){let e,t=c,i=d();C("isStartOpen",!1)("isEndOpen",i.isSidebarOpen)("endWidthPx",i.sidebarWidthPx)("isResizing",i.isResizing),s(7),g(t.name),s(2),g(t._id),s(),E("bg-green-900",t.status==="active")("text-green-300",t.status==="active")("bg-yellow-900",t.status==="paused")("text-yellow-300",t.status==="paused")("bg-cyan-900",t.status==="waiting-for-user"||t.status==="bootstrap")("text-cyan-300",t.status==="waiting-for-user"||t.status==="bootstrap")("bg-red-900",t.status==="failed")("text-red-300",t.status==="failed")("bg-slate-700",t.status==="stopped"||t.status==="initializing")("text-slate-300",t.status==="stopped"||t.status==="initializing"),s(),v(" ",t.status," "),s(),C("mode_$",t.operationMode),s(3),f(t.status==="initializing"||t.status==="paused"||t.status==="stopped"?15:-1),s(),f(t.status==="active"?16:-1),s(),f(t.status==="paused"?17:-1),s(),f(t.status!=="stopped"?18:-1),s(4),v(" ",i.isSidebarOpen?"\u25B6":"\u25C0"," "),s(),f(t.status==="waiting-for-user"?23:-1),s(),C("orchestratorId",(e=i.orchestratorId)!==null&&e!==void 0?e:""),s(3),E("text-cyan-300",i.sidebarTab==="tasks")("border-b-2",i.sidebarTab==="tasks")("border-cyan-400",i.sidebarTab==="tasks")("text-slate-500",i.sidebarTab!=="tasks"),s(),v(" Tasks (",i.tasks_$().length,") "),s(),E("text-cyan-300",i.sidebarTab==="workflows")("border-b-2",i.sidebarTab==="workflows")("border-cyan-400",i.sidebarTab==="workflows")("text-slate-500",i.sidebarTab!=="workflows"),s(2),E("text-cyan-300",i.sidebarTab==="info")("border-b-2",i.sidebarTab==="info")("border-cyan-400",i.sidebarTab==="info")("text-slate-500",i.sidebarTab!=="info"),s(3),f(i.sidebarTab==="tasks"?34:-1),s(),f(i.sidebarTab==="workflows"?35:-1),s(),f(i.sidebarTab==="info"?36:-1)}}function Ut(r,c){r&1&&(n(0,"div",1),a(1," T\xF6lt\u0151dik az orchestrator\u2026 "),o())}var ke=(()=>{class r{route=x(Ne);orchestrator_DS=x(I);realtime_CS=x(xe);graph_DS=x(Ce);current_$=this.orchestrator_DS.currentOrchestrator_$;tasks_$=this.orchestrator_DS.currentTasks_$;orchestratorId=null;isSidebarOpen=!0;sidebarWidthPx=320;isResizing=!1;sidebarTab="tasks";resizeStartX=0;resizeStartWidth=0;onResizeMove=e=>this.handleSidebarResizeMove(e);onResizeEnd=()=>this.handleSidebarResizeEnd();ngOnInit(){this.orchestratorId=this.route.snapshot.paramMap.get("id"),this.orchestratorId&&(this.orchestrator_DS.refreshCurrent(this.orchestratorId),this.orchestrator_DS.refreshCurrentTasks(this.orchestratorId),this.orchestrator_DS.refreshCurrentMessages(this.orchestratorId),this.realtime_CS.subscribeDetail(this.orchestratorId))}ngOnDestroy(){this.realtime_CS.unsubscribeDetail(),this.orchestrator_DS.clearCurrent(),document.removeEventListener("pointermove",this.onResizeMove),document.removeEventListener("pointerup",this.onResizeEnd)}handleStart(){return _(this,null,function*(){if(this.orchestratorId)try{yield this.orchestrator_DS.startOrchestrator(this.orchestratorId)}catch(e){B.DyFM_Log.error("ORC_Detail | start failed",e)}})}handlePause(){return _(this,null,function*(){if(this.orchestratorId)try{yield this.orchestrator_DS.pauseOrchestrator(this.orchestratorId)}catch(e){B.DyFM_Log.error("ORC_Detail | pause failed",e)}})}handleResume(){return _(this,null,function*(){if(this.orchestratorId)try{yield this.orchestrator_DS.resumeOrchestrator(this.orchestratorId)}catch(e){B.DyFM_Log.error("ORC_Detail | resume failed",e)}})}handleStop(){return _(this,null,function*(){if(this.orchestratorId)try{yield this.orchestrator_DS.stopOrchestrator(this.orchestratorId)}catch(e){B.DyFM_Log.error("ORC_Detail | stop failed",e)}})}handleConfirmBootstrap(){return _(this,null,function*(){if(this.orchestratorId)try{yield this.orchestrator_DS.confirmBootstrap(this.orchestratorId)}catch(e){B.DyFM_Log.error("ORC_Detail | confirmBootstrap failed",e)}})}handleModeSwitch(e){return _(this,null,function*(){if(this.orchestratorId)try{yield this.orchestrator_DS.switchMode(this.orchestratorId,e)}catch(t){B.DyFM_Log.error("ORC_Detail | switchMode failed",t)}})}handleOpenGraph(){this.orchestratorId&&this.graph_DS.openGraph(this.orchestratorId)}handleToggleSidebar(){this.isSidebarOpen=!this.isSidebarOpen}handleSidebarResizeStart(e){this.isResizing=!0,this.resizeStartX=e.clientX,this.resizeStartWidth=this.sidebarWidthPx,document.addEventListener("pointermove",this.onResizeMove),document.addEventListener("pointerup",this.onResizeEnd)}handleSidebarResizeMove(e){let t=this.resizeStartX-e.clientX;this.sidebarWidthPx=Math.max(200,Math.min(600,this.resizeStartWidth+t))}handleSidebarResizeEnd(){this.isResizing=!1,document.removeEventListener("pointermove",this.onResizeMove),document.removeEventListener("pointerup",this.onResizeEnd)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-detail"]],hostAttrs:[1,"flex","flex-1","min-h-0","overflow-hidden"],standalone:!0,features:[R],decls:3,vars:1,consts:[[3,"isStartOpen","isEndOpen","endWidthPx","isResizing"],[1,"flex","items-center","justify-center","h-full","text-slate-500"],[3,"endResizeStart","isStartOpen","isEndOpen","endWidthPx","isResizing"],["sDetailColumnMain","",1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],[1,"flex","items-center","gap-3","px-4","py-3","border-b","border-slate-800","bg-slate-900","shrink-0"],["routerLink","/orchestrator",1,"text-cyan-400","hover:text-cyan-300","text-sm"],[1,"min-w-0"],[1,"text-lg","font-bold","text-cyan-300","truncate"],[1,"text-xs","text-slate-500","font-mono","truncate"],[1,"px-2","py-0.5","rounded","text-xs","font-bold","shrink-0"],[3,"modeChanged","mode_$"],[1,"flex-1"],[1,"flex","gap-1","shrink-0"],[1,"px-3","py-1","bg-green-700","hover:bg-green-600","text-white","rounded","text-xs"],[1,"px-3","py-1","bg-yellow-700","hover:bg-yellow-600","text-white","rounded","text-xs"],[1,"px-3","py-1","bg-red-800","hover:bg-red-700","text-white","rounded","text-xs"],["title","Flow Graph",1,"px-2","py-1","border","border-cyan-700","text-cyan-400","hover:bg-cyan-900/30","rounded","text-xs","transition-colors","shrink-0",3,"click"],["title","Task queue sidebar",1,"px-2","py-1","border","border-slate-600","text-slate-400","hover:bg-slate-700/50","rounded","text-xs","transition-colors","shrink-0",3,"click"],[1,"bg-cyan-950","border-b","border-cyan-500","px-4","py-3","flex","items-center","justify-between","animate-pulse","shrink-0"],[1,"flex-1","min-h-0",3,"orchestratorId"],["sDetailColumnEnd","",1,"flex","flex-col","min-h-0","overflow-hidden"],[1,"flex","border-b","border-slate-800","shrink-0"],[1,"flex-1","px-3","py-2","text-xs","font-semibold","transition-colors",3,"click"],[1,"flex-1","overflow-y-auto","min-h-0"],[3,"tasks_$"],[3,"orchestratorId"],[1,"p-3","space-y-2","text-sm"],[1,"px-3","py-1","bg-green-700","hover:bg-green-600","text-white","rounded","text-xs",3,"click"],[1,"px-3","py-1","bg-yellow-700","hover:bg-yellow-600","text-white","rounded","text-xs",3,"click"],[1,"px-3","py-1","bg-red-800","hover:bg-red-700","text-white","rounded","text-xs",3,"click"],[1,"text-cyan-300","font-semibold","text-sm"],[1,"text-xs","text-cyan-200","mt-1"],[1,"px-4","py-2","bg-cyan-600","hover:bg-cyan-500","text-white","font-bold","rounded","transition","whitespace-nowrap","text-sm",3,"click"],[1,"text-xs","text-slate-500","block"],[1,"text-slate-200"],[1,"text-slate-200","font-mono","text-xs"],[1,"text-slate-200","font-mono"]],template:function(t,i){if(t&1&&(k(0,Bt,37,63,"app-s-session-detail-three-column-layout",0)(1,Ut,2,0,"div",1),A(2,"app-orc-graph-modal")),t&2){let l;f((l=i.current_$())?0:1,l)}},dependencies:[$,Q,de,qe,Je,Ze,et,tt,it],encapsulation:2})}return r})();var se=ie(re());var Qt=(r,c)=>c._id,Ht=r=>["/orchestrator",r];function Kt(r,c){if(r&1){let e=S();n(0,"button",12),p("click",function(){m(e);let i=d();return u(i.openForm())}),a(1," + \xDAj Orchestrator "),o()}}function Xt(r,c){if(r&1&&(n(0,"div",27),a(1),o()),r&2){let e=d(2);s(),v(" ",e.formError," ")}}function Yt(r,c){if(r&1){let e=S();n(0,"form",13),p("ngSubmit",function(){m(e);let i=d();return u(i.handleSubmitForm())}),n(1,"h2",14),a(2,"\xDAj Orchestrator"),o(),n(3,"div",15)(4,"label",16)(5,"span",17),a(6,"N\xE9v *"),o(),n(7,"input",18),W("ngModelChange",function(i){m(e);let l=d();return z(l.formName,i)||(l.formName=i),u(i)}),o()(),n(8,"label",16)(9,"span",17),a(10,"Scope"),o(),n(11,"select",19),W("ngModelChange",function(i){m(e);let l=d();return z(l.formScope,i)||(l.formScope=i),u(i)}),n(12,"option",20),a(13,"single-project"),o(),n(14,"option",21),a(15,"cross-project"),o(),n(16,"option",22),a(17,"specialized"),o()()(),n(18,"label",16)(19,"span",17),a(20,"Projekt ID"),o(),n(21,"input",23),W("ngModelChange",function(i){m(e);let l=d();return z(l.formProjectId,i)||(l.formProjectId=i),u(i)}),o()(),n(22,"label",16)(23,"span",17),a(24,"LLM Provider"),o(),n(25,"input",24),W("ngModelChange",function(i){m(e);let l=d();return z(l.formProviderName,i)||(l.formProviderName=i),u(i)}),o()(),n(26,"label",25)(27,"span",17),a(28,"Modell"),o(),n(29,"input",26),W("ngModelChange",function(i){m(e);let l=d();return z(l.formModel,i)||(l.formModel=i),u(i)}),o()()(),k(30,Xt,2,1,"div",27),n(31,"div",28)(32,"button",29),p("click",function(){m(e);let i=d();return u(i.closeForm())}),a(33," M\xE9gse "),o(),n(34,"button",30),a(35," L\xE9trehoz\xE1s "),o()()()}if(r&2){let e=d();s(7),N("ngModel",e.formName),s(4),N("ngModel",e.formScope),s(10),N("ngModel",e.formProjectId),s(4),N("ngModel",e.formProviderName),s(4),N("ngModel",e.formModel),s(),f(e.formError?30:-1)}}function Jt(r,c){if(r&1){let e=S();n(0,"button",41),p("click",function(){m(e);let i=d().$implicit,l=d();return u(l.handleStart(i._id))}),a(1," start "),o()}}function Zt(r,c){if(r&1){let e=S();n(0,"button",42),p("click",function(){m(e);let i=d().$implicit,l=d();return u(l.handlePause(i._id))}),a(1," pause "),o()}}function ei(r,c){if(r&1){let e=S();n(0,"button",41),p("click",function(){m(e);let i=d().$implicit,l=d();return u(l.handleResume(i._id))}),a(1," resume "),o()}}function ti(r,c){if(r&1){let e=S();n(0,"button",43),p("click",function(){m(e);let i=d().$implicit,l=d();return u(l.handleStop(i._id))}),a(1," stop "),o()}}function ii(r,c){if(r&1&&(n(0,"tr",11)(1,"td",31)(2,"a",32),a(3),o()(),n(4,"td",33),a(5),o(),n(6,"td",34),a(7),o(),n(8,"td",31)(9,"span",35),a(10),o()(),n(11,"td",36),a(12),o(),n(13,"td",37),k(14,Jt,2,0,"button",38)(15,Zt,2,0,"button",39)(16,ei,2,0,"button",38)(17,ti,2,0,"button",40),o()()),r&2){let e=c.$implicit;s(2),C("routerLink",Fe(30,Ht,e._id)),s(),v(" ",e.name," "),s(2),g(e.scope),s(2),v(" ",e.projectId||e.projectIds.join(",")||"\u2014"," "),s(2),E("bg-green-900",e.status==="active")("text-green-300",e.status==="active")("bg-yellow-900",e.status==="paused")("text-yellow-300",e.status==="paused")("bg-cyan-900",e.status==="waiting-for-user"||e.status==="bootstrap")("text-cyan-300",e.status==="waiting-for-user"||e.status==="bootstrap")("bg-red-900",e.status==="failed")("text-red-300",e.status==="failed")("bg-slate-700",e.status==="stopped"||e.status==="initializing")("text-slate-300",e.status==="stopped"||e.status==="initializing"),s(),v(" ",e.status," "),s(2),g(e.iterationCount),s(2),f(e.status==="initializing"||e.status==="paused"||e.status==="stopped"?14:-1),s(),f(e.status==="active"?15:-1),s(),f(e.status==="paused"?16:-1),s(),f(e.status!=="stopped"?17:-1)}}function ri(r,c){r&1&&(n(0,"tr")(1,"td",44),a(2,' Nincs Orchestrator. Kattints a \u201E+ \xDAj Orchestrator" gombra. '),o()())}var Ee=(()=>{class r{orchestrator_DS=x(I);realtime_CS=x(xe);orchestratorList_$=this.orchestrator_DS.orchestratorList_$;activeCount_$=this.orchestrator_DS.activeCount_$;formName="";formScope="single-project";formProjectId="";formProviderName="";formModel="";formIsOpen=!1;formError=null;ngOnInit(){this.realtime_CS.subscribeGlobal(),this.orchestrator_DS.refreshList()}openForm(){this.formIsOpen=!0,this.formError=null}closeForm(){this.formIsOpen=!1,this.formName="",this.formProjectId="",this.formProviderName="",this.formModel="",this.formError=null}handleSubmitForm(){return _(this,null,function*(){try{if(!this.formName.trim()){this.formError="N\xE9v megad\xE1sa k\xF6telez\u0151.";return}yield this.orchestrator_DS.createOrchestrator({name:this.formName.trim(),scope:this.formScope,projectId:this.formProjectId.trim()||void 0,providerName:this.formProviderName.trim()||void 0,model:this.formModel.trim()||void 0}),this.closeForm()}catch(e){this.formError=this.extractErrorMessage(e)}})}handleStart(e){return _(this,null,function*(){try{yield this.orchestrator_DS.startOrchestrator(e)}catch(t){se.DyFM_Log.error("ORC_List | start failed",t)}})}handlePause(e){return _(this,null,function*(){try{yield this.orchestrator_DS.pauseOrchestrator(e)}catch(t){se.DyFM_Log.error("ORC_List | pause failed",t)}})}handleResume(e){return _(this,null,function*(){try{yield this.orchestrator_DS.resumeOrchestrator(e)}catch(t){se.DyFM_Log.error("ORC_List | resume failed",t)}})}handleStop(e){return _(this,null,function*(){try{yield this.orchestrator_DS.stopOrchestrator(e)}catch(t){se.DyFM_Log.error("ORC_List | stop failed",t)}})}extractErrorMessage(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):String(e)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=O({type:r,selectors:[["app-orc-list"]],standalone:!0,features:[R],decls:31,vars:4,consts:[[1,"p-6","space-y-4"],[1,"flex","items-center","justify-between"],[1,"text-2xl","font-bold","text-cyan-300"],[1,"text-sm","text-slate-400"],[1,"text-green-400","font-mono"],[1,"px-4","py-2","bg-cyan-600","hover:bg-cyan-500","text-white","font-bold","rounded","transition"],[1,"bg-slate-900","border","border-cyan-800","rounded","p-4","space-y-3"],[1,"overflow-x-auto","bg-slate-900","border","border-slate-800","rounded"],[1,"w-full","text-sm"],[1,"bg-slate-800","text-slate-300"],[1,"text-left","px-3","py-2"],[1,"border-t","border-slate-800","hover:bg-slate-800/50"],[1,"px-4","py-2","bg-cyan-600","hover:bg-cyan-500","text-white","font-bold","rounded","transition",3,"click"],[1,"bg-slate-900","border","border-cyan-800","rounded","p-4","space-y-3",3,"ngSubmit"],[1,"text-lg","font-semibold","text-cyan-300"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-3"],[1,"flex","flex-col","gap-1"],[1,"text-xs","text-slate-400"],["name","name","required","",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white",3,"ngModelChange","ngModel"],["name","scope",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white",3,"ngModelChange","ngModel"],["value","single-project"],["value","cross-project"],["value","specialized"],["name","projectId",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white",3,"ngModelChange","ngModel"],["name","providerName","placeholder","openai / anthropic / ...",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white",3,"ngModelChange","ngModel"],[1,"flex","flex-col","gap-1","md:col-span-2"],["name","model",1,"bg-slate-800","border","border-slate-700","rounded","px-2","py-1","text-white",3,"ngModelChange","ngModel"],[1,"bg-red-900","border","border-red-700","rounded","px-3","py-2","text-red-200","text-sm"],[1,"flex","gap-2","justify-end"],["type","button",1,"px-3","py-1","text-slate-400","hover:text-white",3,"click"],["type","submit",1,"px-4","py-1","bg-cyan-600","hover:bg-cyan-500","text-white","rounded"],[1,"px-3","py-2"],[1,"text-cyan-400","hover:text-cyan-300","font-mono",3,"routerLink"],[1,"px-3","py-2","text-slate-400"],[1,"px-3","py-2","text-slate-400","font-mono","text-xs"],[1,"px-2","py-0.5","rounded","text-xs","font-bold"],[1,"px-3","py-2","text-slate-500","font-mono"],[1,"px-3","py-2","space-x-1"],[1,"px-2","py-0.5","bg-green-700","hover:bg-green-600","text-white","rounded","text-xs"],[1,"px-2","py-0.5","bg-yellow-700","hover:bg-yellow-600","text-white","rounded","text-xs"],[1,"px-2","py-0.5","bg-red-800","hover:bg-red-700","text-white","rounded","text-xs"],[1,"px-2","py-0.5","bg-green-700","hover:bg-green-600","text-white","rounded","text-xs",3,"click"],[1,"px-2","py-0.5","bg-yellow-700","hover:bg-yellow-600","text-white","rounded","text-xs",3,"click"],[1,"px-2","py-0.5","bg-red-800","hover:bg-red-700","text-white","rounded","text-xs",3,"click"],["colspan","6",1,"px-3","py-6","text-center","text-slate-500"]],template:function(t,i){t&1&&(n(0,"div",0)(1,"div",1)(2,"div")(3,"h1",2),a(4,"Orchestrator Agents"),o(),n(5,"p",3),a(6," Akt\xEDv: "),n(7,"span",4),a(8),o()()(),k(9,Kt,2,0,"button",5),o(),k(10,Yt,36,6,"form",6),n(11,"div",7)(12,"table",8)(13,"thead",9)(14,"tr")(15,"th",10),a(16,"N\xE9v"),o(),n(17,"th",10),a(18,"Scope"),o(),n(19,"th",10),a(20,"Projekt"),o(),n(21,"th",10),a(22,"St\xE1tusz"),o(),n(23,"th",10),a(24,"Iter#"),o(),n(25,"th",10),a(26,"M\u0171veletek"),o()()(),n(27,"tbody"),D(28,ii,18,32,"tr",11,Qt,!1,ri,3,0,"tr"),o()()()()),t&2&&(s(8),g(i.activeCount_$()),s(),f(i.formIsOpen?-1:9),s(),f(i.formIsOpen?10:-1),s(18),M(i.orchestratorList_$()))},dependencies:[$,Y,me,he,fe,H,ue,K,pe,ze,X,_e,Q,de],encapsulation:2})}return r})();var ni=[{path:"",pathMatch:"full",component:Ee},{path:":id",component:ke}],Zr=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=$e({type:r});static \u0275inj=Re({imports:[$,Q.forChild(ni),Ee,ke]})}return r})();export{Zr as Orchestrator_Module};
|
|
2
|
-
//# sourceMappingURL=orc.module-AHFLHGAC.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as i,b as c}from"./chunk-FQGFAUMM.js";import"./chunk-Q2PKIGLB.js";import"./chunk-YASHJ2WC.js";import"./chunk-DQRYQQIF.js";import"./chunk-7JUIBZEE.js";import"./chunk-C7XPBJTG.js";import"./chunk-NMGB6Q45.js";import"./chunk-WPHEQXWB.js";import"./chunk-4QEHZHVD.js";import"./chunk-RG4B2EC4.js";import"./chunk-QDW4DDEH.js";import"./chunk-TBE7X4MG.js";import"./chunk-Q2NVIOCY.js";import"./chunk-K3ABKMDH.js";import"./chunk-RHEQKQT3.js";import"./chunk-L65JUKSC.js";import"./chunk-V3VQWJQL.js";import"./chunk-PEHTATOM.js";import"./chunk-ZBTWQZNB.js";import"./chunk-FLAJXIYW.js";import"./chunk-EO4DNTT4.js";import"./chunk-KU3NFCE3.js";import"./chunk-5UPNU54P.js";import"./chunk-XWWVDCIV.js";import"./chunk-WH2RXTQX.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-2NWLCLTD.js.map
|