@futdevpro/ccap 1.1.2456 → 1.1.2465
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-IDKJYNA6.js → agent-instances.module-MRNWJLZO.js} +2 -2
- package/client-dist/{ca.module-NJI2WXHP.js → ca.module-WKTMY2BD.js} +2 -2
- package/client-dist/{cc.module-OALOPRDB.js → cc.module-DBOF4GX6.js} +2 -2
- package/client-dist/{chunk-JMBVRBHP.js → chunk-24TTUBSZ.js} +2 -2
- package/client-dist/{chunk-C73NCVRW.js → chunk-2UQV3LEA.js} +2 -2
- package/client-dist/{chunk-TM4NG2PY.js → chunk-32CYSU2C.js} +2 -2
- package/client-dist/{chunk-R5WFZ5MP.js → chunk-33C4ER4Z.js} +2 -2
- package/client-dist/{chunk-T47O3GBU.js → chunk-3TIB5YD2.js} +2 -2
- package/client-dist/{chunk-SOIPLC5T.js → chunk-4QVAT7G2.js} +2 -2
- package/client-dist/{chunk-GA2RPCXU.js → chunk-5T5TQB7Y.js} +2 -2
- package/client-dist/{chunk-KUHT7EGC.js → chunk-6FREFSZS.js} +2 -2
- package/client-dist/{chunk-2YRLIGJ6.js → chunk-6VUXCPPZ.js} +3 -3
- package/client-dist/{chunk-2YRLIGJ6.js.map → chunk-6VUXCPPZ.js.map} +3 -3
- package/client-dist/{chunk-KMKNWEIP.js → chunk-73D6QEBK.js} +2 -2
- package/client-dist/{chunk-WV423ZWI.js → chunk-7YJ4FCW7.js} +2 -2
- package/client-dist/{chunk-IPQSBIAU.js → chunk-B3UDFK6B.js} +2 -2
- package/client-dist/{chunk-CXY5JPOT.js → chunk-B62KXF5I.js} +2 -2
- package/client-dist/{chunk-OTG32NBJ.js → chunk-BJPYSBOT.js} +2 -2
- package/client-dist/{chunk-JW7UN6C6.js → chunk-BJYO3IOZ.js} +2 -2
- package/client-dist/{chunk-J7VTEMMD.js → chunk-BY5S7LBN.js} +2 -2
- package/client-dist/{chunk-YE7XLSVE.js → chunk-C5W7UJHU.js} +2 -2
- package/client-dist/{chunk-NKCVFWIR.js → chunk-EITST6EO.js} +2 -2
- package/client-dist/{chunk-ICYFLSET.js → chunk-EORRGY6D.js} +2 -2
- package/client-dist/{chunk-54F7FETI.js → chunk-ESLRZUKP.js} +2 -2
- package/client-dist/{chunk-HIT2WYBE.js → chunk-F3Y3FOCP.js} +2 -2
- package/client-dist/{chunk-7ROTKIYT.js → chunk-FIWWFQAG.js} +2 -2
- package/client-dist/{chunk-7ROTKIYT.js.map → chunk-FIWWFQAG.js.map} +1 -1
- package/client-dist/{chunk-2YH4QTS2.js → chunk-GCJK6PQ4.js} +2 -2
- package/client-dist/{chunk-37OEKFV2.js → chunk-HDI6OFJK.js} +2 -2
- package/client-dist/{chunk-3PBLZEB6.js → chunk-HHO3FIZ6.js} +2 -2
- package/client-dist/{chunk-BCWDPIT7.js → chunk-KACOL75A.js} +2 -2
- package/client-dist/{chunk-76RJR7IV.js → chunk-KUFNFR6T.js} +2 -2
- package/client-dist/{chunk-ZSZB7ON6.js → chunk-MHV4MGPW.js} +2 -2
- package/client-dist/{chunk-7X53ZYAD.js → chunk-MIHFTLSB.js} +2 -2
- package/client-dist/{chunk-RY2FGRDE.js → chunk-MJPCYBF7.js} +2 -2
- package/client-dist/{chunk-V3TCTP2F.js → chunk-MY2LZHOM.js} +2 -2
- package/client-dist/{chunk-3FEQEZCR.js → chunk-OJZR7AFD.js} +2 -2
- package/client-dist/{chunk-EXWI7B46.js → chunk-OU6LZKDC.js} +2 -2
- package/client-dist/{chunk-LRO56M4F.js → chunk-OX655XP7.js} +2 -2
- package/client-dist/{chunk-T4O64XJR.js → chunk-PAFN4A3X.js} +2 -2
- package/client-dist/{chunk-QG5SOLM6.js → chunk-PNW32G55.js} +2 -2
- package/client-dist/{chunk-Y36IQPHQ.js → chunk-Q4W4WATF.js} +2 -2
- package/client-dist/{chunk-2HR3HRSH.js → chunk-QAWRTTIN.js} +2 -2
- package/client-dist/{chunk-DKAX2XFQ.js → chunk-QJQCOC4R.js} +2 -2
- package/client-dist/{chunk-HGHIUCBF.js → chunk-QR2HLBR4.js} +2 -2
- package/client-dist/{chunk-7ZJIAA2M.js → chunk-RCDWNDY4.js} +2 -2
- package/client-dist/{chunk-LZA3UROR.js → chunk-RFPMXFCO.js} +2 -2
- package/client-dist/{chunk-JZUDZHOK.js → chunk-RRXZRYFL.js} +2 -2
- package/client-dist/{chunk-OUK2EQLW.js → chunk-S4Y5DTHG.js} +2 -2
- package/client-dist/{chunk-VARZRXVO.js → chunk-S5XOSBYJ.js} +2 -2
- package/client-dist/{chunk-NROVUUPP.js → chunk-S7EQ7FSV.js} +2 -2
- package/client-dist/{chunk-2BSAVKJF.js → chunk-SZSOPHEM.js} +2 -2
- package/client-dist/{chunk-AF6E3DD6.js → chunk-VCAUGN65.js} +2 -2
- package/client-dist/{chunk-VVPUBOY5.js → chunk-VNEJHE75.js} +2 -2
- package/client-dist/{chunk-MRFNQSBO.js → chunk-WGMOPLZ6.js} +2 -2
- package/client-dist/{chunk-2BEYYW4Q.js → chunk-WOMOERTP.js} +2 -2
- package/client-dist/{chunk-YGPDTSQJ.js → chunk-WUOXMHQP.js} +2 -2
- package/client-dist/{chunk-Z3ISJM2S.js → chunk-XRBSKRT5.js} +2 -2
- package/client-dist/{chunk-UQJ2FBDV.js → chunk-YYMJS7TD.js} +2 -2
- package/client-dist/{chunk-OIODKTLQ.js → chunk-ZJ6ZYEXF.js} +2 -2
- package/client-dist/{chunk-P4Q6MHQF.js → chunk-ZRNECP4X.js} +2 -2
- package/client-dist/{consultant.module-6E7NJFPO.js → consultant.module-UEP4DFBD.js} +2 -2
- package/client-dist/{crd.module-IWA3BYC5.js → crd.module-ML3X5IM3.js} +2 -2
- package/client-dist/{dashboard.module-NWG3HJPL.js → dashboard.module-FIZ3JNMY.js} +2 -2
- package/client-dist/{do.module-KXOXBMTI.js → do.module-JK6CIZB6.js} +2 -2
- package/client-dist/{document-library.module-BROBQIPB.js → document-library.module-UGVOV6VQ.js} +2 -2
- package/client-dist/{embedding-eval.module-BKSJBVWZ.js → embedding-eval.module-ASVHBJUS.js} +2 -2
- package/client-dist/{embedding-registry.module-WVQUBRYF.js → embedding-registry.module-IOXI3UAB.js} +2 -2
- package/client-dist/{err.module-QKIYUMFT.js → err.module-5PE5JMMA.js} +2 -2
- package/client-dist/{feedback.module-IELFI6VU.js → feedback.module-TWLEAY6X.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-WMGOBHOA.js → host-runtime-mcp.module-K42AQTG7.js} +2 -2
- package/client-dist/index.html +1 -1
- package/client-dist/{live-dev-pipeline.module-D7VQSCMU.js → live-dev-pipeline.module-CZCQGABC.js} +2 -2
- package/client-dist/{logs.module-KW5ZQWG3.js → logs.module-IP7M627V.js} +2 -2
- package/client-dist/{main-ISYO6QS7.js → main-ZKRKWJJY.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-XYLHKDC5.js → master-control-remote-poc.module-BXVHPW62.js} +2 -2
- package/client-dist/{mobile-app.module-HA4FDDXM.js → mobile-app.module-3H6EE7JT.js} +2 -2
- package/client-dist/{model-registry.module-PF36XQF6.js → model-registry.module-CN4FUQ2P.js} +2 -2
- package/client-dist/{oc.module-UN2XISYM.js → oc.module-FN6OMS3L.js} +2 -2
- package/client-dist/{orc.module-HSP3PCSH.js → orc.module-A6QFZNHJ.js} +2 -2
- package/client-dist/{project-management.module-4OY6XL2R.js → project-management.module-3VRNTOY6.js} +2 -2
- package/client-dist/project-source-routed.module-C4NQNIYT.js +2 -0
- package/client-dist/{scheduler.module-KTCMG6F6.js → scheduler.module-XB5GBDI2.js} +2 -2
- package/client-dist/{session.module-EXPOWPOI.js → session.module-QEYX2DGX.js} +2 -2
- package/client-dist/{set.module-CEIQ33FO.js → set.module-AUXKVJTL.js} +2 -2
- package/client-dist/{setup.module-LZNNFB2L.js → setup.module-66ZMYWDY.js} +2 -2
- package/client-dist/{terminals.module-UHVKFQXV.js → terminals.module-XFVFOW46.js} +2 -2
- package/client-dist/{voice-notes-poc.module-PB2K4MQ3.js → voice-notes-poc.module-NIQODCHZ.js} +2 -2
- package/client-dist/{wfs.module-ZB55ONHI.js → wfs.module-3GBXYWN2.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.d.ts +24 -0
- package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.js +33 -0
- package/server/build/src/_modules/peer-instance/_services/pei-bootstrap.control-service.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.js +17 -0
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.js +44 -0
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.js.map +1 -1
- package/client-dist/project-source-routed.module-7OQ5VTAV.js +0 -2
- /package/client-dist/{agent-instances.module-IDKJYNA6.js.map → agent-instances.module-MRNWJLZO.js.map} +0 -0
- /package/client-dist/{ca.module-NJI2WXHP.js.map → ca.module-WKTMY2BD.js.map} +0 -0
- /package/client-dist/{cc.module-OALOPRDB.js.map → cc.module-DBOF4GX6.js.map} +0 -0
- /package/client-dist/{chunk-JMBVRBHP.js.map → chunk-24TTUBSZ.js.map} +0 -0
- /package/client-dist/{chunk-C73NCVRW.js.map → chunk-2UQV3LEA.js.map} +0 -0
- /package/client-dist/{chunk-TM4NG2PY.js.map → chunk-32CYSU2C.js.map} +0 -0
- /package/client-dist/{chunk-R5WFZ5MP.js.map → chunk-33C4ER4Z.js.map} +0 -0
- /package/client-dist/{chunk-T47O3GBU.js.map → chunk-3TIB5YD2.js.map} +0 -0
- /package/client-dist/{chunk-SOIPLC5T.js.map → chunk-4QVAT7G2.js.map} +0 -0
- /package/client-dist/{chunk-GA2RPCXU.js.map → chunk-5T5TQB7Y.js.map} +0 -0
- /package/client-dist/{chunk-KUHT7EGC.js.map → chunk-6FREFSZS.js.map} +0 -0
- /package/client-dist/{chunk-KMKNWEIP.js.map → chunk-73D6QEBK.js.map} +0 -0
- /package/client-dist/{chunk-WV423ZWI.js.map → chunk-7YJ4FCW7.js.map} +0 -0
- /package/client-dist/{chunk-IPQSBIAU.js.map → chunk-B3UDFK6B.js.map} +0 -0
- /package/client-dist/{chunk-CXY5JPOT.js.map → chunk-B62KXF5I.js.map} +0 -0
- /package/client-dist/{chunk-OTG32NBJ.js.map → chunk-BJPYSBOT.js.map} +0 -0
- /package/client-dist/{chunk-JW7UN6C6.js.map → chunk-BJYO3IOZ.js.map} +0 -0
- /package/client-dist/{chunk-J7VTEMMD.js.map → chunk-BY5S7LBN.js.map} +0 -0
- /package/client-dist/{chunk-YE7XLSVE.js.map → chunk-C5W7UJHU.js.map} +0 -0
- /package/client-dist/{chunk-NKCVFWIR.js.map → chunk-EITST6EO.js.map} +0 -0
- /package/client-dist/{chunk-ICYFLSET.js.map → chunk-EORRGY6D.js.map} +0 -0
- /package/client-dist/{chunk-54F7FETI.js.map → chunk-ESLRZUKP.js.map} +0 -0
- /package/client-dist/{chunk-HIT2WYBE.js.map → chunk-F3Y3FOCP.js.map} +0 -0
- /package/client-dist/{chunk-2YH4QTS2.js.map → chunk-GCJK6PQ4.js.map} +0 -0
- /package/client-dist/{chunk-37OEKFV2.js.map → chunk-HDI6OFJK.js.map} +0 -0
- /package/client-dist/{chunk-3PBLZEB6.js.map → chunk-HHO3FIZ6.js.map} +0 -0
- /package/client-dist/{chunk-BCWDPIT7.js.map → chunk-KACOL75A.js.map} +0 -0
- /package/client-dist/{chunk-76RJR7IV.js.map → chunk-KUFNFR6T.js.map} +0 -0
- /package/client-dist/{chunk-ZSZB7ON6.js.map → chunk-MHV4MGPW.js.map} +0 -0
- /package/client-dist/{chunk-7X53ZYAD.js.map → chunk-MIHFTLSB.js.map} +0 -0
- /package/client-dist/{chunk-RY2FGRDE.js.map → chunk-MJPCYBF7.js.map} +0 -0
- /package/client-dist/{chunk-V3TCTP2F.js.map → chunk-MY2LZHOM.js.map} +0 -0
- /package/client-dist/{chunk-3FEQEZCR.js.map → chunk-OJZR7AFD.js.map} +0 -0
- /package/client-dist/{chunk-EXWI7B46.js.map → chunk-OU6LZKDC.js.map} +0 -0
- /package/client-dist/{chunk-LRO56M4F.js.map → chunk-OX655XP7.js.map} +0 -0
- /package/client-dist/{chunk-T4O64XJR.js.map → chunk-PAFN4A3X.js.map} +0 -0
- /package/client-dist/{chunk-QG5SOLM6.js.map → chunk-PNW32G55.js.map} +0 -0
- /package/client-dist/{chunk-Y36IQPHQ.js.map → chunk-Q4W4WATF.js.map} +0 -0
- /package/client-dist/{chunk-2HR3HRSH.js.map → chunk-QAWRTTIN.js.map} +0 -0
- /package/client-dist/{chunk-DKAX2XFQ.js.map → chunk-QJQCOC4R.js.map} +0 -0
- /package/client-dist/{chunk-HGHIUCBF.js.map → chunk-QR2HLBR4.js.map} +0 -0
- /package/client-dist/{chunk-7ZJIAA2M.js.map → chunk-RCDWNDY4.js.map} +0 -0
- /package/client-dist/{chunk-LZA3UROR.js.map → chunk-RFPMXFCO.js.map} +0 -0
- /package/client-dist/{chunk-JZUDZHOK.js.map → chunk-RRXZRYFL.js.map} +0 -0
- /package/client-dist/{chunk-OUK2EQLW.js.map → chunk-S4Y5DTHG.js.map} +0 -0
- /package/client-dist/{chunk-VARZRXVO.js.map → chunk-S5XOSBYJ.js.map} +0 -0
- /package/client-dist/{chunk-NROVUUPP.js.map → chunk-S7EQ7FSV.js.map} +0 -0
- /package/client-dist/{chunk-2BSAVKJF.js.map → chunk-SZSOPHEM.js.map} +0 -0
- /package/client-dist/{chunk-AF6E3DD6.js.map → chunk-VCAUGN65.js.map} +0 -0
- /package/client-dist/{chunk-VVPUBOY5.js.map → chunk-VNEJHE75.js.map} +0 -0
- /package/client-dist/{chunk-MRFNQSBO.js.map → chunk-WGMOPLZ6.js.map} +0 -0
- /package/client-dist/{chunk-2BEYYW4Q.js.map → chunk-WOMOERTP.js.map} +0 -0
- /package/client-dist/{chunk-YGPDTSQJ.js.map → chunk-WUOXMHQP.js.map} +0 -0
- /package/client-dist/{chunk-Z3ISJM2S.js.map → chunk-XRBSKRT5.js.map} +0 -0
- /package/client-dist/{chunk-UQJ2FBDV.js.map → chunk-YYMJS7TD.js.map} +0 -0
- /package/client-dist/{chunk-OIODKTLQ.js.map → chunk-ZJ6ZYEXF.js.map} +0 -0
- /package/client-dist/{chunk-P4Q6MHQF.js.map → chunk-ZRNECP4X.js.map} +0 -0
- /package/client-dist/{consultant.module-6E7NJFPO.js.map → consultant.module-UEP4DFBD.js.map} +0 -0
- /package/client-dist/{crd.module-IWA3BYC5.js.map → crd.module-ML3X5IM3.js.map} +0 -0
- /package/client-dist/{dashboard.module-NWG3HJPL.js.map → dashboard.module-FIZ3JNMY.js.map} +0 -0
- /package/client-dist/{do.module-KXOXBMTI.js.map → do.module-JK6CIZB6.js.map} +0 -0
- /package/client-dist/{document-library.module-BROBQIPB.js.map → document-library.module-UGVOV6VQ.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-BKSJBVWZ.js.map → embedding-eval.module-ASVHBJUS.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-WVQUBRYF.js.map → embedding-registry.module-IOXI3UAB.js.map} +0 -0
- /package/client-dist/{err.module-QKIYUMFT.js.map → err.module-5PE5JMMA.js.map} +0 -0
- /package/client-dist/{feedback.module-IELFI6VU.js.map → feedback.module-TWLEAY6X.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-WMGOBHOA.js.map → host-runtime-mcp.module-K42AQTG7.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-D7VQSCMU.js.map → live-dev-pipeline.module-CZCQGABC.js.map} +0 -0
- /package/client-dist/{logs.module-KW5ZQWG3.js.map → logs.module-IP7M627V.js.map} +0 -0
- /package/client-dist/{main-ISYO6QS7.js.map → main-ZKRKWJJY.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-XYLHKDC5.js.map → master-control-remote-poc.module-BXVHPW62.js.map} +0 -0
- /package/client-dist/{mobile-app.module-HA4FDDXM.js.map → mobile-app.module-3H6EE7JT.js.map} +0 -0
- /package/client-dist/{model-registry.module-PF36XQF6.js.map → model-registry.module-CN4FUQ2P.js.map} +0 -0
- /package/client-dist/{oc.module-UN2XISYM.js.map → oc.module-FN6OMS3L.js.map} +0 -0
- /package/client-dist/{orc.module-HSP3PCSH.js.map → orc.module-A6QFZNHJ.js.map} +0 -0
- /package/client-dist/{project-management.module-4OY6XL2R.js.map → project-management.module-3VRNTOY6.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-7OQ5VTAV.js.map → project-source-routed.module-C4NQNIYT.js.map} +0 -0
- /package/client-dist/{scheduler.module-KTCMG6F6.js.map → scheduler.module-XB5GBDI2.js.map} +0 -0
- /package/client-dist/{session.module-EXPOWPOI.js.map → session.module-QEYX2DGX.js.map} +0 -0
- /package/client-dist/{set.module-CEIQ33FO.js.map → set.module-AUXKVJTL.js.map} +0 -0
- /package/client-dist/{setup.module-LZNNFB2L.js.map → setup.module-66ZMYWDY.js.map} +0 -0
- /package/client-dist/{terminals.module-UHVKFQXV.js.map → terminals.module-XFVFOW46.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-PB2K4MQ3.js.map → voice-notes-poc.module-NIQODCHZ.js.map} +0 -0
- /package/client-dist/{wfs.module-ZB55ONHI.js.map → wfs.module-3GBXYWN2.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as ks}from"./chunk-
|
|
1
|
+
import{j as ks}from"./chunk-B3UDFK6B.js";import{I as $,N as Es,a as _s,b as gs,c as ys,d as cr,e as yt,f as ms,g as ar,i as ur,l as bs,n as lr,p as hr}from"./chunk-FIWWFQAG.js";import{C as oe,H as _t,O as fs,P as De,a as as,aa as z,e as ir,f,g as or,h as us,hb as ps,i as K,ib as gt,jb as Fe,k as u,l as ls,m as hs,w as pt,y as ds}from"./chunk-TBMJSIBB.js";var qe=f(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.DyFM_SocketEvent_Key=void 0;var vs=function(s){return s.incomingNewConnection="connection",s.outgoingNewConnection="connect",s.subscribe="subscribe",s.subscriptionSuccessful="subscriptionSuccessful",s.unsubscribe="unsubscribe",s.unsubscribeSuccessful="unsubscribeSuccessful",s.disconnect="disconnect",s.ping="ping",s.event="event",s.error="error",s}(vs||(Me.DyFM_SocketEvent_Key=vs={}))});var Ss=f(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.DyFM_SocketClient_Params=void 0;var pr=cr(),_r=yt(),bt=class{name;service;address;port;reconnectDelay=pr.second*30;reconnect=!0;socketOptions;constructor(e){Object.assign(this,e),this.reconnect=!!this.reconnectDelay,(this.socketOptions?.autoConnect||this.socketOptions?.reconnection||this.socketOptions?.reconnectionDelay)&&(_r.DyFM_Log.warn("autoConnect or reconnection is set to true in socketOptions, so reconnect is set to false",`
|
|
2
2
|
This means that the reconnection will use the socket.io reconnection logic, `,"not the Dynamo implementations."),this.reconnect=!1)}};xe.DyFM_SocketClient_Params=bt});var kt=f(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.DyFM_SocketEvent=void 0;var Ie=ys(),ws=ms(),Ee=yt(),gr=ur(),yr=bs(),ke=qe(),Et=class{name;eventKey;serviceName;preProcesses;tasks;logEvent;logEventContent;stackLocation;constructor(e){try{this.name=e.name??e.eventKey,this.eventKey=e.eventKey,this.serviceName=e.serviceName??"UnknownSocketService",this.preProcesses=e.preProcesses??[],this.tasks=e.tasks??[],this.stackLocation=(0,gr.DyFM_getConstructionStackLocation)(),e.logEvent!==void 0?this.logEvent=e.logEvent:this.eventKey===ke.DyFM_SocketEvent_Key.subscribe?this.logEvent=!1:[ke.DyFM_SocketEvent_Key.incomingNewConnection,ke.DyFM_SocketEvent_Key.outgoingNewConnection,ke.DyFM_SocketEvent_Key.disconnect].includes(this.eventKey)?this.logEvent=Ie.DyFM_global_settings.log_settings.socket_allEvents||Ie.DyFM_global_settings.log_settings.socket_mainEvents:this.logEvent=Ie.DyFM_global_settings.log_settings.socket_allEvents,this.logEventContent=e.logEventContent??Ie.DyFM_global_settings.log_settings.socket_eventContent}catch(t){throw Ee.DyFM_Log.error(`
|
|
3
3
|
Socket Event params setup failed (${this.serviceName}): ${e.eventKey}`,t),t}}getPreLog(e){return u(this,null,function*(){try{this.logEventContent&&this.eventKey!==ke.DyFM_SocketEvent_Key.incomingNewConnection?Ee.DyFM_Log.log(`---> incoming socket(${this.serviceName}) event: ${this.eventKey};
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ socket-client(${this.params?.name}) Service setup finished`),yield this.connectS
|
|
|
8
8
|
Fn:. setupDefaultEvents`),this.defaultEvents.forEach(e=>{e.serviceName=this.params.name;let t=this.incomingEvents.find(n=>n.eventKey===e.eventKey);t?t.tasks.unshift(...e.tasks):this.incomingEvents.push(e)})}catch(e){throw k.DyFM_Log.error(`socket-client(${this.params.name}) Service Setup Default Events failed, ERROR:`,e),e}})}setupSocketEvents(){return u(this,null,function*(){try{this.debugLog&&console.log(`Setup socket-client(${this.params.name}) Events...`),yield Io.DyFM_Array.asyncForEach(this.incomingEvents,e=>u(this,null,function*(){e.serviceName=this.params.name,this.socket.on(e.eventKey,t=>u(this,null,function*(){try{yield e.executeEventTasks(t,this.params.service)}catch(n){k.DyFM_Log.error(`socket-client(${this.params.name}) Event failed, ERROR:`,n),yield this.emitEvent(X.DyFM_SocketEvent_Key.error,n)}}))}))}catch(e){throw k.DyFM_Log.error(`socket-client(${this.params.name}) Service Setup Socket Events failed, ERROR:`,e),e}})}connectSocket(){return u(this,null,function*(){try{k.DyFM_Log.info(`< .. > socket-client(${this.params.name}) connecting to ${this.params.address}:${this.params.port} ...`),this.socket.connect(),this.params.reconnect&&(yield this.tryReconnectIfNeeded())}catch(e){throw k.DyFM_Log.error(`socket-client(${this.params.name}) Service Connect Socket failed, ERROR:`,e),e}})}tryingToReconnect=!1;tryReconnectIfNeeded(){return u(this,null,function*(){try{if(console.log("tryReconnectIfNeeded",this._params.reconnectDelay),this.tryingToReconnect){k.DyFM_Log.warn(`socket-client(${this.params.name}) already trying to reconnect!`);return}if(!this.params.reconnect){k.DyFM_Log.warn(`socket-client(${this.params.name}) Dynamo reconnection is disabled!`);return}this.tryingToReconnect=!0,this.logFn&&console.log(`
|
|
9
9
|
Fn:. tryReconnectIfNeeded`),yield vn.DyFM_Async.delay(this._params.reconnectDelay),this.connected||(this.tryingToReconnect=!1,yield this.connectSocket())}catch(e){throw k.DyFM_Log.error(`socket-client(${this.params.name}) Service Try Reconnect failed, ERROR:`,e),this.tryingToReconnect=!1,e}})}reconnect(){this.tryingToReconnect=!1,this.socket&&this.socket.disconnect(),this.connectSocket()}};lt.DyFM_SocketClient_ServiceBase=os});var wn=f(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});var ht=(gs(),K(_s));ht.__exportStar(qe(),be);ht.__exportStar(Ss(),be);ht.__exportStar(kt(),be);ht.__exportStar(Sn(),be)});function dr(s,e){!e?.injector&&_t(dr);let t=e?.injector??oe(fs),n=new hs(1),r=Fe(()=>{let i;try{i=s()}catch(o){gt(()=>n.error(o));return}gt(()=>n.next(i))},{injector:t,manualCleanup:!0});return t.get(De).onDestroy(()=>{r.destroy(),n.complete()}),n.asObservable()}function mt(s,e){let t=!e?.manualCleanup;t&&!e?.injector&&_t(mt);let n=t?e?.injector?.get(De)??oe(De):null,r=fr(e?.equal),i;e?.requireSync?i=z({kind:0},{equal:r}):i=z({kind:1,value:e?.initialValue},{equal:r});let o=s.subscribe({next:c=>i.set({kind:1,value:c}),error:c=>{if(e?.rejectErrors)throw c;i.set({kind:2,error:c})}});if(e?.requireSync&&i().kind===0)throw new pt(601,!1);return n?.onDestroy(o.unsubscribe.bind(o)),ps(()=>{let c=i();switch(c.kind){case 1:return c.value;case 2:throw c.error;case 0:throw new pt(601,!1)}},{equal:e?.equal})}function fr(s=Object.is){return(e,t)=>e.kind===1&&t.kind===1&&s(e.value,t.value)}var j=function(s){return s.connecting="connecting",s.connected="connected",s.error="error",s}(j||{});var C=us(hr()),d=us(wn());function dt(){if($.socketUrl!==void 0&&$.socketUrl.trim()!=="")return $.socketUrl.trim();if(typeof window<"u"){let s=new URL(window.location.href).origin;return C.DyFM_Log.warn("CCAP_Socket | socketUrl not set, using same-origin fallback:",s),s}return""}function U(s){return s!=null&&typeof s=="object"&&!(s instanceof Error)}function Cn(){return typeof globalThis>"u"?!1:globalThis.jasmine!==void 0}var Tn="answer",On="notify-user",Rn="agent-events",Pn="context:updated",An="monitoring:event",Nn="user-notification",Dn="cc-session:status",Fn="cc-session:output",Mn="cc-session:event",qn="cc-session:list-update",xn="cc-session:session-update",In="ca-session:status",jn="ca-session:output",Ln="ca-session:event",Bn="ca-session:list-update",Un="ext-session-msg:message",Kn="ext-session-msg:update",$n="user-interaction:request",Vn="instance-data:session-status-updated",Wn="instance:presence-update",Hn="openclaw-instance-data:status-updated",Yn="cci-instance-data:status-updated",Xn="cai-instance-data:status-updated",Jn="terminal:list:result",zn="terminal:start:result",Gn="terminal:command-result",Qn="terminal:command-output",Zn="cc:rate-limit-update",er="session-queue:updated",tr="session-queue:lock-changed",Lo="system-error",Bo="terminal-error",Uo="server:start-id",Ko="connect_error",$o=8*C.second,Wc=(()=>{class s extends d.DyFM_SocketClient_ServiceBase{status_$=z(j.connecting);lastError_$=z(null);connectAttemptCount_$=z(0);hasEverConnected=!1;connectionTimeoutId=null;knownServerStartId=null;eventSubject_S=new ls;event$=this.eventSubject_S.asObservable();connected_$=mt(this.connected$,{initialValue:!1});get socketAddress(){return dt()||(this.params?.address??"")}globalError_CS=oe(ks);settingsGeneral_DS=oe(Es);constructor(){super(),Cn()||this.startConnectionTimeout(),Fe(()=>{this.connected&&!this.subscribed&&this.subscribe()})}startConnectionTimeout(){this.clearConnectionTimeout(),this.connectionTimeoutId=setTimeout(()=>{if(this.connectionTimeoutId=null,this.status_$()===j.connecting){let t=new Error("Socket connection timeout \u2013 server unreachable or setup failed. Click to reconnect.");this.status_$.set(j.error),this.lastError_$.set(t),C.DyFM_Log.warn("CCAP_Socket | Connection timeout")}},$o)}clearConnectionTimeout(){this.connectionTimeoutId!==null&&(clearTimeout(this.connectionTimeoutId),this.connectionTimeoutId=null)}getParams(){let t=dt(),n=Cn(),r={path:"/socket",transports:["polling","websocket"],reconnectionDelay:1e3};return n&&(r.reconnection=!1),new d.DyFM_SocketClient_Params({name:"CCAP Client",address:t,reconnect:!n,reconnectDelay:C.minute,socketOptions:r})}getIncomingEvents(){let t=this,n=(r,i)=>{try{let o=U(i)?i:{};if(!t.eventSubject_S){let c=`Socket event dropped: eventSubject not initialized | event: ${r} | This means the socket event system is not functional \u2014 no live updates will arrive.`;C.DyFM_Log.error(`[CCAP_Socket] ${c}`),t.globalError_CS.showError(new Error(c),"client-socket-event-subject");return}t.eventSubject_S.next({event:r,payload:o})}catch(o){let c=o instanceof Error?o.message:String(o);C.DyFM_Log.error(`[CCAP_Socket] pushEnvelope failed | event: ${r} | ${c}`),t.globalError_CS.showError(o instanceof Error?o:new Error(`Socket event processing failed: ${r} \u2014 ${c}`),"client-socket-push-envelope")}};return[new d.DyFM_SocketEvent({eventKey:d.DyFM_SocketEvent_Key.outgoingNewConnection,tasks:[()=>u(this,null,function*(){t.clearConnectionTimeout(),t.hasEverConnected=!0,t.status_$.set(j.connected),t.lastError_$.set(null),t.connectAttemptCount_$.set(0),C.DyFM_Log.info("CCAP_Socket | Connected")})]}),new d.DyFM_SocketEvent({eventKey:d.DyFM_SocketEvent_Key.disconnect,tasks:[()=>u(this,null,function*(){t.hasEverConnected&&t.status_$.set(j.error),C.DyFM_Log.info("CCAP_Socket | Disconnected")})]}),new d.DyFM_SocketEvent({eventKey:Ko,tasks:[r=>u(this,null,function*(){t.clearConnectionTimeout(),t.connectAttemptCount_$.update(a=>a+1);let i=r instanceof Error?r:new Error(String(r)),o=U(r)?r.description:void 0,c=U(r)?r.type:void 0;C.DyFM_Log.info("CCAP_Socket | connect_error",`attempt #${t.connectAttemptCount_$()}`,i?.message??String(r),o!==void 0?String(o):"",c!==void 0?String(c):""),t.status_$.set(j.error);let h=t.params?.address??"",_=t.buildSocketErrorDisplay({err:i,socketUrl:h,eventType:"connect_error",raw:r});t.lastError_$.set(_),t.shouldReportSocketConnectionErrorsToErrorList()&&t.globalError_CS.reportErrorOnly({message:String(_.fullMessage??_.message??i.message),stack:typeof _.stack=="string"?_.stack:void 0,source:"client-socket"})})]}),new d.DyFM_SocketEvent({eventKey:d.DyFM_SocketEvent_Key.error,tasks:[r=>u(this,null,function*(){t.clearConnectionTimeout(),t.status_$.set(j.error);let i=r instanceof Error?r:new Error(String(r)),o=t.params?.address??"",c=t.buildSocketErrorDisplay({err:i,socketUrl:o,eventType:"error",raw:r});t.lastError_$.set(c),t.shouldReportSocketConnectionErrorsToErrorList()&&t.globalError_CS.reportErrorOnly({message:String(c.fullMessage??c.message??i.message),stack:typeof c.stack=="string"?c.stack:void 0,source:"client-socket"})})]}),new d.DyFM_SocketEvent({eventKey:Tn,tasks:[r=>u(this,null,function*(){n(Tn,r)})]}),new d.DyFM_SocketEvent({eventKey:On,tasks:[r=>u(this,null,function*(){n(On,r)})]}),new d.DyFM_SocketEvent({eventKey:Rn,tasks:[r=>u(this,null,function*(){n(Rn,r)})]}),new d.DyFM_SocketEvent({eventKey:Pn,tasks:[r=>u(this,null,function*(){n(Pn,r)})]}),new d.DyFM_SocketEvent({eventKey:An,tasks:[r=>u(this,null,function*(){n(An,r)})]}),new d.DyFM_SocketEvent({eventKey:Nn,tasks:[r=>u(this,null,function*(){let i=U(r)?r:{};if(n(Nn,r),i.type===Lo){let o=t.buildServerErrorDisplay(i);t.globalError_CS.showError(o,"client-socket")}else if(i.type===Bo){let o=t.buildTerminalErrorDisplay(i);t.globalError_CS.showError(o,"client-socket")}})]}),new d.DyFM_SocketEvent({eventKey:Uo,tasks:[r=>u(this,null,function*(){let i=U(r)?r:{},o=typeof i.serverStartId=="number"?i.serverStartId:void 0;o!==void 0&&(t.knownServerStartId===null?(t.knownServerStartId=o,C.DyFM_Log.info("CCAP_Socket | Server start ID stored:",o)):t.knownServerStartId!==o&&(C.DyFM_Log.warn("CCAP_Socket | Server restarted (start ID changed), reloading page"),window.location.reload()))})]}),new d.DyFM_SocketEvent({eventKey:Dn,tasks:[r=>u(this,null,function*(){n(Dn,r)})]}),new d.DyFM_SocketEvent({eventKey:Fn,tasks:[r=>u(this,null,function*(){n(Fn,r)})]}),new d.DyFM_SocketEvent({eventKey:Mn,tasks:[r=>u(this,null,function*(){n(Mn,r)})]}),new d.DyFM_SocketEvent({eventKey:qn,tasks:[r=>u(this,null,function*(){n(qn,r)})]}),new d.DyFM_SocketEvent({eventKey:xn,tasks:[r=>u(this,null,function*(){n(xn,r)})]}),new d.DyFM_SocketEvent({eventKey:In,tasks:[r=>u(this,null,function*(){n(In,r)})]}),new d.DyFM_SocketEvent({eventKey:jn,tasks:[r=>u(this,null,function*(){n(jn,r)})]}),new d.DyFM_SocketEvent({eventKey:Ln,tasks:[r=>u(this,null,function*(){n(Ln,r)})]}),new d.DyFM_SocketEvent({eventKey:Bn,tasks:[r=>u(this,null,function*(){n(Bn,r)})]}),new d.DyFM_SocketEvent({eventKey:Un,tasks:[r=>u(this,null,function*(){n(Un,r)})]}),new d.DyFM_SocketEvent({eventKey:Kn,tasks:[r=>u(this,null,function*(){n(Kn,r)})]}),new d.DyFM_SocketEvent({eventKey:$n,tasks:[r=>u(this,null,function*(){n($n,r)})]}),new d.DyFM_SocketEvent({eventKey:Vn,tasks:[r=>u(this,null,function*(){n(Vn,r)})]}),new d.DyFM_SocketEvent({eventKey:Wn,tasks:[r=>u(this,null,function*(){n(Wn,r)})]}),new d.DyFM_SocketEvent({eventKey:Hn,tasks:[r=>u(this,null,function*(){n(Hn,r)})]}),new d.DyFM_SocketEvent({eventKey:Yn,tasks:[r=>u(this,null,function*(){n(Yn,r)})]}),new d.DyFM_SocketEvent({eventKey:Xn,tasks:[r=>u(this,null,function*(){n(Xn,r)})]}),new d.DyFM_SocketEvent({eventKey:Jn,tasks:[r=>u(this,null,function*(){n(Jn,r)})]}),new d.DyFM_SocketEvent({eventKey:zn,tasks:[r=>u(this,null,function*(){n(zn,r)})]}),new d.DyFM_SocketEvent({eventKey:Gn,tasks:[r=>u(this,null,function*(){n(Gn,r)})]}),new d.DyFM_SocketEvent({eventKey:Qn,tasks:[r=>u(this,null,function*(){n(Qn,r)})]}),new d.DyFM_SocketEvent({eventKey:er,tasks:[r=>u(this,null,function*(){n(er,r)})]}),new d.DyFM_SocketEvent({eventKey:tr,tasks:[r=>u(this,null,function*(){n(tr,r)})]}),new d.DyFM_SocketEvent({eventKey:Zn,tasks:[r=>u(this,null,function*(){n(Zn,r)})]})]}getSubscriptionContent(){return u(this,null,function*(){let t=this.socket?.id;return Promise.resolve({clientId:t})})}shouldReportSocketConnectionErrorsToErrorList(){return this.settingsGeneral_DS.section_$().form.reportSocketConnectionErrorsToErrorList===!0}buildSocketErrorDisplay(t){let n=t.err.message?.trim()?t.err.message:"WebSocket connection failed",r=t.socketUrl.trim()?`WebSocket: ${n} \u2014 ${t.socketUrl}`:`WebSocket: ${n}`,i={message:r,fullMessage:r,name:t.err.name,stack:t.err.stack??null,socketUrl:t.socketUrl,transport:"websocket",eventType:t.eventType,attemptedAt:new Date().toISOString(),connectAttempt:this.connectAttemptCount_$()},o=$.socketUrl!==void 0&&$.socketUrl.trim()!=="";i.socketUrlSource=o?"environment.socketUrl":"same-origin fallback";let c=this.params?.socketOptions?.transports??[];if(c.length>0&&(i.configuredTransports=c.join(", ")),typeof window<"u"&&(i.pageOrigin=window.location.origin),U(t.raw)){let _=t.raw,a=_.description;if(typeof a=="string"&&a.trim())i.description=a.trim();else if(a instanceof Error)i.description=a.message,a.stack&&(i.descriptionStack=a.stack);else if(a instanceof Event)i.description=this.extractDomEventInfo(a);else if(U(a)){let l=a,g=[];typeof l.message=="string"&&l.message.trim()&&g.push(l.message.trim()),typeof l.status=="number"&&(i.httpStatus=l.status,g.push(`HTTP ${l.status}`)),typeof l.statusText=="string"&&l.statusText.trim()&&(i.httpStatusText=l.statusText.trim(),g.push(l.statusText.trim())),typeof l.responseURL=="string"&&l.responseURL.trim()&&(i.responseUrl=l.responseURL.trim()),g.length>0&&(i.description=g.join(" \u2013 "))}typeof _.type=="string"&&_.type.trim()&&(i.type=_.type.trim()),U(_.context)&&(i.errorContext=_.context)}t.raw instanceof Event&&!i.description&&(i.description=this.extractDomEventInfo(t.raw));let h=[r];if(typeof i.description=="string"&&h.push(`Cause: ${i.description}`),typeof i.httpStatus=="number"){let _=typeof i.httpStatusText=="string"?` ${i.httpStatusText}`:"";h.push(`HTTP: ${i.httpStatus}${_}`)}return typeof i.responseUrl=="string"&&h.push(`Response URL: ${i.responseUrl}`),h.push(`Attempt: #${i.connectAttempt}`),h.push(`Source: ${i.socketUrlSource}`),i.fullMessage=h.join(" | "),i}extractDomEventInfo(t){let n=[];n.push(`type=${t.type}`);let r=t.target;return U(r)&&(typeof r.readyState=="number"&&n.push(`readyState=${r.readyState}`),typeof r.url=="string"&&r.url&&n.push(`url=${r.url}`),typeof r.responseURL=="string"&&r.responseURL&&n.push(`responseURL=${r.responseURL}`),typeof r.status=="number"&&n.push(`status=${r.status}`)),n.push("(DOM Event - tipikusan SSL cert reject, CORS, vagy network unreachable)"),n.join(", ")}buildTerminalErrorDisplay(t){let n=typeof t.message=="string"?t.message:String(t.message??""),r=typeof t.code=="string"?t.code:String(t.code??""),i=[n];r&&i.push(`K\xF3d: ${r}`),typeof t.terminalId=="string"&&t.terminalId.trim()&&i.push(`Termin\xE1l ID: ${t.terminalId.trim()}`),typeof t.path=="string"&&t.path.trim()&&i.push(`Path: ${t.path.trim()}`);let o=i.join(`
|
|
10
10
|
`),c=typeof t.timestamp=="number"?t.timestamp:Date.now();return{source:"server",message:n,stack:null,detailsText:o,timestamp:c}}buildServerErrorDisplay(t){let n=typeof t.message=="string"?t.message:String(t.message??""),r=t.stack,i=typeof r=="string"?r:r!=null?String(r):null,o=typeof t.detailsText=="string"?t.detailsText:JSON.stringify(t,null,2),c=typeof t.timestamp=="number"?t.timestamp:Date.now();return{source:"server",message:n,stack:i,detailsText:o,timestamp:c}}reconnect(){if(this.socket){this.clearConnectionTimeout(),this.status_$.set(j.connecting),this.lastError_$.set(null),this.connectAttemptCount_$.set(0),this.startConnectionTimeout();let t=this.params?.address??dt();C.DyFM_Log.info("CCAP_Socket | Reconnecting to",t),this.socket.disconnect(),this.socket.connect()}}emit(t,n){this.socket?.connected&&this.socket.emit(t,n)}diagnoseConnection(){return u(this,null,function*(){let t=this.params?.address??dt(),n={timestamp:new Date().toISOString(),socketUrl:t,socketUrlSource:$.socketUrl!==void 0&&$.socketUrl.trim()!==""?"environment.socketUrl":"same-origin fallback",pageOrigin:typeof window<"u"?window.location.origin:"",socketConnected:this.socket?.connected??!1,socketId:this.socket?.id??null,connectAttemptCount:this.connectAttemptCount_$(),currentStatus:this.status_$()},r=yield s.probeEndpoint("/api/server/status","serverStatusApi");if(n.serverStatusApi=r,r.ok===!0&&r.body!==void 0){let _=r.body;if(_!==null&&typeof _=="object"){let a=_;n.serverReportedHttpPort=a.httpPort??null,n.serverReportedSocketPort=a.socketPort??null}}let i=this.params?.socketOptions?.path??"/socket",o=`${t}${i}/?EIO=4&transport=polling&t=${Date.now()}`,c=yield s.probeEndpoint(o,"socketIoPolling");n.socketIoPolling=c;let h=n.serverReportedSocketPort;if(typeof h=="number"&&h>0){let _=`http://localhost:${h}${i}/?EIO=4&transport=polling&t=${Date.now()}`,a=yield s.probeEndpoint(_,"socketIoDirectPort");n.socketIoDirectPort=a}return n})}static probeEndpoint(t,n){return u(this,null,function*(){let r={url:t,label:n},i=performance.now();try{let o=yield fetch(t,{method:"GET",cache:"no-store"}),c=Math.round(performance.now()-i);r.ok=o.ok,r.httpStatus=o.status,r.httpStatusText=o.statusText,r.elapsedMs=c;try{let h=yield o.text();try{r.body=JSON.parse(h)}catch{r.bodyPreview=h.substring(0,300)}}catch{r.bodyReadError="Failed to read response body"}}catch(o){let c=Math.round(performance.now()-i);r.elapsedMs=c,r.ok=!1,r.fetchError=o instanceof Error?o.message:String(o),o instanceof TypeError&&(r.fetchErrorType="TypeError (network/CORS/SSL)")}return r})}ngOnDestroy(){this.clearConnectionTimeout(),this.socket&&this.socket.disconnect()}static \u0275fac=function(n){return new(n||s)};static \u0275prov=ds({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})();export{dr as a,mt as b,wn as c,j as d,Wc as e};
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-MIHFTLSB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ne}from"./chunk-Q2PKIGLB.js";import{g as fe}from"./chunk-EXWI7B46.js";import{a as ue}from"./chunk-7JUIBZEE.js";import{a as me}from"./chunk-C7XPBJTG.js";import{a as te}from"./chunk-3PBLZEB6.js";import{o as B,p as L,v as ce}from"./chunk-EO4DNTT4.js";import{f as _e}from"./chunk-7ZJIAA2M.js";import{a as R}from"./chunk-5UPNU54P.js";import{I as pe}from"./chunk-7ROTKIYT.js";import{$a as X,C as v,D as y,E as oe,Fa as s,Ga as h,Ha as x,I as re,Ia as V,J as D,Ja as le,K as w,Kb as de,L as E,M as j,Z as l,a as J,aa as u,b as K,bb as Q,da as _,ga as C,ha as H,hb as Z,ia as O,ja as k,k as I,la as c,na as U,oa as b,p as F,pa as P,qa as i,ra as o,sa as m,sb as ee,ua as M,ub as ae,va as S,wa as p,xb as se,y as Y,z as ie}from"./chunk-TBMJSIBB.js";var A="ccap-projectSource",T=class{static savePanelWidth(a,e){R.writeNumber(`${A}:panelWidth:${a}`,e)}static loadPanelWidth(a,e){return R.readNumber(`${A}:panelWidth:${a}`,e)}static savePanelOpen(a,e){R.writeBoolean(`${A}:panelOpen:${a}`,e)}static loadPanelOpen(a,e){return R.readBoolean(`${A}:panelOpen:${a}`,e)}static saveSelectedProjectId(a){R.writeString(`${A}:selectedProjectId`,a)}static loadSelectedProjectId(){return R.readString(`${A}:selectedProjectId`)??""}static saveExpandedFolders(a){R.writeJson(`${A}:expandedFolders`,a)}static loadExpandedFolders(){let a=R.readJson(`${A}:expandedFolders`,[]);return Array.isArray(a)?a:[]}static saveOpenTabIds(a){R.writeJson(`${A}:openTabIds`,a)}static loadOpenTabIds(){let a=R.readJson(`${A}:openTabIds`,[]);return Array.isArray(a)?a:[]}static saveActiveTabId(a){R.writeString(`${A}:activeTabId`,a)}static loadActiveTabId(){return R.readString(`${A}:activeTabId`)??""}};var he=(()=>{class t{baseUrl=`${pe.api.baseUrl}/project-source`;http=v(se);startIngestion(e){return this.http.post(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/ingest`,{mode:e.mode})}listIngestionRuns(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/ingestion-runs`)}getIngestionStatus(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/ingestion-status`)}listFiles(e){let n=new URLSearchParams;e.sourceType&&n.set("sourceType",e.sourceType),e.projectPart&&n.set("projectPart",e.projectPart),e.moduleName&&n.set("moduleName",e.moduleName),e.fileRole&&n.set("fileRole",e.fileRole),e.requirementCode&&n.set("requirementCode",e.requirementCode),e.search&&n.set("search",e.search);let r=n.toString(),d=`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/files${r?"?"+r:""}`;return this.http.get(d)}getFileDetail(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/files/${encodeURIComponent(e.fileId)}`)}getRequirementCodes(e){let n=e.codePrefix?`?codePrefix=${encodeURIComponent(e.codePrefix)}`:"";return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/requirement-codes${n}`)}getStats(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/stats`)}getModules(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/modules`)}deleteProjectData(e){return this.http.delete(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}`)}startEmbedding(e){return this.http.post(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/embed`,{registryEntryId:e.registryEntryId})}getEmbeddingStatus(e){let n=`?registryEntryId=${encodeURIComponent(e.registryEntryId)}`;return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/embedding-status${n}`)}search(e){return this.http.post(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/search`,{registryEntryId:e.registryEntryId,query:e.query,topK:e.topK??10,metric:e.metric??"cosine",filters:e.filters})}listRelations(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/relations`)}getRelationsForFile(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/files/${encodeURIComponent(e.fileId)}/relations`)}listRunFlows(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/run-flows`)}listDataFlows(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/data-flows`)}listDescriptions(e){let n=e.elementType?`?elementType=${encodeURIComponent(e.elementType)}`:"";return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/descriptions${n}`)}updateDescription(e){return this.http.put(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/descriptions/${encodeURIComponent(e.descId)}`,{description:e.description})}static \u0275fac=function(n){return new(n||t)};static \u0275prov=Y({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G=class t{static buildFileTree(a){let e=new Map,n=[];for(let r of a.files){let d=r.relativePath.split("/"),f=n,$="";for(let W=0;W<d.length-1;W++){$=$?$+"/"+d[W]:d[W];let z=e.get($);z||(z={path:$,name:d[W],isFolder:!0,children:[],file:null,fileCount:0},e.set($,z),f.push(z)),f=z.children}let q=d[d.length-1];f.push({path:r.relativePath,name:q,isFolder:!1,children:[],file:r,fileCount:0})}return t.sortAndCount({nodes:n}),n}static filterTreeBySearch(a){if(!a.query.trim())return a.nodes;let e=te.normalizeForSearch(a.query);return t.filterNodes({nodes:a.nodes,normalizedQuery:e})}static sortAndCount(a){let e=0;a.nodes.sort((n,r)=>n.isFolder&&!r.isFolder?-1:!n.isFolder&&r.isFolder?1:n.name.localeCompare(r.name));for(let n of a.nodes)n.isFolder?(n.fileCount=t.sortAndCount({nodes:n.children}),e+=n.fileCount):e++;return e}static filterNodes(a){let e=[];for(let n of a.nodes){let r=te.normalizeForSearch(n.name).includes(a.normalizedQuery);if(n.isFolder){let d=t.filterNodes({nodes:n.children,normalizedQuery:a.normalizedQuery});(d.length>0||r)&&e.push(K(J({},n),{children:d.length>0?d:n.children,fileCount:d.reduce((f,$)=>f+($.isFolder?$.fileCount:1),0)}))}else r&&e.push(n)}return e}};var g=(()=>{class t{selectedProjectId_$=u(null);projects_$=u([]);stats_$=u(null);latestRun_$=u(null);isIngesting_$=u(!1);files_$=u([]);filesTotal_$=u(0);fileTree_$=u([]);expandedFolders_$=u(new Set);treeSearchQuery_$=u("");openTabs_$=u([]);activeTabId_$=u(null);tabFileCache=new Map;selectedFile_$=u(null);selectedFileChunks_$=u([]);selectedChunkIndex_$=u(null);requirementCodes_$=u([]);availableModules_$=u([]);filterSourceType_$=u("");filterProjectPart_$=u("");filterModule_$=u("");filterFileRole_$=u("");filterReqCode_$=u("");filterSearch_$=u("");isFileTreeOpen_$=u(!0);isInfoPanelOpen_$=u(!0);isEmbedded_$=u(!1);isSearchPanelOpen_$=u(!1);embeddingStatus_$=u(null);isEmbedding_$=u(!1);searchQuery_$=u("");searchResults_$=u([]);isSearching_$=u(!1);selectedRegistryEntryId_$=u(null);relations_$=u([]);runFlows_$=u([]);dataFlows_$=u([]);descriptions_$=u([]);searchMetric_$=u("cosine");isLoading_$=u(!1);error_$=u(null);ps_AS=v(he);pm_AS=v(_e);statusPollTimer=null;loadProjects(){return I(this,null,function*(){try{let n=((yield this.pm_AS.listProjects()).projects??[]).filter(r=>r.localPath&&r.isActive).map(r=>({id:r._id??"",name:r.name??"",localPath:r.localPath??""}));this.projects_$.set(n)}catch(e){this.error_$.set(e instanceof Error?e.message:"Projekt lista bet\xF6lt\xE9se sikertelen.")}})}selectProject(e){return I(this,null,function*(){let n=this.selectedProjectId_$()===e.projectId;n&&this.files_$().length>0||(this.selectedProjectId_$.set(e.projectId),this.error_$.set(null),T.saveSelectedProjectId(e.projectId),n||(this.openTabs_$.set([]),this.activeTabId_$.set(null),this.tabFileCache.clear(),this.selectedFile_$.set(null),this.selectedFileChunks_$.set([]),this.selectedChunkIndex_$.set(null)),yield Promise.all([this.loadStats(),this.loadIngestionStatus(),this.loadModules(),this.loadFilesAndBuildTree(),this.loadRequirementCodes(),this.loadDescriptions()]))})}startIngestion(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n){this.isIngesting_$.set(!0),this.error_$.set(null);try{yield F(this.ps_AS.startIngestion({projectId:n,mode:e.mode})),this.startStatusPolling()}catch(r){this.error_$.set(r instanceof Error?r.message:"Ingestion ind\xEDt\xE1s sikertelen."),this.isIngesting_$.set(!1)}}})}loadIngestionStatus(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getIngestionStatus({projectId:e})),r=this.latestRun_$();if((n.run?.status!==r?.status||n.run?.totalChunksCreated!==r?.totalChunksCreated||n.run?.completedAt!==r?.completedAt)&&this.latestRun_$.set(n.run),n.run?.status==="running")this.isIngesting_$.set(!0);else{let f=this.isIngesting_$();this.isIngesting_$.set(!1),this.stopStatusPolling(),f&&(this.loadFilesAndBuildTree(),this.loadStats(),this.loadRequirementCodes())}}catch(n){this.error_$.set(n instanceof Error?n.message:"Ingestion st\xE1tusz bet\xF6lt\xE9se sikertelen.")}})}loadFilesAndBuildTree(){return I(this,null,function*(){yield this.loadFiles(),this.rebuildTree()})}loadFiles(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e){this.isLoading_$.set(!0),this.error_$.set(null);try{let n=yield F(this.ps_AS.listFiles({projectId:e,sourceType:this.filterSourceType_$()||void 0,projectPart:this.filterProjectPart_$()||void 0,moduleName:this.filterModule_$()||void 0,fileRole:this.filterFileRole_$()||void 0,requirementCode:this.filterReqCode_$()||void 0,search:this.filterSearch_$()||void 0}));this.files_$.set(n.items),this.filesTotal_$.set(n.total)}catch(n){this.error_$.set(n instanceof Error?n.message:"F\xE1jl lista bet\xF6lt\xE9se sikertelen.")}finally{this.isLoading_$.set(!1)}}})}rebuildTree(){let e=G.buildFileTree({files:this.files_$()});this.fileTree_$.set(e)}toggleFolder(e){this.expandedFolders_$.update(n=>{let r=new Set(n);return r.has(e.folderPath)?r.delete(e.folderPath):r.add(e.folderPath),T.saveExpandedFolders(Array.from(r)),r})}openFileInTab(e){let n=e.file.id,r=this.openTabs_$();if(r.some($=>$.fileId===n)){this.setActiveTab({fileId:n});return}let f={fileId:n,fileName:e.file.fileName,relativePath:e.file.relativePath,isLoading:!1};this.openTabs_$.set([...r,f]),this.setActiveTab({fileId:n}),this.persistTabs(),this.tabFileCache.has(n)||this.loadFileForTab({fileId:n})}closeTab(e){let n=this.openTabs_$(),r=n.findIndex(f=>f.fileId===e.fileId);if(r===-1)return;let d=n.filter(f=>f.fileId!==e.fileId);if(this.openTabs_$.set(d),this.tabFileCache.delete(e.fileId),this.activeTabId_$()===e.fileId)if(d.length>0){let f=Math.min(r,d.length-1);this.setActiveTab({fileId:d[f].fileId})}else this.activeTabId_$.set(null),this.selectedFile_$.set(null),this.selectedFileChunks_$.set([]),this.selectedChunkIndex_$.set(null);this.persistTabs()}setActiveTab(e){this.activeTabId_$.set(e.fileId),this.selectedChunkIndex_$.set(null),T.saveActiveTabId(e.fileId);let n=this.tabFileCache.get(e.fileId);n?(this.selectedFile_$.set(n.file),this.selectedFileChunks_$.set(n.chunks),this.loadRelationsForFile({fileId:e.fileId})):(this.selectedFile_$.set(null),this.selectedFileChunks_$.set([]),this.loadFileForTab({fileId:e.fileId}))}selectChunk(e){let n=this.selectedChunkIndex_$();this.selectedChunkIndex_$.set(n===e.chunkIndex?null:e.chunkIndex)}loadStats(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getStats({projectId:e}));this.stats_$.set(n.stats)}catch(n){this.error_$.set(n instanceof Error?n.message:"Statisztik\xE1k bet\xF6lt\xE9se sikertelen.")}})}loadRequirementCodes(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getRequirementCodes({projectId:e}));this.requirementCodes_$.set(n.items)}catch(n){this.error_$.set(n instanceof Error?n.message:"Requirement k\xF3dok bet\xF6lt\xE9se sikertelen.")}})}loadModules(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getModules({projectId:e}));this.availableModules_$.set(n.modules)}catch(n){this.error_$.set(n instanceof Error?n.message:"Modul lista bet\xF6lt\xE9se sikertelen.")}})}toggleFileTree(){let e=!this.isFileTreeOpen_$();this.isFileTreeOpen_$.set(e),T.savePanelOpen("fileTree",e)}toggleInfoPanel(){let e=!this.isInfoPanelOpen_$();this.isInfoPanelOpen_$.set(e),T.savePanelOpen("infoPanel",e)}toggleSearchPanel(){this.isSearchPanelOpen_$.set(!this.isSearchPanelOpen_$())}loadEmbeddingStatus(){return I(this,null,function*(){let e=this.selectedProjectId_$(),n=this.selectedRegistryEntryId_$();if(!(!e||!n))try{let r=yield F(this.ps_AS.getEmbeddingStatus({projectId:e,registryEntryId:n}));this.embeddingStatus_$.set(r)}catch(r){this.error_$.set(r instanceof Error?r.message:"Embedding st\xE1tusz bet\xF6lt\xE9se sikertelen.")}})}startEmbedding(){return I(this,null,function*(){let e=this.selectedProjectId_$(),n=this.selectedRegistryEntryId_$();if(!(!e||!n)){this.isEmbedding_$.set(!0),this.error_$.set(null);try{yield F(this.ps_AS.startEmbedding({projectId:e,registryEntryId:n})),this.startEmbeddingPolling()}catch(r){this.error_$.set(r instanceof Error?r.message:"Embedding ind\xEDt\xE1s sikertelen."),this.isEmbedding_$.set(!1)}}})}search(e){return I(this,null,function*(){let n=this.selectedProjectId_$(),r=this.selectedRegistryEntryId_$();if(!(!n||!r||!e.query.trim())){this.isSearching_$.set(!0),this.error_$.set(null);try{let d=yield F(this.ps_AS.search({projectId:n,registryEntryId:r,query:e.query,metric:this.searchMetric_$()}));this.searchResults_$.set(d.results)}catch(d){this.error_$.set(d instanceof Error?d.message:"Keres\xE9s sikertelen.")}finally{this.isSearching_$.set(!1)}}})}navigateToSearchResult(e){let n=this.files_$().find(r=>r.relativePath===e.result.file.relativePath);n&&(this.openFileInTab({file:n}),this.isSearchPanelOpen_$.set(!1))}loadRelationsForFile(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n)try{let r=yield F(this.ps_AS.getRelationsForFile({projectId:n,fileId:e.fileId}));this.relations_$.set([...r.outgoing,...r.incoming])}catch{}})}loadRunFlows(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.listRunFlows({projectId:e}));this.runFlows_$.set(n.items)}catch{}})}loadDataFlows(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.listDataFlows({projectId:e}));this.dataFlows_$.set(n.items)}catch{}})}loadDescriptions(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.listDescriptions({projectId:e}));this.descriptions_$.set(n.items)}catch{}})}updateDescription(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n)try{yield F(this.ps_AS.updateDescription({projectId:n,descId:e.descId,description:e.description})),yield this.loadDescriptions()}catch(r){this.error_$.set(r instanceof Error?r.message:"Description friss\xEDt\xE9s sikertelen.")}})}embeddingPollTimer=null;startEmbeddingPolling(){this.stopEmbeddingPolling(),this.embeddingPollTimer=setInterval(()=>{this.loadEmbeddingStatus().then(()=>{this.embeddingStatus_$()?.pending===0&&(this.isEmbedding_$.set(!1),this.stopEmbeddingPolling())})},3e3)}stopEmbeddingPolling(){this.embeddingPollTimer&&(clearInterval(this.embeddingPollTimer),this.embeddingPollTimer=null)}loadFileForTab(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n){this.updateTabLoading({fileId:e.fileId,isLoading:!0});try{let r=yield F(this.ps_AS.getFileDetail({projectId:n,fileId:e.fileId}));this.tabFileCache.set(e.fileId,{file:r.file,chunks:r.chunks}),this.activeTabId_$()===e.fileId&&(this.selectedFile_$.set(r.file),this.selectedFileChunks_$.set(r.chunks),this.loadRelationsForFile({fileId:e.fileId}))}catch(r){this.error_$.set(r instanceof Error?r.message:"F\xE1jl detail bet\xF6lt\xE9se sikertelen.")}finally{this.updateTabLoading({fileId:e.fileId,isLoading:!1})}}})}updateTabLoading(e){this.openTabs_$.update(n=>n.map(r=>r.fileId===e.fileId?K(J({},r),{isLoading:e.isLoading}):r))}persistTabs(){let e=this.openTabs_$().map(r=>r.fileId);T.saveOpenTabIds(e);let n=this.activeTabId_$();n&&T.saveActiveTabId(n)}startStatusPolling(){this.stopStatusPolling(),this.statusPollTimer=setInterval(()=>{this.loadIngestionStatus()},3e3)}stopStatusPolling(){this.statusPollTimer&&(clearInterval(this.statusPollTimer),this.statusPollTimer=null)}restoreFromStorage(){this.isFileTreeOpen_$.set(T.loadPanelOpen("fileTree",!0)),this.isInfoPanelOpen_$.set(T.loadPanelOpen("infoPanel",!0));let e=T.loadExpandedFolders();e.length>0&&this.expandedFolders_$.set(new Set(e))}ngOnDestroy(){this.stopStatusPolling(),this.stopEmbeddingPolling()}static \u0275fac=function(n){return new(n||t)};static \u0275prov=Y({token:t,factory:t.\u0275fac})}return t})();var je=(t,a)=>a.id;function Me(t,a){if(t&1&&(i(0,"option",14),s(1),o()),t&2){let e=a.$implicit;C("value",e.id),l(),h(e.name)}}function Re(t,a){if(t&1){let e=M();i(0,"select",12),S("change",function(r){D(e);let d=p();return w(d.handleProjectChange(r.target.value))}),i(1,"option",13),s(2,"Select project..."),o(),b(3,Me,2,2,"option",14,je),o()}if(t&2){let e,n=p();C("value",(e=n.ps_DS.selectedProjectId_$())!==null&&e!==void 0?e:""),l(3),P(n.ps_DS.projects_$())}}function Ae(t,a){t&1&&(m(0,"span",18),s(1," Ingesting... "))}function Ne(t,a){t&1&&(s(0," Ingest "),E(),i(1,"svg",16),m(2,"polyline",3),o())}function Ve(t,a){if(t&1){let e=M();i(0,"div",17)(1,"button",19),S("click",function(){D(e);let r=p(2);return w(r.handleStartIngestion("full"))}),s(2," Full ingestion "),o(),i(3,"button",19),S("click",function(){D(e);let r=p(2);return w(r.handleStartIngestion("incremental"))}),s(4," Incremental "),o()()}}function Oe(t,a){if(t&1){let e=M();i(0,"div",6)(1,"button",15),S("click",function(){D(e);let r=p();return w(r.handleToggleIngestMenu())}),_(2,Ae,2,0)(3,Ne,3,0,":svg:svg",16),o(),_(4,Ve,5,0,"div",17),o()}if(t&2){let e=p();l(),O("opacity-50",e.ps_DS.isIngesting_$()),C("disabled",e.ps_DS.isIngesting_$()),l(),c(e.ps_DS.isIngesting_$()?2:3),l(2),c(e.isIngestMenuOpen_$()&&!e.ps_DS.isIngesting_$()?4:-1)}}function Ue(t,a){if(t&1&&(i(0,"span",8),s(1),o()),t&2){let e=a;C("title",e.relativePath),l(),x(" ",e.relativePath," ")}}function Be(t,a){t&1&&(i(0,"span",9),s(1,"No file selected"),o())}function Le(t,a){t&1&&(i(0,"span",9),s(1,"Select a project to begin"),o())}function Ge(t,a){if(t&1&&(i(0,"span",20),s(1),o(),i(2,"span",21),s(3,"|"),o(),i(4,"span",20),s(5),o(),m(6,"span",4)),t&2){let e=a;l(),x(" ",e.totalFiles," files "),l(4),x(" ",e.totalChunks," chunks ")}}var Se=(()=>{class t{ps_DS=v(g);isIngestMenuOpen_$=u(!1);handleProjectChange(e){e&&this.ps_DS.selectProject({projectId:e})}handleStartIngestion(e){this.isIngestMenuOpen_$.set(!1),this.ps_DS.startIngestion({mode:e})}handleToggleIngestMenu(){this.isIngestMenuOpen_$.update(e=>!e)}handleToggleFileTree(){this.ps_DS.toggleFileTree()}handleToggleSearchPanel(){this.ps_DS.toggleSearchPanel()}handleToggleInfoPanel(){this.ps_DS.toggleInfoPanel()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-ide-toolbar"]],hostAttrs:[1,"block","shrink-0"],decls:19,vars:12,consts:[["sSessionToolbarLeft","",1,"flex","items-center","gap-1","min-w-0"],[1,"px-2","py-1","text-xs","border","border-neonDefault","text-neutral-300","hover:bg-neutral-700","rounded","transition-colors","flex","items-center","gap-1","shrink-0",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"w-px","h-4","bg-neutral-700","shrink-0","self-center","mx-0.5"],[1,"bg-ccapBg","border","border-neonDefault","text-neutral-300","text-xs","rounded","px-2","py-1","max-w-[180px]","truncate","focus:outline-none","focus:border-neonCyan",3,"value"],[1,"relative","shrink-0"],["sSessionToolbarCenter","",1,"flex","items-center","justify-center","gap-2","min-w-0"],[1,"text-xs","text-neutral-500","truncate","max-w-[400px]",3,"title"],[1,"text-xs","text-neutral-500"],["sSessionToolbarRight","",1,"flex","items-center","gap-1","min-w-0","flex-wrap","justify-end"],[1,"px-2","py-1","text-xs","border","rounded","transition-colors","shrink-0",3,"click"],[1,"bg-ccapBg","border","border-neonDefault","text-neutral-300","text-xs","rounded","px-2","py-1","max-w-[180px]","truncate","focus:outline-none","focus:border-neonCyan",3,"change","value"],["value","","disabled",""],[3,"value"],[1,"px-2","py-1","text-xs","border","border-neonDefault","text-neutral-300","hover:bg-neutral-700","rounded","transition-colors","flex","items-center","gap-1",3,"click","disabled"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"w-3","h-3"],[1,"absolute","top-full","left-0","mt-1","bg-ccapSurface","border","border-neonDefault","rounded","shadow-lg","z-20","min-w-[140px]"],[1,"w-2","h-2","rounded-full","bg-neonCyan","animate-pulse","shrink-0"],[1,"block","w-full","text-left","px-3","py-1.5","text-xs","text-neutral-300","hover:bg-neonCyan/10","hover:text-neonCyan","transition-colors",3,"click"],[1,"text-[10px]","text-neutral-500","shrink-0"],[1,"text-[10px]","text-neutral-600","shrink-0"]],template:function(n,r){if(n&1&&(i(0,"app-s-session-shell-toolbar")(1,"div",0)(2,"button",1),S("click",function(){return r.handleToggleFileTree()}),E(),i(3,"svg",2),m(4,"polyline",3),o(),s(5," Files "),o(),j(),m(6,"div",4),_(7,Re,5,1,"select",5)(8,Oe,5,5,"div",6),o(),i(9,"div",7),_(10,Ue,2,2,"span",8)(11,Be,2,0,"span",9)(12,Le,2,0,"span",9),o(),i(13,"div",10),_(14,Ge,7,2),i(15,"button",11),S("click",function(){return r.handleToggleSearchPanel()}),s(16," Search "),o(),i(17,"button",11),S("click",function(){return r.handleToggleInfoPanel()}),s(18," Info "),o()()()),n&2){let d,f;l(3),O("rotate-90",r.ps_DS.isFileTreeOpen_$())("-rotate-90",!r.ps_DS.isFileTreeOpen_$()),l(4),c(r.ps_DS.isEmbedded_$()?-1:7),l(),c(r.ps_DS.selectedProjectId_$()?8:-1),l(2),c((d=r.ps_DS.selectedFile_$())?10:r.ps_DS.selectedProjectId_$()?11:12,d),l(4),c((f=r.ps_DS.stats_$())?14:-1,f),l(),k(r.ps_DS.isSearchPanelOpen_$()?"border-neonGreen/50 text-neonGreen bg-neonGreen/10":"border-neutral-700 text-neutral-500 hover:text-neutral-300 hover:border-neutral-600"),l(2),k(r.ps_DS.isInfoPanelOpen_$()?"border-neonCyan/50 text-neonCyan bg-neonCyan/10":"border-neutral-700 text-neutral-500 hover:text-neutral-300 hover:border-neutral-600")}},dependencies:[B,L,me],encapsulation:2})}return t})();var We=(t,a)=>a.path;function ze(t,a){if(t&1&&m(0,"app-ps-file-tree-node",6),t&2){let e=a.$implicit,n=p(3);C("node",e)("depth",n.depth+1)}}function He(t,a){if(t&1&&b(0,ze,1,2,"app-ps-file-tree-node",6,We),t&2){let e=p(2);P(e.node.children)}}function Xe(t,a){if(t&1){let e=M();i(0,"button",1),S("click",function(){D(e);let r=p();return w(r.handleFolderToggle())}),E(),i(1,"svg",2),m(2,"polyline",3),o(),j(),i(3,"span",4),s(4),o(),i(5,"span",5),s(6),o()(),_(7,He,2,0)}if(t&2){let e=p();H("padding-left",e.depth*16+4,"px"),l(),O("rotate-90",e.isExpanded),l(3),h(e.node.name),l(2),x(" ",e.node.fileCount," "),l(),c(e.isExpanded?7:-1)}}function Qe(t,a){if(t&1&&(i(0,"span",9),s(1),o()),t&2){let e=p(2);l(),h(e.node.file.chunkCount)}}function Je(t,a){if(t&1){let e=M();i(0,"button",7),S("click",function(){D(e);let r=p();return w(r.handleFileClick())}),m(1,"span",8),i(2,"span",4),s(3),o(),_(4,Qe,2,1,"span",9),o()}if(t&2){let e=p();k(e.isActiveFile?"border-l-2 border-neonCyan bg-neonCyan/5 text-neonCyan":"text-neutral-400 hover:bg-neonCyan/5 hover:text-neutral-300 border-l-2 border-transparent"),H("padding-left",e.depth*16+20,"px"),l(),k((e.node.file==null?null:e.node.file.sourceType)==="code"?"bg-neonCyan/60":(e.node.file==null?null:e.node.file.sourceType)==="rule"?"bg-neonAmber/60":"bg-neonGreen/60"),l(2),h(e.node.name),l(),c(e.node.file&&e.node.file.chunkCount?4:-1)}}var Ce=(()=>{class t{node;depth;ps_DS=v(g);handleFolderToggle(){this.ps_DS.toggleFolder({folderPath:this.node.path})}handleFileClick(){this.node.file&&this.ps_DS.openFileInTab({file:this.node.file})}get isExpanded(){return this.ps_DS.expandedFolders_$().has(this.node.path)}get isActiveFile(){return!this.node.isFolder&&!!this.node.file&&this.ps_DS.activeTabId_$()===this.node.file.id}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-file-tree-node"]],hostAttrs:[1,"block"],inputs:{node:"node",depth:"depth"},decls:2,vars:1,consts:[[1,"flex","items-center","w-full","text-left","py-0.5","pr-2","text-xs","transition-colors",3,"padding-left","class"],[1,"flex","items-center","w-full","text-left","py-0.5","pr-2","text-xs","text-neutral-400","hover:bg-neonCyan/5","hover:text-neutral-300","transition-colors","group",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","mr-1","shrink-0","transition-transform","duration-100"],["points","9 18 15 12 9 6"],[1,"truncate"],[1,"ml-auto","text-[10px]","text-neutral-600","group-hover:text-neutral-500","shrink-0"],[3,"node","depth"],[1,"flex","items-center","w-full","text-left","py-0.5","pr-2","text-xs","transition-colors",3,"click"],[1,"w-2","h-2","rounded-full","mr-1.5","shrink-0"],[1,"ml-auto","text-[10px]","text-neutral-600","shrink-0"]],template:function(n,r){n&1&&_(0,Xe,8,7)(1,Je,5,8,"button",0),n&2&&c(r.node.isFolder?0:1)},dependencies:[t],encapsulation:2})}return t})();var Ye=(t,a)=>a.path;function Ze(t,a){t&1&&(i(0,"div",3),s(1," Loading... "),o())}function et(t,a){t&1&&(i(0,"div",4),s(1," No files found "),o())}function tt(t,a){if(t&1&&m(0,"app-ps-file-tree-node",17),t&2){let e=a.$implicit;C("node",e)("depth",0)}}function nt(t,a){if(t&1&&b(0,tt,1,2,"app-ps-file-tree-node",17,Ye),t&2){let e=p();P(e.filteredTree_$())}}function it(t,a){if(t&1&&(i(0,"option",18),s(1),o()),t&2){let e=a.$implicit;C("value",e),l(),h(e)}}function ot(t,a){if(t&1){let e=M();i(0,"select",6),S("change",function(r){D(e);let d=p();return w(d.handleModuleChange(r.target.value))}),i(1,"option",7),s(2,"All modules"),o(),b(3,it,2,2,"option",18,U),o()}if(t&2){let e=p();C("value",e.ps_DS.filterModule_$()),l(3),P(e.ps_DS.availableModules_$())}}var ve=(()=>{class t{ps_DS=v(g);filteredTree_$=Z(()=>{let e=this.ps_DS.treeSearchQuery_$(),n=this.ps_DS.fileTree_$();return e.trim()?G.filterTreeBySearch({nodes:n,query:e}):n});handleSearchChange(e){this.ps_DS.treeSearchQuery_$.set(e)}handleSourceTypeChange(e){this.ps_DS.filterSourceType_$.set(e),this.ps_DS.loadFilesAndBuildTree()}handleProjectPartChange(e){this.ps_DS.filterProjectPart_$.set(e),this.ps_DS.loadFilesAndBuildTree()}handleModuleChange(e){this.ps_DS.filterModule_$.set(e),this.ps_DS.loadFilesAndBuildTree()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-file-tree"]],hostAttrs:[1,"flex","flex-col","h-full","overflow-hidden"],decls:30,vars:5,consts:[[1,"shrink-0","p-2","border-b","border-neonDefault/30"],["type","text","placeholder","Search files...",1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-1","text-xs","text-neutral-300","placeholder-neutral-600","focus:outline-none","focus:border-neonCyan/60",3,"input","value"],[1,"flex-1","overflow-y-auto","overflow-x-hidden","min-h-0","py-1"],[1,"flex","items-center","justify-center","py-8","text-neutral-500","text-xs"],[1,"flex","items-center","justify-center","py-8","text-neutral-600","text-xs"],[1,"shrink-0","border-t","border-neonDefault/30","p-2","space-y-1"],[1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400","focus:outline-none","focus:border-neonCyan/60",3,"change","value"],["value",""],["value","code"],["value","document"],["value","rule"],["value","server"],["value","client"],["value","cli"],["value","e2e"],["value","shared"],[1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400","focus:outline-none","focus:border-neonCyan/60",3,"value"],[3,"node","depth"],[3,"value"]],template:function(n,r){n&1&&(i(0,"div",0)(1,"input",1),S("input",function(f){return r.handleSearchChange(f.target.value)}),o()(),i(2,"div",2),_(3,Ze,2,0,"div",3)(4,et,2,0,"div",4)(5,nt,2,0),o(),i(6,"div",5)(7,"select",6),S("change",function(f){return r.handleSourceTypeChange(f.target.value)}),i(8,"option",7),s(9,"All types"),o(),i(10,"option",8),s(11,"Code"),o(),i(12,"option",9),s(13,"Document"),o(),i(14,"option",10),s(15,"Rule"),o()(),i(16,"select",6),S("change",function(f){return r.handleProjectPartChange(f.target.value)}),i(17,"option",7),s(18,"All parts"),o(),i(19,"option",11),s(20,"Server"),o(),i(21,"option",12),s(22,"Client"),o(),i(23,"option",13),s(24,"CLI"),o(),i(25,"option",14),s(26,"E2E"),o(),i(27,"option",15),s(28,"Shared"),o()(),_(29,ot,5,1,"select",16),o()),n&2&&(l(),C("value",r.ps_DS.treeSearchQuery_$()),l(2),c(r.ps_DS.isLoading_$()?3:r.filteredTree_$().length?5:4),l(4),C("value",r.ps_DS.filterSourceType_$()),l(9),C("value",r.ps_DS.filterProjectPart_$()),l(13),c(r.ps_DS.availableModules_$().length?29:-1))},dependencies:[B,L,Ce],encapsulation:2})}return t})();var lt=(t,a)=>a.fileId;function at(t,a){t&1&&m(0,"span",3)}function st(t,a){if(t&1){let e=M();i(0,"button",2),S("click",function(){let r=D(e).$implicit,d=p(2);return w(d.handleTabClick(r))}),_(1,at,1,0,"span",3),i(2,"span",4),s(3),o(),i(4,"span",5),S("click",function(r){let d=D(e).$implicit,f=p(2);return w(f.handleTabClose(r,d))}),E(),i(5,"svg",6),m(6,"line",7)(7,"line",8),o()()()}if(t&2){let e=a.$implicit,n=p(2);k(n.ps_DS.activeTabId_$()===e.fileId?"border-b-2 border-b-neonCyan text-neonCyan bg-neonCyan/5":"text-neutral-400 hover:text-neutral-300 hover:bg-neutral-800 border-b-2 border-b-transparent"),l(),c(e.isLoading?1:-1),l(2),h(e.fileName)}}function dt(t,a){if(t&1&&(i(0,"div",0),b(1,st,8,4,"button",1,lt),o()),t&2){let e=p();l(),P(e.ps_DS.openTabs_$())}}var ge=(()=>{class t{ps_DS=v(g);handleTabClick(e){this.ps_DS.setActiveTab({fileId:e.fileId})}handleTabClose(e,n){e.stopPropagation(),this.ps_DS.closeTab({fileId:n.fileId})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-tab-bar"]],hostAttrs:[1,"block","shrink-0"],decls:1,vars:1,consts:[[1,"flex","items-stretch","overflow-x-auto","border-b","border-neonDefault/30","bg-ccapBg","scrollbar-thin","scrollbar-thumb-neutral-700"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","whitespace-nowrap","border-r","border-neonDefault/20","transition-colors","shrink-0","max-w-[200px]","group",3,"class"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","whitespace-nowrap","border-r","border-neonDefault/20","transition-colors","shrink-0","max-w-[200px]","group",3,"click"],[1,"w-2","h-2","rounded-full","bg-neonCyan","animate-pulse","shrink-0"],[1,"truncate"],[1,"ml-1","w-4","h-4","flex","items-center","justify-center","rounded","hover:bg-neutral-600","text-neutral-500","hover:text-neutral-200","opacity-0","group-hover:opacity-100","transition-opacity","shrink-0",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.5",1,"w-2.5","h-2.5"],["x1","18","y1","6","x2","6","y2","18"],["x1","6","y1","6","x2","18","y2","18"]],template:function(n,r){n&1&&_(0,dt,3,0,"div",0),n&2&&c(r.ps_DS.openTabs_$().length?0:-1)},encapsulation:2})}return t})();var pt=(t,a)=>a.id;function _t(t,a){t&1&&(i(0,"div",1),E(),i(1,"svg",4),m(2,"path",5)(3,"polyline",6),o(),j(),i(4,"span",7),s(5,"Open a file from the tree"),o()())}function mt(t,a){t&1&&(i(0,"div",2),s(1," No chunks available for this file "),o())}function ut(t,a){if(t&1&&m(0,"span",12),t&2){let e=p().$implicit;C("title","Embedded: "+e.dimensions+"d, "+e.embeddingTimeMs+"ms")}}function ft(t,a){t&1&&m(0,"span",13)}function ht(t,a){t&1&&m(0,"span",14)}function xt(t,a){if(t&1&&(i(0,"span",15),s(1),o()),t&2){let e=p().$implicit;l(),V(" L",e.lineStart,"-",e.lineEnd," ")}}function St(t,a){if(t&1&&(i(0,"span",17),s(1),o()),t&2){let e=p().$implicit;l(),x(" ",e.chunkType," ")}}function Ct(t,a){if(t&1&&(i(0,"span",18),s(1),o()),t&2){let e=p().$implicit;C("title",e.headerPath),l(),x(" ",e.headerPath," ")}}function vt(t,a){if(t&1&&(i(0,"span",20),s(1),o()),t&2){let e=a.$implicit;l(),x(" ",e," ")}}function gt(t,a){if(t&1&&b(0,vt,2,1,"span",20,U),t&2){let e=p().$implicit;P(e.requirementCodes)}}function It(t,a){if(t&1){let e=M();i(0,"div",9),S("click",function(){let r=D(e).$implicit,d=p(2);return w(d.handleChunkClick(r))}),i(1,"div",10)(2,"span",11),s(3),o(),_(4,ut,1,1,"span",12)(5,ft,1,0,"span",13)(6,ht,1,0,"span",14)(7,xt,2,2,"span",15),i(8,"span",16),s(9),o(),_(10,St,2,1,"span",17)(11,Ct,2,2,"span",18)(12,gt,2,0),o(),i(13,"pre",19),s(14),o()()}if(t&2){let e=a.$implicit,n=p(2);k(n.ps_DS.selectedChunkIndex_$()===e.chunkIndex?"ring-1 ring-neonCyan/40 bg-neonCyan/3 border-neonCyan/30":"border-neonDefault/20 hover:border-neonDefault/40 bg-ccapSurface"),l(3),x(" #",e.chunkIndex," "),l(),c(e.embeddingStatus==="completed"?4:e.embeddingStatus==="error"?5:6),l(3),c(e.lineStart!==void 0&&e.lineEnd!==void 0?7:-1),l(2),V(" C",e.charStart,"-",e.charEnd," "),l(),c(e.chunkType?10:-1),l(),c(e.headerPath?11:-1),l(),c(e.requirementCodes.length?12:-1),l(2),h(e.text)}}function bt(t,a){if(t&1&&(i(0,"div",3),b(1,It,15,11,"div",8,pt),o()),t&2){let e=p();l(),P(e.ps_DS.selectedFileChunks_$())}}var Ie=(()=>{class t{ps_DS=v(g);handleChunkClick(e){this.ps_DS.selectChunk({chunkIndex:e.chunkIndex})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-chunk-viewer"]],hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],decls:4,vars:1,consts:[[1,"flex-1","overflow-y-auto","min-h-0","p-3"],[1,"flex","flex-col","items-center","justify-center","h-full","text-neutral-600"],[1,"flex","items-center","justify-center","h-full","text-neutral-600","text-sm"],[1,"space-y-2"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1",1,"w-12","h-12","mb-3","text-neutral-700"],["d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"],["points","13 2 13 9 20 9"],[1,"text-sm"],[1,"rounded","border","transition-all","cursor-pointer",3,"class"],[1,"rounded","border","transition-all","cursor-pointer",3,"click"],[1,"flex","items-center","gap-2","px-3","py-1.5","border-b","border-neonDefault/10"],[1,"text-[10px]","font-mono","text-neutral-500"],[1,"w-2","h-2","rounded-full","bg-neonGreen","shrink-0",3,"title"],["title","Embedding error",1,"w-2","h-2","rounded-full","bg-red-400","shrink-0"],["title","Not embedded",1,"w-2","h-2","rounded-full","bg-neutral-600","shrink-0"],[1,"text-[10px]","text-neutral-600"],[1,"text-[10px]","text-neutral-600","font-mono"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonCyan/10","text-neonCyan"],[1,"text-[10px]","text-neutral-500","truncate","max-w-[250px]",3,"title"],[1,"px-3","py-2","text-xs","text-neutral-300","font-mono","whitespace-pre-wrap","break-words","overflow-x-auto","max-h-[400px]","overflow-y-auto","leading-relaxed"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonAmber/10","text-neonAmber"]],template:function(n,r){n&1&&(i(0,"div",0),_(1,_t,6,0,"div",1)(2,mt,2,0,"div",2)(3,bt,3,0,"div",3),o()),n&2&&(l(),c(r.ps_DS.activeTabId_$()?!r.ps_DS.selectedFileChunks_$().length&&!r.ps_DS.isLoading_$()?2:3:1))},encapsulation:2})}return t})();var $t=(t,a)=>a.code,be=(t,a)=>a.id;function yt(t,a){if(t&1&&(i(0,"div",22)(1,"div",13),s(2,"Module"),o(),i(3,"div",20),s(4),o()()),t&2){let e=p();l(4),h(e.moduleName)}}function Et(t,a){if(t&1&&(i(0,"div")(1,"div",13),s(2,"Role"),o(),i(3,"div",20),s(4),o()()),t&2){let e=p();l(4),h(e.fileRole)}}function kt(t,a){if(t&1&&(i(0,"div",25),s(1),o()),t&2){let e=p(2);l(),h(e.errorMessage)}}function Dt(t,a){if(t&1&&(i(0,"div",23)(1,"div",24),s(2,"Error"),o(),_(3,kt,2,1,"div",25),o()),t&2){let e=p();l(3),c(e.errorMessage?3:-1)}}function wt(t,a){if(t&1&&(i(0,"span",28),s(1),o()),t&2){let e=a.$implicit;l(),x(" ",e," ")}}function Ft(t,a){if(t&1&&(i(0,"div",22)(1,"div",26),s(2,"Requirements"),o(),i(3,"div",27),b(4,wt,2,1,"span",28,U),o()()),t&2){let e=p();l(4),P(e.requirementCodes)}}function jt(t,a){if(t&1&&(i(0,"div",13),s(1,"Path"),o(),i(2,"div",17),s(3),o(),i(4,"div",18)(5,"div")(6,"div",13),s(7,"Type"),o(),i(8,"span",19),s(9),o()(),i(10,"div")(11,"div",13),s(12,"Part"),o(),i(13,"div",20),s(14),o()(),i(15,"div")(16,"div",13),s(17,"Extension"),o(),i(18,"div",21),s(19),o()(),i(20,"div")(21,"div",13),s(22,"Lines"),o(),i(23,"div",20),s(24),o()(),i(25,"div")(26,"div",13),s(27,"Size"),o(),i(28,"div",20),s(29),o()(),i(30,"div")(31,"div",13),s(32,"Chunks"),o(),i(33,"div",20),s(34),o()()(),_(35,yt,5,1,"div",22)(36,Et,5,1,"div")(37,Dt,4,1,"div",23)(38,Ft,6,0,"div",22)),t&2){let e=a;l(3),h(e.relativePath),l(5),k(e.sourceType==="code"?"bg-neonCyan/10 text-neonCyan":e.sourceType==="rule"?"bg-neonAmber/10 text-neonAmber":"bg-neonGreen/10 text-neonGreen"),l(),x(" ",e.sourceType," "),l(5),h(e.projectPart),l(5),h(e.fileExtension),l(5),h(e.lineCount),l(5),x("",e.fileSizeBytes," B"),l(5),h(e.chunkCount),l(),c(e.moduleName?35:-1),l(),c(e.fileRole?36:-1),l(),c(e.status==="error"?37:-1),l(),c(e.requirementCodes.length?38:-1)}}function Mt(t,a){t&1&&(i(0,"div",6),s(1,"No file selected"),o())}function Rt(t,a){if(t&1&&(i(0,"span",8),s(1),o()),t&2){let e=p();l(),x(" ",e.ps_DS.requirementCodes_$().length," ")}}function At(t,a){t&1&&(i(0,"div",6),s(1,"No requirement codes"),o())}function Nt(t,a){if(t&1&&(i(0,"div",29)(1,"span",30),s(2),o(),i(3,"span",31),s(4),o()()),t&2){let e=a.$implicit;l(2),x(" ",e.code," "),l(2),V(" ",e.fileCount,"f / ",e.chunkCount,"c ")}}function Vt(t,a){if(t&1&&b(0,Nt,5,3,"div",29,$t),t&2){let e=p();P(e.ps_DS.requirementCodes_$())}}function Ot(t,a){if(t&1&&(i(0,"span",35),s(1),o()),t&2){let e=p().$implicit;l(),h(e.externalPackage)}}function Ut(t,a){if(t&1&&(i(0,"span",36),s(1),o()),t&2){let e,n,r=p().$implicit;C("title",(e=r.targetFilePath)!==null&&e!==void 0?e:""),l(),x(" ",(n=r.targetSymbol)!==null&&n!==void 0?n:r.targetFilePath," ")}}function Bt(t,a){if(t&1&&(i(0,"div",33)(1,"span",34),s(2),o(),_(3,Ot,2,1,"span",35)(4,Ut,2,2,"span",36),o()),t&2){let e=a.$implicit;l(),k(e.relationType==="import"?"bg-blue-900/50 text-blue-300":e.relationType==="injection"?"bg-purple-900/50 text-purple-300":e.relationType==="inheritance"?"bg-orange-900/50 text-orange-300":"bg-neutral-700 text-neutral-300"),l(),x(" ",e.relationType," "),l(),c(e.isExternalTarget?3:4)}}function Lt(t,a){if(t&1&&(i(0,"details",7)(1,"summary",2),E(),i(2,"svg",3),m(3,"polyline",4),o(),s(4," Relations "),j(),i(5,"span",8),s(6),o()(),i(7,"div",32),b(8,Bt,5,4,"div",33,be),o()()),t&2){let e=p();l(6),x(" ",e.ps_DS.relations_$().length," "),l(2),P(e.ps_DS.relations_$())}}function Gt(t,a){t&1&&m(0,"span",10)}function qt(t,a){if(t&1&&(i(0,"div")(1,"div",13),s(2,"Duration"),o(),i(3,"div",20),s(4),X(5,"number"),o()()),t&2){let e=p();l(4),x(" ",Q(5,1,e.durationMs/1e3,"1.0-1"),"s ")}}function Wt(t,a){if(t&1&&(i(0,"span",42),s(1),o()),t&2){let e=p();l(),x("err:",e.filesErrored,"")}}function zt(t,a){if(t&1&&(i(0,"div",43),s(1),o()),t&2){let e=p();l(),h(e.errorMessage)}}function Ht(t,a){if(t&1&&(i(0,"pre",44),s(1),o()),t&2){let e=p();l(),h(e.errorDetails)}}function Xt(t,a){if(t&1&&(i(0,"div",37)(1,"div")(2,"div",13),s(3,"Status"),o(),i(4,"div",38),s(5),o()(),i(6,"div")(7,"div",13),s(8,"Mode"),o(),i(9,"div",20),s(10),o()(),_(11,qt,6,4,"div"),i(12,"div")(13,"div",13),s(14,"Scanned"),o(),i(15,"div",20),s(16),o()()(),i(17,"div",39)(18,"span",40),s(19),o(),i(20,"span",41),s(21),o(),i(22,"span",42),s(23),o(),i(24,"span",13),s(25),o(),_(26,Wt,2,1,"span",42),o(),_(27,zt,2,1,"div",43)(28,Ht,2,1,"pre",44)),t&2){let e=a;l(4),k(e.status==="completed"?"text-neonGreen":e.status==="running"?"text-neonCyan":e.status==="failed"?"text-red-400":"text-neutral-400"),l(),x(" ",e.status," "),l(5),h(e.mode),l(),c(e.durationMs?11:-1),l(5),h(e.totalFilesScanned),l(3),x("+",e.filesNew,""),l(2),x("~",e.filesChanged,""),l(2),x("-",e.filesDeleted,""),l(2),x("=",e.filesUnchanged,""),l(),c(e.filesErrored?26:-1),l(),c(e.errorMessage?27:-1),l(),c(e.errorDetails?28:-1)}}function Qt(t,a){t&1&&(i(0,"div",6),s(1,"No ingestion runs"),o())}function Jt(t,a){t&1&&m(0,"span",11)}function Kt(t,a){if(t&1&&(i(0,"div",45),m(1,"div",46),o(),i(2,"div",13),s(3),X(4,"number"),o(),i(5,"div",47)(6,"div",48)(7,"div",49),s(8),o(),i(9,"div",35),s(10,"Total"),o()(),i(11,"div",48)(12,"div",50),s(13),o(),i(14,"div",35),s(15,"Done"),o()(),i(16,"div",48)(17,"div",51),s(18),o(),i(19,"div",35),s(20,"Pending"),o()(),i(21,"div",48)(22,"div",52),s(23),o(),i(24,"div",35),s(25,"Error"),o()()()),t&2){let e=a;l(),H("width",e.total>0?e.completed/e.total*100:0,"%"),l(2),le(" ",e.completed,"/",e.total," embedded (",e.total>0?Q(4,9,e.completed/e.total*100,"1.0-0"):0,"%) "),l(5),h(e.total),l(5),h(e.completed),l(5),h(e.pending),l(5),h(e.error)}}function Yt(t,a){t&1&&(i(0,"div",13),s(1,"No embedding status"),o())}function Zt(t,a){t&1&&(i(0,"span",16),m(1,"span",53),s(2," Embedding... "),o())}function en(t,a){t&1&&s(0," Embed Now ")}function tn(t,a){if(t&1&&(i(0,"div",58),s(1),o()),t&2){let e=p().$implicit;l(),h(e.description)}}function nn(t,a){t&1&&(i(0,"div",59),s(1,"No description"),o())}function on(t,a){if(t&1&&(i(0,"div",54)(1,"div",55)(2,"span",56),s(3),o(),i(4,"span",57),s(5),o()(),_(6,tn,2,1,"div",58)(7,nn,2,0,"div",59),o()),t&2){let e=a.$implicit;l(3),x(" ",e.elementType," "),l(2),h(e.displayName),l(),c(e.description?6:7)}}function rn(t,a){if(t&1&&(i(0,"details",7)(1,"summary",2),E(),i(2,"svg",3),m(3,"polyline",4),o(),s(4," Descriptions "),j(),i(5,"span",8),s(6),o()(),i(7,"div",32),b(8,on,8,3,"div",54,be),o()()),t&2){let e=p();l(6),x(" ",e.ps_DS.descriptions_$().length," "),l(2),P(e.ps_DS.descriptions_$())}}var Pe=(()=>{class t{ps_DS=v(g);handleStartEmbedding(){this.ps_DS.startEmbedding()}handleLoadEmbeddingStatus(){this.ps_DS.loadEmbeddingStatus()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-info-panel"]],hostAttrs:[1,"flex","flex-col","h-full","overflow-hidden"],decls:42,vars:14,consts:[[1,"flex-1","overflow-y-auto","min-h-0","p-2","space-y-2"],["open","",1,"group"],[1,"flex","items-center","gap-1","cursor-pointer","text-xs","font-semibold","text-neutral-300","py-1.5","px-2","rounded","hover:bg-neonCyan/5","transition-colors","select-none","border","border-neonDefault/20"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-100","group-open:rotate-90","text-neutral-500"],["points","9 18 15 12 9 6"],[1,"mt-1","px-2","pb-1","space-y-1"],[1,"text-xs","text-neutral-600","py-2"],[1,"group"],[1,"ml-auto","text-[10px]","text-neutral-500"],[1,"mt-1","px-2","pb-1","space-y-1","max-h-[240px]","overflow-y-auto"],[1,"ml-1","w-2","h-2","rounded-full","bg-neonCyan","animate-pulse","shrink-0"],[1,"ml-1","w-2","h-2","rounded-full","bg-neonGreen","animate-pulse","shrink-0"],[1,"mt-1","px-2","pb-1","space-y-2"],[1,"text-[10px]","text-neutral-500"],["type","text","placeholder","Embedding Registry Entry ID","title","Paste the registry entry ID from Embedding Model Registry",1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400","focus:outline-none","focus:border-neonCyan/60",3,"change","value"],[1,"w-full","px-2","py-1","text-[10px]","border","rounded","transition-colors",3,"click","disabled"],[1,"inline-flex","items-center","gap-1"],[1,"text-xs","text-neutral-300","break-all","font-mono"],[1,"grid","grid-cols-2","gap-x-2","gap-y-1","mt-1"],[1,"text-xs","px-1.5","py-0.5","rounded-full","inline-block"],[1,"text-xs","text-neutral-300"],[1,"text-xs","text-neutral-300","font-mono"],[1,"mt-1"],[1,"mt-2","text-[10px]","text-red-400","bg-red-900/20","rounded","p-1.5"],[1,"font-bold"],[1,"mt-0.5","break-words"],[1,"text-[10px]","text-neutral-500","mb-0.5"],[1,"flex","flex-wrap","gap-1"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonAmber/10","text-neonAmber"],[1,"flex","items-center","gap-2","py-0.5"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonAmber/10","text-neonAmber","shrink-0","font-mono"],[1,"text-[10px]","text-neutral-500","shrink-0"],[1,"mt-1","px-2","pb-1","space-y-1","max-h-40","overflow-y-auto"],[1,"text-[10px]","flex","items-center","gap-1","py-0.5"],[1,"px-1","py-0.5","rounded","text-[9px]"],[1,"text-neutral-500"],[1,"text-neutral-400","truncate",3,"title"],[1,"grid","grid-cols-2","gap-x-2","gap-y-1"],[1,"text-xs","font-mono"],[1,"flex","flex-wrap","gap-1.5","mt-1"],[1,"text-[10px]","text-neonGreen"],[1,"text-[10px]","text-neonAmber"],[1,"text-[10px]","text-red-400"],[1,"text-[10px]","text-red-400","mt-1","break-words"],[1,"text-[9px]","text-red-300","bg-red-900/10","rounded","p-1","mt-1","max-h-20","overflow-y-auto","whitespace-pre-wrap"],[1,"w-full","bg-neutral-800","rounded-full","h-1.5"],[1,"bg-neonGreen","h-1.5","rounded-full","transition-all"],[1,"grid","grid-cols-4","gap-1","text-center","text-[10px]"],[1,"bg-neutral-800/60","rounded","p-1"],[1,"text-neutral-300","font-mono"],[1,"text-neonGreen","font-mono"],[1,"text-neonAmber","font-mono"],[1,"text-red-400","font-mono"],[1,"w-1.5","h-1.5","rounded-full","bg-neonGreen","animate-pulse"],[1,"text-[10px]","py-1","border-b","border-neonDefault/10"],[1,"flex","items-center","gap-1"],[1,"px-1","py-0.5","rounded","text-[9px]","bg-neonAmber/10","text-neonAmber"],[1,"text-neutral-300","font-medium"],[1,"text-neutral-500","mt-0.5"],[1,"text-neutral-600","italic","mt-0.5"]],template:function(n,r){if(n&1&&(i(0,"div",0)(1,"details",1)(2,"summary",2),E(),i(3,"svg",3),m(4,"polyline",4),o(),s(5," File Info "),o(),j(),i(6,"div",5),_(7,jt,39,13)(8,Mt,2,0,"div",6),o()(),i(9,"details",7)(10,"summary",2),E(),i(11,"svg",3),m(12,"polyline",4),o(),s(13," Requirements "),_(14,Rt,2,1,"span",8),o(),j(),i(15,"div",9),_(16,At,2,0,"div",6)(17,Vt,2,0),o()(),_(18,Lt,10,1,"details",7),i(19,"details",7)(20,"summary",2),E(),i(21,"svg",3),m(22,"polyline",4),o(),s(23," Ingestion "),_(24,Gt,1,0,"span",10),o(),j(),i(25,"div",5),_(26,Xt,29,13)(27,Qt,2,0,"div",6),o()(),i(28,"details",1)(29,"summary",2),E(),i(30,"svg",3),m(31,"polyline",4),o(),s(32," RAG / Embedding "),_(33,Jt,1,0,"span",11),o(),j(),i(34,"div",12),_(35,Kt,26,12)(36,Yt,2,0,"div",13),i(37,"input",14),S("change",function(f){return r.ps_DS.selectedRegistryEntryId_$.set(f.target.value),r.handleLoadEmbeddingStatus()}),o(),i(38,"button",15),S("click",function(){return r.handleStartEmbedding()}),_(39,Zt,3,0,"span",16)(40,en,1,0),o()()(),_(41,rn,10,1,"details",7),o()),n&2){let d,f,$,q;l(7),c((d=r.ps_DS.selectedFile_$())?7:8,d),l(7),c(r.ps_DS.requirementCodes_$().length?14:-1),l(2),c(r.ps_DS.requirementCodes_$().length?17:16),l(2),c(r.ps_DS.relations_$().length>0?18:-1),l(6),c(r.ps_DS.isIngesting_$()?24:-1),l(2),c((f=r.ps_DS.latestRun_$())?26:27,f),l(7),c(r.ps_DS.isEmbedding_$()?33:-1),l(2),c(($=r.ps_DS.embeddingStatus_$())?35:36,$),l(2),C("value",(q=r.ps_DS.selectedRegistryEntryId_$())!==null&&q!==void 0?q:""),l(),k(r.ps_DS.isEmbedding_$()?"border-neonGreen/50 text-neonGreen bg-neonGreen/10 opacity-50":"border-neonGreen/30 text-neonGreen hover:bg-neonGreen/10"),C("disabled",r.ps_DS.isEmbedding_$()||!r.ps_DS.selectedRegistryEntryId_$()),l(),c(r.ps_DS.isEmbedding_$()?39:40),l(2),c(r.ps_DS.descriptions_$().length>0?41:-1)}},dependencies:[ee],encapsulation:2})}return t})();function an(t,a){if(t&1&&(i(0,"span",1),s(1),o()),t&2){let e=p();l(),h(e.selectedProjectName_$())}}function sn(t,a){t&1&&(i(0,"span",1),s(1,"No project"),o())}function dn(t,a){if(t&1&&(i(0,"span",10),s(1),o()),t&2){let e=p(2);l(),x(" Chunk #",e.ps_DS.selectedChunkIndex_$()," ")}}function cn(t,a){if(t&1&&(m(0,"span",2),i(1,"span",9),s(2),o(),i(3,"span",1),s(4),o(),_(5,dn,2,1,"span",10)),t&2){let e=p();l(2),h(a.fileName),l(2),x("",e.ps_DS.selectedFileChunks_$().length," chunks"),l(),c(e.ps_DS.selectedChunkIndex_$()!==null?5:-1)}}function pn(t,a){t&1&&(i(0,"span",4),m(1,"span",11),s(2," Ingesting "),o())}function _n(t,a){t&1&&(i(0,"span",5),m(1,"span",12),s(2," Embedding "),o())}function mn(t,a){if(t&1&&(i(0,"span",6),s(1),o()),t&2){let e=a;l(),V(" ",e.completed,"/",e.total," emb ")}}function un(t,a){if(t&1&&(i(0,"span",7),s(1),o()),t&2){let e,n=p();C("title",(e=n.ps_DS.error_$())!==null&&e!==void 0?e:""),l(),x(" ",n.ps_DS.error_$()," ")}}function fn(t,a){t&1&&(i(0,"span",8),s(1,"Loading..."),o())}var Te=(()=>{class t{ps_DS=v(g);selectedProjectName_$=Z(()=>{let e=this.ps_DS.selectedProjectId_$();return e?this.ps_DS.projects_$().find(r=>r.id===e)?.name??"":""});static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-status-bar"]],hostAttrs:[1,"block","shrink-0"],decls:13,vars:8,consts:[[1,"flex","items-center","gap-3","px-3","py-1","border-t","border-neonDefault/30","bg-ccapBg","text-[10px]","text-neutral-500"],[1,"shrink-0"],[1,"w-px","h-3","bg-neutral-700","shrink-0"],[1,"flex-1"],[1,"flex","items-center","gap-1","text-neonCyan","shrink-0"],[1,"flex","items-center","gap-1","text-neonGreen","shrink-0"],[1,"text-[10px]","text-neutral-500","shrink-0"],[1,"text-red-400","truncate","max-w-[300px]","shrink-0",3,"title"],[1,"text-neutral-500","shrink-0"],[1,"truncate","max-w-[300px]"],[1,"text-neonCyan","shrink-0"],[1,"w-1.5","h-1.5","rounded-full","bg-neonCyan","animate-pulse"],[1,"w-1.5","h-1.5","rounded-full","bg-neonGreen","animate-pulse"]],template:function(n,r){if(n&1&&(i(0,"div",0),_(1,an,2,1,"span",1)(2,sn,2,0,"span",1),m(3,"span",2),i(4,"span",1),s(5),o(),_(6,cn,6,3),m(7,"span",3),_(8,pn,3,0,"span",4)(9,_n,3,0,"span",5)(10,mn,2,2,"span",6)(11,un,2,2,"span",7)(12,fn,2,0,"span",8),o()),n&2){let d,f;l(),c(r.selectedProjectName_$()?1:2),l(4),x("",r.ps_DS.filesTotal_$()," files"),l(),c((d=r.ps_DS.selectedFile_$())?6:-1,d),l(2),c(r.ps_DS.isIngesting_$()?8:-1),l(),c(r.ps_DS.isEmbedding_$()?9:-1),l(),c((f=r.ps_DS.embeddingStatus_$())?10:-1,f),l(),c(r.ps_DS.error_$()?11:-1),l(),c(r.ps_DS.isLoading_$()?12:-1)}},encapsulation:2})}return t})();var xn=(t,a)=>a.chunkId;function Sn(t,a){t&1&&(i(0,"span",3),m(1,"span",14),s(2," Searching... "),o())}function Cn(t,a){t&1&&s(0," Search ")}function vn(t,a){t&1&&(i(0,"div",10)(1,"span",15),m(2,"span",16),s(3," Searching... "),o()())}function gn(t,a){t&1&&(i(0,"div",11),s(1," No results found "),o())}function In(t,a){t&1&&(i(0,"div",12),E(),i(1,"svg",17),m(2,"circle",18)(3,"line",19),o(),j(),i(4,"span",20),s(5,"Enter a query to search"),o()())}function bn(t,a){if(t&1&&(i(0,"span",28),s(1),o()),t&2){let e=p().$implicit;l(),x(" ",e.file.sourceType," ")}}function Pn(t,a){if(t&1&&(i(0,"span",29),s(1),o()),t&2){let e=p().$implicit;l(),h(e.file.projectPart)}}function Tn(t,a){if(t&1&&(i(0,"span",30),s(1),o()),t&2){let e=p().$implicit;l(),h(e.file.moduleName)}}function $n(t,a){if(t&1&&(i(0,"span",31),s(1),o()),t&2){let e=p().$implicit;l(),V(" L",e.lineStart,"-",e.lineEnd," ")}}function yn(t,a){if(t&1){let e=M();i(0,"div",22),S("click",function(){let r=D(e).$implicit,d=p(2);return w(d.handleResultClick(r))}),i(1,"div",23)(2,"span",24),s(3),X(4,"number"),o(),i(5,"span",25),s(6),o(),i(7,"span",26),s(8),o()(),i(9,"div",27),_(10,bn,2,1,"span",28)(11,Pn,2,1,"span",29)(12,Tn,2,1,"span",30)(13,$n,2,2,"span",31),o(),i(14,"pre",32),s(15),o()()}if(t&2){let e=a.$implicit;l(2),k(e.score>=.8?"bg-neonGreen/15 text-neonGreen":e.score>=.6?"bg-neonAmber/15 text-neonAmber":"bg-neutral-700/50 text-neutral-400"),l(),x(" ",Q(4,11,e.score,"1.2-2")," "),l(2),C("title",e.file.relativePath),l(),x(" ",e.file.relativePath," "),l(2),x(" #",e.chunkIndex," "),l(2),c(e.file.sourceType?10:-1),l(),c(e.file.projectPart?11:-1),l(),c(e.file.moduleName?12:-1),l(),c(e.lineStart!==void 0&&e.lineEnd!==void 0?13:-1),l(2),h(e.text)}}function En(t,a){if(t&1&&(i(0,"div",13),b(1,yn,16,14,"div",21,xn),o()),t&2){let e=p();l(),P(e.ps_DS.searchResults_$())}}var $e=(()=>{class t{ps_DS=v(g);handleSearch(){this.ps_DS.search({query:this.ps_DS.searchQuery_$()})}handleResultClick(e){this.ps_DS.navigateToSearchResult({result:e})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-search-panel"]],hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],decls:18,vars:7,consts:[[1,"flex","items-center","gap-2","px-3","py-2","border-b","border-neonDefault/20","shrink-0"],["type","text","placeholder","Semantic search...",1,"flex-1","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-1","text-xs","text-neutral-300","focus:outline-none","focus:border-neonGreen/60","placeholder:text-neutral-600",3,"input","keydown.enter","value"],[1,"px-3","py-1","text-xs","border","rounded","transition-colors","shrink-0",3,"click","disabled"],[1,"inline-flex","items-center","gap-1"],[1,"flex","items-center","gap-2","px-3","py-1.5","border-b","border-neonDefault/20","shrink-0"],[1,"bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400",3,"change","value"],["value","cosine"],["value","euclidean"],["value","dot-product"],[1,"flex-1","overflow-y-auto","min-h-0","p-3"],[1,"flex","items-center","justify-center","h-full","text-neutral-600"],[1,"flex","items-center","justify-center","h-full","text-neutral-600","text-sm"],[1,"flex","flex-col","items-center","justify-center","h-full","text-neutral-600"],[1,"space-y-2"],[1,"w-1.5","h-1.5","rounded-full","bg-neonGreen","animate-pulse"],[1,"inline-flex","items-center","gap-2","text-sm"],[1,"w-2","h-2","rounded-full","bg-neonGreen","animate-pulse"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1",1,"w-12","h-12","mb-3","text-neutral-700"],["cx","11","cy","11","r","8"],["x1","21","y1","21","x2","16.65","y2","16.65"],[1,"text-sm"],[1,"rounded","border","border-neonDefault/20","hover:border-neonGreen/40","bg-ccapSurface","hover:bg-neonGreen/3","transition-all","cursor-pointer"],[1,"rounded","border","border-neonDefault/20","hover:border-neonGreen/40","bg-ccapSurface","hover:bg-neonGreen/3","transition-all","cursor-pointer",3,"click"],[1,"flex","items-center","gap-2","px-3","py-1.5","border-b","border-neonDefault/10"],[1,"text-[10px]","font-mono","px-1.5","py-0.5","rounded-full","shrink-0"],[1,"text-xs","text-neutral-400","truncate",3,"title"],[1,"text-[10px]","text-neutral-600","shrink-0","ml-auto"],[1,"flex","items-center","gap-1.5","px-3","py-1"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonCyan/10","text-neonCyan"],[1,"text-[10px]","text-neutral-500"],[1,"text-[10px]","text-neutral-600"],[1,"text-[10px]","text-neutral-600","ml-auto"],[1,"px-3","py-2","text-[11px]","text-neutral-400","font-mono","whitespace-pre-wrap","break-words","max-h-[120px]","overflow-y-auto","leading-relaxed"]],template:function(n,r){n&1&&(i(0,"div",0)(1,"input",1),S("input",function(f){return r.ps_DS.searchQuery_$.set(f.target.value)})("keydown.enter",function(){return r.handleSearch()}),o(),i(2,"button",2),S("click",function(){return r.handleSearch()}),_(3,Sn,3,0,"span",3)(4,Cn,1,0),o()(),i(5,"div",4)(6,"select",5),S("change",function(f){return r.ps_DS.searchMetric_$.set(f.target.value)}),i(7,"option",6),s(8,"Cosine"),o(),i(9,"option",7),s(10,"Euclidean"),o(),i(11,"option",8),s(12,"Dot Product"),o()()(),i(13,"div",9),_(14,vn,4,0,"div",10)(15,gn,2,0,"div",11)(16,In,6,0,"div",12)(17,En,3,0,"div",13),o()),n&2&&(l(),C("value",r.ps_DS.searchQuery_$()),l(),k(r.ps_DS.isSearching_$()?"border-neonGreen/50 text-neonGreen bg-neonGreen/10 opacity-50":"border-neonGreen/30 text-neonGreen hover:bg-neonGreen/10"),C("disabled",r.ps_DS.isSearching_$()||!r.ps_DS.searchQuery_$()),l(),c(r.ps_DS.isSearching_$()?3:4),l(3),C("value",r.ps_DS.searchMetric_$()),l(8),c(r.ps_DS.isSearching_$()?14:!r.ps_DS.searchResults_$().length&&r.ps_DS.searchQuery_$()?15:r.ps_DS.searchResults_$().length?17:16))},dependencies:[B,L,ee],encapsulation:2})}return t})();function Dn(t,a){t&1&&m(0,"app-ps-search-panel")}function wn(t,a){t&1&&m(0,"app-ps-chunk-viewer")}var ji=(()=>{class t{projectId;ps_DS=v(g);fileTreeWidth_$=u(260);infoPanelWidth_$=u(300);isResizing_$=u(!1);ngOnInit(){this.fileTreeWidth_$.set(Math.max(160,Math.min(500,T.loadPanelWidth("fileTree",260)))),this.infoPanelWidth_$.set(Math.max(200,Math.min(550,T.loadPanelWidth("infoPanel",300)))),this.ps_DS.restoreFromStorage(),this.projectId?(this.ps_DS.isEmbedded_$.set(!0),this.ps_DS.selectProject({projectId:this.projectId})):(this.ps_DS.isEmbedded_$.set(!1),this.ps_DS.loadProjects().then(()=>{let e=T.loadSelectedProjectId();e&&this.ps_DS.projects_$().some(n=>n.id===e)&&this.ps_DS.selectProject({projectId:e})}))}ngOnChanges(e){if(e.projectId&&!e.projectId.firstChange){let n=e.projectId.currentValue;n&&this.ps_DS.selectProject({projectId:n})}}handleFileTreeResizeStart(e){let n=this.fileTreeWidth_$(),r=e.clientX;this.isResizing_$.set(!0),ne.attachUntilPointerUp({startEvent:e,onMove:d=>{let f=d.clientX-r,$=Math.max(160,Math.min(500,n+f));this.fileTreeWidth_$.set($)},onEnd:()=>{this.isResizing_$.set(!1),T.savePanelWidth("fileTree",this.fileTreeWidth_$())}})}handleInfoPanelResizeStart(e){let n=this.infoPanelWidth_$(),r=e.clientX;this.isResizing_$.set(!0),ne.attachUntilPointerUp({startEvent:e,onMove:d=>{let f=r-d.clientX,$=Math.max(200,Math.min(550,n+f));this.infoPanelWidth_$.set($)},onEnd:()=>{this.isResizing_$.set(!1),T.savePanelWidth("infoPanel",this.infoPanelWidth_$())}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-ide-shell"]],hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],inputs:{projectId:"projectId"},features:[re],decls:12,vars:8,consts:[[1,"flex","min-h-0","w-full","flex-1","flex-col","overflow-hidden"],[3,"startResizeStart","endResizeStart","isStartOpen","isEndOpen","startWidthPx","endWidthPx","isResizing"],["sDetailColumnStart",""],["sDetailColumnMain","",1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],["sDetailColumnEnd",""]],template:function(n,r){n&1&&(i(0,"div",0),m(1,"app-ps-ide-toolbar"),i(2,"app-s-session-detail-three-column-layout",1),S("startResizeStart",function(f){return r.handleFileTreeResizeStart(f)})("endResizeStart",function(f){return r.handleInfoPanelResizeStart(f)}),i(3,"div",2),m(4,"app-ps-file-tree"),o(),i(5,"div",3),m(6,"app-ps-tab-bar"),_(7,Dn,1,0,"app-ps-search-panel")(8,wn,1,0,"app-ps-chunk-viewer"),o(),i(9,"div",4),m(10,"app-ps-info-panel"),o()(),m(11,"app-ps-status-bar"),o()),n&2&&(O("select-none",r.isResizing_$()),l(2),C("isStartOpen",r.ps_DS.isFileTreeOpen_$())("isEndOpen",r.ps_DS.isInfoPanelOpen_$())("startWidthPx",r.fileTreeWidth_$())("endWidthPx",r.infoPanelWidth_$())("isResizing",r.isResizing_$()),l(5),c(r.ps_DS.isSearchPanelOpen_$()?7:8))},dependencies:[ue,Se,ve,ge,Ie,Pe,Te,$e],encapsulation:2})}return t})();var oo=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=oe({type:t});static \u0275inj=ie({providers:[g],imports:[ae,ce,de,fe]})}return t})();export{ji as a,oo as b};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as ne}from"./chunk-Q2PKIGLB.js";import{g as fe}from"./chunk-OU6LZKDC.js";import{a as ue}from"./chunk-7JUIBZEE.js";import{a as me}from"./chunk-C7XPBJTG.js";import{a as te}from"./chunk-HHO3FIZ6.js";import{o as B,p as L,v as ce}from"./chunk-EO4DNTT4.js";import{f as _e}from"./chunk-RCDWNDY4.js";import{a as R}from"./chunk-5UPNU54P.js";import{I as pe}from"./chunk-FIWWFQAG.js";import{$a as X,C as v,D as y,E as oe,Fa as s,Ga as h,Ha as x,I as re,Ia as V,J as D,Ja as le,K as w,Kb as de,L as E,M as j,Z as l,a as J,aa as u,b as K,bb as Q,da as _,ga as C,ha as H,hb as Z,ia as O,ja as k,k as I,la as c,na as U,oa as b,p as F,pa as P,qa as i,ra as o,sa as m,sb as ee,ua as M,ub as ae,va as S,wa as p,xb as se,y as Y,z as ie}from"./chunk-TBMJSIBB.js";var A="ccap-projectSource",T=class{static savePanelWidth(a,e){R.writeNumber(`${A}:panelWidth:${a}`,e)}static loadPanelWidth(a,e){return R.readNumber(`${A}:panelWidth:${a}`,e)}static savePanelOpen(a,e){R.writeBoolean(`${A}:panelOpen:${a}`,e)}static loadPanelOpen(a,e){return R.readBoolean(`${A}:panelOpen:${a}`,e)}static saveSelectedProjectId(a){R.writeString(`${A}:selectedProjectId`,a)}static loadSelectedProjectId(){return R.readString(`${A}:selectedProjectId`)??""}static saveExpandedFolders(a){R.writeJson(`${A}:expandedFolders`,a)}static loadExpandedFolders(){let a=R.readJson(`${A}:expandedFolders`,[]);return Array.isArray(a)?a:[]}static saveOpenTabIds(a){R.writeJson(`${A}:openTabIds`,a)}static loadOpenTabIds(){let a=R.readJson(`${A}:openTabIds`,[]);return Array.isArray(a)?a:[]}static saveActiveTabId(a){R.writeString(`${A}:activeTabId`,a)}static loadActiveTabId(){return R.readString(`${A}:activeTabId`)??""}};var he=(()=>{class t{baseUrl=`${pe.api.baseUrl}/project-source`;http=v(se);startIngestion(e){return this.http.post(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/ingest`,{mode:e.mode})}listIngestionRuns(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/ingestion-runs`)}getIngestionStatus(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/ingestion-status`)}listFiles(e){let n=new URLSearchParams;e.sourceType&&n.set("sourceType",e.sourceType),e.projectPart&&n.set("projectPart",e.projectPart),e.moduleName&&n.set("moduleName",e.moduleName),e.fileRole&&n.set("fileRole",e.fileRole),e.requirementCode&&n.set("requirementCode",e.requirementCode),e.search&&n.set("search",e.search);let r=n.toString(),d=`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/files${r?"?"+r:""}`;return this.http.get(d)}getFileDetail(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/files/${encodeURIComponent(e.fileId)}`)}getRequirementCodes(e){let n=e.codePrefix?`?codePrefix=${encodeURIComponent(e.codePrefix)}`:"";return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/requirement-codes${n}`)}getStats(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/stats`)}getModules(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/modules`)}deleteProjectData(e){return this.http.delete(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}`)}startEmbedding(e){return this.http.post(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/embed`,{registryEntryId:e.registryEntryId})}getEmbeddingStatus(e){let n=`?registryEntryId=${encodeURIComponent(e.registryEntryId)}`;return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/embedding-status${n}`)}search(e){return this.http.post(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/search`,{registryEntryId:e.registryEntryId,query:e.query,topK:e.topK??10,metric:e.metric??"cosine",filters:e.filters})}listRelations(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/relations`)}getRelationsForFile(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/files/${encodeURIComponent(e.fileId)}/relations`)}listRunFlows(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/run-flows`)}listDataFlows(e){return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/data-flows`)}listDescriptions(e){let n=e.elementType?`?elementType=${encodeURIComponent(e.elementType)}`:"";return this.http.get(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/descriptions${n}`)}updateDescription(e){return this.http.put(`${this.baseUrl}/projects/${encodeURIComponent(e.projectId)}/descriptions/${encodeURIComponent(e.descId)}`,{description:e.description})}static \u0275fac=function(n){return new(n||t)};static \u0275prov=Y({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G=class t{static buildFileTree(a){let e=new Map,n=[];for(let r of a.files){let d=r.relativePath.split("/"),f=n,$="";for(let W=0;W<d.length-1;W++){$=$?$+"/"+d[W]:d[W];let z=e.get($);z||(z={path:$,name:d[W],isFolder:!0,children:[],file:null,fileCount:0},e.set($,z),f.push(z)),f=z.children}let q=d[d.length-1];f.push({path:r.relativePath,name:q,isFolder:!1,children:[],file:r,fileCount:0})}return t.sortAndCount({nodes:n}),n}static filterTreeBySearch(a){if(!a.query.trim())return a.nodes;let e=te.normalizeForSearch(a.query);return t.filterNodes({nodes:a.nodes,normalizedQuery:e})}static sortAndCount(a){let e=0;a.nodes.sort((n,r)=>n.isFolder&&!r.isFolder?-1:!n.isFolder&&r.isFolder?1:n.name.localeCompare(r.name));for(let n of a.nodes)n.isFolder?(n.fileCount=t.sortAndCount({nodes:n.children}),e+=n.fileCount):e++;return e}static filterNodes(a){let e=[];for(let n of a.nodes){let r=te.normalizeForSearch(n.name).includes(a.normalizedQuery);if(n.isFolder){let d=t.filterNodes({nodes:n.children,normalizedQuery:a.normalizedQuery});(d.length>0||r)&&e.push(K(J({},n),{children:d.length>0?d:n.children,fileCount:d.reduce((f,$)=>f+($.isFolder?$.fileCount:1),0)}))}else r&&e.push(n)}return e}};var g=(()=>{class t{selectedProjectId_$=u(null);projects_$=u([]);stats_$=u(null);latestRun_$=u(null);isIngesting_$=u(!1);files_$=u([]);filesTotal_$=u(0);fileTree_$=u([]);expandedFolders_$=u(new Set);treeSearchQuery_$=u("");openTabs_$=u([]);activeTabId_$=u(null);tabFileCache=new Map;selectedFile_$=u(null);selectedFileChunks_$=u([]);selectedChunkIndex_$=u(null);requirementCodes_$=u([]);availableModules_$=u([]);filterSourceType_$=u("");filterProjectPart_$=u("");filterModule_$=u("");filterFileRole_$=u("");filterReqCode_$=u("");filterSearch_$=u("");isFileTreeOpen_$=u(!0);isInfoPanelOpen_$=u(!0);isEmbedded_$=u(!1);isSearchPanelOpen_$=u(!1);embeddingStatus_$=u(null);isEmbedding_$=u(!1);searchQuery_$=u("");searchResults_$=u([]);isSearching_$=u(!1);selectedRegistryEntryId_$=u(null);relations_$=u([]);runFlows_$=u([]);dataFlows_$=u([]);descriptions_$=u([]);searchMetric_$=u("cosine");isLoading_$=u(!1);error_$=u(null);ps_AS=v(he);pm_AS=v(_e);statusPollTimer=null;loadProjects(){return I(this,null,function*(){try{let n=((yield this.pm_AS.listProjects()).projects??[]).filter(r=>r.localPath&&r.isActive).map(r=>({id:r._id??"",name:r.name??"",localPath:r.localPath??""}));this.projects_$.set(n)}catch(e){this.error_$.set(e instanceof Error?e.message:"Projekt lista bet\xF6lt\xE9se sikertelen.")}})}selectProject(e){return I(this,null,function*(){let n=this.selectedProjectId_$()===e.projectId;n&&this.files_$().length>0||(this.selectedProjectId_$.set(e.projectId),this.error_$.set(null),T.saveSelectedProjectId(e.projectId),n||(this.openTabs_$.set([]),this.activeTabId_$.set(null),this.tabFileCache.clear(),this.selectedFile_$.set(null),this.selectedFileChunks_$.set([]),this.selectedChunkIndex_$.set(null)),yield Promise.all([this.loadStats(),this.loadIngestionStatus(),this.loadModules(),this.loadFilesAndBuildTree(),this.loadRequirementCodes(),this.loadDescriptions()]))})}startIngestion(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n){this.isIngesting_$.set(!0),this.error_$.set(null);try{yield F(this.ps_AS.startIngestion({projectId:n,mode:e.mode})),this.startStatusPolling()}catch(r){this.error_$.set(r instanceof Error?r.message:"Ingestion ind\xEDt\xE1s sikertelen."),this.isIngesting_$.set(!1)}}})}loadIngestionStatus(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getIngestionStatus({projectId:e})),r=this.latestRun_$();if((n.run?.status!==r?.status||n.run?.totalChunksCreated!==r?.totalChunksCreated||n.run?.completedAt!==r?.completedAt)&&this.latestRun_$.set(n.run),n.run?.status==="running")this.isIngesting_$.set(!0);else{let f=this.isIngesting_$();this.isIngesting_$.set(!1),this.stopStatusPolling(),f&&(this.loadFilesAndBuildTree(),this.loadStats(),this.loadRequirementCodes())}}catch(n){this.error_$.set(n instanceof Error?n.message:"Ingestion st\xE1tusz bet\xF6lt\xE9se sikertelen.")}})}loadFilesAndBuildTree(){return I(this,null,function*(){yield this.loadFiles(),this.rebuildTree()})}loadFiles(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e){this.isLoading_$.set(!0),this.error_$.set(null);try{let n=yield F(this.ps_AS.listFiles({projectId:e,sourceType:this.filterSourceType_$()||void 0,projectPart:this.filterProjectPart_$()||void 0,moduleName:this.filterModule_$()||void 0,fileRole:this.filterFileRole_$()||void 0,requirementCode:this.filterReqCode_$()||void 0,search:this.filterSearch_$()||void 0}));this.files_$.set(n.items),this.filesTotal_$.set(n.total)}catch(n){this.error_$.set(n instanceof Error?n.message:"F\xE1jl lista bet\xF6lt\xE9se sikertelen.")}finally{this.isLoading_$.set(!1)}}})}rebuildTree(){let e=G.buildFileTree({files:this.files_$()});this.fileTree_$.set(e)}toggleFolder(e){this.expandedFolders_$.update(n=>{let r=new Set(n);return r.has(e.folderPath)?r.delete(e.folderPath):r.add(e.folderPath),T.saveExpandedFolders(Array.from(r)),r})}openFileInTab(e){let n=e.file.id,r=this.openTabs_$();if(r.some($=>$.fileId===n)){this.setActiveTab({fileId:n});return}let f={fileId:n,fileName:e.file.fileName,relativePath:e.file.relativePath,isLoading:!1};this.openTabs_$.set([...r,f]),this.setActiveTab({fileId:n}),this.persistTabs(),this.tabFileCache.has(n)||this.loadFileForTab({fileId:n})}closeTab(e){let n=this.openTabs_$(),r=n.findIndex(f=>f.fileId===e.fileId);if(r===-1)return;let d=n.filter(f=>f.fileId!==e.fileId);if(this.openTabs_$.set(d),this.tabFileCache.delete(e.fileId),this.activeTabId_$()===e.fileId)if(d.length>0){let f=Math.min(r,d.length-1);this.setActiveTab({fileId:d[f].fileId})}else this.activeTabId_$.set(null),this.selectedFile_$.set(null),this.selectedFileChunks_$.set([]),this.selectedChunkIndex_$.set(null);this.persistTabs()}setActiveTab(e){this.activeTabId_$.set(e.fileId),this.selectedChunkIndex_$.set(null),T.saveActiveTabId(e.fileId);let n=this.tabFileCache.get(e.fileId);n?(this.selectedFile_$.set(n.file),this.selectedFileChunks_$.set(n.chunks),this.loadRelationsForFile({fileId:e.fileId})):(this.selectedFile_$.set(null),this.selectedFileChunks_$.set([]),this.loadFileForTab({fileId:e.fileId}))}selectChunk(e){let n=this.selectedChunkIndex_$();this.selectedChunkIndex_$.set(n===e.chunkIndex?null:e.chunkIndex)}loadStats(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getStats({projectId:e}));this.stats_$.set(n.stats)}catch(n){this.error_$.set(n instanceof Error?n.message:"Statisztik\xE1k bet\xF6lt\xE9se sikertelen.")}})}loadRequirementCodes(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getRequirementCodes({projectId:e}));this.requirementCodes_$.set(n.items)}catch(n){this.error_$.set(n instanceof Error?n.message:"Requirement k\xF3dok bet\xF6lt\xE9se sikertelen.")}})}loadModules(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.getModules({projectId:e}));this.availableModules_$.set(n.modules)}catch(n){this.error_$.set(n instanceof Error?n.message:"Modul lista bet\xF6lt\xE9se sikertelen.")}})}toggleFileTree(){let e=!this.isFileTreeOpen_$();this.isFileTreeOpen_$.set(e),T.savePanelOpen("fileTree",e)}toggleInfoPanel(){let e=!this.isInfoPanelOpen_$();this.isInfoPanelOpen_$.set(e),T.savePanelOpen("infoPanel",e)}toggleSearchPanel(){this.isSearchPanelOpen_$.set(!this.isSearchPanelOpen_$())}loadEmbeddingStatus(){return I(this,null,function*(){let e=this.selectedProjectId_$(),n=this.selectedRegistryEntryId_$();if(!(!e||!n))try{let r=yield F(this.ps_AS.getEmbeddingStatus({projectId:e,registryEntryId:n}));this.embeddingStatus_$.set(r)}catch(r){this.error_$.set(r instanceof Error?r.message:"Embedding st\xE1tusz bet\xF6lt\xE9se sikertelen.")}})}startEmbedding(){return I(this,null,function*(){let e=this.selectedProjectId_$(),n=this.selectedRegistryEntryId_$();if(!(!e||!n)){this.isEmbedding_$.set(!0),this.error_$.set(null);try{yield F(this.ps_AS.startEmbedding({projectId:e,registryEntryId:n})),this.startEmbeddingPolling()}catch(r){this.error_$.set(r instanceof Error?r.message:"Embedding ind\xEDt\xE1s sikertelen."),this.isEmbedding_$.set(!1)}}})}search(e){return I(this,null,function*(){let n=this.selectedProjectId_$(),r=this.selectedRegistryEntryId_$();if(!(!n||!r||!e.query.trim())){this.isSearching_$.set(!0),this.error_$.set(null);try{let d=yield F(this.ps_AS.search({projectId:n,registryEntryId:r,query:e.query,metric:this.searchMetric_$()}));this.searchResults_$.set(d.results)}catch(d){this.error_$.set(d instanceof Error?d.message:"Keres\xE9s sikertelen.")}finally{this.isSearching_$.set(!1)}}})}navigateToSearchResult(e){let n=this.files_$().find(r=>r.relativePath===e.result.file.relativePath);n&&(this.openFileInTab({file:n}),this.isSearchPanelOpen_$.set(!1))}loadRelationsForFile(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n)try{let r=yield F(this.ps_AS.getRelationsForFile({projectId:n,fileId:e.fileId}));this.relations_$.set([...r.outgoing,...r.incoming])}catch{}})}loadRunFlows(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.listRunFlows({projectId:e}));this.runFlows_$.set(n.items)}catch{}})}loadDataFlows(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.listDataFlows({projectId:e}));this.dataFlows_$.set(n.items)}catch{}})}loadDescriptions(){return I(this,null,function*(){let e=this.selectedProjectId_$();if(e)try{let n=yield F(this.ps_AS.listDescriptions({projectId:e}));this.descriptions_$.set(n.items)}catch{}})}updateDescription(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n)try{yield F(this.ps_AS.updateDescription({projectId:n,descId:e.descId,description:e.description})),yield this.loadDescriptions()}catch(r){this.error_$.set(r instanceof Error?r.message:"Description friss\xEDt\xE9s sikertelen.")}})}embeddingPollTimer=null;startEmbeddingPolling(){this.stopEmbeddingPolling(),this.embeddingPollTimer=setInterval(()=>{this.loadEmbeddingStatus().then(()=>{this.embeddingStatus_$()?.pending===0&&(this.isEmbedding_$.set(!1),this.stopEmbeddingPolling())})},3e3)}stopEmbeddingPolling(){this.embeddingPollTimer&&(clearInterval(this.embeddingPollTimer),this.embeddingPollTimer=null)}loadFileForTab(e){return I(this,null,function*(){let n=this.selectedProjectId_$();if(n){this.updateTabLoading({fileId:e.fileId,isLoading:!0});try{let r=yield F(this.ps_AS.getFileDetail({projectId:n,fileId:e.fileId}));this.tabFileCache.set(e.fileId,{file:r.file,chunks:r.chunks}),this.activeTabId_$()===e.fileId&&(this.selectedFile_$.set(r.file),this.selectedFileChunks_$.set(r.chunks),this.loadRelationsForFile({fileId:e.fileId}))}catch(r){this.error_$.set(r instanceof Error?r.message:"F\xE1jl detail bet\xF6lt\xE9se sikertelen.")}finally{this.updateTabLoading({fileId:e.fileId,isLoading:!1})}}})}updateTabLoading(e){this.openTabs_$.update(n=>n.map(r=>r.fileId===e.fileId?K(J({},r),{isLoading:e.isLoading}):r))}persistTabs(){let e=this.openTabs_$().map(r=>r.fileId);T.saveOpenTabIds(e);let n=this.activeTabId_$();n&&T.saveActiveTabId(n)}startStatusPolling(){this.stopStatusPolling(),this.statusPollTimer=setInterval(()=>{this.loadIngestionStatus()},3e3)}stopStatusPolling(){this.statusPollTimer&&(clearInterval(this.statusPollTimer),this.statusPollTimer=null)}restoreFromStorage(){this.isFileTreeOpen_$.set(T.loadPanelOpen("fileTree",!0)),this.isInfoPanelOpen_$.set(T.loadPanelOpen("infoPanel",!0));let e=T.loadExpandedFolders();e.length>0&&this.expandedFolders_$.set(new Set(e))}ngOnDestroy(){this.stopStatusPolling(),this.stopEmbeddingPolling()}static \u0275fac=function(n){return new(n||t)};static \u0275prov=Y({token:t,factory:t.\u0275fac})}return t})();var je=(t,a)=>a.id;function Me(t,a){if(t&1&&(i(0,"option",14),s(1),o()),t&2){let e=a.$implicit;C("value",e.id),l(),h(e.name)}}function Re(t,a){if(t&1){let e=M();i(0,"select",12),S("change",function(r){D(e);let d=p();return w(d.handleProjectChange(r.target.value))}),i(1,"option",13),s(2,"Select project..."),o(),b(3,Me,2,2,"option",14,je),o()}if(t&2){let e,n=p();C("value",(e=n.ps_DS.selectedProjectId_$())!==null&&e!==void 0?e:""),l(3),P(n.ps_DS.projects_$())}}function Ae(t,a){t&1&&(m(0,"span",18),s(1," Ingesting... "))}function Ne(t,a){t&1&&(s(0," Ingest "),E(),i(1,"svg",16),m(2,"polyline",3),o())}function Ve(t,a){if(t&1){let e=M();i(0,"div",17)(1,"button",19),S("click",function(){D(e);let r=p(2);return w(r.handleStartIngestion("full"))}),s(2," Full ingestion "),o(),i(3,"button",19),S("click",function(){D(e);let r=p(2);return w(r.handleStartIngestion("incremental"))}),s(4," Incremental "),o()()}}function Oe(t,a){if(t&1){let e=M();i(0,"div",6)(1,"button",15),S("click",function(){D(e);let r=p();return w(r.handleToggleIngestMenu())}),_(2,Ae,2,0)(3,Ne,3,0,":svg:svg",16),o(),_(4,Ve,5,0,"div",17),o()}if(t&2){let e=p();l(),O("opacity-50",e.ps_DS.isIngesting_$()),C("disabled",e.ps_DS.isIngesting_$()),l(),c(e.ps_DS.isIngesting_$()?2:3),l(2),c(e.isIngestMenuOpen_$()&&!e.ps_DS.isIngesting_$()?4:-1)}}function Ue(t,a){if(t&1&&(i(0,"span",8),s(1),o()),t&2){let e=a;C("title",e.relativePath),l(),x(" ",e.relativePath," ")}}function Be(t,a){t&1&&(i(0,"span",9),s(1,"No file selected"),o())}function Le(t,a){t&1&&(i(0,"span",9),s(1,"Select a project to begin"),o())}function Ge(t,a){if(t&1&&(i(0,"span",20),s(1),o(),i(2,"span",21),s(3,"|"),o(),i(4,"span",20),s(5),o(),m(6,"span",4)),t&2){let e=a;l(),x(" ",e.totalFiles," files "),l(4),x(" ",e.totalChunks," chunks ")}}var Se=(()=>{class t{ps_DS=v(g);isIngestMenuOpen_$=u(!1);handleProjectChange(e){e&&this.ps_DS.selectProject({projectId:e})}handleStartIngestion(e){this.isIngestMenuOpen_$.set(!1),this.ps_DS.startIngestion({mode:e})}handleToggleIngestMenu(){this.isIngestMenuOpen_$.update(e=>!e)}handleToggleFileTree(){this.ps_DS.toggleFileTree()}handleToggleSearchPanel(){this.ps_DS.toggleSearchPanel()}handleToggleInfoPanel(){this.ps_DS.toggleInfoPanel()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-ide-toolbar"]],hostAttrs:[1,"block","shrink-0"],decls:19,vars:12,consts:[["sSessionToolbarLeft","",1,"flex","items-center","gap-1","min-w-0"],[1,"px-2","py-1","text-xs","border","border-neonDefault","text-neutral-300","hover:bg-neutral-700","rounded","transition-colors","flex","items-center","gap-1","shrink-0",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"w-px","h-4","bg-neutral-700","shrink-0","self-center","mx-0.5"],[1,"bg-ccapBg","border","border-neonDefault","text-neutral-300","text-xs","rounded","px-2","py-1","max-w-[180px]","truncate","focus:outline-none","focus:border-neonCyan",3,"value"],[1,"relative","shrink-0"],["sSessionToolbarCenter","",1,"flex","items-center","justify-center","gap-2","min-w-0"],[1,"text-xs","text-neutral-500","truncate","max-w-[400px]",3,"title"],[1,"text-xs","text-neutral-500"],["sSessionToolbarRight","",1,"flex","items-center","gap-1","min-w-0","flex-wrap","justify-end"],[1,"px-2","py-1","text-xs","border","rounded","transition-colors","shrink-0",3,"click"],[1,"bg-ccapBg","border","border-neonDefault","text-neutral-300","text-xs","rounded","px-2","py-1","max-w-[180px]","truncate","focus:outline-none","focus:border-neonCyan",3,"change","value"],["value","","disabled",""],[3,"value"],[1,"px-2","py-1","text-xs","border","border-neonDefault","text-neutral-300","hover:bg-neutral-700","rounded","transition-colors","flex","items-center","gap-1",3,"click","disabled"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"w-3","h-3"],[1,"absolute","top-full","left-0","mt-1","bg-ccapSurface","border","border-neonDefault","rounded","shadow-lg","z-20","min-w-[140px]"],[1,"w-2","h-2","rounded-full","bg-neonCyan","animate-pulse","shrink-0"],[1,"block","w-full","text-left","px-3","py-1.5","text-xs","text-neutral-300","hover:bg-neonCyan/10","hover:text-neonCyan","transition-colors",3,"click"],[1,"text-[10px]","text-neutral-500","shrink-0"],[1,"text-[10px]","text-neutral-600","shrink-0"]],template:function(n,r){if(n&1&&(i(0,"app-s-session-shell-toolbar")(1,"div",0)(2,"button",1),S("click",function(){return r.handleToggleFileTree()}),E(),i(3,"svg",2),m(4,"polyline",3),o(),s(5," Files "),o(),j(),m(6,"div",4),_(7,Re,5,1,"select",5)(8,Oe,5,5,"div",6),o(),i(9,"div",7),_(10,Ue,2,2,"span",8)(11,Be,2,0,"span",9)(12,Le,2,0,"span",9),o(),i(13,"div",10),_(14,Ge,7,2),i(15,"button",11),S("click",function(){return r.handleToggleSearchPanel()}),s(16," Search "),o(),i(17,"button",11),S("click",function(){return r.handleToggleInfoPanel()}),s(18," Info "),o()()()),n&2){let d,f;l(3),O("rotate-90",r.ps_DS.isFileTreeOpen_$())("-rotate-90",!r.ps_DS.isFileTreeOpen_$()),l(4),c(r.ps_DS.isEmbedded_$()?-1:7),l(),c(r.ps_DS.selectedProjectId_$()?8:-1),l(2),c((d=r.ps_DS.selectedFile_$())?10:r.ps_DS.selectedProjectId_$()?11:12,d),l(4),c((f=r.ps_DS.stats_$())?14:-1,f),l(),k(r.ps_DS.isSearchPanelOpen_$()?"border-neonGreen/50 text-neonGreen bg-neonGreen/10":"border-neutral-700 text-neutral-500 hover:text-neutral-300 hover:border-neutral-600"),l(2),k(r.ps_DS.isInfoPanelOpen_$()?"border-neonCyan/50 text-neonCyan bg-neonCyan/10":"border-neutral-700 text-neutral-500 hover:text-neutral-300 hover:border-neutral-600")}},dependencies:[B,L,me],encapsulation:2})}return t})();var We=(t,a)=>a.path;function ze(t,a){if(t&1&&m(0,"app-ps-file-tree-node",6),t&2){let e=a.$implicit,n=p(3);C("node",e)("depth",n.depth+1)}}function He(t,a){if(t&1&&b(0,ze,1,2,"app-ps-file-tree-node",6,We),t&2){let e=p(2);P(e.node.children)}}function Xe(t,a){if(t&1){let e=M();i(0,"button",1),S("click",function(){D(e);let r=p();return w(r.handleFolderToggle())}),E(),i(1,"svg",2),m(2,"polyline",3),o(),j(),i(3,"span",4),s(4),o(),i(5,"span",5),s(6),o()(),_(7,He,2,0)}if(t&2){let e=p();H("padding-left",e.depth*16+4,"px"),l(),O("rotate-90",e.isExpanded),l(3),h(e.node.name),l(2),x(" ",e.node.fileCount," "),l(),c(e.isExpanded?7:-1)}}function Qe(t,a){if(t&1&&(i(0,"span",9),s(1),o()),t&2){let e=p(2);l(),h(e.node.file.chunkCount)}}function Je(t,a){if(t&1){let e=M();i(0,"button",7),S("click",function(){D(e);let r=p();return w(r.handleFileClick())}),m(1,"span",8),i(2,"span",4),s(3),o(),_(4,Qe,2,1,"span",9),o()}if(t&2){let e=p();k(e.isActiveFile?"border-l-2 border-neonCyan bg-neonCyan/5 text-neonCyan":"text-neutral-400 hover:bg-neonCyan/5 hover:text-neutral-300 border-l-2 border-transparent"),H("padding-left",e.depth*16+20,"px"),l(),k((e.node.file==null?null:e.node.file.sourceType)==="code"?"bg-neonCyan/60":(e.node.file==null?null:e.node.file.sourceType)==="rule"?"bg-neonAmber/60":"bg-neonGreen/60"),l(2),h(e.node.name),l(),c(e.node.file&&e.node.file.chunkCount?4:-1)}}var Ce=(()=>{class t{node;depth;ps_DS=v(g);handleFolderToggle(){this.ps_DS.toggleFolder({folderPath:this.node.path})}handleFileClick(){this.node.file&&this.ps_DS.openFileInTab({file:this.node.file})}get isExpanded(){return this.ps_DS.expandedFolders_$().has(this.node.path)}get isActiveFile(){return!this.node.isFolder&&!!this.node.file&&this.ps_DS.activeTabId_$()===this.node.file.id}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-file-tree-node"]],hostAttrs:[1,"block"],inputs:{node:"node",depth:"depth"},decls:2,vars:1,consts:[[1,"flex","items-center","w-full","text-left","py-0.5","pr-2","text-xs","transition-colors",3,"padding-left","class"],[1,"flex","items-center","w-full","text-left","py-0.5","pr-2","text-xs","text-neutral-400","hover:bg-neonCyan/5","hover:text-neutral-300","transition-colors","group",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","mr-1","shrink-0","transition-transform","duration-100"],["points","9 18 15 12 9 6"],[1,"truncate"],[1,"ml-auto","text-[10px]","text-neutral-600","group-hover:text-neutral-500","shrink-0"],[3,"node","depth"],[1,"flex","items-center","w-full","text-left","py-0.5","pr-2","text-xs","transition-colors",3,"click"],[1,"w-2","h-2","rounded-full","mr-1.5","shrink-0"],[1,"ml-auto","text-[10px]","text-neutral-600","shrink-0"]],template:function(n,r){n&1&&_(0,Xe,8,7)(1,Je,5,8,"button",0),n&2&&c(r.node.isFolder?0:1)},dependencies:[t],encapsulation:2})}return t})();var Ye=(t,a)=>a.path;function Ze(t,a){t&1&&(i(0,"div",3),s(1," Loading... "),o())}function et(t,a){t&1&&(i(0,"div",4),s(1," No files found "),o())}function tt(t,a){if(t&1&&m(0,"app-ps-file-tree-node",17),t&2){let e=a.$implicit;C("node",e)("depth",0)}}function nt(t,a){if(t&1&&b(0,tt,1,2,"app-ps-file-tree-node",17,Ye),t&2){let e=p();P(e.filteredTree_$())}}function it(t,a){if(t&1&&(i(0,"option",18),s(1),o()),t&2){let e=a.$implicit;C("value",e),l(),h(e)}}function ot(t,a){if(t&1){let e=M();i(0,"select",6),S("change",function(r){D(e);let d=p();return w(d.handleModuleChange(r.target.value))}),i(1,"option",7),s(2,"All modules"),o(),b(3,it,2,2,"option",18,U),o()}if(t&2){let e=p();C("value",e.ps_DS.filterModule_$()),l(3),P(e.ps_DS.availableModules_$())}}var ve=(()=>{class t{ps_DS=v(g);filteredTree_$=Z(()=>{let e=this.ps_DS.treeSearchQuery_$(),n=this.ps_DS.fileTree_$();return e.trim()?G.filterTreeBySearch({nodes:n,query:e}):n});handleSearchChange(e){this.ps_DS.treeSearchQuery_$.set(e)}handleSourceTypeChange(e){this.ps_DS.filterSourceType_$.set(e),this.ps_DS.loadFilesAndBuildTree()}handleProjectPartChange(e){this.ps_DS.filterProjectPart_$.set(e),this.ps_DS.loadFilesAndBuildTree()}handleModuleChange(e){this.ps_DS.filterModule_$.set(e),this.ps_DS.loadFilesAndBuildTree()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-file-tree"]],hostAttrs:[1,"flex","flex-col","h-full","overflow-hidden"],decls:30,vars:5,consts:[[1,"shrink-0","p-2","border-b","border-neonDefault/30"],["type","text","placeholder","Search files...",1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-1","text-xs","text-neutral-300","placeholder-neutral-600","focus:outline-none","focus:border-neonCyan/60",3,"input","value"],[1,"flex-1","overflow-y-auto","overflow-x-hidden","min-h-0","py-1"],[1,"flex","items-center","justify-center","py-8","text-neutral-500","text-xs"],[1,"flex","items-center","justify-center","py-8","text-neutral-600","text-xs"],[1,"shrink-0","border-t","border-neonDefault/30","p-2","space-y-1"],[1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400","focus:outline-none","focus:border-neonCyan/60",3,"change","value"],["value",""],["value","code"],["value","document"],["value","rule"],["value","server"],["value","client"],["value","cli"],["value","e2e"],["value","shared"],[1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400","focus:outline-none","focus:border-neonCyan/60",3,"value"],[3,"node","depth"],[3,"value"]],template:function(n,r){n&1&&(i(0,"div",0)(1,"input",1),S("input",function(f){return r.handleSearchChange(f.target.value)}),o()(),i(2,"div",2),_(3,Ze,2,0,"div",3)(4,et,2,0,"div",4)(5,nt,2,0),o(),i(6,"div",5)(7,"select",6),S("change",function(f){return r.handleSourceTypeChange(f.target.value)}),i(8,"option",7),s(9,"All types"),o(),i(10,"option",8),s(11,"Code"),o(),i(12,"option",9),s(13,"Document"),o(),i(14,"option",10),s(15,"Rule"),o()(),i(16,"select",6),S("change",function(f){return r.handleProjectPartChange(f.target.value)}),i(17,"option",7),s(18,"All parts"),o(),i(19,"option",11),s(20,"Server"),o(),i(21,"option",12),s(22,"Client"),o(),i(23,"option",13),s(24,"CLI"),o(),i(25,"option",14),s(26,"E2E"),o(),i(27,"option",15),s(28,"Shared"),o()(),_(29,ot,5,1,"select",16),o()),n&2&&(l(),C("value",r.ps_DS.treeSearchQuery_$()),l(2),c(r.ps_DS.isLoading_$()?3:r.filteredTree_$().length?5:4),l(4),C("value",r.ps_DS.filterSourceType_$()),l(9),C("value",r.ps_DS.filterProjectPart_$()),l(13),c(r.ps_DS.availableModules_$().length?29:-1))},dependencies:[B,L,Ce],encapsulation:2})}return t})();var lt=(t,a)=>a.fileId;function at(t,a){t&1&&m(0,"span",3)}function st(t,a){if(t&1){let e=M();i(0,"button",2),S("click",function(){let r=D(e).$implicit,d=p(2);return w(d.handleTabClick(r))}),_(1,at,1,0,"span",3),i(2,"span",4),s(3),o(),i(4,"span",5),S("click",function(r){let d=D(e).$implicit,f=p(2);return w(f.handleTabClose(r,d))}),E(),i(5,"svg",6),m(6,"line",7)(7,"line",8),o()()()}if(t&2){let e=a.$implicit,n=p(2);k(n.ps_DS.activeTabId_$()===e.fileId?"border-b-2 border-b-neonCyan text-neonCyan bg-neonCyan/5":"text-neutral-400 hover:text-neutral-300 hover:bg-neutral-800 border-b-2 border-b-transparent"),l(),c(e.isLoading?1:-1),l(2),h(e.fileName)}}function dt(t,a){if(t&1&&(i(0,"div",0),b(1,st,8,4,"button",1,lt),o()),t&2){let e=p();l(),P(e.ps_DS.openTabs_$())}}var ge=(()=>{class t{ps_DS=v(g);handleTabClick(e){this.ps_DS.setActiveTab({fileId:e.fileId})}handleTabClose(e,n){e.stopPropagation(),this.ps_DS.closeTab({fileId:n.fileId})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-tab-bar"]],hostAttrs:[1,"block","shrink-0"],decls:1,vars:1,consts:[[1,"flex","items-stretch","overflow-x-auto","border-b","border-neonDefault/30","bg-ccapBg","scrollbar-thin","scrollbar-thumb-neutral-700"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","whitespace-nowrap","border-r","border-neonDefault/20","transition-colors","shrink-0","max-w-[200px]","group",3,"class"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","whitespace-nowrap","border-r","border-neonDefault/20","transition-colors","shrink-0","max-w-[200px]","group",3,"click"],[1,"w-2","h-2","rounded-full","bg-neonCyan","animate-pulse","shrink-0"],[1,"truncate"],[1,"ml-1","w-4","h-4","flex","items-center","justify-center","rounded","hover:bg-neutral-600","text-neutral-500","hover:text-neutral-200","opacity-0","group-hover:opacity-100","transition-opacity","shrink-0",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.5",1,"w-2.5","h-2.5"],["x1","18","y1","6","x2","6","y2","18"],["x1","6","y1","6","x2","18","y2","18"]],template:function(n,r){n&1&&_(0,dt,3,0,"div",0),n&2&&c(r.ps_DS.openTabs_$().length?0:-1)},encapsulation:2})}return t})();var pt=(t,a)=>a.id;function _t(t,a){t&1&&(i(0,"div",1),E(),i(1,"svg",4),m(2,"path",5)(3,"polyline",6),o(),j(),i(4,"span",7),s(5,"Open a file from the tree"),o()())}function mt(t,a){t&1&&(i(0,"div",2),s(1," No chunks available for this file "),o())}function ut(t,a){if(t&1&&m(0,"span",12),t&2){let e=p().$implicit;C("title","Embedded: "+e.dimensions+"d, "+e.embeddingTimeMs+"ms")}}function ft(t,a){t&1&&m(0,"span",13)}function ht(t,a){t&1&&m(0,"span",14)}function xt(t,a){if(t&1&&(i(0,"span",15),s(1),o()),t&2){let e=p().$implicit;l(),V(" L",e.lineStart,"-",e.lineEnd," ")}}function St(t,a){if(t&1&&(i(0,"span",17),s(1),o()),t&2){let e=p().$implicit;l(),x(" ",e.chunkType," ")}}function Ct(t,a){if(t&1&&(i(0,"span",18),s(1),o()),t&2){let e=p().$implicit;C("title",e.headerPath),l(),x(" ",e.headerPath," ")}}function vt(t,a){if(t&1&&(i(0,"span",20),s(1),o()),t&2){let e=a.$implicit;l(),x(" ",e," ")}}function gt(t,a){if(t&1&&b(0,vt,2,1,"span",20,U),t&2){let e=p().$implicit;P(e.requirementCodes)}}function It(t,a){if(t&1){let e=M();i(0,"div",9),S("click",function(){let r=D(e).$implicit,d=p(2);return w(d.handleChunkClick(r))}),i(1,"div",10)(2,"span",11),s(3),o(),_(4,ut,1,1,"span",12)(5,ft,1,0,"span",13)(6,ht,1,0,"span",14)(7,xt,2,2,"span",15),i(8,"span",16),s(9),o(),_(10,St,2,1,"span",17)(11,Ct,2,2,"span",18)(12,gt,2,0),o(),i(13,"pre",19),s(14),o()()}if(t&2){let e=a.$implicit,n=p(2);k(n.ps_DS.selectedChunkIndex_$()===e.chunkIndex?"ring-1 ring-neonCyan/40 bg-neonCyan/3 border-neonCyan/30":"border-neonDefault/20 hover:border-neonDefault/40 bg-ccapSurface"),l(3),x(" #",e.chunkIndex," "),l(),c(e.embeddingStatus==="completed"?4:e.embeddingStatus==="error"?5:6),l(3),c(e.lineStart!==void 0&&e.lineEnd!==void 0?7:-1),l(2),V(" C",e.charStart,"-",e.charEnd," "),l(),c(e.chunkType?10:-1),l(),c(e.headerPath?11:-1),l(),c(e.requirementCodes.length?12:-1),l(2),h(e.text)}}function bt(t,a){if(t&1&&(i(0,"div",3),b(1,It,15,11,"div",8,pt),o()),t&2){let e=p();l(),P(e.ps_DS.selectedFileChunks_$())}}var Ie=(()=>{class t{ps_DS=v(g);handleChunkClick(e){this.ps_DS.selectChunk({chunkIndex:e.chunkIndex})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-chunk-viewer"]],hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],decls:4,vars:1,consts:[[1,"flex-1","overflow-y-auto","min-h-0","p-3"],[1,"flex","flex-col","items-center","justify-center","h-full","text-neutral-600"],[1,"flex","items-center","justify-center","h-full","text-neutral-600","text-sm"],[1,"space-y-2"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1",1,"w-12","h-12","mb-3","text-neutral-700"],["d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"],["points","13 2 13 9 20 9"],[1,"text-sm"],[1,"rounded","border","transition-all","cursor-pointer",3,"class"],[1,"rounded","border","transition-all","cursor-pointer",3,"click"],[1,"flex","items-center","gap-2","px-3","py-1.5","border-b","border-neonDefault/10"],[1,"text-[10px]","font-mono","text-neutral-500"],[1,"w-2","h-2","rounded-full","bg-neonGreen","shrink-0",3,"title"],["title","Embedding error",1,"w-2","h-2","rounded-full","bg-red-400","shrink-0"],["title","Not embedded",1,"w-2","h-2","rounded-full","bg-neutral-600","shrink-0"],[1,"text-[10px]","text-neutral-600"],[1,"text-[10px]","text-neutral-600","font-mono"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonCyan/10","text-neonCyan"],[1,"text-[10px]","text-neutral-500","truncate","max-w-[250px]",3,"title"],[1,"px-3","py-2","text-xs","text-neutral-300","font-mono","whitespace-pre-wrap","break-words","overflow-x-auto","max-h-[400px]","overflow-y-auto","leading-relaxed"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonAmber/10","text-neonAmber"]],template:function(n,r){n&1&&(i(0,"div",0),_(1,_t,6,0,"div",1)(2,mt,2,0,"div",2)(3,bt,3,0,"div",3),o()),n&2&&(l(),c(r.ps_DS.activeTabId_$()?!r.ps_DS.selectedFileChunks_$().length&&!r.ps_DS.isLoading_$()?2:3:1))},encapsulation:2})}return t})();var $t=(t,a)=>a.code,be=(t,a)=>a.id;function yt(t,a){if(t&1&&(i(0,"div",22)(1,"div",13),s(2,"Module"),o(),i(3,"div",20),s(4),o()()),t&2){let e=p();l(4),h(e.moduleName)}}function Et(t,a){if(t&1&&(i(0,"div")(1,"div",13),s(2,"Role"),o(),i(3,"div",20),s(4),o()()),t&2){let e=p();l(4),h(e.fileRole)}}function kt(t,a){if(t&1&&(i(0,"div",25),s(1),o()),t&2){let e=p(2);l(),h(e.errorMessage)}}function Dt(t,a){if(t&1&&(i(0,"div",23)(1,"div",24),s(2,"Error"),o(),_(3,kt,2,1,"div",25),o()),t&2){let e=p();l(3),c(e.errorMessage?3:-1)}}function wt(t,a){if(t&1&&(i(0,"span",28),s(1),o()),t&2){let e=a.$implicit;l(),x(" ",e," ")}}function Ft(t,a){if(t&1&&(i(0,"div",22)(1,"div",26),s(2,"Requirements"),o(),i(3,"div",27),b(4,wt,2,1,"span",28,U),o()()),t&2){let e=p();l(4),P(e.requirementCodes)}}function jt(t,a){if(t&1&&(i(0,"div",13),s(1,"Path"),o(),i(2,"div",17),s(3),o(),i(4,"div",18)(5,"div")(6,"div",13),s(7,"Type"),o(),i(8,"span",19),s(9),o()(),i(10,"div")(11,"div",13),s(12,"Part"),o(),i(13,"div",20),s(14),o()(),i(15,"div")(16,"div",13),s(17,"Extension"),o(),i(18,"div",21),s(19),o()(),i(20,"div")(21,"div",13),s(22,"Lines"),o(),i(23,"div",20),s(24),o()(),i(25,"div")(26,"div",13),s(27,"Size"),o(),i(28,"div",20),s(29),o()(),i(30,"div")(31,"div",13),s(32,"Chunks"),o(),i(33,"div",20),s(34),o()()(),_(35,yt,5,1,"div",22)(36,Et,5,1,"div")(37,Dt,4,1,"div",23)(38,Ft,6,0,"div",22)),t&2){let e=a;l(3),h(e.relativePath),l(5),k(e.sourceType==="code"?"bg-neonCyan/10 text-neonCyan":e.sourceType==="rule"?"bg-neonAmber/10 text-neonAmber":"bg-neonGreen/10 text-neonGreen"),l(),x(" ",e.sourceType," "),l(5),h(e.projectPart),l(5),h(e.fileExtension),l(5),h(e.lineCount),l(5),x("",e.fileSizeBytes," B"),l(5),h(e.chunkCount),l(),c(e.moduleName?35:-1),l(),c(e.fileRole?36:-1),l(),c(e.status==="error"?37:-1),l(),c(e.requirementCodes.length?38:-1)}}function Mt(t,a){t&1&&(i(0,"div",6),s(1,"No file selected"),o())}function Rt(t,a){if(t&1&&(i(0,"span",8),s(1),o()),t&2){let e=p();l(),x(" ",e.ps_DS.requirementCodes_$().length," ")}}function At(t,a){t&1&&(i(0,"div",6),s(1,"No requirement codes"),o())}function Nt(t,a){if(t&1&&(i(0,"div",29)(1,"span",30),s(2),o(),i(3,"span",31),s(4),o()()),t&2){let e=a.$implicit;l(2),x(" ",e.code," "),l(2),V(" ",e.fileCount,"f / ",e.chunkCount,"c ")}}function Vt(t,a){if(t&1&&b(0,Nt,5,3,"div",29,$t),t&2){let e=p();P(e.ps_DS.requirementCodes_$())}}function Ot(t,a){if(t&1&&(i(0,"span",35),s(1),o()),t&2){let e=p().$implicit;l(),h(e.externalPackage)}}function Ut(t,a){if(t&1&&(i(0,"span",36),s(1),o()),t&2){let e,n,r=p().$implicit;C("title",(e=r.targetFilePath)!==null&&e!==void 0?e:""),l(),x(" ",(n=r.targetSymbol)!==null&&n!==void 0?n:r.targetFilePath," ")}}function Bt(t,a){if(t&1&&(i(0,"div",33)(1,"span",34),s(2),o(),_(3,Ot,2,1,"span",35)(4,Ut,2,2,"span",36),o()),t&2){let e=a.$implicit;l(),k(e.relationType==="import"?"bg-blue-900/50 text-blue-300":e.relationType==="injection"?"bg-purple-900/50 text-purple-300":e.relationType==="inheritance"?"bg-orange-900/50 text-orange-300":"bg-neutral-700 text-neutral-300"),l(),x(" ",e.relationType," "),l(),c(e.isExternalTarget?3:4)}}function Lt(t,a){if(t&1&&(i(0,"details",7)(1,"summary",2),E(),i(2,"svg",3),m(3,"polyline",4),o(),s(4," Relations "),j(),i(5,"span",8),s(6),o()(),i(7,"div",32),b(8,Bt,5,4,"div",33,be),o()()),t&2){let e=p();l(6),x(" ",e.ps_DS.relations_$().length," "),l(2),P(e.ps_DS.relations_$())}}function Gt(t,a){t&1&&m(0,"span",10)}function qt(t,a){if(t&1&&(i(0,"div")(1,"div",13),s(2,"Duration"),o(),i(3,"div",20),s(4),X(5,"number"),o()()),t&2){let e=p();l(4),x(" ",Q(5,1,e.durationMs/1e3,"1.0-1"),"s ")}}function Wt(t,a){if(t&1&&(i(0,"span",42),s(1),o()),t&2){let e=p();l(),x("err:",e.filesErrored,"")}}function zt(t,a){if(t&1&&(i(0,"div",43),s(1),o()),t&2){let e=p();l(),h(e.errorMessage)}}function Ht(t,a){if(t&1&&(i(0,"pre",44),s(1),o()),t&2){let e=p();l(),h(e.errorDetails)}}function Xt(t,a){if(t&1&&(i(0,"div",37)(1,"div")(2,"div",13),s(3,"Status"),o(),i(4,"div",38),s(5),o()(),i(6,"div")(7,"div",13),s(8,"Mode"),o(),i(9,"div",20),s(10),o()(),_(11,qt,6,4,"div"),i(12,"div")(13,"div",13),s(14,"Scanned"),o(),i(15,"div",20),s(16),o()()(),i(17,"div",39)(18,"span",40),s(19),o(),i(20,"span",41),s(21),o(),i(22,"span",42),s(23),o(),i(24,"span",13),s(25),o(),_(26,Wt,2,1,"span",42),o(),_(27,zt,2,1,"div",43)(28,Ht,2,1,"pre",44)),t&2){let e=a;l(4),k(e.status==="completed"?"text-neonGreen":e.status==="running"?"text-neonCyan":e.status==="failed"?"text-red-400":"text-neutral-400"),l(),x(" ",e.status," "),l(5),h(e.mode),l(),c(e.durationMs?11:-1),l(5),h(e.totalFilesScanned),l(3),x("+",e.filesNew,""),l(2),x("~",e.filesChanged,""),l(2),x("-",e.filesDeleted,""),l(2),x("=",e.filesUnchanged,""),l(),c(e.filesErrored?26:-1),l(),c(e.errorMessage?27:-1),l(),c(e.errorDetails?28:-1)}}function Qt(t,a){t&1&&(i(0,"div",6),s(1,"No ingestion runs"),o())}function Jt(t,a){t&1&&m(0,"span",11)}function Kt(t,a){if(t&1&&(i(0,"div",45),m(1,"div",46),o(),i(2,"div",13),s(3),X(4,"number"),o(),i(5,"div",47)(6,"div",48)(7,"div",49),s(8),o(),i(9,"div",35),s(10,"Total"),o()(),i(11,"div",48)(12,"div",50),s(13),o(),i(14,"div",35),s(15,"Done"),o()(),i(16,"div",48)(17,"div",51),s(18),o(),i(19,"div",35),s(20,"Pending"),o()(),i(21,"div",48)(22,"div",52),s(23),o(),i(24,"div",35),s(25,"Error"),o()()()),t&2){let e=a;l(),H("width",e.total>0?e.completed/e.total*100:0,"%"),l(2),le(" ",e.completed,"/",e.total," embedded (",e.total>0?Q(4,9,e.completed/e.total*100,"1.0-0"):0,"%) "),l(5),h(e.total),l(5),h(e.completed),l(5),h(e.pending),l(5),h(e.error)}}function Yt(t,a){t&1&&(i(0,"div",13),s(1,"No embedding status"),o())}function Zt(t,a){t&1&&(i(0,"span",16),m(1,"span",53),s(2," Embedding... "),o())}function en(t,a){t&1&&s(0," Embed Now ")}function tn(t,a){if(t&1&&(i(0,"div",58),s(1),o()),t&2){let e=p().$implicit;l(),h(e.description)}}function nn(t,a){t&1&&(i(0,"div",59),s(1,"No description"),o())}function on(t,a){if(t&1&&(i(0,"div",54)(1,"div",55)(2,"span",56),s(3),o(),i(4,"span",57),s(5),o()(),_(6,tn,2,1,"div",58)(7,nn,2,0,"div",59),o()),t&2){let e=a.$implicit;l(3),x(" ",e.elementType," "),l(2),h(e.displayName),l(),c(e.description?6:7)}}function rn(t,a){if(t&1&&(i(0,"details",7)(1,"summary",2),E(),i(2,"svg",3),m(3,"polyline",4),o(),s(4," Descriptions "),j(),i(5,"span",8),s(6),o()(),i(7,"div",32),b(8,on,8,3,"div",54,be),o()()),t&2){let e=p();l(6),x(" ",e.ps_DS.descriptions_$().length," "),l(2),P(e.ps_DS.descriptions_$())}}var Pe=(()=>{class t{ps_DS=v(g);handleStartEmbedding(){this.ps_DS.startEmbedding()}handleLoadEmbeddingStatus(){this.ps_DS.loadEmbeddingStatus()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-info-panel"]],hostAttrs:[1,"flex","flex-col","h-full","overflow-hidden"],decls:42,vars:14,consts:[[1,"flex-1","overflow-y-auto","min-h-0","p-2","space-y-2"],["open","",1,"group"],[1,"flex","items-center","gap-1","cursor-pointer","text-xs","font-semibold","text-neutral-300","py-1.5","px-2","rounded","hover:bg-neonCyan/5","transition-colors","select-none","border","border-neonDefault/20"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-100","group-open:rotate-90","text-neutral-500"],["points","9 18 15 12 9 6"],[1,"mt-1","px-2","pb-1","space-y-1"],[1,"text-xs","text-neutral-600","py-2"],[1,"group"],[1,"ml-auto","text-[10px]","text-neutral-500"],[1,"mt-1","px-2","pb-1","space-y-1","max-h-[240px]","overflow-y-auto"],[1,"ml-1","w-2","h-2","rounded-full","bg-neonCyan","animate-pulse","shrink-0"],[1,"ml-1","w-2","h-2","rounded-full","bg-neonGreen","animate-pulse","shrink-0"],[1,"mt-1","px-2","pb-1","space-y-2"],[1,"text-[10px]","text-neutral-500"],["type","text","placeholder","Embedding Registry Entry ID","title","Paste the registry entry ID from Embedding Model Registry",1,"w-full","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400","focus:outline-none","focus:border-neonCyan/60",3,"change","value"],[1,"w-full","px-2","py-1","text-[10px]","border","rounded","transition-colors",3,"click","disabled"],[1,"inline-flex","items-center","gap-1"],[1,"text-xs","text-neutral-300","break-all","font-mono"],[1,"grid","grid-cols-2","gap-x-2","gap-y-1","mt-1"],[1,"text-xs","px-1.5","py-0.5","rounded-full","inline-block"],[1,"text-xs","text-neutral-300"],[1,"text-xs","text-neutral-300","font-mono"],[1,"mt-1"],[1,"mt-2","text-[10px]","text-red-400","bg-red-900/20","rounded","p-1.5"],[1,"font-bold"],[1,"mt-0.5","break-words"],[1,"text-[10px]","text-neutral-500","mb-0.5"],[1,"flex","flex-wrap","gap-1"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonAmber/10","text-neonAmber"],[1,"flex","items-center","gap-2","py-0.5"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonAmber/10","text-neonAmber","shrink-0","font-mono"],[1,"text-[10px]","text-neutral-500","shrink-0"],[1,"mt-1","px-2","pb-1","space-y-1","max-h-40","overflow-y-auto"],[1,"text-[10px]","flex","items-center","gap-1","py-0.5"],[1,"px-1","py-0.5","rounded","text-[9px]"],[1,"text-neutral-500"],[1,"text-neutral-400","truncate",3,"title"],[1,"grid","grid-cols-2","gap-x-2","gap-y-1"],[1,"text-xs","font-mono"],[1,"flex","flex-wrap","gap-1.5","mt-1"],[1,"text-[10px]","text-neonGreen"],[1,"text-[10px]","text-neonAmber"],[1,"text-[10px]","text-red-400"],[1,"text-[10px]","text-red-400","mt-1","break-words"],[1,"text-[9px]","text-red-300","bg-red-900/10","rounded","p-1","mt-1","max-h-20","overflow-y-auto","whitespace-pre-wrap"],[1,"w-full","bg-neutral-800","rounded-full","h-1.5"],[1,"bg-neonGreen","h-1.5","rounded-full","transition-all"],[1,"grid","grid-cols-4","gap-1","text-center","text-[10px]"],[1,"bg-neutral-800/60","rounded","p-1"],[1,"text-neutral-300","font-mono"],[1,"text-neonGreen","font-mono"],[1,"text-neonAmber","font-mono"],[1,"text-red-400","font-mono"],[1,"w-1.5","h-1.5","rounded-full","bg-neonGreen","animate-pulse"],[1,"text-[10px]","py-1","border-b","border-neonDefault/10"],[1,"flex","items-center","gap-1"],[1,"px-1","py-0.5","rounded","text-[9px]","bg-neonAmber/10","text-neonAmber"],[1,"text-neutral-300","font-medium"],[1,"text-neutral-500","mt-0.5"],[1,"text-neutral-600","italic","mt-0.5"]],template:function(n,r){if(n&1&&(i(0,"div",0)(1,"details",1)(2,"summary",2),E(),i(3,"svg",3),m(4,"polyline",4),o(),s(5," File Info "),o(),j(),i(6,"div",5),_(7,jt,39,13)(8,Mt,2,0,"div",6),o()(),i(9,"details",7)(10,"summary",2),E(),i(11,"svg",3),m(12,"polyline",4),o(),s(13," Requirements "),_(14,Rt,2,1,"span",8),o(),j(),i(15,"div",9),_(16,At,2,0,"div",6)(17,Vt,2,0),o()(),_(18,Lt,10,1,"details",7),i(19,"details",7)(20,"summary",2),E(),i(21,"svg",3),m(22,"polyline",4),o(),s(23," Ingestion "),_(24,Gt,1,0,"span",10),o(),j(),i(25,"div",5),_(26,Xt,29,13)(27,Qt,2,0,"div",6),o()(),i(28,"details",1)(29,"summary",2),E(),i(30,"svg",3),m(31,"polyline",4),o(),s(32," RAG / Embedding "),_(33,Jt,1,0,"span",11),o(),j(),i(34,"div",12),_(35,Kt,26,12)(36,Yt,2,0,"div",13),i(37,"input",14),S("change",function(f){return r.ps_DS.selectedRegistryEntryId_$.set(f.target.value),r.handleLoadEmbeddingStatus()}),o(),i(38,"button",15),S("click",function(){return r.handleStartEmbedding()}),_(39,Zt,3,0,"span",16)(40,en,1,0),o()()(),_(41,rn,10,1,"details",7),o()),n&2){let d,f,$,q;l(7),c((d=r.ps_DS.selectedFile_$())?7:8,d),l(7),c(r.ps_DS.requirementCodes_$().length?14:-1),l(2),c(r.ps_DS.requirementCodes_$().length?17:16),l(2),c(r.ps_DS.relations_$().length>0?18:-1),l(6),c(r.ps_DS.isIngesting_$()?24:-1),l(2),c((f=r.ps_DS.latestRun_$())?26:27,f),l(7),c(r.ps_DS.isEmbedding_$()?33:-1),l(2),c(($=r.ps_DS.embeddingStatus_$())?35:36,$),l(2),C("value",(q=r.ps_DS.selectedRegistryEntryId_$())!==null&&q!==void 0?q:""),l(),k(r.ps_DS.isEmbedding_$()?"border-neonGreen/50 text-neonGreen bg-neonGreen/10 opacity-50":"border-neonGreen/30 text-neonGreen hover:bg-neonGreen/10"),C("disabled",r.ps_DS.isEmbedding_$()||!r.ps_DS.selectedRegistryEntryId_$()),l(),c(r.ps_DS.isEmbedding_$()?39:40),l(2),c(r.ps_DS.descriptions_$().length>0?41:-1)}},dependencies:[ee],encapsulation:2})}return t})();function an(t,a){if(t&1&&(i(0,"span",1),s(1),o()),t&2){let e=p();l(),h(e.selectedProjectName_$())}}function sn(t,a){t&1&&(i(0,"span",1),s(1,"No project"),o())}function dn(t,a){if(t&1&&(i(0,"span",10),s(1),o()),t&2){let e=p(2);l(),x(" Chunk #",e.ps_DS.selectedChunkIndex_$()," ")}}function cn(t,a){if(t&1&&(m(0,"span",2),i(1,"span",9),s(2),o(),i(3,"span",1),s(4),o(),_(5,dn,2,1,"span",10)),t&2){let e=p();l(2),h(a.fileName),l(2),x("",e.ps_DS.selectedFileChunks_$().length," chunks"),l(),c(e.ps_DS.selectedChunkIndex_$()!==null?5:-1)}}function pn(t,a){t&1&&(i(0,"span",4),m(1,"span",11),s(2," Ingesting "),o())}function _n(t,a){t&1&&(i(0,"span",5),m(1,"span",12),s(2," Embedding "),o())}function mn(t,a){if(t&1&&(i(0,"span",6),s(1),o()),t&2){let e=a;l(),V(" ",e.completed,"/",e.total," emb ")}}function un(t,a){if(t&1&&(i(0,"span",7),s(1),o()),t&2){let e,n=p();C("title",(e=n.ps_DS.error_$())!==null&&e!==void 0?e:""),l(),x(" ",n.ps_DS.error_$()," ")}}function fn(t,a){t&1&&(i(0,"span",8),s(1,"Loading..."),o())}var Te=(()=>{class t{ps_DS=v(g);selectedProjectName_$=Z(()=>{let e=this.ps_DS.selectedProjectId_$();return e?this.ps_DS.projects_$().find(r=>r.id===e)?.name??"":""});static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-status-bar"]],hostAttrs:[1,"block","shrink-0"],decls:13,vars:8,consts:[[1,"flex","items-center","gap-3","px-3","py-1","border-t","border-neonDefault/30","bg-ccapBg","text-[10px]","text-neutral-500"],[1,"shrink-0"],[1,"w-px","h-3","bg-neutral-700","shrink-0"],[1,"flex-1"],[1,"flex","items-center","gap-1","text-neonCyan","shrink-0"],[1,"flex","items-center","gap-1","text-neonGreen","shrink-0"],[1,"text-[10px]","text-neutral-500","shrink-0"],[1,"text-red-400","truncate","max-w-[300px]","shrink-0",3,"title"],[1,"text-neutral-500","shrink-0"],[1,"truncate","max-w-[300px]"],[1,"text-neonCyan","shrink-0"],[1,"w-1.5","h-1.5","rounded-full","bg-neonCyan","animate-pulse"],[1,"w-1.5","h-1.5","rounded-full","bg-neonGreen","animate-pulse"]],template:function(n,r){if(n&1&&(i(0,"div",0),_(1,an,2,1,"span",1)(2,sn,2,0,"span",1),m(3,"span",2),i(4,"span",1),s(5),o(),_(6,cn,6,3),m(7,"span",3),_(8,pn,3,0,"span",4)(9,_n,3,0,"span",5)(10,mn,2,2,"span",6)(11,un,2,2,"span",7)(12,fn,2,0,"span",8),o()),n&2){let d,f;l(),c(r.selectedProjectName_$()?1:2),l(4),x("",r.ps_DS.filesTotal_$()," files"),l(),c((d=r.ps_DS.selectedFile_$())?6:-1,d),l(2),c(r.ps_DS.isIngesting_$()?8:-1),l(),c(r.ps_DS.isEmbedding_$()?9:-1),l(),c((f=r.ps_DS.embeddingStatus_$())?10:-1,f),l(),c(r.ps_DS.error_$()?11:-1),l(),c(r.ps_DS.isLoading_$()?12:-1)}},encapsulation:2})}return t})();var xn=(t,a)=>a.chunkId;function Sn(t,a){t&1&&(i(0,"span",3),m(1,"span",14),s(2," Searching... "),o())}function Cn(t,a){t&1&&s(0," Search ")}function vn(t,a){t&1&&(i(0,"div",10)(1,"span",15),m(2,"span",16),s(3," Searching... "),o()())}function gn(t,a){t&1&&(i(0,"div",11),s(1," No results found "),o())}function In(t,a){t&1&&(i(0,"div",12),E(),i(1,"svg",17),m(2,"circle",18)(3,"line",19),o(),j(),i(4,"span",20),s(5,"Enter a query to search"),o()())}function bn(t,a){if(t&1&&(i(0,"span",28),s(1),o()),t&2){let e=p().$implicit;l(),x(" ",e.file.sourceType," ")}}function Pn(t,a){if(t&1&&(i(0,"span",29),s(1),o()),t&2){let e=p().$implicit;l(),h(e.file.projectPart)}}function Tn(t,a){if(t&1&&(i(0,"span",30),s(1),o()),t&2){let e=p().$implicit;l(),h(e.file.moduleName)}}function $n(t,a){if(t&1&&(i(0,"span",31),s(1),o()),t&2){let e=p().$implicit;l(),V(" L",e.lineStart,"-",e.lineEnd," ")}}function yn(t,a){if(t&1){let e=M();i(0,"div",22),S("click",function(){let r=D(e).$implicit,d=p(2);return w(d.handleResultClick(r))}),i(1,"div",23)(2,"span",24),s(3),X(4,"number"),o(),i(5,"span",25),s(6),o(),i(7,"span",26),s(8),o()(),i(9,"div",27),_(10,bn,2,1,"span",28)(11,Pn,2,1,"span",29)(12,Tn,2,1,"span",30)(13,$n,2,2,"span",31),o(),i(14,"pre",32),s(15),o()()}if(t&2){let e=a.$implicit;l(2),k(e.score>=.8?"bg-neonGreen/15 text-neonGreen":e.score>=.6?"bg-neonAmber/15 text-neonAmber":"bg-neutral-700/50 text-neutral-400"),l(),x(" ",Q(4,11,e.score,"1.2-2")," "),l(2),C("title",e.file.relativePath),l(),x(" ",e.file.relativePath," "),l(2),x(" #",e.chunkIndex," "),l(2),c(e.file.sourceType?10:-1),l(),c(e.file.projectPart?11:-1),l(),c(e.file.moduleName?12:-1),l(),c(e.lineStart!==void 0&&e.lineEnd!==void 0?13:-1),l(2),h(e.text)}}function En(t,a){if(t&1&&(i(0,"div",13),b(1,yn,16,14,"div",21,xn),o()),t&2){let e=p();l(),P(e.ps_DS.searchResults_$())}}var $e=(()=>{class t{ps_DS=v(g);handleSearch(){this.ps_DS.search({query:this.ps_DS.searchQuery_$()})}handleResultClick(e){this.ps_DS.navigateToSearchResult({result:e})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-search-panel"]],hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],decls:18,vars:7,consts:[[1,"flex","items-center","gap-2","px-3","py-2","border-b","border-neonDefault/20","shrink-0"],["type","text","placeholder","Semantic search...",1,"flex-1","bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-1","text-xs","text-neutral-300","focus:outline-none","focus:border-neonGreen/60","placeholder:text-neutral-600",3,"input","keydown.enter","value"],[1,"px-3","py-1","text-xs","border","rounded","transition-colors","shrink-0",3,"click","disabled"],[1,"inline-flex","items-center","gap-1"],[1,"flex","items-center","gap-2","px-3","py-1.5","border-b","border-neonDefault/20","shrink-0"],[1,"bg-ccapBg","border","border-neonDefault/40","rounded","px-2","py-0.5","text-[10px]","text-neutral-400",3,"change","value"],["value","cosine"],["value","euclidean"],["value","dot-product"],[1,"flex-1","overflow-y-auto","min-h-0","p-3"],[1,"flex","items-center","justify-center","h-full","text-neutral-600"],[1,"flex","items-center","justify-center","h-full","text-neutral-600","text-sm"],[1,"flex","flex-col","items-center","justify-center","h-full","text-neutral-600"],[1,"space-y-2"],[1,"w-1.5","h-1.5","rounded-full","bg-neonGreen","animate-pulse"],[1,"inline-flex","items-center","gap-2","text-sm"],[1,"w-2","h-2","rounded-full","bg-neonGreen","animate-pulse"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1",1,"w-12","h-12","mb-3","text-neutral-700"],["cx","11","cy","11","r","8"],["x1","21","y1","21","x2","16.65","y2","16.65"],[1,"text-sm"],[1,"rounded","border","border-neonDefault/20","hover:border-neonGreen/40","bg-ccapSurface","hover:bg-neonGreen/3","transition-all","cursor-pointer"],[1,"rounded","border","border-neonDefault/20","hover:border-neonGreen/40","bg-ccapSurface","hover:bg-neonGreen/3","transition-all","cursor-pointer",3,"click"],[1,"flex","items-center","gap-2","px-3","py-1.5","border-b","border-neonDefault/10"],[1,"text-[10px]","font-mono","px-1.5","py-0.5","rounded-full","shrink-0"],[1,"text-xs","text-neutral-400","truncate",3,"title"],[1,"text-[10px]","text-neutral-600","shrink-0","ml-auto"],[1,"flex","items-center","gap-1.5","px-3","py-1"],[1,"text-[10px]","px-1.5","py-0.5","rounded-full","bg-neonCyan/10","text-neonCyan"],[1,"text-[10px]","text-neutral-500"],[1,"text-[10px]","text-neutral-600"],[1,"text-[10px]","text-neutral-600","ml-auto"],[1,"px-3","py-2","text-[11px]","text-neutral-400","font-mono","whitespace-pre-wrap","break-words","max-h-[120px]","overflow-y-auto","leading-relaxed"]],template:function(n,r){n&1&&(i(0,"div",0)(1,"input",1),S("input",function(f){return r.ps_DS.searchQuery_$.set(f.target.value)})("keydown.enter",function(){return r.handleSearch()}),o(),i(2,"button",2),S("click",function(){return r.handleSearch()}),_(3,Sn,3,0,"span",3)(4,Cn,1,0),o()(),i(5,"div",4)(6,"select",5),S("change",function(f){return r.ps_DS.searchMetric_$.set(f.target.value)}),i(7,"option",6),s(8,"Cosine"),o(),i(9,"option",7),s(10,"Euclidean"),o(),i(11,"option",8),s(12,"Dot Product"),o()()(),i(13,"div",9),_(14,vn,4,0,"div",10)(15,gn,2,0,"div",11)(16,In,6,0,"div",12)(17,En,3,0,"div",13),o()),n&2&&(l(),C("value",r.ps_DS.searchQuery_$()),l(),k(r.ps_DS.isSearching_$()?"border-neonGreen/50 text-neonGreen bg-neonGreen/10 opacity-50":"border-neonGreen/30 text-neonGreen hover:bg-neonGreen/10"),C("disabled",r.ps_DS.isSearching_$()||!r.ps_DS.searchQuery_$()),l(),c(r.ps_DS.isSearching_$()?3:4),l(3),C("value",r.ps_DS.searchMetric_$()),l(8),c(r.ps_DS.isSearching_$()?14:!r.ps_DS.searchResults_$().length&&r.ps_DS.searchQuery_$()?15:r.ps_DS.searchResults_$().length?17:16))},dependencies:[B,L,ee],encapsulation:2})}return t})();function Dn(t,a){t&1&&m(0,"app-ps-search-panel")}function wn(t,a){t&1&&m(0,"app-ps-chunk-viewer")}var ji=(()=>{class t{projectId;ps_DS=v(g);fileTreeWidth_$=u(260);infoPanelWidth_$=u(300);isResizing_$=u(!1);ngOnInit(){this.fileTreeWidth_$.set(Math.max(160,Math.min(500,T.loadPanelWidth("fileTree",260)))),this.infoPanelWidth_$.set(Math.max(200,Math.min(550,T.loadPanelWidth("infoPanel",300)))),this.ps_DS.restoreFromStorage(),this.projectId?(this.ps_DS.isEmbedded_$.set(!0),this.ps_DS.selectProject({projectId:this.projectId})):(this.ps_DS.isEmbedded_$.set(!1),this.ps_DS.loadProjects().then(()=>{let e=T.loadSelectedProjectId();e&&this.ps_DS.projects_$().some(n=>n.id===e)&&this.ps_DS.selectProject({projectId:e})}))}ngOnChanges(e){if(e.projectId&&!e.projectId.firstChange){let n=e.projectId.currentValue;n&&this.ps_DS.selectProject({projectId:n})}}handleFileTreeResizeStart(e){let n=this.fileTreeWidth_$(),r=e.clientX;this.isResizing_$.set(!0),ne.attachUntilPointerUp({startEvent:e,onMove:d=>{let f=d.clientX-r,$=Math.max(160,Math.min(500,n+f));this.fileTreeWidth_$.set($)},onEnd:()=>{this.isResizing_$.set(!1),T.savePanelWidth("fileTree",this.fileTreeWidth_$())}})}handleInfoPanelResizeStart(e){let n=this.infoPanelWidth_$(),r=e.clientX;this.isResizing_$.set(!0),ne.attachUntilPointerUp({startEvent:e,onMove:d=>{let f=r-d.clientX,$=Math.max(200,Math.min(550,n+f));this.infoPanelWidth_$.set($)},onEnd:()=>{this.isResizing_$.set(!1),T.savePanelWidth("infoPanel",this.infoPanelWidth_$())}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=y({type:t,selectors:[["app-ps-ide-shell"]],hostAttrs:[1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],inputs:{projectId:"projectId"},features:[re],decls:12,vars:8,consts:[[1,"flex","min-h-0","w-full","flex-1","flex-col","overflow-hidden"],[3,"startResizeStart","endResizeStart","isStartOpen","isEndOpen","startWidthPx","endWidthPx","isResizing"],["sDetailColumnStart",""],["sDetailColumnMain","",1,"flex","flex-col","flex-1","min-h-0","overflow-hidden"],["sDetailColumnEnd",""]],template:function(n,r){n&1&&(i(0,"div",0),m(1,"app-ps-ide-toolbar"),i(2,"app-s-session-detail-three-column-layout",1),S("startResizeStart",function(f){return r.handleFileTreeResizeStart(f)})("endResizeStart",function(f){return r.handleInfoPanelResizeStart(f)}),i(3,"div",2),m(4,"app-ps-file-tree"),o(),i(5,"div",3),m(6,"app-ps-tab-bar"),_(7,Dn,1,0,"app-ps-search-panel")(8,wn,1,0,"app-ps-chunk-viewer"),o(),i(9,"div",4),m(10,"app-ps-info-panel"),o()(),m(11,"app-ps-status-bar"),o()),n&2&&(O("select-none",r.isResizing_$()),l(2),C("isStartOpen",r.ps_DS.isFileTreeOpen_$())("isEndOpen",r.ps_DS.isInfoPanelOpen_$())("startWidthPx",r.fileTreeWidth_$())("endWidthPx",r.infoPanelWidth_$())("isResizing",r.isResizing_$()),l(5),c(r.ps_DS.isSearchPanelOpen_$()?7:8))},dependencies:[ue,Se,ve,ge,Ie,Pe,Te,$e],encapsulation:2})}return t})();var oo=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=oe({type:t});static \u0275inj=ie({providers:[g],imports:[ae,ce,de,fe]})}return t})();export{ji as a,oo as b};
|
|
2
|
+
//# sourceMappingURL=chunk-MJPCYBF7.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{f as l}from"./chunk-RCDWNDY4.js";import{N as p}from"./chunk-FIWWFQAG.js";import{C as i,aa as n,k as o,y as c}from"./chunk-TBMJSIBB.js";var d=(()=>{class a{settingsGeneral_DS=i(p);pm_AS=i(l);workspacePathPickerOptions_$=n([]);refreshWorkspacePathPickerOptions(){return o(this,null,function*(){yield this.settingsGeneral_DS.loadDefaultWorkspacePath();let t=this.settingsGeneral_DS.defaultWorkspacePath_$().trim(),e=[];t&&e.push({label:"Default Workspace",path:t}),this.workspacePathPickerOptions_$.set(e);try{let f=(yield this.pm_AS.listProjects()).projects.filter(s=>!!s.localPath&&!!s.isActive).map(s=>({label:s.name||"Unnamed Project",path:s.localPath??""})),r=[];t&&r.push({label:"Default Workspace",path:t}),r.push(...f),this.workspacePathPickerOptions_$.set(r)}catch{}})}resolveInitialWorkspacePath(t){let e=this.settingsGeneral_DS.defaultWorkspacePath_$().trim();return t.lastWorkspacePath.trim()||e}static \u0275fac=function(e){return new(e||a)};static \u0275prov=c({token:a,factory:a.\u0275fac,providedIn:"root"})}return a})();export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MY2LZHOM.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as C}from"./chunk-7ROTKIYT.js";import{aa as f,h as p,k as h,y as m}from"./chunk-TBMJSIBB.js";var a=function(o){return o.stopped="stopped",o.standby="standby",o.running="running",o}(a||{});var k={navigator_unavailable:"A hangfelv\xE9tel nem el\xE9rhet\u0151: a b\xF6ng\xE9sz\u0151 k\xF6rnyezet nem t\xE1mogatja a navigator API-t.",media_devices_unavailable:"A hangfelv\xE9tel nem el\xE9rhet\u0151: a b\xF6ng\xE9sz\u0151 ezen az oldalon nem ad hozz\xE1f\xE9r\xE9st a mikrofonhoz.",secure_context_required:"A hangfelv\xE9tel ezen az oldalon nem el\xE9rhet\u0151: a b\xF6ng\xE9sz\u0151 csak biztons\xE1gos kapcsolatban (HTTPS vagy localhost) enged\xE9lyezi a mikrofont."},v={media_devices_unavailable:"A mikrofonhoz haszn\xE1ld az alkalmaz\xE1st HTTPS c\xEDmen (pl. https://localhost:39051) vagy localhost-on.",secure_context_required:"A mikrofonhoz haszn\xE1ld az alkalmaz\xE1st HTTPS c\xEDmen (pl. https://localhost:39051) vagy localhost-on."},d=class{static wrapGetUserMediaError(s){if(s instanceof Error&&"code"in s&&typeof s.code=="string"&&s.code.startsWith("CCAP_"))return s;let e=s instanceof DOMException||s instanceof Error?s.name:"UnknownError",t,i;switch(e){case"NotAllowedError":t="CCAP_MIC_PERMISSION_DENIED",i="Microphone access denied by user or browser policy";break;case"NotFoundError":t="CCAP_MIC_NOT_FOUND",i="No microphone device found on this device";break;case"NotReadableError":t="CCAP_MIC_NOT_READABLE",i="Microphone hardware error or device already in use by another application";break;case"OverconstrainedError":t="CCAP_MIC_OVERCONSTRAINED",i="Microphone does not support the requested audio constraints";break;case"AbortError":t="CCAP_MIC_ABORTED",i="Microphone access request was aborted by the system";break;case"SecurityError":t="CCAP_MIC_SECURITY_ERROR",i="Microphone access blocked by document security policy (Permissions-Policy / iframe)";break;default:t="CCAP_MIC_UNKNOWN_ERROR",i=`getUserMedia failed with ${e}`;break}let n=new Error(i);return n.code=t,n.cause=s,n}static getGetUserMediaErrorMessage(s){switch(s instanceof DOMException||s instanceof Error?s.name:""){case"NotAllowedError":return"A mikrofon haszn\xE1lata nem enged\xE9lyezett: a b\xF6ng\xE9sz\u0151 vagy a felhaszn\xE1l\xF3 megtagadta a hozz\xE1f\xE9r\xE9st.";case"NotFoundError":return"Nem tal\xE1lhat\xF3 mikrofon ezen az eszk\xF6z\xF6n.";case"NotReadableError":return"A mikrofon nem olvashat\xF3: hardverhiba vagy egy m\xE1sik alkalmaz\xE1s haszn\xE1lja.";case"OverconstrainedError":return"A mikrofon nem t\xE1mogatja a k\xE9rt audio be\xE1ll\xEDt\xE1sokat.";case"AbortError":return"A mikrofon-hozz\xE1f\xE9r\xE9si k\xE9r\xE9s megszakadt.";case"SecurityError":return"A mikrofon-hozz\xE1f\xE9r\xE9st a biztons\xE1gi szab\xE1lyzat (Permissions-Policy / iframe) blokkolta.";default:return"A mikrofon el\xE9r\xE9se sikertelen (ismeretlen hiba)."}}static getGetUserMediaErrorHint(s){switch(s instanceof DOMException||s instanceof Error?s.name:""){case"NotAllowedError":return"Enged\xE9lyezd a mikrofont a b\xF6ng\xE9sz\u0151 c\xEDmsor\xE1ban (lakat ikon \u2192 Mikrofon \u2192 Enged\xE9lyez\xE9s), majd pr\xF3b\xE1ld \xFAjra. Androidon: Be\xE1ll\xEDt\xE1sok \u2192 Alkalmaz\xE1sok \u2192 Chrome \u2192 Enged\xE9lyek \u2192 Mikrofon.";case"NotReadableError":return"Z\xE1rd be a mikrofont haszn\xE1l\xF3 m\xE1sik alkalmaz\xE1st (pl. vide\xF3h\xEDv\xE1s, diktafon), majd pr\xF3b\xE1ld \xFAjra.";case"SecurityError":return'Ha az alkalmaz\xE1s iframe-ben fut, az iframe-nek "allow=microphone" attrib\xFAtumra van sz\xFCks\xE9ge.';default:return""}}static getMediaRecordingAvailability(){return typeof navigator>"u"?{supported:!1,reason:"navigator_unavailable"}:typeof window<"u"&&window.isSecureContext===!1?{supported:!1,reason:"secure_context_required"}:navigator.mediaDevices==null?{supported:!1,reason:"media_devices_unavailable"}:{supported:!0}}static getMediaUnavailableReportMessage(s){return`Media recording not available (reason: ${s}). Use HTTPS or localhost for microphone access.`}static getMediaUnavailableHint(s){return v[s]??""}static getMediaUnavailableMessage(s){return k[s]??"A hangfelv\xE9tel nem el\xE9rhet\u0151 ezen az oldalon."}};var r=p(C());var A=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg","audio/mp4"],z=(()=>{class o{volumeGate=.05;silenceTimeLimitMs=5*r.second;timesliceMs=5*r.second;segmentMaxChunks=6;segmentSoftFlushMinChunks=4;getUserMediaTimeoutMs=15*r.second;state_$=f(a.stopped);mediaStream=null;mediaRecorder=null;audioContext=null;analyser=null;audioSourceNode=null;volumeAnimationId=null;chunkIndex=0;chunks=[];isRestartingForFlush=!1;selectedMime="";onChunkCb=null;onVolumeCb=null;onErrorCb=null;deviceChangeHandler=null;silenceStartTime=null;setOnChunk(e){this.onChunkCb=e}setOnVolume(e){this.onVolumeCb=e}setOnError(e){this.onErrorCb=e}selectMime(){for(let e of A)if(MediaRecorder.isTypeSupported(e))return e;return"audio/webm"}getExtension(){return this.selectedMime.startsWith("audio/webm")?"webm":this.selectedMime.startsWith("audio/ogg")?"ogg":this.selectedMime.startsWith("audio/mp4")?"mp4":"webm"}startListening(){return h(this,null,function*(){if(this.state_$()===a.stopped)try{let e=d.getMediaRecordingAvailability();if(!e.supported){let n=`Media recording not available (reason: ${e.reason??"unknown"})`,l=new Error(n);throw l.code="CCAP_MEDIA_NOT_AVAILABLE",l}let t=null;try{let n=navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,channelCount:1}}),l=new Promise((c,g)=>{t=setTimeout(()=>{let u=new Error(`getUserMedia timed out after ${this.getUserMediaTimeoutMs}ms`);u.code="CCAP_MIC_TIMEOUT",g(u)},this.getUserMediaTimeoutMs)});this.mediaStream=yield Promise.race([n,l])}catch(n){throw d.wrapGetUserMediaError(n)}finally{t!==null&&clearTimeout(t)}let i=this.mediaStream.getAudioTracks()[0];i&&(r.DyFM_Log.info("[CCAP] mic track settings",i.getSettings()),i.onended=()=>{r.DyFM_Log.info("[CCAP] mic track ended unexpectedly"),this.stopListening(),this.onErrorCb?.(new Error("Microphone track ended unexpectedly (device disconnected?)"))}),this.registerDeviceChangeListener(),this.selectedMime=this.selectMime(),this.startVolumeLoop(),this.state_$.set(a.standby)}catch(e){throw this.state_$.set(a.stopped),e}})}stopListening(){let e=this.state_$()===a.running;e&&this.stopCapture(!0),this.stopVolumeLoop(),e||this.stopMediaRecorder(),this.silenceStartTime=null,this.unregisterDeviceChangeListener(),this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.state_$.set(a.stopped)}startCapture(){return h(this,null,function*(){try{if(this.mediaStream==null&&(yield this.startListening()),this.mediaStream==null)return;this.silenceStartTime=null,this.chunks=[],this.createAndStartRecorder(),this.state_$.set(a.running)}catch(e){this.stopVolumeLoop(),this.state_$.set(a.stopped),this.onErrorCb?.(e)}})}stopCapture(e=!1,t=!1){if(this.isRestartingForFlush=!1,!(this.mediaRecorder==null||this.state_$()!==a.running)){try{this.mediaRecorder.stop()}catch(i){r.DyFM_Log.info("[CCAP] mediaRecorder.stop() failed (likely already inactive)",i),this.mediaRecorder=null,this.flushChunksAsSegment(e),this.state_$.set(this.mediaStream?a.standby:a.stopped);return}if(t){this.mediaRecorder=null,this.flushChunksAsSegment(e),this.state_$.set(this.mediaStream?a.standby:a.stopped);return}this.mediaRecorder.onstop=()=>{this.mediaRecorder=null,this.flushChunksAsSegment(e),this.state_$.set(this.mediaStream?a.standby:a.stopped)}}}createAndStartRecorder(){this.mediaStream&&(this.mediaRecorder=new MediaRecorder(this.mediaStream,{mimeType:this.selectedMime,audioBitsPerSecond:128e3}),this.mediaRecorder.ondataavailable=e=>{if(e.data.size>0&&this.chunks.push(e.data),this.state_$()!==a.running||this.isRestartingForFlush)return;let t=this.chunks.length>=this.segmentMaxChunks,i=this.chunks.length>=this.segmentSoftFlushMinChunks&&this.silenceStartTime!==null;(t||i)&&this.restartRecorderForFlush()},this.mediaRecorder.start(this.timesliceMs))}restartRecorderForFlush(){if(!(!this.mediaRecorder||this.mediaRecorder.state==="inactive")){this.isRestartingForFlush=!0,this.silenceStartTime=null,r.DyFM_Log.info("[CCAP] restartRecorderForFlush: stopping current recorder for mid-recording flush"),this.mediaRecorder.onstop=()=>{this.isRestartingForFlush=!1,this.mediaRecorder=null;let e=this.chunks.length;if(this.flushChunksAsSegment(!1),r.DyFM_Log.info(`[CCAP] restartRecorderForFlush: flushed ${e} chunks as segment`),this.state_$()!==a.running||!this.mediaStream){r.DyFM_Log.info("[CCAP] restartRecorderForFlush: not restarting (state changed or no stream)");return}this.createAndStartRecorder(),r.DyFM_Log.info("[CCAP] restartRecorderForFlush: new recorder started for next segment")};try{this.mediaRecorder.stop()}catch{this.isRestartingForFlush=!1,this.mediaRecorder=null,this.flushChunksAsSegment(!1)}}}flushChunksAsSegment(e){if(this.chunks.length===0)return;let t=new Blob(this.chunks,{type:this.selectedMime}),i={mimeType:this.selectedMime,filename:`audio-${Date.now()}.${this.getExtension()}`,chunkIndex:this.chunkIndex++,isFinal:e};this.chunks=[],this.onChunkCb?.(t,i)}startVolumeLoop(){if(this.mediaStream==null||this.onVolumeCb==null)return;this.audioContext=new AudioContext,this.audioContext.state==="suspended"&&this.audioContext.resume().catch(()=>{}),this.audioContext.onstatechange=()=>{let i=this.audioContext?.state??"unknown";r.DyFM_Log.info("[CCAP] AudioContext state changed:",i),i==="suspended"&&this.state_$()!==a.stopped&&this.audioContext?.resume().catch(()=>{})},this.audioSourceNode=this.audioContext.createMediaStreamSource(this.mediaStream),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2048,this.analyser.smoothingTimeConstant=.8,this.audioSourceNode.connect(this.analyser);let e=new Float32Array(this.analyser.fftSize),t=()=>{if(this.analyser==null||this.onVolumeCb==null)return;this.analyser.getFloatTimeDomainData(e);let i=0;for(let c=0;c<e.length;c++)i+=Math.abs(e[c]);let n=i/e.length;this.onVolumeCb(n);let l=this.state_$();if(l===a.standby&&n>=this.volumeGate){this.startCapture(),this.volumeAnimationId=requestAnimationFrame(t);return}l===a.running&&!this.isRestartingForFlush&&(n<this.volumeGate?this.silenceStartTime===null?this.silenceStartTime=Date.now():Date.now()-this.silenceStartTime>=this.silenceTimeLimitMs&&(this.stopCapture(),this.silenceStartTime=null):this.silenceStartTime=null),this.volumeAnimationId=requestAnimationFrame(t)};t()}stopVolumeLoop(){this.volumeAnimationId!=null&&(cancelAnimationFrame(this.volumeAnimationId),this.volumeAnimationId=null),this.audioSourceNode=null,this.audioContext!=null&&(this.audioContext.onstatechange=null,this.audioContext.close().catch(()=>{}),this.audioContext=null),this.analyser=null}stopMediaRecorder(){if(this.mediaRecorder!=null&&this.mediaRecorder.state!=="inactive"){try{this.mediaRecorder.stop()}catch{}this.mediaRecorder=null}this.chunks=[],this.isRestartingForFlush=!1}registerDeviceChangeListener(){try{this.deviceChangeHandler=()=>{r.DyFM_Log.info("[CCAP] media device change detected")},navigator.mediaDevices.addEventListener("devicechange",this.deviceChangeHandler)}catch{this.deviceChangeHandler=null}}unregisterDeviceChangeListener(){if(this.deviceChangeHandler){try{navigator.mediaDevices.removeEventListener("devicechange",this.deviceChangeHandler)}catch{}this.deviceChangeHandler=null}}static \u0275fac=function(t){return new(t||o)};static \u0275prov=m({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();export{a,d as b,z as c};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{p as C}from"./chunk-FIWWFQAG.js";import{aa as f,h as p,k as h,y as m}from"./chunk-TBMJSIBB.js";var a=function(o){return o.stopped="stopped",o.standby="standby",o.running="running",o}(a||{});var k={navigator_unavailable:"A hangfelv\xE9tel nem el\xE9rhet\u0151: a b\xF6ng\xE9sz\u0151 k\xF6rnyezet nem t\xE1mogatja a navigator API-t.",media_devices_unavailable:"A hangfelv\xE9tel nem el\xE9rhet\u0151: a b\xF6ng\xE9sz\u0151 ezen az oldalon nem ad hozz\xE1f\xE9r\xE9st a mikrofonhoz.",secure_context_required:"A hangfelv\xE9tel ezen az oldalon nem el\xE9rhet\u0151: a b\xF6ng\xE9sz\u0151 csak biztons\xE1gos kapcsolatban (HTTPS vagy localhost) enged\xE9lyezi a mikrofont."},v={media_devices_unavailable:"A mikrofonhoz haszn\xE1ld az alkalmaz\xE1st HTTPS c\xEDmen (pl. https://localhost:39051) vagy localhost-on.",secure_context_required:"A mikrofonhoz haszn\xE1ld az alkalmaz\xE1st HTTPS c\xEDmen (pl. https://localhost:39051) vagy localhost-on."},d=class{static wrapGetUserMediaError(s){if(s instanceof Error&&"code"in s&&typeof s.code=="string"&&s.code.startsWith("CCAP_"))return s;let e=s instanceof DOMException||s instanceof Error?s.name:"UnknownError",t,i;switch(e){case"NotAllowedError":t="CCAP_MIC_PERMISSION_DENIED",i="Microphone access denied by user or browser policy";break;case"NotFoundError":t="CCAP_MIC_NOT_FOUND",i="No microphone device found on this device";break;case"NotReadableError":t="CCAP_MIC_NOT_READABLE",i="Microphone hardware error or device already in use by another application";break;case"OverconstrainedError":t="CCAP_MIC_OVERCONSTRAINED",i="Microphone does not support the requested audio constraints";break;case"AbortError":t="CCAP_MIC_ABORTED",i="Microphone access request was aborted by the system";break;case"SecurityError":t="CCAP_MIC_SECURITY_ERROR",i="Microphone access blocked by document security policy (Permissions-Policy / iframe)";break;default:t="CCAP_MIC_UNKNOWN_ERROR",i=`getUserMedia failed with ${e}`;break}let n=new Error(i);return n.code=t,n.cause=s,n}static getGetUserMediaErrorMessage(s){switch(s instanceof DOMException||s instanceof Error?s.name:""){case"NotAllowedError":return"A mikrofon haszn\xE1lata nem enged\xE9lyezett: a b\xF6ng\xE9sz\u0151 vagy a felhaszn\xE1l\xF3 megtagadta a hozz\xE1f\xE9r\xE9st.";case"NotFoundError":return"Nem tal\xE1lhat\xF3 mikrofon ezen az eszk\xF6z\xF6n.";case"NotReadableError":return"A mikrofon nem olvashat\xF3: hardverhiba vagy egy m\xE1sik alkalmaz\xE1s haszn\xE1lja.";case"OverconstrainedError":return"A mikrofon nem t\xE1mogatja a k\xE9rt audio be\xE1ll\xEDt\xE1sokat.";case"AbortError":return"A mikrofon-hozz\xE1f\xE9r\xE9si k\xE9r\xE9s megszakadt.";case"SecurityError":return"A mikrofon-hozz\xE1f\xE9r\xE9st a biztons\xE1gi szab\xE1lyzat (Permissions-Policy / iframe) blokkolta.";default:return"A mikrofon el\xE9r\xE9se sikertelen (ismeretlen hiba)."}}static getGetUserMediaErrorHint(s){switch(s instanceof DOMException||s instanceof Error?s.name:""){case"NotAllowedError":return"Enged\xE9lyezd a mikrofont a b\xF6ng\xE9sz\u0151 c\xEDmsor\xE1ban (lakat ikon \u2192 Mikrofon \u2192 Enged\xE9lyez\xE9s), majd pr\xF3b\xE1ld \xFAjra. Androidon: Be\xE1ll\xEDt\xE1sok \u2192 Alkalmaz\xE1sok \u2192 Chrome \u2192 Enged\xE9lyek \u2192 Mikrofon.";case"NotReadableError":return"Z\xE1rd be a mikrofont haszn\xE1l\xF3 m\xE1sik alkalmaz\xE1st (pl. vide\xF3h\xEDv\xE1s, diktafon), majd pr\xF3b\xE1ld \xFAjra.";case"SecurityError":return'Ha az alkalmaz\xE1s iframe-ben fut, az iframe-nek "allow=microphone" attrib\xFAtumra van sz\xFCks\xE9ge.';default:return""}}static getMediaRecordingAvailability(){return typeof navigator>"u"?{supported:!1,reason:"navigator_unavailable"}:typeof window<"u"&&window.isSecureContext===!1?{supported:!1,reason:"secure_context_required"}:navigator.mediaDevices==null?{supported:!1,reason:"media_devices_unavailable"}:{supported:!0}}static getMediaUnavailableReportMessage(s){return`Media recording not available (reason: ${s}). Use HTTPS or localhost for microphone access.`}static getMediaUnavailableHint(s){return v[s]??""}static getMediaUnavailableMessage(s){return k[s]??"A hangfelv\xE9tel nem el\xE9rhet\u0151 ezen az oldalon."}};var r=p(C());var A=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg","audio/mp4"],z=(()=>{class o{volumeGate=.05;silenceTimeLimitMs=5*r.second;timesliceMs=5*r.second;segmentMaxChunks=6;segmentSoftFlushMinChunks=4;getUserMediaTimeoutMs=15*r.second;state_$=f(a.stopped);mediaStream=null;mediaRecorder=null;audioContext=null;analyser=null;audioSourceNode=null;volumeAnimationId=null;chunkIndex=0;chunks=[];isRestartingForFlush=!1;selectedMime="";onChunkCb=null;onVolumeCb=null;onErrorCb=null;deviceChangeHandler=null;silenceStartTime=null;setOnChunk(e){this.onChunkCb=e}setOnVolume(e){this.onVolumeCb=e}setOnError(e){this.onErrorCb=e}selectMime(){for(let e of A)if(MediaRecorder.isTypeSupported(e))return e;return"audio/webm"}getExtension(){return this.selectedMime.startsWith("audio/webm")?"webm":this.selectedMime.startsWith("audio/ogg")?"ogg":this.selectedMime.startsWith("audio/mp4")?"mp4":"webm"}startListening(){return h(this,null,function*(){if(this.state_$()===a.stopped)try{let e=d.getMediaRecordingAvailability();if(!e.supported){let n=`Media recording not available (reason: ${e.reason??"unknown"})`,l=new Error(n);throw l.code="CCAP_MEDIA_NOT_AVAILABLE",l}let t=null;try{let n=navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,channelCount:1}}),l=new Promise((c,g)=>{t=setTimeout(()=>{let u=new Error(`getUserMedia timed out after ${this.getUserMediaTimeoutMs}ms`);u.code="CCAP_MIC_TIMEOUT",g(u)},this.getUserMediaTimeoutMs)});this.mediaStream=yield Promise.race([n,l])}catch(n){throw d.wrapGetUserMediaError(n)}finally{t!==null&&clearTimeout(t)}let i=this.mediaStream.getAudioTracks()[0];i&&(r.DyFM_Log.info("[CCAP] mic track settings",i.getSettings()),i.onended=()=>{r.DyFM_Log.info("[CCAP] mic track ended unexpectedly"),this.stopListening(),this.onErrorCb?.(new Error("Microphone track ended unexpectedly (device disconnected?)"))}),this.registerDeviceChangeListener(),this.selectedMime=this.selectMime(),this.startVolumeLoop(),this.state_$.set(a.standby)}catch(e){throw this.state_$.set(a.stopped),e}})}stopListening(){let e=this.state_$()===a.running;e&&this.stopCapture(!0),this.stopVolumeLoop(),e||this.stopMediaRecorder(),this.silenceStartTime=null,this.unregisterDeviceChangeListener(),this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.state_$.set(a.stopped)}startCapture(){return h(this,null,function*(){try{if(this.mediaStream==null&&(yield this.startListening()),this.mediaStream==null)return;this.silenceStartTime=null,this.chunks=[],this.createAndStartRecorder(),this.state_$.set(a.running)}catch(e){this.stopVolumeLoop(),this.state_$.set(a.stopped),this.onErrorCb?.(e)}})}stopCapture(e=!1,t=!1){if(this.isRestartingForFlush=!1,!(this.mediaRecorder==null||this.state_$()!==a.running)){try{this.mediaRecorder.stop()}catch(i){r.DyFM_Log.info("[CCAP] mediaRecorder.stop() failed (likely already inactive)",i),this.mediaRecorder=null,this.flushChunksAsSegment(e),this.state_$.set(this.mediaStream?a.standby:a.stopped);return}if(t){this.mediaRecorder=null,this.flushChunksAsSegment(e),this.state_$.set(this.mediaStream?a.standby:a.stopped);return}this.mediaRecorder.onstop=()=>{this.mediaRecorder=null,this.flushChunksAsSegment(e),this.state_$.set(this.mediaStream?a.standby:a.stopped)}}}createAndStartRecorder(){this.mediaStream&&(this.mediaRecorder=new MediaRecorder(this.mediaStream,{mimeType:this.selectedMime,audioBitsPerSecond:128e3}),this.mediaRecorder.ondataavailable=e=>{if(e.data.size>0&&this.chunks.push(e.data),this.state_$()!==a.running||this.isRestartingForFlush)return;let t=this.chunks.length>=this.segmentMaxChunks,i=this.chunks.length>=this.segmentSoftFlushMinChunks&&this.silenceStartTime!==null;(t||i)&&this.restartRecorderForFlush()},this.mediaRecorder.start(this.timesliceMs))}restartRecorderForFlush(){if(!(!this.mediaRecorder||this.mediaRecorder.state==="inactive")){this.isRestartingForFlush=!0,this.silenceStartTime=null,r.DyFM_Log.info("[CCAP] restartRecorderForFlush: stopping current recorder for mid-recording flush"),this.mediaRecorder.onstop=()=>{this.isRestartingForFlush=!1,this.mediaRecorder=null;let e=this.chunks.length;if(this.flushChunksAsSegment(!1),r.DyFM_Log.info(`[CCAP] restartRecorderForFlush: flushed ${e} chunks as segment`),this.state_$()!==a.running||!this.mediaStream){r.DyFM_Log.info("[CCAP] restartRecorderForFlush: not restarting (state changed or no stream)");return}this.createAndStartRecorder(),r.DyFM_Log.info("[CCAP] restartRecorderForFlush: new recorder started for next segment")};try{this.mediaRecorder.stop()}catch{this.isRestartingForFlush=!1,this.mediaRecorder=null,this.flushChunksAsSegment(!1)}}}flushChunksAsSegment(e){if(this.chunks.length===0)return;let t=new Blob(this.chunks,{type:this.selectedMime}),i={mimeType:this.selectedMime,filename:`audio-${Date.now()}.${this.getExtension()}`,chunkIndex:this.chunkIndex++,isFinal:e};this.chunks=[],this.onChunkCb?.(t,i)}startVolumeLoop(){if(this.mediaStream==null||this.onVolumeCb==null)return;this.audioContext=new AudioContext,this.audioContext.state==="suspended"&&this.audioContext.resume().catch(()=>{}),this.audioContext.onstatechange=()=>{let i=this.audioContext?.state??"unknown";r.DyFM_Log.info("[CCAP] AudioContext state changed:",i),i==="suspended"&&this.state_$()!==a.stopped&&this.audioContext?.resume().catch(()=>{})},this.audioSourceNode=this.audioContext.createMediaStreamSource(this.mediaStream),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2048,this.analyser.smoothingTimeConstant=.8,this.audioSourceNode.connect(this.analyser);let e=new Float32Array(this.analyser.fftSize),t=()=>{if(this.analyser==null||this.onVolumeCb==null)return;this.analyser.getFloatTimeDomainData(e);let i=0;for(let c=0;c<e.length;c++)i+=Math.abs(e[c]);let n=i/e.length;this.onVolumeCb(n);let l=this.state_$();if(l===a.standby&&n>=this.volumeGate){this.startCapture(),this.volumeAnimationId=requestAnimationFrame(t);return}l===a.running&&!this.isRestartingForFlush&&(n<this.volumeGate?this.silenceStartTime===null?this.silenceStartTime=Date.now():Date.now()-this.silenceStartTime>=this.silenceTimeLimitMs&&(this.stopCapture(),this.silenceStartTime=null):this.silenceStartTime=null),this.volumeAnimationId=requestAnimationFrame(t)};t()}stopVolumeLoop(){this.volumeAnimationId!=null&&(cancelAnimationFrame(this.volumeAnimationId),this.volumeAnimationId=null),this.audioSourceNode=null,this.audioContext!=null&&(this.audioContext.onstatechange=null,this.audioContext.close().catch(()=>{}),this.audioContext=null),this.analyser=null}stopMediaRecorder(){if(this.mediaRecorder!=null&&this.mediaRecorder.state!=="inactive"){try{this.mediaRecorder.stop()}catch{}this.mediaRecorder=null}this.chunks=[],this.isRestartingForFlush=!1}registerDeviceChangeListener(){try{this.deviceChangeHandler=()=>{r.DyFM_Log.info("[CCAP] media device change detected")},navigator.mediaDevices.addEventListener("devicechange",this.deviceChangeHandler)}catch{this.deviceChangeHandler=null}}unregisterDeviceChangeListener(){if(this.deviceChangeHandler){try{navigator.mediaDevices.removeEventListener("devicechange",this.deviceChangeHandler)}catch{}this.deviceChangeHandler=null}}static \u0275fac=function(t){return new(t||o)};static \u0275prov=m({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();export{a,d as b,z as c};
|
|
2
|
+
//# sourceMappingURL=chunk-OJZR7AFD.js.map
|