@futdevpro/ccap 1.1.3091 → 1.1.3102
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-O4X2F7LQ.js → agent-instances.module-IAMOEVNL.js} +2 -2
- package/client-dist/{ca.module-55I6KUEP.js → ca.module-DC5VMK5Y.js} +2 -2
- package/client-dist/{cc-usage-dashboard.component-CQ7LFS2R.js → cc-usage-dashboard.component-5JM6S64F.js} +2 -2
- package/client-dist/{cc.module-RPI65QBI.js → cc.module-U26365SI.js} +2 -2
- package/client-dist/{chunk-IQKLEPPG.js → chunk-2PS4UZPR.js} +2 -2
- package/client-dist/{chunk-2QSAR32U.js → chunk-3MWOLKTF.js} +2 -2
- package/client-dist/{chunk-SPEFMR4R.js → chunk-53PQHPA7.js} +2 -2
- package/client-dist/{chunk-SBTGHAYK.js → chunk-5I65O626.js} +2 -2
- package/client-dist/{chunk-HGDZCCLA.js → chunk-67IPTVUW.js} +2 -2
- package/client-dist/{chunk-W3VVTZI7.js → chunk-6AWNXPVM.js} +2 -2
- package/client-dist/{chunk-66F6YPRF.js → chunk-6B7RLLBU.js} +2 -2
- package/client-dist/{chunk-N7GDFSBT.js → chunk-7DTPD5LC.js} +2 -2
- package/client-dist/{chunk-7A6FYQFJ.js → chunk-7I2XVKTK.js} +2 -2
- package/client-dist/{chunk-6ALMEEKI.js → chunk-7MGY4Z6C.js} +2 -2
- package/client-dist/{chunk-ALFIKH7E.js → chunk-7SYCAQ3W.js} +2 -2
- package/client-dist/{chunk-CP5F6KVS.js → chunk-7V4RNM4Q.js} +2 -2
- package/client-dist/{chunk-I7ELHYQN.js → chunk-AAEHV4SQ.js} +2 -2
- package/client-dist/{chunk-HBCFMIW2.js → chunk-BFTQRL6H.js} +2 -2
- package/client-dist/{chunk-KNX6PXMA.js → chunk-CFPTAUCU.js} +2 -2
- package/client-dist/{chunk-KNX6PXMA.js.map → chunk-CFPTAUCU.js.map} +1 -1
- package/client-dist/{chunk-3PWBQJ4M.js → chunk-CMBU47YJ.js} +2 -2
- package/client-dist/{chunk-BT5EHOCQ.js → chunk-D5CTQY3J.js} +2 -2
- package/client-dist/{chunk-6SYXRJL2.js → chunk-DJDDRV36.js} +2 -2
- package/client-dist/{chunk-EO3EZUUJ.js → chunk-EIHYMXLV.js} +2 -2
- package/client-dist/{chunk-W6XVJPUX.js → chunk-EO3HTELG.js} +2 -2
- package/client-dist/{chunk-NJZDOSTR.js → chunk-F77OUK5E.js} +2 -2
- package/client-dist/{chunk-TBT57I7I.js → chunk-FT6CK74E.js} +2 -2
- package/client-dist/{chunk-7LWJBGL4.js → chunk-FX2IX5QH.js} +2 -2
- package/client-dist/{chunk-7GOR2GBC.js → chunk-HTKVFYOK.js} +2 -2
- package/client-dist/{chunk-Y2L3PCW4.js → chunk-IXRSAIZI.js} +2 -2
- package/client-dist/{chunk-V5NW6HMC.js → chunk-JB74RJ77.js} +2 -2
- package/client-dist/{chunk-TRNNWPOH.js → chunk-JKBO6HPX.js} +2 -2
- package/client-dist/{chunk-QSDRSULH.js → chunk-JT4QERQZ.js} +2 -2
- package/client-dist/{chunk-QIJSGEFW.js → chunk-JU2L5GD6.js} +2 -2
- package/client-dist/{chunk-NHTWNNA7.js → chunk-JYWGTCQS.js} +2 -2
- package/client-dist/{chunk-DAHSKF6G.js → chunk-K4HTQXPA.js} +2 -2
- package/client-dist/{chunk-X6LQ5NDB.js → chunk-KNFABSWN.js} +2 -2
- package/client-dist/{chunk-B7U7QHU6.js → chunk-LFZQANWS.js} +2 -2
- package/client-dist/{chunk-ECB63DP7.js → chunk-LUM4O4EP.js} +2 -2
- package/client-dist/{chunk-Z76NRHPI.js → chunk-LVN7UVJS.js} +2 -2
- package/client-dist/{chunk-Z3RMRSY7.js → chunk-NY3HJA4F.js} +2 -2
- package/client-dist/{chunk-TYWRMRAZ.js → chunk-OJHFALFZ.js} +2 -2
- package/client-dist/{chunk-IT32VCIH.js → chunk-OKG4QBWE.js} +2 -2
- package/client-dist/{chunk-ELA6J2TW.js → chunk-OZWGRRQJ.js} +2 -2
- package/client-dist/{chunk-ROFLYYQN.js → chunk-PL27V3FQ.js} +2 -2
- package/client-dist/{chunk-XXCU3VRL.js → chunk-PMJFXD5Y.js} +2 -2
- package/client-dist/{chunk-K5SBQVP3.js → chunk-PPKBA66S.js} +2 -2
- package/client-dist/{chunk-2MUJHI5A.js → chunk-SOTVAGPA.js} +2 -2
- package/client-dist/{chunk-H426VGC4.js → chunk-T4KV43VE.js} +2 -2
- package/client-dist/{chunk-3SDY7S56.js → chunk-TSVUULFD.js} +2 -2
- package/client-dist/{chunk-NRLG6DK5.js → chunk-U75T3UCV.js} +2 -2
- package/client-dist/{chunk-O6YDDGMV.js → chunk-UA2X6KM6.js} +2 -2
- package/client-dist/{chunk-BQSN75P4.js → chunk-UACFECPK.js} +2 -2
- package/client-dist/{chunk-FGO677RH.js → chunk-UM3J2Z34.js} +2 -2
- package/client-dist/chunk-VFHT4OYM.js +2 -0
- package/client-dist/chunk-VFHT4OYM.js.map +7 -0
- package/client-dist/{chunk-XYQGWUC4.js → chunk-W3DWFUQD.js} +2 -2
- package/client-dist/{chunk-THHGLNFI.js → chunk-XAYLCDHO.js} +2 -2
- package/client-dist/{chunk-TP7RKDPV.js → chunk-XV426GB5.js} +2 -2
- package/client-dist/{chunk-LSLNEGFB.js → chunk-Z3BYKPE4.js} +2 -2
- package/client-dist/{chunk-DTBXYUNS.js → chunk-ZD7RXMQQ.js} +2 -2
- package/client-dist/{chunk-OF2ONF6M.js → chunk-ZKO4XWH5.js} +2 -2
- package/client-dist/{consultant.module-E3VLLZDN.js → consultant.module-PYA6DSZV.js} +2 -2
- package/client-dist/{crd.module-3RSUP6DI.js → crd.module-3YGC7EWW.js} +2 -2
- package/client-dist/{dashboard.module-PYBGY56O.js → dashboard.module-HMCFQDZL.js} +2 -2
- package/client-dist/{do.module-PD25CGC7.js → do.module-5YSCN5V5.js} +2 -2
- package/client-dist/{document-library.module-VAFSW6G6.js → document-library.module-Y4EZKOAF.js} +2 -2
- package/client-dist/{embedding-eval.module-2CDS7F52.js → embedding-eval.module-47RTIIH5.js} +2 -2
- package/client-dist/{embedding-registry.module-IZVNOH7A.js → embedding-registry.module-HYQ4UJFK.js} +2 -2
- package/client-dist/{err.module-3NVH4NC7.js → err.module-QVOUZKJ2.js} +2 -2
- package/client-dist/{feedback.module-X5QXB76I.js → feedback.module-A3OR6GVO.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-DNDJGQ6T.js → host-runtime-mcp.module-5ZSU54NK.js} +2 -2
- package/client-dist/index.html +2 -2
- package/client-dist/{live-dev-pipeline.module-HFMV5IJN.js → live-dev-pipeline.module-EGZL6S75.js} +2 -2
- package/client-dist/{logs.module-FMAQMKQG.js → logs.module-BHYYAZKF.js} +2 -2
- package/client-dist/{main-A3GB5DKS.js → main-YT72UH4P.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-6X42ODCA.js → master-control-remote-poc.module-FYJMCGQ3.js} +2 -2
- package/client-dist/{mobile-app.module-WVXOGJ44.js → mobile-app.module-NHPMG7QY.js} +2 -2
- package/client-dist/{model-registry.module-VJWYB5V7.js → model-registry.module-U63UCPM5.js} +2 -2
- package/client-dist/{oc.module-WMJBA6KT.js → oc.module-YN66ETIL.js} +2 -2
- package/client-dist/{orc.module-3SBAFMI4.js → orc.module-SIS3R6KN.js} +2 -2
- package/client-dist/{project-management.module-ATZOSRRL.js → project-management.module-AVROF6ET.js} +2 -2
- package/client-dist/project-source-routed.module-J6RM73IW.js +2 -0
- package/client-dist/{scheduler.module-EC7PAAAQ.js → scheduler.module-CTLPRXAO.js} +2 -2
- package/client-dist/session.module-CKSSKD2Q.js +12 -0
- package/client-dist/session.module-CKSSKD2Q.js.map +7 -0
- package/client-dist/{set.module-MDPOOWNA.js → set.module-HXGUR23B.js} +2 -2
- package/client-dist/{setup.module-T7R5ZKVW.js → setup.module-Z7HR42LN.js} +2 -2
- package/client-dist/{styles-VZB5EAUE.css → styles-KHQAHCL5.css} +2 -2
- package/client-dist/{styles-VZB5EAUE.css.map → styles-KHQAHCL5.css.map} +1 -1
- package/client-dist/{terminals.module-TQNCPJ2W.js → terminals.module-7WK3CG5M.js} +2 -2
- package/client-dist/{voice-notes-poc.module-DBALDSBW.js → voice-notes-poc.module-DSEQIKLK.js} +2 -2
- package/client-dist/{wfs.module-43UB5OI3.js → wfs.module-GW3M5DEY.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.d.ts +25 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.d.ts.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.js +41 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.js.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.spec.d.ts +2 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.spec.js +68 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-config.util.spec.js.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.d.ts +25 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.d.ts.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.js +53 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.js.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.spec.d.ts +2 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.spec.js +129 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_collections/utils/ses-archive-policy.util.spec.js.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_services/ses-conversation.data-service.d.ts +6 -0
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_services/ses-conversation.data-service.d.ts.map +1 -1
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_services/ses-conversation.data-service.js +18 -3
- package/server/build/src/_modules/ccap-agent/_modules/ccap-sessions/_services/ses-conversation.data-service.js.map +1 -1
- package/client-dist/chunk-4P4OUN3W.js +0 -2
- package/client-dist/chunk-4P4OUN3W.js.map +0 -7
- package/client-dist/project-source-routed.module-M5G7A42W.js +0 -2
- package/client-dist/session.module-FEBNYHS6.js +0 -12
- package/client-dist/session.module-FEBNYHS6.js.map +0 -7
- /package/client-dist/{agent-instances.module-O4X2F7LQ.js.map → agent-instances.module-IAMOEVNL.js.map} +0 -0
- /package/client-dist/{ca.module-55I6KUEP.js.map → ca.module-DC5VMK5Y.js.map} +0 -0
- /package/client-dist/{cc-usage-dashboard.component-CQ7LFS2R.js.map → cc-usage-dashboard.component-5JM6S64F.js.map} +0 -0
- /package/client-dist/{cc.module-RPI65QBI.js.map → cc.module-U26365SI.js.map} +0 -0
- /package/client-dist/{chunk-IQKLEPPG.js.map → chunk-2PS4UZPR.js.map} +0 -0
- /package/client-dist/{chunk-2QSAR32U.js.map → chunk-3MWOLKTF.js.map} +0 -0
- /package/client-dist/{chunk-SPEFMR4R.js.map → chunk-53PQHPA7.js.map} +0 -0
- /package/client-dist/{chunk-SBTGHAYK.js.map → chunk-5I65O626.js.map} +0 -0
- /package/client-dist/{chunk-HGDZCCLA.js.map → chunk-67IPTVUW.js.map} +0 -0
- /package/client-dist/{chunk-W3VVTZI7.js.map → chunk-6AWNXPVM.js.map} +0 -0
- /package/client-dist/{chunk-66F6YPRF.js.map → chunk-6B7RLLBU.js.map} +0 -0
- /package/client-dist/{chunk-N7GDFSBT.js.map → chunk-7DTPD5LC.js.map} +0 -0
- /package/client-dist/{chunk-7A6FYQFJ.js.map → chunk-7I2XVKTK.js.map} +0 -0
- /package/client-dist/{chunk-6ALMEEKI.js.map → chunk-7MGY4Z6C.js.map} +0 -0
- /package/client-dist/{chunk-ALFIKH7E.js.map → chunk-7SYCAQ3W.js.map} +0 -0
- /package/client-dist/{chunk-CP5F6KVS.js.map → chunk-7V4RNM4Q.js.map} +0 -0
- /package/client-dist/{chunk-I7ELHYQN.js.map → chunk-AAEHV4SQ.js.map} +0 -0
- /package/client-dist/{chunk-HBCFMIW2.js.map → chunk-BFTQRL6H.js.map} +0 -0
- /package/client-dist/{chunk-3PWBQJ4M.js.map → chunk-CMBU47YJ.js.map} +0 -0
- /package/client-dist/{chunk-BT5EHOCQ.js.map → chunk-D5CTQY3J.js.map} +0 -0
- /package/client-dist/{chunk-6SYXRJL2.js.map → chunk-DJDDRV36.js.map} +0 -0
- /package/client-dist/{chunk-EO3EZUUJ.js.map → chunk-EIHYMXLV.js.map} +0 -0
- /package/client-dist/{chunk-W6XVJPUX.js.map → chunk-EO3HTELG.js.map} +0 -0
- /package/client-dist/{chunk-NJZDOSTR.js.map → chunk-F77OUK5E.js.map} +0 -0
- /package/client-dist/{chunk-TBT57I7I.js.map → chunk-FT6CK74E.js.map} +0 -0
- /package/client-dist/{chunk-7LWJBGL4.js.map → chunk-FX2IX5QH.js.map} +0 -0
- /package/client-dist/{chunk-7GOR2GBC.js.map → chunk-HTKVFYOK.js.map} +0 -0
- /package/client-dist/{chunk-Y2L3PCW4.js.map → chunk-IXRSAIZI.js.map} +0 -0
- /package/client-dist/{chunk-V5NW6HMC.js.map → chunk-JB74RJ77.js.map} +0 -0
- /package/client-dist/{chunk-TRNNWPOH.js.map → chunk-JKBO6HPX.js.map} +0 -0
- /package/client-dist/{chunk-QSDRSULH.js.map → chunk-JT4QERQZ.js.map} +0 -0
- /package/client-dist/{chunk-QIJSGEFW.js.map → chunk-JU2L5GD6.js.map} +0 -0
- /package/client-dist/{chunk-NHTWNNA7.js.map → chunk-JYWGTCQS.js.map} +0 -0
- /package/client-dist/{chunk-DAHSKF6G.js.map → chunk-K4HTQXPA.js.map} +0 -0
- /package/client-dist/{chunk-X6LQ5NDB.js.map → chunk-KNFABSWN.js.map} +0 -0
- /package/client-dist/{chunk-B7U7QHU6.js.map → chunk-LFZQANWS.js.map} +0 -0
- /package/client-dist/{chunk-ECB63DP7.js.map → chunk-LUM4O4EP.js.map} +0 -0
- /package/client-dist/{chunk-Z76NRHPI.js.map → chunk-LVN7UVJS.js.map} +0 -0
- /package/client-dist/{chunk-Z3RMRSY7.js.map → chunk-NY3HJA4F.js.map} +0 -0
- /package/client-dist/{chunk-TYWRMRAZ.js.map → chunk-OJHFALFZ.js.map} +0 -0
- /package/client-dist/{chunk-IT32VCIH.js.map → chunk-OKG4QBWE.js.map} +0 -0
- /package/client-dist/{chunk-ELA6J2TW.js.map → chunk-OZWGRRQJ.js.map} +0 -0
- /package/client-dist/{chunk-ROFLYYQN.js.map → chunk-PL27V3FQ.js.map} +0 -0
- /package/client-dist/{chunk-XXCU3VRL.js.map → chunk-PMJFXD5Y.js.map} +0 -0
- /package/client-dist/{chunk-K5SBQVP3.js.map → chunk-PPKBA66S.js.map} +0 -0
- /package/client-dist/{chunk-2MUJHI5A.js.map → chunk-SOTVAGPA.js.map} +0 -0
- /package/client-dist/{chunk-H426VGC4.js.map → chunk-T4KV43VE.js.map} +0 -0
- /package/client-dist/{chunk-3SDY7S56.js.map → chunk-TSVUULFD.js.map} +0 -0
- /package/client-dist/{chunk-NRLG6DK5.js.map → chunk-U75T3UCV.js.map} +0 -0
- /package/client-dist/{chunk-O6YDDGMV.js.map → chunk-UA2X6KM6.js.map} +0 -0
- /package/client-dist/{chunk-BQSN75P4.js.map → chunk-UACFECPK.js.map} +0 -0
- /package/client-dist/{chunk-FGO677RH.js.map → chunk-UM3J2Z34.js.map} +0 -0
- /package/client-dist/{chunk-XYQGWUC4.js.map → chunk-W3DWFUQD.js.map} +0 -0
- /package/client-dist/{chunk-THHGLNFI.js.map → chunk-XAYLCDHO.js.map} +0 -0
- /package/client-dist/{chunk-TP7RKDPV.js.map → chunk-XV426GB5.js.map} +0 -0
- /package/client-dist/{chunk-LSLNEGFB.js.map → chunk-Z3BYKPE4.js.map} +0 -0
- /package/client-dist/{chunk-DTBXYUNS.js.map → chunk-ZD7RXMQQ.js.map} +0 -0
- /package/client-dist/{chunk-OF2ONF6M.js.map → chunk-ZKO4XWH5.js.map} +0 -0
- /package/client-dist/{consultant.module-E3VLLZDN.js.map → consultant.module-PYA6DSZV.js.map} +0 -0
- /package/client-dist/{crd.module-3RSUP6DI.js.map → crd.module-3YGC7EWW.js.map} +0 -0
- /package/client-dist/{dashboard.module-PYBGY56O.js.map → dashboard.module-HMCFQDZL.js.map} +0 -0
- /package/client-dist/{do.module-PD25CGC7.js.map → do.module-5YSCN5V5.js.map} +0 -0
- /package/client-dist/{document-library.module-VAFSW6G6.js.map → document-library.module-Y4EZKOAF.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-2CDS7F52.js.map → embedding-eval.module-47RTIIH5.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-IZVNOH7A.js.map → embedding-registry.module-HYQ4UJFK.js.map} +0 -0
- /package/client-dist/{err.module-3NVH4NC7.js.map → err.module-QVOUZKJ2.js.map} +0 -0
- /package/client-dist/{feedback.module-X5QXB76I.js.map → feedback.module-A3OR6GVO.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-DNDJGQ6T.js.map → host-runtime-mcp.module-5ZSU54NK.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-HFMV5IJN.js.map → live-dev-pipeline.module-EGZL6S75.js.map} +0 -0
- /package/client-dist/{logs.module-FMAQMKQG.js.map → logs.module-BHYYAZKF.js.map} +0 -0
- /package/client-dist/{main-A3GB5DKS.js.map → main-YT72UH4P.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-6X42ODCA.js.map → master-control-remote-poc.module-FYJMCGQ3.js.map} +0 -0
- /package/client-dist/{mobile-app.module-WVXOGJ44.js.map → mobile-app.module-NHPMG7QY.js.map} +0 -0
- /package/client-dist/{model-registry.module-VJWYB5V7.js.map → model-registry.module-U63UCPM5.js.map} +0 -0
- /package/client-dist/{oc.module-WMJBA6KT.js.map → oc.module-YN66ETIL.js.map} +0 -0
- /package/client-dist/{orc.module-3SBAFMI4.js.map → orc.module-SIS3R6KN.js.map} +0 -0
- /package/client-dist/{project-management.module-ATZOSRRL.js.map → project-management.module-AVROF6ET.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-M5G7A42W.js.map → project-source-routed.module-J6RM73IW.js.map} +0 -0
- /package/client-dist/{scheduler.module-EC7PAAAQ.js.map → scheduler.module-CTLPRXAO.js.map} +0 -0
- /package/client-dist/{set.module-MDPOOWNA.js.map → set.module-HXGUR23B.js.map} +0 -0
- /package/client-dist/{setup.module-T7R5ZKVW.js.map → setup.module-Z7HR42LN.js.map} +0 -0
- /package/client-dist/{terminals.module-TQNCPJ2W.js.map → terminals.module-7WK3CG5M.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-DBALDSBW.js.map → voice-notes-poc.module-DSEQIKLK.js.map} +0 -0
- /package/client-dist/{wfs.module-43UB5OI3.js.map → wfs.module-GW3M5DEY.js.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["src/app/_collections/utils/socket-url.util.ts", "src/app/_collections/display/display-string.util.ts", "src/app/_modules/session/_services/data-services/session.data-service.ts", "src/app/_modules/session/_services/api-services/ses-conversation.api-service.ts", "src/app/_modules/session/_services/api-services/session.api-service.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Socket URL számítás a GET /server/status válaszból (httpPort, socketPort).\n * Közös logika: main.ts bootstrap és reconnect flow (status refresh).\n */\n\nimport { CCAP_StatusPorts_Interface } from './socket-url.util.interface';\n\n/**\n * Socket URL util – statikus metódusokkal.\n */\nexport class SocketUrl_Util {\n /**\n * Status válaszból kiszámítja a socket URL-t.\n * Mindig same-origin (origin): dev-ben a proxy-local továbbítja 39052-re,\n * server-served HTTP (39050) esetén a socket ugyanazon a HTTP szerveren van,\n * HTTPS UI (39051) esetén a szerver /socket.io-t a belső HTTP port Engine.IO-jára proxyzza (wss).\n */\n static computeSocketUrlFromStatus(\n _data: CCAP_StatusPorts_Interface,\n origin: string,\n ): string {\n return origin;\n }\n}\n", "/**\n * Ismeretlen érték megjelenítési szöveggé alakítása.\n * Object esetén nem \"[object Object]\" hanem .message / .error / .detail vagy fallback.\n */\nexport class DisplayString_Util {\n /**\n * Ismeretlen érték megjelenítési szöveggé alakítása.\n */\n static toDisplayString(value: unknown): string {\n if (value === undefined || value === null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n if (typeof value === 'object' && value !== null) {\n const o: Record<string, unknown> = value as Record<string, unknown>;\n if (typeof o.message === 'string' && o.message.trim().length > 0) {\n return o.message.trim();\n }\n if (typeof o.error === 'string' && o.error.trim().length > 0) {\n return o.error.trim();\n }\n if (typeof o.detail === 'string' && o.detail.trim().length > 0) {\n return o.detail.trim();\n }\n }\n const s: string = String(value);\n if (s === '[object Object]') {\n return '—';\n }\n return s;\n }\n}\n", "import { effect, EffectRef, inject, Injectable, OnDestroy, signal } from '@angular/core';\n\nimport { Subject, Subscription } from 'rxjs';\n\nimport { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';\n\nimport { AC_RunExecutionMode_Type } from '@server-enums';\nimport { SocketUrl_Util } from '../../../../_collections/utils/socket-url.util';\nimport { DisplayString_Util } from '../../../../_collections/display/display-string.util';\nimport { AC_RunFlowPhase_Type } from '../../../../_enums/run-session/ccap-run-flow-phase.enum';\nimport { CCAP_SocketStatus_Type } from '../../../../_enums/ccap-socket-status.enum';\nimport { AC_LastRunSummary_Response } from '../../../../_models/interfaces/session/ccap-last-run-summary.interface';\nimport {\n CCAP_SessionListItem_Response,\n} from '../../../../_models/interfaces/session/ccap-session-list-item.interface';\nimport {\n AC_LlmDebugTraceEntry_Response,\n AC_SessionInfo_Response,\n UIn_UserInteractionRequest_Interface,\n UIn_UserInteractionResponse_Interface,\n} from '../../../../_models/server-index';\nimport {\n Ses_ArchiveScope_Type,\n Ses_ClientImageAttachment_Response,\n Ses_ClientMessage_Response,\n Ses_MessagesChunk_Response,\n} from '../api-services/conversation.api-service.interface';\nimport { Ses_Conversation_ApiService } from '../api-services/ses-conversation.api-service';\nimport { SSt_Server_ApiService } from '../../../system/_modules/system-status/_services/sst-server.api-service';\nimport { Session_ApiService } from '../api-services/session.api-service';\nimport { CCAP_Socket_ControlService } from '../../../../_services/control-services/ccap-socket.control-service';\nimport { environment } from '../../../../../environments/environment';\n\n/** Szerver event nevek (egyezzen a socket service konstansokkal). */\nconst SOCKET_EVENT_ANSWER: string = 'answer';\nconst SOCKET_EVENT_NOTIFY_USER: string = 'notify-user';\nconst SOCKET_EVENT_AGENT_EVENTS: string = 'agent-events';\nconst SOCKET_EVENT_CONTEXT_UPDATED: string = 'context:updated';\nconst SOCKET_EVENT_MONITORING_EVENT: string = 'monitoring:event';\nconst SOCKET_EVENT_USER_INTERACTION_REQUEST: string = 'user-interaction:request';\nconst SOCKET_EVENT_USER_INTERACTION_RESOLVED: string = 'user-interaction:resolved';\n\n/** NTF notification tool ID — agent-events toolId felismeréshez. */\nconst NTF_TOOL_ID: string = 'ccap_notification';\n/** Agent-events phase: notification elküldve (message típus). */\nconst NTF_PHASE_SENT: string = 'notification-sent';\n/** Agent-events phase: notification válaszra vár (interaktív típus). */\nconst NTF_PHASE_WAITING: string = 'waiting-for-user';\n\n/**\n * Session data service.\n * Session state management; real-time események a Socket Control Service event$ streamből szűrve.\n */\n@Injectable({ providedIn: 'root' })\nexport class Session_DataService implements OnDestroy {\n\n /** Session detail cache (session + lastRun) sessionId szerint. */\n private sessionDetailBySessionId: Map<\n string,\n { session: CCAP_SessionListItem_Response; lastRun: AC_LastRunSummary_Response | null }\n > = new Map();\n\n /** Session info cache sessionId szerint. */\n private sessionInfoBySessionId: Map<string, AC_SessionInfo_Response> = new Map();\n\n /** Aktív session ID (main frame WebSocket indikátor). */\n readonly activeSessionId_$ = signal<string>('');\n\n /**\n * REQ-UI-SES-MOB-AUTOCLOSE-001: bump-counter signal — explicit kérés a session-list\n * sidebar mobil-bezárására. A `ses-list` (`createNewSession` után) bumpolja, a\n * `ses-shell` effect-tel figyeli és isMobile esetén bezárja a sidebar-t. Ez kiegészíti\n * a NavigationEnd-alapú auto-close-t azokra az esetekre, ahol a route-snapshot lag\n * miatt a NavigationEnd-handler nem fut megfelelően (vagy a flow nem navigation-alapú).\n */\n readonly requestSidebarCloseOnMobileBump_$ = signal<number>(0);\n\n /** Session lista. */\n readonly sessions_$ = signal<CCAP_SessionListItem_Response[]>([]);\n\n /** Session lista betöltési hiba (null = nincs hiba); nyers error az app-ccap-error-display-nek. */\n readonly sessionsLoadError_$ = signal<unknown | null>(null);\n\n /** Session lista betöltés folyamatban (true = loading). */\n readonly sessionsLoading_$ = signal<boolean>(false);\n\n /** Archivált session lista. */\n readonly archivedSessions_$ = signal<CCAP_SessionListItem_Response[]>([]);\n\n /** Archivált session lista betöltés folyamatban (true = loading). */\n readonly archivedSessionsLoading_$ = signal<boolean>(false);\n\n /** Üzenetek (real-time chat). */\n readonly messages_$ = signal<Ses_ClientMessage_Response[]>([]);\n\n /** Üzenetek betöltés folyamatban (true = loading). */\n readonly messagesLoading_$ = signal<boolean>(false);\n\n /** Üzenetek betöltési hiba (null = nincs hiba); nyers error az app-ccap-error-display-nek. */\n readonly messagesLoadError_$ = signal<unknown | null>(null);\n\n /**\n * REQ-SES-CONTENT-CHUNK-LOAD-AND-ARCHIVE-001 Slice 3+4 — chunk-pagináció state.\n * `total`: aktív (scope-szerinti) message-count; `hasMore`: van-e még régebbi\n * szakasz; `nextBeforeIndex`: a következő prepend kursor (vagy null);\n * `isLoadingOlder`: true a backward-prepend fetch alatt (UI top-spinner);\n * `archivedTotal`: a session-ben lévő archív üzenetek száma (Slice 4 — UI\n * „Archív szakasz megnyitása\" gomb-szám).\n */\n readonly chunkState_$ = signal<{\n total: number;\n hasMore: boolean;\n nextBeforeIndex: number | null;\n isLoadingOlder: boolean;\n archivedTotal: number;\n }>({\n total: 0,\n hasMore: false,\n nextBeforeIndex: null,\n isLoadingOlder: false,\n archivedTotal: 0,\n });\n\n /** Agent event-ek (phase, status a chat status/typing-hoz). */\n readonly agentEvents_$ = signal<Record<string, unknown>>({});\n\n /**\n * Aktuális futás `runExecutionMode`-ja az utolsó analyze-result agent-event után;\n * törlődik run vége / új run init / session váltás után (run summary + chat badge).\n */\n readonly activeRunExecutionMode_$ = signal<string>('');\n\n /** Context frissítés event (real-time context panel). */\n readonly contextUpdated_$ = signal<{\n sessionId: string;\n contextState: Record<string, unknown>;\n } | null>(null);\n\n /** Monitoring event (real-time timeline); signal – backward compat, de nem elsődleges csatorna. */\n readonly monitoringEvent_$ = signal<{\n sessionId: string;\n event: Record<string, unknown>;\n } | null>(null);\n\n /**\n * Monitoring event Subject (megbízható event stream).\n * A signal-alapú monitoringEvent_$ batch-elés miatt köztes event-eket veszíthet;\n * ez a Subject minden event-et garantáltan továbbít a subscriber-eknek.\n */\n readonly monitoringEvent_S: Subject<{\n sessionId: string;\n event: Record<string, unknown>;\n }> = new Subject();\n\n /** Pending user interaction request (agent kérdez, user válaszol a UI card-on). */\n readonly pendingInteraction_$ = signal<UIn_UserInteractionRequest_Interface | null>(null);\n\n /**\n * Pending notification event az agent-events stream-ből (ccap_notification tool hívás közben).\n * A chat UI inline notification kártyát / status szöveget renderel ebből.\n * phase: 'notification-sent' (message típus, rövid flash) vagy 'waiting-for-user' (interaktív, amíg válasz jön).\n */\n readonly pendingNotification_$ = signal<{\n phase: string;\n notificationTitle: string;\n notificationType: string;\n notificationPriority: string;\n } | null>(null);\n\n /** Session detail map (cache). */\n readonly sessionDetailMap_$ = signal<\n Map<string, { session: CCAP_SessionListItem_Response; lastRun: AC_LastRunSummary_Response | null }>\n >(new Map());\n\n /** Session detail betöltés folyamatban. */\n readonly sessionDetailLoading_$ = signal<boolean>(false);\n\n /** Session info map (cache). */\n readonly sessionInfoMap_$ = signal<Map<string, AC_SessionInfo_Response>>(new Map());\n\n /** Session info betöltés folyamatban. */\n readonly sessionInfoLoading_$ = signal<boolean>(false);\n\n /** Session info betöltési hiba (null = nincs hiba). */\n readonly sessionInfoLoadError_$ = signal<unknown | null>(null);\n\n /** Utolsó betöltött LLM debug trace (Info panel). */\n readonly llmDebugTraceEntries_$ = signal<AC_LlmDebugTraceEntry_Response[]>([]);\n\n /** LLM debug trace betöltés folyamatban. */\n readonly llmDebugTraceLoading_$ = signal<boolean>(false);\n\n /** LLM debug trace betöltési hiba. */\n readonly llmDebugTraceLoadError_$ = signal<unknown | null>(null);\n\n /** Socket event$ feliratkozás (ngOnDestroy-ben lemondjuk). */\n private eventSubscription: Subscription | null = null;\n\n /** effect: reconnect után session:attach újraküldése. */\n private connectedEffectRef: EffectRef | null = null;\n\n private readonly session_AS: Session_ApiService = inject(Session_ApiService);\n private readonly conversation_AS: Ses_Conversation_ApiService =\n inject(Ses_Conversation_ApiService);\n private readonly serverStatus_AS: SSt_Server_ApiService =\n inject(SSt_Server_ApiService);\n private readonly socket_CS: CCAP_Socket_ControlService =\n inject(CCAP_Socket_ControlService);\n\n /** Csatlakozás signal (Socket Service-ből delegálva). */\n get connected_$() {\n return this.socket_CS.connected_$;\n }\n\n /** Socket státusz signal (main frame indikátor: connecting | connected | error). */\n get socketStatus_$() {\n return this.socket_CS.status_$;\n }\n\n /** Utolsó socket hiba signal (tooltip copy-hoz); nyers error. */\n get lastSocketError_$() {\n return this.socket_CS.lastError_$;\n }\n\n /** Csatlakozási kísérletek száma (connect_error-kor nő, sikeres connect-nél nullázódik). */\n get connectAttemptCount_$() {\n return this.socket_CS.connectAttemptCount_$;\n }\n\n /** Aktív kapcsolódási diagnosztika futtatása (probe: szerver API + socket.io endpoint). */\n diagnoseConnection(): Promise<Record<string, unknown>> {\n return this.socket_CS.diagnoseConnection();\n }\n\n constructor() {\n this.eventSubscription = this.socket_CS.event$.subscribe(\n (envelope: { event: string; payload: Record<string, unknown> }): void => {\n this.handleSocketEvent(envelope);\n },\n );\n this.connectedEffectRef = effect((): void => {\n if (this.socket_CS.connected_$() && this.getActiveSessionId()) {\n this.socket_CS.emit('session:attach', {\n sessionId: this.getActiveSessionId(),\n });\n }\n });\n }\n\n /**\n * Socket event kezelése: sessionId/channelId alapján szűr, majd a megfelelő subject-ekbe pushol.\n */\n private handleSocketEvent(envelope: { event: string; payload: Record<string, unknown> }): void {\n const payload: Record<string, unknown> = envelope.payload ?? {};\n const activeId: string = this.getActiveSessionId();\n const channelId: string | undefined =\n typeof payload.channelId === 'string' ? payload.channelId : undefined;\n const sessionIdFromPayload: string | undefined =\n typeof payload.sessionId === 'string' ? payload.sessionId : undefined;\n const isForActive: boolean =\n !channelId && !sessionIdFromPayload\n || channelId === activeId\n || sessionIdFromPayload === activeId;\n\n if (envelope.event === SOCKET_EVENT_ANSWER && isForActive) {\n const content: string = typeof payload.content === 'string' ? payload.content : '';\n const timestamp: string =\n typeof payload.timestamp === 'string' ? payload.timestamp : new Date().toISOString();\n const runId: string | undefined =\n typeof payload.runId === 'string' ? payload.runId : undefined;\n const base: Ses_ClientMessage_Response = {\n role: 'assistant',\n content: content,\n timestamp: new Date(timestamp),\n };\n const withRun: Ses_ClientMessage_Response = runId\n ? { ...base, runId: runId }\n : base;\n const stamped: Ses_ClientMessage_Response = this.ensureClientListKey(withRun);\n this.messages_$.set([...this.messages_$(), stamped]);\n return;\n }\n\n if (envelope.event === SOCKET_EVENT_NOTIFY_USER && isForActive) {\n const content: string = typeof payload.content === 'string' ? payload.content : '';\n DyFM_Log.info(\n `CCAP_SessionDS | notify-user received: ${content.substring(0, 120)}…`,\n );\n const stamped: Ses_ClientMessage_Response = this.ensureClientListKey({\n role: 'system',\n content: content,\n timestamp: new Date(),\n });\n this.messages_$.set([...this.messages_$(), stamped]);\n return;\n }\n\n if (envelope.event === SOCKET_EVENT_AGENT_EVENTS) {\n const eventData: Record<string, unknown> =\n (typeof payload.eventData === 'object' && payload.eventData !== null)\n ? (payload.eventData as Record<string, unknown>)\n : {};\n this.agentEvents_$.set(eventData);\n this.applyAgentEventRunExecutionModeLatch(eventData);\n\n // NTF notification tool hívás felismerése az agent-events stream-ből\n const toolId: string = typeof eventData.toolId === 'string' ? eventData.toolId : '';\n const eventPhase: string = typeof eventData.phase === 'string' ? eventData.phase : '';\n if (toolId === NTF_TOOL_ID\n && (eventPhase === NTF_PHASE_SENT || eventPhase === NTF_PHASE_WAITING)) {\n this.pendingNotification_$.set({\n phase: eventPhase,\n notificationTitle: typeof eventData.notificationTitle === 'string'\n ? eventData.notificationTitle : '',\n notificationType: typeof eventData.notificationType === 'string'\n ? eventData.notificationType : '',\n notificationPriority: typeof eventData.notificationPriority === 'string'\n ? eventData.notificationPriority : 'info',\n });\n } else if (this.pendingNotification_$()) {\n // Bármely más agent-event törli a pending notification-t (a tool befejeződött)\n this.pendingNotification_$.set(null);\n }\n\n const toolErrorContent: unknown = eventData.toolError;\n const chId: string | undefined =\n channelId ?? (eventData.channelId as string | undefined);\n const isForThisSession: boolean = !chId || chId === activeId;\n const toolErrorStr: string = DisplayString_Util.toDisplayString(toolErrorContent).trim();\n if (toolErrorStr.length > 0 && isForThisSession) {\n DyFM_Log.info(\n `CCAP_SessionDS | toolError from agent-events, pushing to chat: ${toolErrorStr.substring(0, 80)}…`,\n );\n const stamped: Ses_ClientMessage_Response = this.ensureClientListKey({\n role: 'system',\n content: toolErrorStr,\n timestamp: new Date(),\n });\n this.messages_$.set([...this.messages_$(), stamped]);\n }\n return;\n }\n\n if (envelope.event === SOCKET_EVENT_CONTEXT_UPDATED) {\n const sid: string =\n typeof payload.sessionId === 'string' ? payload.sessionId : '';\n const contextState: Record<string, unknown> =\n (typeof payload.contextState === 'object' && payload.contextState !== null)\n ? (payload.contextState as Record<string, unknown>)\n : {};\n this.contextUpdated_$.set({\n sessionId: sid,\n contextState: contextState,\n });\n return;\n }\n\n if (envelope.event === SOCKET_EVENT_MONITORING_EVENT) {\n const sid: string =\n typeof payload.sessionId === 'string' ? payload.sessionId : '';\n const ev: Record<string, unknown> =\n (typeof payload.event === 'object' && payload.event !== null)\n ? (payload.event as Record<string, unknown>)\n : {};\n const monitoringPayload: { sessionId: string; event: Record<string, unknown> } = {\n sessionId: sid,\n event: ev,\n };\n this.monitoringEvent_$.set(monitoringPayload);\n this.monitoringEvent_S.next(monitoringPayload);\n return;\n }\n\n if (envelope.event === SOCKET_EVENT_USER_INTERACTION_REQUEST && isForActive) {\n this.pendingInteraction_$.set(payload as unknown as UIn_UserInteractionRequest_Interface);\n return;\n }\n\n // User interaction resolved (bármely csatornáról érkező válasz) → inline card eltüntetése\n if (envelope.event === SOCKET_EVENT_USER_INTERACTION_RESOLVED && isForActive) {\n const resolvedId: string | undefined =\n typeof (payload as Record<string, unknown>).interactionId === 'string'\n ? (payload as Record<string, unknown>).interactionId as string\n : undefined;\n if (!resolvedId) {\n return;\n }\n const current: UIn_UserInteractionRequest_Interface | null = this.pendingInteraction_$();\n if (current?.interactionId === resolvedId) {\n this.pendingInteraction_$.set(null);\n }\n return;\n }\n }\n\n /**\n * Session lista frissítése a server-ről.\n * Hiba esetén sessionsLoadError$ értesül, hogy a UI megkülönböztesse az üres listát a hibától.\n * @returns A betöltött session lista (sikeres betöltésnél), hibánál üres tömb.\n */\n async loadSessions(): Promise<CCAP_SessionListItem_Response[]> {\n this.sessionsLoading_$.set(true);\n try {\n this.sessionsLoadError_$.set(null);\n\n const response = await this.session_AS.listSessions();\n\n this.sessions_$.set(response.sessions);\n return response.sessions;\n } catch (error: unknown) {\n DyFM_Error.logSimple('CCAP_SessionDS | Failed to load sessions', error);\n\n this.sessionsLoadError_$.set(error);\n return [];\n } finally {\n this.sessionsLoading_$.set(false);\n }\n }\n\n /**\n * Új session létrehozása (web UI \"New session\" gomb).\n * Létrehozza a session-t, frissíti a listát, visszaadja az új session-t.\n */\n async createSession(params?: { name?: string }): Promise<CCAP_SessionListItem_Response> {\n const response = await this.session_AS.createSession(params);\n\n await this.loadSessions();\n\n return response.session;\n }\n\n /**\n * Session másolása (conversation fork).\n * Új session-t hoz létre a forrás session összes conversation üzenetével.\n */\n async copySession(params: {\n sessionId: string;\n name?: string;\n }): Promise<CCAP_SessionListItem_Response> {\n const response = await this.session_AS.copySession(params);\n\n await this.loadSessions();\n\n return response.session;\n }\n\n /**\n * REQ-SES-FORK-001 Slice 2: session fork — új session a forrás üzeneteivel a megadott\n * `forkUntilMessageKey`-ig (inclusive). Ismeretlen key esetén a szerver `CCAP-SES-FORK-NF`\n * `DyFM_Error`-t ad vissza; a hívó komponens kezeli (pl. toast + popup bezárás).\n */\n async forkSession(params: {\n sessionId: string;\n forkUntilMessageKey: string;\n name?: string;\n }): Promise<CCAP_SessionListItem_Response> {\n const response = await this.session_AS.copySession({\n sessionId: params.sessionId,\n name: params.name,\n forkUntilMessageKey: params.forkUntilMessageKey,\n });\n\n await this.loadSessions();\n\n return response.session;\n }\n\n /**\n * Archivált session-ek betöltése (\"Archiváltak betöltése\" gomb).\n * Az eredmény az archivedSessions$-on keresztül érhető el.\n */\n async loadArchivedSessions(): Promise<CCAP_SessionListItem_Response[]> {\n this.archivedSessionsLoading_$.set(true);\n try {\n const response = await this.session_AS.listArchivedSessions();\n\n this.archivedSessions_$.set(response.sessions);\n return response.sessions;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load archived sessions',\n error,\n );\n\n this.archivedSessions_$.set([]);\n return [];\n } finally {\n this.archivedSessionsLoading_$.set(false);\n }\n }\n\n /**\n * Aktív session beállítása; session:attach küldése a Socket Service-en (ha csatlakozva van).\n * Session váltáskor az üzenetek törlődnek.\n * Ugyanarra az id-re második hívás (pl. effect dupla futás dev-ben) nem törli a chatet.\n */\n setActiveSession(sessionId: string): void {\n const previousId: string = this.activeSessionId_$();\n if (previousId !== sessionId) {\n this.activeSessionId_$.set(sessionId);\n this.clearMessages();\n this.pendingInteraction_$.set(null);\n this.activeRunExecutionMode_$.set('');\n }\n this.socket_CS.emit('session:attach', { sessionId: sessionId });\n }\n\n /**\n * Aktív session ID lekérdezése.\n */\n getActiveSessionId(): string {\n return this.activeSessionId_$();\n }\n\n /**\n * WebSocket újracsatlakozás (main frame indikátor kattintás).\n * Először status refresh: ha a socketUrl megváltozott (pl. szerver most lett elérhető), lap újratöltés;\n * különben csak socket reconnect.\n */\n async reconnectSocket(): Promise<void> {\n try {\n const status = await this.serverStatus_AS.getStatus();\n const origin: string =\n typeof window !== 'undefined' ? window.location.origin : '';\n const newSocketUrl: string = SocketUrl_Util.computeSocketUrlFromStatus(\n { httpPort: status.httpPort, socketPort: status.socketPort },\n origin,\n );\n const currentSocketUrl: string = environment.socketUrl ?? origin;\n if (newSocketUrl !== currentSocketUrl && typeof window !== 'undefined') {\n environment.socketUrl = newSocketUrl;\n DyFM_Log.info(\n 'CCAP_SessionDS | socketUrl changed on reconnect, reloading',\n newSocketUrl,\n );\n window.location.reload();\n return;\n }\n } catch {\n // Status fetch fail: csak socket reconnect (ugyanarra a címre).\n }\n this.socket_CS.reconnect();\n }\n\n /**\n * Futó execution leállítása (stop gomb).\n * Jelzi a szervernek, hogy a jelenlegi agentic loop-ot le kell állítani.\n */\n async stopExecution(sessionId: string): Promise<boolean> {\n try {\n const result: { success: boolean } =\n await this.session_AS.stopExecution(sessionId);\n return result.success;\n } catch (err: unknown) {\n DyFM_Error.logSimple('CCAP_Session_DS | stopExecution failed', err);\n return false;\n }\n }\n\n /**\n * Üzenet küldése REST API-n keresztül (POST /session/:id/messages).\n * A valós idejű válaszok (answer, notify-user, agent-events, stb.) továbbra is a WebSocketon érkeznek.\n * Ha a content \"/new\", új session-t hoz létre (REST) és visszaadja; különben az üzenet a REST végpontra megy.\n * Ha nincs sessionId vagy az API hiba, sent: false; a komponens jelezheti és megőrizheti a szöveget (opcionális error szöveg).\n */\n async sendMessageViaSocket(\n content: string,\n imageAttachments?: Ses_ClientImageAttachment_Response[],\n ): Promise<{\n newSession?: CCAP_SessionListItem_Response;\n sent: boolean;\n error?: string;\n }> {\n const trimmed: string = content.trim();\n if (trimmed === '/new') {\n const newSession: CCAP_SessionListItem_Response = await this.createSession();\n return { newSession: newSession, sent: true };\n }\n\n const sessionId: string = this.activeSessionId_$();\n if (!sessionId) {\n return { sent: false };\n }\n\n const hasImages: boolean = (imageAttachments?.length ?? 0) > 0;\n if (!trimmed.length && !hasImages) {\n return { sent: false };\n }\n\n // Optimista megjelenítés: a user üzenete azonnal megjelenik a chatben, mielőtt a REST hívás megtörténne.\n // Így a felhasználó azonnal látja a saját üzenetét, miközben a run elindul.\n const optimisticMsg: Ses_ClientMessage_Response = {\n role: 'user',\n content: content,\n timestamp: new Date(),\n };\n const optimisticStamped: Ses_ClientMessage_Response =\n this.ensureClientListKey(optimisticMsg);\n this.messages_$.set([...this.messages_$(), optimisticStamped]);\n\n try {\n const response = await this.conversation_AS.sendMessage({\n sessionId: sessionId,\n content: content,\n imageAttachments: imageAttachments,\n });\n\n // REST válasz után frissítjük az optimista üzenetet a szerver által adott mezőkkel (messageKey, hasTtsAudio).\n const serverMsg: Ses_ClientMessage_Response = response.message;\n const updatedMessages: Ses_ClientMessage_Response[] = this.messages_$().map(\n (msg: Ses_ClientMessage_Response): Ses_ClientMessage_Response => {\n if (msg.clientListKey !== optimisticStamped.clientListKey) {\n return msg;\n }\n const merged: Ses_ClientMessage_Response = { ...msg };\n if (serverMsg.messageKey) {\n merged.messageKey = serverMsg.messageKey;\n }\n if (serverMsg.hasTtsAudio !== undefined) {\n merged.hasTtsAudio = serverMsg.hasTtsAudio;\n }\n return merged;\n },\n );\n this.messages_$.set(updatedMessages);\n return { sent: true };\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to send message via REST',\n error,\n );\n\n // Hiba esetén eltávolítjuk az optimista üzenetet a chatből\n const rolledBack: Ses_ClientMessage_Response[] = this.messages_$().filter(\n (msg: Ses_ClientMessage_Response): boolean =>\n msg.clientListKey !== optimisticStamped.clientListKey,\n );\n this.messages_$.set(rolledBack);\n\n const errorMessage: string =\n error instanceof Error ? error.message : 'Üzenet küldése sikertelen.';\n return { sent: false, error: errorMessage };\n }\n }\n\n /**\n * Üzenet küldése egy tetszőleges CCAP Session-be REST API-n keresztül (POST /session/:id/messages).\n * Nem frissít lokális chat állapotot — kívülről (pl. Quick Input) hívható.\n */\n async sendMessageToSession(params: { sessionId: string; content: string }): Promise<void> {\n await this.conversation_AS.sendMessage({\n sessionId: params.sessionId,\n content: params.content,\n });\n }\n\n /**\n * User interaction válasz küldése a szerverre Socket.io-n keresztül.\n * Törli a pending interaction signal-t.\n */\n sendInteractionResponse(response: UIn_UserInteractionResponse_Interface): void {\n this.socket_CS.emit('user-interaction:response', response as unknown as Record<string, unknown>);\n this.pendingInteraction_$.set(null);\n }\n\n /**\n * Üzenetek törlése (session váltáskor). A chunk-state-et is reset-eli.\n */\n clearMessages(): void {\n this.messages_$.set([]);\n this.chunkState_$.set({\n total: 0,\n hasMore: false,\n nextBeforeIndex: null,\n isLoadingOlder: false,\n archivedTotal: 0,\n });\n }\n\n /**\n * Üzenetek beállítása (pl. API-ból betöltött kezdeti üzenetek a chat single source of truth-hoz).\n */\n setMessages(messages: Ses_ClientMessage_Response[]): void {\n const raw: Ses_ClientMessage_Response[] = messages ?? [];\n const stamped: Ses_ClientMessage_Response[] = raw.map(\n (m: Ses_ClientMessage_Response): Ses_ClientMessage_Response =>\n this.ensureClientListKey(m),\n );\n this.messages_$.set(stamped);\n }\n\n /**\n * Stabil lista-track kulcs: meglévő clientListKey, különben messageKey (API), különben UUID.\n */\n private ensureClientListKey(\n msg: Ses_ClientMessage_Response,\n ): Ses_ClientMessage_Response {\n const kept: string | undefined = msg.clientListKey?.trim();\n if (kept?.length) {\n return msg;\n }\n const fromTts: string | undefined = msg.messageKey?.trim();\n if (fromTts?.length) {\n return { ...msg, clientListKey: fromTts };\n }\n return { ...msg, clientListKey: globalThis.crypto.randomUUID() };\n }\n\n /**\n * Egy üzenet TTS cache jelölése: a messageKey-hez tartozó üzenetnél hasTtsAudio = true.\n * A message bubble így audio lejátszót jelenít meg a következő render-nél.\n */\n setMessageTtsCached(messageKey: string): void {\n const current: Ses_ClientMessage_Response[] = this.messages_$();\n const updated: Ses_ClientMessage_Response[] = current.map(\n (msg: Ses_ClientMessage_Response): Ses_ClientMessage_Response =>\n msg.messageKey === messageKey\n ? { ...msg, hasTtsAudio: true }\n : msg,\n );\n this.messages_$.set(updated);\n }\n\n /**\n * Üzenetek betöltése (mindig teljes lista – conversationFull); ha aktív session, setMessages.\n * Chat komponens ezt hívja; navigáció után cache nem kell, mert messages$ az aktív session-é.\n */\n async loadMessagesForView(sessionId: string): Promise<Ses_ClientMessage_Response[]> {\n this.messagesLoading_$.set(true);\n this.messagesLoadError_$.set(null);\n try {\n const response = await this.conversation_AS.getMessages({\n sessionId: sessionId,\n viewMode: 'conversationFull',\n });\n const messages: Ses_ClientMessage_Response[] = response.messages ?? [];\n if (sessionId === this.activeSessionId_$()) {\n this.setMessages(messages);\n }\n return messages;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load messages for view',\n error,\n );\n this.messagesLoadError_$.set(error);\n return [];\n } finally {\n this.messagesLoading_$.set(false);\n }\n }\n\n /**\n * REQ-SES-CONTENT-CHUNK-LOAD-AND-ARCHIVE-001 Slice 3 — initial-chunk fetch:\n * a session megnyitásakor csak az utolsó N üzenetet hozza (default 50)\n * a tail-en. A chunk-state-et a válasz alapján beállítja.\n *\n * `messages_$`-t replace-eli (nem prepend), hogy a régi session üzenetek\n * ne ragadjanak benne. Ha a session közben nem aktív, a state nem változik.\n */\n async loadInitialChunk(params: {\n sessionId: string;\n viewMode?: string;\n limit?: number;\n archiveScope?: Ses_ArchiveScope_Type;\n }): Promise<Ses_MessagesChunk_Response | null> {\n this.messagesLoading_$.set(true);\n this.messagesLoadError_$.set(null);\n try {\n const response: Ses_MessagesChunk_Response =\n await this.conversation_AS.getMessagesChunked({\n sessionId: params.sessionId,\n viewMode: params.viewMode ?? 'conversationFull',\n latest: true,\n limit: params.limit ?? 50,\n archiveScope: params.archiveScope,\n });\n if (params.sessionId === this.activeSessionId_$()) {\n this.setMessages(response.messages ?? []);\n this.chunkState_$.set({\n total: response.total,\n hasMore: response.hasMore,\n nextBeforeIndex: response.nextBeforeIndex,\n isLoadingOlder: false,\n archivedTotal: response.archivedTotal,\n });\n }\n return response;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load initial chunk',\n error,\n );\n this.messagesLoadError_$.set(error);\n return null;\n } finally {\n this.messagesLoading_$.set(false);\n }\n }\n\n /**\n * REQ-SES-CONTENT-CHUNK-LOAD-AND-ARCHIVE-001 Slice 3 — backward-prepend:\n * a `chunkState_$().nextBeforeIndex` cursor alapján a régebbi szeletet\n * prepend-eli a `messages_$` elejére. Ha `hasMore=false` vagy már fut egy\n * fetch (`isLoadingOlder`), no-op.\n */\n async loadOlderChunk(params: {\n sessionId: string;\n viewMode?: string;\n limit?: number;\n archiveScope?: Ses_ArchiveScope_Type;\n }): Promise<Ses_MessagesChunk_Response | null> {\n const state = this.chunkState_$();\n if (!state.hasMore || state.nextBeforeIndex == null || state.isLoadingOlder) {\n return null;\n }\n this.chunkState_$.set({ ...state, isLoadingOlder: true });\n try {\n const response: Ses_MessagesChunk_Response =\n await this.conversation_AS.getMessagesChunked({\n sessionId: params.sessionId,\n viewMode: params.viewMode ?? 'conversationFull',\n beforeIndex: state.nextBeforeIndex,\n limit: params.limit ?? 50,\n archiveScope: params.archiveScope,\n });\n if (params.sessionId === this.activeSessionId_$()) {\n const older: Ses_ClientMessage_Response[] = (response.messages ?? []).map(\n (m: Ses_ClientMessage_Response): Ses_ClientMessage_Response =>\n this.ensureClientListKey(m),\n );\n this.messages_$.set([...older, ...this.messages_$()]);\n this.chunkState_$.set({\n total: response.total,\n hasMore: response.hasMore,\n nextBeforeIndex: response.nextBeforeIndex,\n isLoadingOlder: false,\n archivedTotal: response.archivedTotal,\n });\n } else {\n this.chunkState_$.set({ ...state, isLoadingOlder: false });\n }\n return response;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load older chunk',\n error,\n );\n this.messagesLoadError_$.set(error);\n this.chunkState_$.set({ ...state, isLoadingOlder: false });\n return null;\n }\n }\n\n /**\n * Session detail (session + lastRun) betöltése; cache-be mentés.\n */\n async loadSessionDetail(sessionId: string): Promise<{\n session: CCAP_SessionListItem_Response;\n lastRun: AC_LastRunSummary_Response | null;\n } | null> {\n if (!sessionId) {\n return null;\n }\n this.sessionDetailLoading_$.set(true);\n try {\n const response = await this.session_AS.getSession(sessionId);\n const entry: {\n session: CCAP_SessionListItem_Response;\n lastRun: AC_LastRunSummary_Response | null;\n } = {\n session: response.session,\n lastRun: response.lastRun ?? null,\n };\n this.sessionDetailBySessionId.set(sessionId, entry);\n this.sessionDetailMap_$.set(new Map(this.sessionDetailBySessionId));\n return entry;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load session detail',\n error,\n );\n return null;\n } finally {\n this.sessionDetailLoading_$.set(false);\n }\n }\n\n /**\n * Cachelt session detail lekérdezése (sync).\n */\n getCachedSessionDetail(sessionId: string): {\n session: CCAP_SessionListItem_Response;\n lastRun: AC_LastRunSummary_Response | null;\n } | null {\n return this.sessionDetailBySessionId.get(sessionId) ?? null;\n }\n\n /**\n * Session info betöltése; cache-be mentés.\n */\n async loadSessionInfo(sessionId: string): Promise<AC_SessionInfo_Response | null> {\n if (!sessionId) {\n return null;\n }\n this.sessionInfoLoading_$.set(true);\n this.sessionInfoLoadError_$.set(null);\n try {\n const response: AC_SessionInfo_Response =\n await this.session_AS.getSessionInfo(sessionId);\n this.sessionInfoBySessionId.set(sessionId, response);\n this.sessionInfoMap_$.set(new Map(this.sessionInfoBySessionId));\n return response;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load session info',\n error,\n );\n this.sessionInfoLoadError_$.set(error);\n return null;\n } finally {\n this.sessionInfoLoading_$.set(false);\n }\n }\n\n /**\n * Cachelt session info lekérdezése (sync).\n */\n getCachedSessionInfo(sessionId: string): AC_SessionInfo_Response | null {\n return this.sessionInfoBySessionId.get(sessionId) ?? null;\n }\n\n /**\n * LLM debug trace bejegyzések lekérése egy run-hoz — nincs globális signal írás (több run trace blokk párhuzamosan).\n */\n async fetchLlmDebugTraceEntriesForRun(params: {\n sessionId: string;\n runId: string;\n }): Promise<AC_LlmDebugTraceEntry_Response[]> {\n const sid: string = params.sessionId?.trim() ?? '';\n const rid: string = params.runId?.trim() ?? '';\n if (!sid || !rid) {\n return [];\n }\n try {\n const response: { entries: AC_LlmDebugTraceEntry_Response[] } =\n await this.session_AS.getLlmDebugTrace({\n sessionId: sid,\n runId: rid,\n });\n return response.entries ?? [];\n } catch {\n return [];\n }\n }\n\n /**\n * LLM debug trace lista betöltése session + run alapján (MongoDB trace tábla).\n */\n async loadLlmDebugTrace(params: {\n sessionId: string;\n runId: string;\n }): Promise<void> {\n const sid: string = params.sessionId?.trim() ?? '';\n const rid: string = params.runId?.trim() ?? '';\n\n if (!sid || !rid) {\n this.llmDebugTraceEntries_$.set([]);\n return;\n }\n\n this.llmDebugTraceLoading_$.set(true);\n this.llmDebugTraceLoadError_$.set(null);\n\n try {\n const response: { entries: AC_LlmDebugTraceEntry_Response[] } =\n await this.session_AS.getLlmDebugTrace({\n sessionId: sid,\n runId: rid,\n });\n this.llmDebugTraceEntries_$.set(response.entries);\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to load LLM debug trace',\n error,\n );\n this.llmDebugTraceLoadError_$.set(error);\n this.llmDebugTraceEntries_$.set([]);\n } finally {\n this.llmDebugTraceLoading_$.set(false);\n }\n }\n\n /**\n * Session frissítése (pl. archive / de-archive); API hívás után lista frissítése.\n * Archive állapotváltáskor mindkét lista reload (aktív + archivált szekció szinkron).\n */\n async updateSession(params: {\n sessionId: string;\n updates: Record<string, unknown>;\n }): Promise<CCAP_SessionListItem_Response | null> {\n try {\n const response = await this.session_AS.updateSession(params);\n const archived: unknown = params.updates.archived;\n if (archived === true || archived === false) {\n await this.loadSessions();\n await this.loadArchivedSessions();\n } else {\n await this.loadSessions();\n }\n return response.session;\n } catch (error: unknown) {\n DyFM_Error.logSimple(\n 'CCAP_SessionDS | Failed to update session',\n error,\n );\n return null;\n }\n }\n\n /**\n * Agent-events alapján `activeRunExecutionMode_$` latch frissítése.\n */\n private applyAgentEventRunExecutionModeLatch(eventData: Record<string, unknown>): void {\n const phaseRaw: unknown = eventData.phase;\n const phaseStr: string = typeof phaseRaw === 'string' ? phaseRaw.trim() : '';\n if (phaseStr === AC_RunFlowPhase_Type.analyzeResult) {\n const modeRaw: unknown = eventData.runExecutionMode;\n if (typeof modeRaw === 'string' && modeRaw.trim() !== '') {\n const normalized: string | undefined =\n Session_DataService.normalizeRunExecutionModeSocketValue(modeRaw);\n if (normalized !== undefined) {\n this.activeRunExecutionMode_$.set(normalized);\n }\n }\n return;\n }\n if (\n phaseStr === AC_RunFlowPhase_Type.runFlowComplete\n || phaseStr === AC_RunFlowPhase_Type.runInitialization\n ) {\n this.activeRunExecutionMode_$.set('');\n }\n }\n\n /**\n * Socket `runExecutionMode` érték whitelist; ismeretlen string → undefined.\n */\n private static normalizeRunExecutionModeSocketValue(raw: string): string | undefined {\n const trimmed: string = raw.trim();\n const known: AC_RunExecutionMode_Type[] = [\n AC_RunExecutionMode_Type.instant,\n AC_RunExecutionMode_Type.agenticAny,\n AC_RunExecutionMode_Type.ask,\n AC_RunExecutionMode_Type.plan,\n ];\n for (const v of known) {\n if (trimmed === v) {\n return v;\n }\n }\n return undefined;\n }\n\n ngOnDestroy(): void {\n this.monitoringEvent_S.complete();\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n this.eventSubscription = null;\n }\n if (this.connectedEffectRef) {\n this.connectedEffectRef.destroy();\n this.connectedEffectRef = null;\n }\n }\n}\n", "import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { environment } from '../../../../../environments/environment';\nimport {\n Ses_ArchiveScope_Type,\n Ses_ClientImageAttachment_Response,\n Ses_ClientMessage_Response,\n Ses_MessagesChunk_Response,\n} from './conversation.api-service.interface';\n\n/**\n * Conversation API service.\n * HTTP hívások a server conversation endpoint-jaira.\n */\n@Injectable({ providedIn: 'root' })\nexport class Ses_Conversation_ApiService {\n\n /** API base URL. */\n private baseUrl: string = `${environment.api.baseUrl}/session`;\n\n private readonly http: HttpClient = inject(HttpClient);\n\n /**\n * Üzenetek lekérdezése viewMode alapján.\n */\n getMessages(params: {\n sessionId: string;\n viewMode: string;\n }): Promise<{\n messages: Ses_ClientMessage_Response[];\n }> {\n return firstValueFrom(\n this.http.get<{\n messages: Ses_ClientMessage_Response[];\n }>(\n `${this.baseUrl}/${params.sessionId}/messages`,\n { params: { viewMode: params.viewMode } },\n ),\n );\n }\n\n /**\n * REQ-SES-CONTENT-CHUNK-LOAD-AND-ARCHIVE-001 Slice 3 — chunk-fetch a CCAP\n * Session-en. `latest=true` boot-strap-re az utolsó N üzenetet kéri,\n * `beforeIndex` paraméterrel a régebbi szeletet (backward prepend).\n */\n getMessagesChunked(params: {\n sessionId: string;\n viewMode: string;\n beforeIndex?: number;\n limit?: number;\n latest?: boolean;\n archiveScope?: Ses_ArchiveScope_Type;\n }): Promise<Ses_MessagesChunk_Response> {\n const httpParams: Record<string, string> = {\n viewMode: params.viewMode,\n };\n if (params.beforeIndex != null) {\n httpParams['beforeIndex'] = String(params.beforeIndex);\n }\n if (params.limit != null) {\n httpParams['limit'] = String(params.limit);\n }\n if (params.latest) {\n httpParams['latest'] = '1';\n }\n if (params.archiveScope) {\n httpParams['archiveScope'] = params.archiveScope;\n }\n return firstValueFrom(\n this.http.get<Ses_MessagesChunk_Response>(\n `${this.baseUrl}/${params.sessionId}/messages/chunk`,\n { params: httpParams },\n ),\n );\n }\n\n /**\n * Új üzenet küldése.\n */\n sendMessage(params: {\n sessionId: string;\n content: string;\n imageAttachments?: Ses_ClientImageAttachment_Response[];\n }): Promise<{\n message: Ses_ClientMessage_Response;\n }> {\n return firstValueFrom(\n this.http.post<{\n message: Ses_ClientMessage_Response;\n }>(\n `${this.baseUrl}/${params.sessionId}/messages`,\n {\n content: params.content,\n imageAttachments: params.imageAttachments,\n },\n ),\n );\n }\n}\n", "import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { environment } from '../../../../../environments/environment';\nimport { AC_LastRunSummary_Response } from '../../../../_models/interfaces/session/ccap-last-run-summary.interface';\nimport {\n AC_LlmDebugTraceEntry_Response,\n AC_SessionInfo_Response,\n} from '../../../../_models/server-index';\nimport {\n CCAP_SessionListItem_Response,\n} from '../../../../_models/interfaces/session/ccap-session-list-item.interface';\nimport { ExS_InstanceContext_DataService } from '../../../external-sessions/_services/exs-instance-context.data-service';\n\n/**\n * Session API service.\n * HTTP hívások a server session endpoint-jaira.\n * Minden hívás `?ccapId=<active>` paramot küld (REQ-PEI-016) —\n * a ccapId forrása az instance-szelektor (`ExS_InstanceContext_DataService.activeCcapId_$`).\n */\n@Injectable({ providedIn: 'root' })\nexport class Session_ApiService {\n\n /** API base URL. */\n private baseUrl: string = `${environment.api.baseUrl}/session`;\n\n private readonly http: HttpClient = inject(HttpClient);\n\n private readonly peiContext_DS: ExS_InstanceContext_DataService =\n inject(ExS_InstanceContext_DataService);\n\n /**\n * Aktuális ccapId — az instance-szelektor értékéből (REQ-PEI-016).\n */\n private currentCcapId(): string {\n return this.peiContext_DS.activeCcapId_$();\n }\n\n /**\n * ccapId hozzáfűzése HttpParams-hoz.\n */\n private withCcapId(params: HttpParams): HttpParams {\n const ccapId: string = this.currentCcapId();\n if (!ccapId) {\n return params;\n }\n return params.set('ccapId', ccapId);\n }\n\n /**\n * Session lista lekérdezése (csak nem archivált session-ök).\n */\n listSessions(): Promise<{\n sessions: CCAP_SessionListItem_Response[];\n }> {\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.get<{\n sessions: CCAP_SessionListItem_Response[];\n }>(this.baseUrl, { params: httpParams }),\n );\n }\n\n /**\n * Archivált session-ek lekérdezése.\n */\n listArchivedSessions(): Promise<{\n sessions: CCAP_SessionListItem_Response[];\n }> {\n let httpParams: HttpParams = this.withCcapId(new HttpParams());\n httpParams = httpParams.set('archived', 'true');\n return firstValueFrom(\n this.http.get<{\n sessions: CCAP_SessionListItem_Response[];\n }>(this.baseUrl, { params: httpParams }),\n );\n }\n\n /**\n * Új session létrehozása (web UI \"New session\" gomb).\n * Opcionális `name`: kezdő lista-név (pl. Quick Input Send to session → új CCAP Session).\n */\n createSession(params?: { name?: string }): Promise<{\n session: CCAP_SessionListItem_Response;\n }> {\n const body: { name?: string } = {};\n const trimmedName: string | undefined =\n params?.name !== undefined ? params.name.trim() : undefined;\n if (trimmedName !== undefined && trimmedName.length > 0) {\n body.name = trimmedName;\n }\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.post<{\n session: CCAP_SessionListItem_Response;\n }>(this.baseUrl, body, { params: httpParams }),\n );\n }\n\n /**\n * Session detail lekérdezése (session + opcionális lastRun intent/goal/summary).\n */\n getSession(sessionId: string): Promise<{\n session: CCAP_SessionListItem_Response;\n lastRun?: AC_LastRunSummary_Response;\n }> {\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.get<{\n session: CCAP_SessionListItem_Response;\n lastRun?: AC_LastRunSummary_Response;\n }>(`${this.baseUrl}/${sessionId}`, { params: httpParams }),\n );\n }\n\n /**\n * Session frissítése (név, státusz).\n */\n updateSession(params: {\n sessionId: string;\n updates: Record<string, unknown>;\n }): Promise<{\n session: CCAP_SessionListItem_Response;\n }> {\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.patch<{\n session: CCAP_SessionListItem_Response;\n }>(\n `${this.baseUrl}/${params.sessionId}`,\n params.updates,\n { params: httpParams },\n ),\n );\n }\n\n /**\n * Session info lekérdezése (used inputs, used elements, full active context).\n */\n getSessionInfo(sessionId: string): Promise<AC_SessionInfo_Response> {\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.get<AC_SessionInfo_Response>(\n `${this.baseUrl}/${sessionId}/session-info`,\n { params: httpParams },\n ),\n );\n }\n\n /**\n * Session másolása — teljes history vagy fork a megadott `forkUntilMessageKey`-ig (REQ-SES-FORK-001).\n * `forkUntilMessageKey` hiányában a szerver változatlan copy-t csinál (az összes üzenettel).\n */\n copySession(params: {\n sessionId: string;\n name?: string;\n forkUntilMessageKey?: string;\n }): Promise<{ session: CCAP_SessionListItem_Response }> {\n const body: Record<string, unknown> = {};\n if (params.name) {\n body.name = params.name;\n }\n if (params.forkUntilMessageKey) {\n body.forkUntilMessageKey = params.forkUntilMessageKey;\n }\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.post<{ session: CCAP_SessionListItem_Response }>(\n `${this.baseUrl}/${params.sessionId}/copy`,\n body,\n { params: httpParams },\n ),\n );\n }\n\n /**\n * Futó execution leállítása (stop gomb).\n */\n stopExecution(sessionId: string): Promise<{ success: boolean }> {\n const httpParams: HttpParams = this.withCcapId(new HttpParams());\n return firstValueFrom(\n this.http.post<{ success: boolean }>(\n `${this.baseUrl}/${sessionId}/stop-execution`,\n {},\n { params: httpParams },\n ),\n );\n }\n\n /**\n * LLM debug trace bejegyzések egy session + run kombinációhoz (Info panel).\n */\n getLlmDebugTrace(params: {\n sessionId: string;\n runId: string;\n }): Promise<{ entries: AC_LlmDebugTraceEntry_Response[] }> {\n let httpParams: HttpParams = this.withCcapId(new HttpParams());\n httpParams = httpParams.set('runId', params.runId);\n return firstValueFrom(\n this.http.get<{ entries: AC_LlmDebugTraceEntry_Response[] }>(\n `${this.baseUrl}/${params.sessionId}/llm-debug-trace`,\n { params: httpParams },\n ),\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "+UAUM,IAAOA,EAAP,KAAqB,CAOzB,OAAOC,2BACLC,EACAC,EAAc,CAEd,OAAOA,CACT,GClBI,IAAOC,EAAP,KAAyB,CAI7B,OAAOC,gBAAgBC,EAAc,CACnC,GAA2BA,GAAU,KACnC,MAAO,GAET,GAAI,OAAOA,GAAU,SACnB,OAAOA,EAET,GAAI,OAAOA,GAAU,UAAYA,IAAU,KAAM,CAC/C,IAAMC,EAA6BD,EACnC,GAAI,OAAOC,EAAEC,SAAY,UAAYD,EAAEC,QAAQC,KAAI,EAAGC,OAAS,EAC7D,OAAOH,EAAEC,QAAQC,KAAI,EAEvB,GAAI,OAAOF,EAAEI,OAAU,UAAYJ,EAAEI,MAAMF,KAAI,EAAGC,OAAS,EACzD,OAAOH,EAAEI,MAAMF,KAAI,EAErB,GAAI,OAAOF,EAAEK,QAAW,UAAYL,EAAEK,OAAOH,KAAI,EAAGC,OAAS,EAC3D,OAAOH,EAAEK,OAAOH,KAAI,CAExB,CACA,IAAMI,EAAYC,OAAOR,CAAK,EAC9B,OAAIO,IAAM,kBACD,SAEFA,CACT,GC5BF,IAAAE,EAAqC,OCcrC,IAAaC,GAA2B,IAAA,CAAlC,MAAOA,CAA2B,CAG9BC,QAAkB,GAAGC,EAAYC,IAAIF,OAAO,WAEnCG,KAAmBC,EAAOC,CAAU,EAKrDC,YAAYC,EAGX,CAGC,OAAOC,EACL,KAAKL,KAAKM,IAGR,GAAG,KAAKT,OAAO,IAAIO,EAAOG,SAAS,YACnC,CAAEH,OAAQ,CAAEI,SAAUJ,EAAOI,QAAQ,CAAE,CAAE,CAC1C,CAEL,CAOAC,mBAAmBL,EAOlB,CACC,IAAMM,EAAqC,CACzCF,SAAUJ,EAAOI,UAEnB,OAAIJ,EAAOO,aAAe,OACxBD,EAAW,YAAiBE,OAAOR,EAAOO,WAAW,GAEnDP,EAAOS,OAAS,OAClBH,EAAW,MAAWE,OAAOR,EAAOS,KAAK,GAEvCT,EAAOU,SACTJ,EAAW,OAAY,KAErBN,EAAOW,eACTL,EAAW,aAAkBN,EAAOW,cAE/BV,EACL,KAAKL,KAAKM,IACR,GAAG,KAAKT,OAAO,IAAIO,EAAOG,SAAS,kBACnC,CAAEH,OAAQM,CAAU,CAAE,CACvB,CAEL,CAKAM,YAAYZ,EAIX,CAGC,OAAOC,EACL,KAAKL,KAAKiB,KAGR,GAAG,KAAKpB,OAAO,IAAIO,EAAOG,SAAS,YACnC,CACEW,QAASd,EAAOc,QAChBC,iBAAkBf,EAAOe,iBAC1B,CACF,CAEL,4CAnFWvB,EAA2B,6BAA3BA,EAA2BwB,QAA3BxB,EAA2ByB,UAAAC,WADd,MAAM,CAAA,SACnB1B,CAA2B,GAAA,ECKxC,IAAa2B,GAAkB,IAAA,CAAzB,MAAOA,CAAkB,CAGrBC,QAAkB,GAAGC,EAAYC,IAAIF,OAAO,WAEnCG,KAAmBC,EAAOC,CAAU,EAEpCC,cACfF,EAAOG,CAA+B,EAKhCC,eAAa,CACnB,OAAO,KAAKF,cAAcG,eAAc,CAC1C,CAKQC,WAAWC,EAAkB,CACnC,IAAMC,EAAiB,KAAKJ,cAAa,EACzC,OAAKI,EAGED,EAAOE,IAAI,SAAUD,CAAM,EAFzBD,CAGX,CAKAG,cAAY,CAGV,IAAMC,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAKe,IAEP,KAAKlB,QAAS,CAAEW,OAAQI,CAAU,CAAE,CAAC,CAE5C,CAKAI,sBAAoB,CAGlB,IAAIJ,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC7DD,OAAAA,EAAaA,EAAWF,IAAI,WAAY,MAAM,EACvCI,EACL,KAAKd,KAAKe,IAEP,KAAKlB,QAAS,CAAEW,OAAQI,CAAU,CAAE,CAAC,CAE5C,CAMAK,cAAcT,EAA0B,CAGtC,IAAMU,EAA0B,CAAA,EAC1BC,EACJX,GAAQY,OAASC,OAAYb,EAAOY,KAAKE,KAAI,EAAKD,OAChDF,IAAgBE,QAAaF,EAAYI,OAAS,IACpDL,EAAKE,KAAOD,GAEd,IAAMP,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAKwB,KAEP,KAAK3B,QAASqB,EAAM,CAAEV,OAAQI,CAAU,CAAE,CAAC,CAElD,CAKAa,WAAWC,EAAiB,CAI1B,IAAMd,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAKe,IAGP,GAAG,KAAKlB,OAAO,IAAI6B,CAAS,GAAI,CAAElB,OAAQI,CAAU,CAAE,CAAC,CAE9D,CAKAe,cAAcnB,EAGb,CAGC,IAAMI,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAK4B,MAGR,GAAG,KAAK/B,OAAO,IAAIW,EAAOkB,SAAS,GACnClB,EAAOqB,QACP,CAAErB,OAAQI,CAAU,CAAE,CACvB,CAEL,CAKAkB,eAAeJ,EAAiB,CAC9B,IAAMd,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAKe,IACR,GAAG,KAAKlB,OAAO,IAAI6B,CAAS,gBAC5B,CAAElB,OAAQI,CAAU,CAAE,CACvB,CAEL,CAMAmB,YAAYvB,EAIX,CACC,IAAMU,EAAgC,CAAA,EAClCV,EAAOY,OACTF,EAAKE,KAAOZ,EAAOY,MAEjBZ,EAAOwB,sBACTd,EAAKc,oBAAsBxB,EAAOwB,qBAEpC,IAAMpB,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAKwB,KACR,GAAG,KAAK3B,OAAO,IAAIW,EAAOkB,SAAS,QACnCR,EACA,CAAEV,OAAQI,CAAU,CAAE,CACvB,CAEL,CAKAqB,cAAcP,EAAiB,CAC7B,IAAMd,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC/D,OAAOC,EACL,KAAKd,KAAKwB,KACR,GAAG,KAAK3B,OAAO,IAAI6B,CAAS,kBAC5B,CAAA,EACA,CAAElB,OAAQI,CAAU,CAAE,CACvB,CAEL,CAKAsB,iBAAiB1B,EAGhB,CACC,IAAII,EAAyB,KAAKL,WAAW,IAAIM,CAAY,EAC7DD,OAAAA,EAAaA,EAAWF,IAAI,QAASF,EAAO2B,KAAK,EAC1CrB,EACL,KAAKd,KAAKe,IACR,GAAG,KAAKlB,OAAO,IAAIW,EAAOkB,SAAS,mBACnC,CAAElB,OAAQI,CAAU,CAAE,CACvB,CAEL,4CAvLWhB,EAAkB,6BAAlBA,EAAkBwC,QAAlBxC,EAAkByC,UAAAC,WADL,MAAM,CAAA,SACnB1C,CAAkB,GAAA,EFW/B,IAAM2C,EAA8B,SAC9BC,EAAmC,cACnCC,EAAoC,eACpCC,EAAuC,kBACvCC,EAAwC,mBACxCC,EAAgD,2BAChDC,EAAiD,4BAGjDC,EAAsB,oBAEtBC,EAAyB,oBAEzBC,EAA4B,mBAOrBC,IAAmB,IAAA,CAA1B,MAAOA,CAAmB,CAGtBC,yBAGJ,IAAIC,IAGAC,uBAA+D,IAAID,IAGlEE,kBAAoBC,EAAe,EAAE,EASrCC,kCAAoCD,EAAe,CAAC,EAGpDE,WAAaF,EAAwC,CAAA,CAAE,EAGvDG,oBAAsBH,EAAuB,IAAI,EAGjDI,kBAAoBJ,EAAgB,EAAK,EAGzCK,mBAAqBL,EAAwC,CAAA,CAAE,EAG/DM,0BAA4BN,EAAgB,EAAK,EAGjDO,WAAaP,EAAqC,CAAA,CAAE,EAGpDQ,kBAAoBR,EAAgB,EAAK,EAGzCS,oBAAsBT,EAAuB,IAAI,EAUjDU,aAAeV,EAMrB,CACDW,MAAO,EACPC,QAAS,GACTC,gBAAiB,KACjBC,eAAgB,GAChBC,cAAe,EAChB,EAGQC,cAAgBhB,EAAgC,CAAA,CAAE,EAMlDiB,yBAA2BjB,EAAe,EAAE,EAG5CkB,iBAAmBlB,EAGlB,IAAI,EAGLmB,kBAAoBnB,EAGnB,IAAI,EAOLoB,kBAGJ,IAAIC,EAGAC,qBAAuBtB,EAAoD,IAAI,EAO/EuB,sBAAwBvB,EAKvB,IAAI,EAGLwB,mBAAqBxB,EAE5B,IAAIH,GAAK,EAGF4B,uBAAyBzB,EAAgB,EAAK,EAG9C0B,iBAAmB1B,EAA6C,IAAIH,GAAK,EAGzE8B,qBAAuB3B,EAAgB,EAAK,EAG5C4B,uBAAyB5B,EAAuB,IAAI,EAGpD6B,uBAAyB7B,EAAyC,CAAA,CAAE,EAGpE8B,uBAAyB9B,EAAgB,EAAK,EAG9C+B,yBAA2B/B,EAAuB,IAAI,EAGvDgC,kBAAyC,KAGzCC,mBAAuC,KAE9BC,WAAiCC,EAAOC,CAAkB,EAC1DC,gBACfF,EAAOG,CAA2B,EACnBC,gBACfJ,EAAOK,CAAqB,EACbC,UACfN,EAAOO,CAA0B,EAGnC,IAAIC,aAAW,CACb,OAAO,KAAKF,UAAUE,WACxB,CAGA,IAAIC,gBAAc,CAChB,OAAO,KAAKH,UAAUI,QACxB,CAGA,IAAIC,mBAAiB,CACnB,OAAO,KAAKL,UAAUM,WACxB,CAGA,IAAIC,uBAAqB,CACvB,OAAO,KAAKP,UAAUO,qBACxB,CAGAC,oBAAkB,CAChB,OAAO,KAAKR,UAAUQ,mBAAkB,CAC1C,CAEAC,aAAA,CACE,KAAKlB,kBAAoB,KAAKS,UAAUU,OAAOC,UAC5CC,GAAuE,CACtE,KAAKC,kBAAkBD,CAAQ,CACjC,CAAC,EAEH,KAAKpB,mBAAqBsB,EAAO,IAAW,CACtC,KAAKd,UAAUE,YAAW,GAAM,KAAKa,mBAAkB,GACzD,KAAKf,UAAUgB,KAAK,iBAAkB,CACpCC,UAAW,KAAKF,mBAAkB,EACnC,CAEL,CAAC,CACH,CAKQF,kBAAkBD,EAA6D,CACrF,IAAMM,EAAmCN,EAASM,SAAW,CAAA,EACvDC,EAAmB,KAAKJ,mBAAkB,EAC1CK,EACJ,OAAOF,EAAQE,WAAc,SAAWF,EAAQE,UAAYC,OACxDC,EACJ,OAAOJ,EAAQD,WAAc,SAAWC,EAAQD,UAAYI,OACxDE,EACJ,CAACH,GAAa,CAACE,GACZF,IAAcD,GACdG,IAAyBH,EAE9B,GAAIP,EAASY,QAAUhF,GAAuB+E,EAAa,CACzD,IAAME,EAAkB,OAAOP,EAAQO,SAAY,SAAWP,EAAQO,QAAU,GAC1EC,EACJ,OAAOR,EAAQQ,WAAc,SAAWR,EAAQQ,UAAY,IAAIC,KAAI,EAAGC,YAAW,EAC9EC,EACJ,OAAOX,EAAQW,OAAU,SAAWX,EAAQW,MAAQR,OAChDS,EAAmC,CACvCC,KAAM,YACNN,QAASA,EACTC,UAAW,IAAIC,KAAKD,CAAS,GAEzBM,EAAsCH,EACxCI,EAAAC,EAAA,GAAKJ,GAAL,CAAWD,MAAOA,CAAK,GACvBC,EACEK,EAAsC,KAAKC,oBAAoBJ,CAAO,EAC5E,KAAKlE,WAAWuE,IAAI,CAAC,GAAG,KAAKvE,WAAU,EAAIqE,CAAO,CAAC,EACnD,MACF,CAEA,GAAIvB,EAASY,QAAU/E,GAA4B8E,EAAa,CAC9D,IAAME,EAAkB,OAAOP,EAAQO,SAAY,SAAWP,EAAQO,QAAU,GAChFa,WAASC,KACP,0CAA0Cd,EAAQe,UAAU,EAAG,GAAG,CAAC,QAAG,EAExE,IAAML,EAAsC,KAAKC,oBAAoB,CACnEL,KAAM,SACNN,QAASA,EACTC,UAAW,IAAIC,KAChB,EACD,KAAK7D,WAAWuE,IAAI,CAAC,GAAG,KAAKvE,WAAU,EAAIqE,CAAO,CAAC,EACnD,MACF,CAEA,GAAIvB,EAASY,QAAU9E,EAA2B,CAChD,IAAM+F,EACH,OAAOvB,EAAQuB,WAAc,UAAYvB,EAAQuB,YAAc,KAC3DvB,EAAQuB,UACT,CAAA,EACN,KAAKlE,cAAc8D,IAAII,CAAS,EAChC,KAAKC,qCAAqCD,CAAS,EAGnD,IAAME,EAAiB,OAAOF,EAAUE,QAAW,SAAWF,EAAUE,OAAS,GAC3EC,EAAqB,OAAOH,EAAUI,OAAU,SAAWJ,EAAUI,MAAQ,GAC/EF,IAAW5F,IACT6F,IAAe5F,GAAkB4F,IAAe3F,GACpD,KAAK6B,sBAAsBuD,IAAI,CAC7BQ,MAAOD,EACPE,kBAAmB,OAAOL,EAAUK,mBAAsB,SACtDL,EAAUK,kBAAoB,GAClCC,iBAAkB,OAAON,EAAUM,kBAAqB,SACpDN,EAAUM,iBAAmB,GACjCC,qBAAsB,OAAOP,EAAUO,sBAAyB,SAC5DP,EAAUO,qBAAuB,OACtC,EACQ,KAAKlE,sBAAqB,GAEnC,KAAKA,sBAAsBuD,IAAI,IAAI,EAGrC,IAAMY,EAA4BR,EAAUS,UACtCC,EACJ/B,GAAcqB,EAAUrB,UACpBgC,EAA4B,CAACD,GAAQA,IAAShC,EAC9CkC,EAAuBC,EAAmBC,gBAAgBN,CAAgB,EAAEO,KAAI,EACtF,GAAIH,EAAaI,OAAS,GAAKL,EAAkB,CAC/Cd,WAASC,KACP,kEAAkEc,EAAab,UAAU,EAAG,EAAE,CAAC,QAAG,EAEpG,IAAML,EAAsC,KAAKC,oBAAoB,CACnEL,KAAM,SACNN,QAAS4B,EACT3B,UAAW,IAAIC,KAChB,EACD,KAAK7D,WAAWuE,IAAI,CAAC,GAAG,KAAKvE,WAAU,EAAIqE,CAAO,CAAC,CACrD,CACA,MACF,CAEA,GAAIvB,EAASY,QAAU7E,EAA8B,CACnD,IAAM+G,EACJ,OAAOxC,EAAQD,WAAc,SAAWC,EAAQD,UAAY,GACxD0C,EACH,OAAOzC,EAAQyC,cAAiB,UAAYzC,EAAQyC,eAAiB,KACjEzC,EAAQyC,aACT,CAAA,EACN,KAAKlF,iBAAiB4D,IAAI,CACxBpB,UAAWyC,EACXC,aAAcA,EACf,EACD,MACF,CAEA,GAAI/C,EAASY,QAAU5E,EAA+B,CACpD,IAAM8G,EACJ,OAAOxC,EAAQD,WAAc,SAAWC,EAAQD,UAAY,GACxD2C,EACH,OAAO1C,EAAQM,OAAU,UAAYN,EAAQM,QAAU,KACnDN,EAAQM,MACT,CAAA,EACAqC,EAA2E,CAC/E5C,UAAWyC,EACXlC,MAAOoC,GAET,KAAKlF,kBAAkB2D,IAAIwB,CAAiB,EAC5C,KAAKlF,kBAAkBmF,KAAKD,CAAiB,EAC7C,MACF,CAEA,GAAIjD,EAASY,QAAU3E,GAAyC0E,EAAa,CAC3E,KAAK1C,qBAAqBwD,IAAInB,CAA0D,EACxF,MACF,CAGA,GAAIN,EAASY,QAAU1E,GAA0CyE,EAAa,CAC5E,IAAMwC,EACJ,OAAQ7C,EAAoC8C,eAAkB,SACzD9C,EAAoC8C,cACrC3C,OACN,GAAI,CAAC0C,EACH,OAE2D,KAAKlF,qBAAoB,GACzEmF,gBAAkBD,GAC7B,KAAKlF,qBAAqBwD,IAAI,IAAI,EAEpC,MACF,CACF,CAOM4B,cAAY,QAAAC,EAAA,sBAChB,KAAKvG,kBAAkB0E,IAAI,EAAI,EAC/B,GAAI,CACF,KAAK3E,oBAAoB2E,IAAI,IAAI,EAEjC,IAAM8B,EAAW,MAAM,KAAK1E,WAAW2E,aAAY,EAEnD,YAAK3G,WAAW4E,IAAI8B,EAASE,QAAQ,EAC9BF,EAASE,QAClB,OAASC,EAAgB,CACvBC,oBAAWC,UAAU,2CAA4CF,CAAK,EAEtE,KAAK5G,oBAAoB2E,IAAIiC,CAAK,EAC3B,CAAA,CACT,QAAC,CACC,KAAK3G,kBAAkB0E,IAAI,EAAK,CAClC,CACF,GAMMoC,cAAcC,EAA0B,QAAAR,EAAA,sBAC5C,IAAMC,EAAW,MAAM,KAAK1E,WAAWgF,cAAcC,CAAM,EAE3D,aAAM,KAAKT,aAAY,EAEhBE,EAASQ,OAClB,GAMMC,YAAYF,EAGjB,QAAAR,EAAA,sBACC,IAAMC,EAAW,MAAM,KAAK1E,WAAWmF,YAAYF,CAAM,EAEzD,aAAM,KAAKT,aAAY,EAEhBE,EAASQ,OAClB,GAOME,YAAYH,EAIjB,QAAAR,EAAA,sBACC,IAAMC,EAAW,MAAM,KAAK1E,WAAWmF,YAAY,CACjD3D,UAAWyD,EAAOzD,UAClB6D,KAAMJ,EAAOI,KACbC,oBAAqBL,EAAOK,oBAC7B,EAED,aAAM,KAAKd,aAAY,EAEhBE,EAASQ,OAClB,GAMMK,sBAAoB,QAAAd,EAAA,sBACxB,KAAKrG,0BAA0BwE,IAAI,EAAI,EACvC,GAAI,CACF,IAAM8B,EAAW,MAAM,KAAK1E,WAAWwF,qBAAoB,EAE3D,YAAKrH,mBAAmByE,IAAI8B,EAASE,QAAQ,EACtCF,EAASE,QAClB,OAASC,EAAgB,CACvBC,oBAAWC,UACT,oDACAF,CAAK,EAGP,KAAK1G,mBAAmByE,IAAI,CAAA,CAAE,EACvB,CAAA,CACT,QAAC,CACC,KAAKxE,0BAA0BwE,IAAI,EAAK,CAC1C,CACF,GAOA6C,iBAAiBjE,EAAiB,CACL,KAAK3D,kBAAiB,IAC9B2D,IACjB,KAAK3D,kBAAkB+E,IAAIpB,CAAS,EACpC,KAAKkE,cAAa,EAClB,KAAKtG,qBAAqBwD,IAAI,IAAI,EAClC,KAAK7D,yBAAyB6D,IAAI,EAAE,GAEtC,KAAKrC,UAAUgB,KAAK,iBAAkB,CAAEC,UAAWA,CAAS,CAAE,CAChE,CAKAF,oBAAkB,CAChB,OAAO,KAAKzD,kBAAiB,CAC/B,CAOM8H,iBAAe,QAAAlB,EAAA,sBACnB,GAAI,CACF,IAAMmB,EAAS,MAAM,KAAKvF,gBAAgBwF,UAAS,EAC7CC,EACJ,OAAOC,OAAW,IAAcA,OAAOC,SAASF,OAAS,GACrDG,EAAuBC,EAAeC,2BAC1C,CAAEC,SAAUR,EAAOQ,SAAUC,WAAYT,EAAOS,UAAU,EAC1DP,CAAM,EAEFQ,EAA2BC,EAAYC,WAAaV,EAC1D,GAAIG,IAAiBK,GAAoB,OAAOP,OAAW,IAAa,CACtEQ,EAAYC,UAAYP,EACxBpD,WAASC,KACP,6DACAmD,CAAY,EAEdF,OAAOC,SAASS,OAAM,EACtB,MACF,CACF,MAAQ,CACN,CAEF,KAAKlG,UAAUmG,UAAS,CAC1B,GAMMC,cAAcnF,EAAiB,QAAAiD,EAAA,sBACnC,GAAI,CAGF,OADE,MAAM,KAAKzE,WAAW2G,cAAcnF,CAAS,GACjCoF,OAChB,OAASC,EAAc,CACrB/B,oBAAWC,UAAU,yCAA0C8B,CAAG,EAC3D,EACT,CACF,GAQMC,qBACJ9E,EACA+E,EAAuD,QAAAtC,EAAA,sBAMvD,IAAMuC,EAAkBhF,EAAQ+B,KAAI,EACpC,GAAIiD,IAAY,OAEd,MAAO,CAAEC,WADyC,MAAM,KAAKjC,cAAa,EACzCkC,KAAM,EAAI,EAG7C,IAAM1F,EAAoB,KAAK3D,kBAAiB,EAChD,GAAI,CAAC2D,EACH,MAAO,CAAE0F,KAAM,EAAK,EAGtB,IAAMC,GAAsBJ,GAAkB/C,QAAU,GAAK,EAC7D,GAAI,CAACgD,EAAQhD,QAAU,CAACmD,EACtB,MAAO,CAAED,KAAM,EAAK,EAKtB,IAAME,EAA4C,CAChD9E,KAAM,OACNN,QAASA,EACTC,UAAW,IAAIC,MAEXmF,EACJ,KAAK1E,oBAAoByE,CAAa,EACxC,KAAK/I,WAAWuE,IAAI,CAAC,GAAG,KAAKvE,WAAU,EAAIgJ,CAAiB,CAAC,EAE7D,GAAI,CAQF,IAAMC,GAPW,MAAM,KAAKnH,gBAAgBoH,YAAY,CACtD/F,UAAWA,EACXQ,QAASA,EACT+E,iBAAkBA,EACnB,GAGsDS,QACjDC,EAAgD,KAAKpJ,WAAU,EAAGqJ,IACrEC,GAA+D,CAC9D,GAAIA,EAAIC,gBAAkBP,EAAkBO,cAC1C,OAAOD,EAET,IAAME,EAAqCpF,EAAA,GAAKkF,GAChD,OAAIL,EAAUQ,aACZD,EAAOC,WAAaR,EAAUQ,YAE5BR,EAAUS,cAAgBnG,SAC5BiG,EAAOE,YAAcT,EAAUS,aAE1BF,CACT,CAAC,EAEH,YAAKxJ,WAAWuE,IAAI6E,CAAe,EAC5B,CAAEP,KAAM,EAAI,CACrB,OAASrC,EAAgB,CACvBC,aAAWC,UACT,mDACAF,CAAK,EAIP,IAAMmD,EAA2C,KAAK3J,WAAU,EAAG4J,OAChEN,GACCA,EAAIC,gBAAkBP,EAAkBO,aAAa,EAEzD,YAAKvJ,WAAWuE,IAAIoF,CAAU,EAIvB,CAAEd,KAAM,GAAOrC,MADpBA,aAAiBqD,MAAQrD,EAAM2C,QAAU,qCACF,CAC3C,CACF,GAMMW,qBAAqBlD,EAA8C,QAAAR,EAAA,sBACvE,MAAM,KAAKtE,gBAAgBoH,YAAY,CACrC/F,UAAWyD,EAAOzD,UAClBQ,QAASiD,EAAOjD,QACjB,CACH,GAMAoG,wBAAwB1D,EAA+C,CACrE,KAAKnE,UAAUgB,KAAK,4BAA6BmD,CAA8C,EAC/F,KAAKtF,qBAAqBwD,IAAI,IAAI,CACpC,CAKA8C,eAAa,CACX,KAAKrH,WAAWuE,IAAI,CAAA,CAAE,EACtB,KAAKpE,aAAaoE,IAAI,CACpBnE,MAAO,EACPC,QAAS,GACTC,gBAAiB,KACjBC,eAAgB,GAChBC,cAAe,EAChB,CACH,CAKAwJ,YAAYC,EAAsC,CAEhD,IAAM5F,GADoC4F,GAAY,CAAA,GACJZ,IAC/Ca,GACC,KAAK5F,oBAAoB4F,CAAC,CAAC,EAE/B,KAAKlK,WAAWuE,IAAIF,CAAO,CAC7B,CAKQC,oBACNgF,EAA+B,CAG/B,GADiCA,EAAIC,eAAe7D,KAAI,GAC9CC,OACR,OAAO2D,EAET,IAAMa,EAA8Bb,EAAIG,YAAY/D,KAAI,EACxD,OAAIyE,GAASxE,OACJxB,EAAAC,EAAA,GAAKkF,GAAL,CAAUC,cAAeY,CAAO,GAElChG,EAAAC,EAAA,GAAKkF,GAAL,CAAUC,cAAea,WAAWC,OAAOC,WAAU,CAAE,EAChE,CAMAC,oBAAoBd,EAAkB,CAEpC,IAAMe,EADwC,KAAKxK,WAAU,EACPqJ,IACnDC,GACCA,EAAIG,aAAeA,EACftF,EAAAC,EAAA,GAAKkF,GAAL,CAAUI,YAAa,EAAI,GAC3BJ,CAAG,EAEX,KAAKtJ,WAAWuE,IAAIiG,CAAO,CAC7B,CAMMC,oBAAoBtH,EAAiB,QAAAiD,EAAA,sBACzC,KAAKnG,kBAAkBsE,IAAI,EAAI,EAC/B,KAAKrE,oBAAoBqE,IAAI,IAAI,EACjC,GAAI,CAKF,IAAM0F,GAJW,MAAM,KAAKnI,gBAAgB4I,YAAY,CACtDvH,UAAWA,EACXwH,SAAU,mBACX,GACuDV,UAAY,CAAA,EACpE,OAAI9G,IAAc,KAAK3D,kBAAiB,GACtC,KAAKwK,YAAYC,CAAQ,EAEpBA,CACT,OAASzD,EAAgB,CACvBC,oBAAWC,UACT,oDACAF,CAAK,EAEP,KAAKtG,oBAAoBqE,IAAIiC,CAAK,EAC3B,CAAA,CACT,QAAC,CACC,KAAKvG,kBAAkBsE,IAAI,EAAK,CAClC,CACF,GAUMqG,iBAAiBhE,EAKtB,QAAAR,EAAA,sBACC,KAAKnG,kBAAkBsE,IAAI,EAAI,EAC/B,KAAKrE,oBAAoBqE,IAAI,IAAI,EACjC,GAAI,CACF,IAAM8B,EACJ,MAAM,KAAKvE,gBAAgB+I,mBAAmB,CAC5C1H,UAAWyD,EAAOzD,UAClBwH,SAAU/D,EAAO+D,UAAY,mBAC7BG,OAAQ,GACRC,MAAOnE,EAAOmE,OAAS,GACvBC,aAAcpE,EAAOoE,aACtB,EACH,OAAIpE,EAAOzD,YAAc,KAAK3D,kBAAiB,IAC7C,KAAKwK,YAAY3D,EAAS4D,UAAY,CAAA,CAAE,EACxC,KAAK9J,aAAaoE,IAAI,CACpBnE,MAAOiG,EAASjG,MAChBC,QAASgG,EAAShG,QAClBC,gBAAiB+F,EAAS/F,gBAC1BC,eAAgB,GAChBC,cAAe6F,EAAS7F,cACzB,GAEI6F,CACT,OAASG,EAAgB,CACvBC,oBAAWC,UACT,gDACAF,CAAK,EAEP,KAAKtG,oBAAoBqE,IAAIiC,CAAK,EAC3B,IACT,QAAC,CACC,KAAKvG,kBAAkBsE,IAAI,EAAK,CAClC,CACF,GAQM0G,eAAerE,EAKpB,QAAAR,EAAA,sBACC,IAAM8E,EAAQ,KAAK/K,aAAY,EAC/B,GAAI,CAAC+K,EAAM7K,SAAW6K,EAAM5K,iBAAmB,MAAQ4K,EAAM3K,eAC3D,OAAO,KAET,KAAKJ,aAAaoE,IAAIJ,EAAAC,EAAA,GAAK8G,GAAL,CAAY3K,eAAgB,EAAI,EAAE,EACxD,GAAI,CACF,IAAM8F,EACJ,MAAM,KAAKvE,gBAAgB+I,mBAAmB,CAC5C1H,UAAWyD,EAAOzD,UAClBwH,SAAU/D,EAAO+D,UAAY,mBAC7BQ,YAAaD,EAAM5K,gBACnByK,MAAOnE,EAAOmE,OAAS,GACvBC,aAAcpE,EAAOoE,aACtB,EACH,GAAIpE,EAAOzD,YAAc,KAAK3D,kBAAiB,EAAI,CACjD,IAAM4L,GAAuC/E,EAAS4D,UAAY,CAAA,GAAIZ,IACnEa,GACC,KAAK5F,oBAAoB4F,CAAC,CAAC,EAE/B,KAAKlK,WAAWuE,IAAI,CAAC,GAAG6G,EAAO,GAAG,KAAKpL,WAAU,CAAE,CAAC,EACpD,KAAKG,aAAaoE,IAAI,CACpBnE,MAAOiG,EAASjG,MAChBC,QAASgG,EAAShG,QAClBC,gBAAiB+F,EAAS/F,gBAC1BC,eAAgB,GAChBC,cAAe6F,EAAS7F,cACzB,CACH,MACE,KAAKL,aAAaoE,IAAIJ,EAAAC,EAAA,GAAK8G,GAAL,CAAY3K,eAAgB,EAAK,EAAE,EAE3D,OAAO8F,CACT,OAASG,EAAgB,CACvBC,oBAAWC,UACT,8CACAF,CAAK,EAEP,KAAKtG,oBAAoBqE,IAAIiC,CAAK,EAClC,KAAKrG,aAAaoE,IAAIJ,EAAAC,EAAA,GAAK8G,GAAL,CAAY3K,eAAgB,EAAK,EAAE,EAClD,IACT,CACF,GAKM8K,kBAAkBlI,EAAiB,QAAAiD,EAAA,sBAIvC,GAAI,CAACjD,EACH,OAAO,KAET,KAAKjC,uBAAuBqD,IAAI,EAAI,EACpC,GAAI,CACF,IAAM8B,EAAW,MAAM,KAAK1E,WAAW2J,WAAWnI,CAAS,EACrDoI,EAGF,CACF1E,QAASR,EAASQ,QAClB2E,QAASnF,EAASmF,SAAW,MAE/B,YAAKnM,yBAAyBkF,IAAIpB,EAAWoI,CAAK,EAClD,KAAKtK,mBAAmBsD,IAAI,IAAIjF,IAAI,KAAKD,wBAAwB,CAAC,EAC3DkM,CACT,OAAS/E,EAAgB,CACvBC,oBAAWC,UACT,iDACAF,CAAK,EAEA,IACT,QAAC,CACC,KAAKtF,uBAAuBqD,IAAI,EAAK,CACvC,CACF,GAKAkH,uBAAuBtI,EAAiB,CAItC,OAAO,KAAK9D,yBAAyBqM,IAAIvI,CAAS,GAAK,IACzD,CAKMwI,gBAAgBxI,EAAiB,QAAAiD,EAAA,sBACrC,GAAI,CAACjD,EACH,OAAO,KAET,KAAK/B,qBAAqBmD,IAAI,EAAI,EAClC,KAAKlD,uBAAuBkD,IAAI,IAAI,EACpC,GAAI,CACF,IAAM8B,EACJ,MAAM,KAAK1E,WAAWiK,eAAezI,CAAS,EAChD,YAAK5D,uBAAuBgF,IAAIpB,EAAWkD,CAAQ,EACnD,KAAKlF,iBAAiBoD,IAAI,IAAIjF,IAAI,KAAKC,sBAAsB,CAAC,EACvD8G,CACT,OAASG,EAAgB,CACvBC,oBAAWC,UACT,+CACAF,CAAK,EAEP,KAAKnF,uBAAuBkD,IAAIiC,CAAK,EAC9B,IACT,QAAC,CACC,KAAKpF,qBAAqBmD,IAAI,EAAK,CACrC,CACF,GAKAsH,qBAAqB1I,EAAiB,CACpC,OAAO,KAAK5D,uBAAuBmM,IAAIvI,CAAS,GAAK,IACvD,CAKM2I,gCAAgClF,EAGrC,QAAAR,EAAA,sBACC,IAAMR,EAAcgB,EAAOzD,WAAWuC,KAAI,GAAM,GAC1CqG,EAAcnF,EAAO7C,OAAO2B,KAAI,GAAM,GAC5C,GAAI,CAACE,GAAO,CAACmG,EACX,MAAO,CAAA,EAET,GAAI,CAMF,OAJE,MAAM,KAAKpK,WAAWqK,iBAAiB,CACrC7I,UAAWyC,EACX7B,MAAOgI,EACR,GACaE,SAAW,CAAA,CAC7B,MAAQ,CACN,MAAO,CAAA,CACT,CACF,GAKMC,kBAAkBtF,EAGvB,QAAAR,EAAA,sBACC,IAAMR,EAAcgB,EAAOzD,WAAWuC,KAAI,GAAM,GAC1CqG,EAAcnF,EAAO7C,OAAO2B,KAAI,GAAM,GAE5C,GAAI,CAACE,GAAO,CAACmG,EAAK,CAChB,KAAKzK,uBAAuBiD,IAAI,CAAA,CAAE,EAClC,MACF,CAEA,KAAKhD,uBAAuBgD,IAAI,EAAI,EACpC,KAAK/C,yBAAyB+C,IAAI,IAAI,EAEtC,GAAI,CACF,IAAM8B,EACJ,MAAM,KAAK1E,WAAWqK,iBAAiB,CACrC7I,UAAWyC,EACX7B,MAAOgI,EACR,EACH,KAAKzK,uBAAuBiD,IAAI8B,EAAS4F,OAAO,CAClD,OAASzF,EAAgB,CACvBC,aAAWC,UACT,kDACAF,CAAK,EAEP,KAAKhF,yBAAyB+C,IAAIiC,CAAK,EACvC,KAAKlF,uBAAuBiD,IAAI,CAAA,CAAE,CACpC,QAAC,CACC,KAAKhD,uBAAuBgD,IAAI,EAAK,CACvC,CACF,GAMM4H,cAAcvF,EAGnB,QAAAR,EAAA,sBACC,GAAI,CACF,IAAMC,EAAW,MAAM,KAAK1E,WAAWwK,cAAcvF,CAAM,EACrDwF,EAAoBxF,EAAOyF,QAAQD,SACzC,OAAIA,IAAa,IAAQA,IAAa,IACpC,MAAM,KAAKjG,aAAY,EACvB,MAAM,KAAKe,qBAAoB,GAE/B,MAAM,KAAKf,aAAY,EAElBE,EAASQ,OAClB,OAASL,EAAgB,CACvBC,oBAAWC,UACT,4CACAF,CAAK,EAEA,IACT,CACF,GAKQ5B,qCAAqCD,EAAkC,CAC7E,IAAM2H,EAAoB3H,EAAUI,MAC9BwH,EAAmB,OAAOD,GAAa,SAAWA,EAAS5G,KAAI,EAAK,GAC1E,GAAI6G,IAAaC,EAAqBC,cAAe,CACnD,IAAMC,EAAmB/H,EAAUgI,iBACnC,GAAI,OAAOD,GAAY,UAAYA,EAAQhH,KAAI,IAAO,GAAI,CACxD,IAAMkH,EACJxN,EAAoByN,qCAAqCH,CAAO,EAC9DE,IAAerJ,QACjB,KAAK7C,yBAAyB6D,IAAIqI,CAAU,CAEhD,CACA,MACF,EAEEL,IAAaC,EAAqBM,iBAC/BP,IAAaC,EAAqBO,oBAErC,KAAKrM,yBAAyB6D,IAAI,EAAE,CAExC,CAKQ,OAAOsI,qCAAqCG,EAAW,CAC7D,IAAMrE,EAAkBqE,EAAItH,KAAI,EAC1BuH,EAAoC,CACxCC,EAAyBC,QACzBD,EAAyBE,WACzBF,EAAyBG,IACzBH,EAAyBI,IAAI,EAE/B,QAAWC,KAAKN,EACd,GAAItE,IAAY4E,EACd,OAAOA,CAIb,CAEAC,aAAW,CACT,KAAK3M,kBAAkB4M,SAAQ,EAC3B,KAAKhM,oBACP,KAAKA,kBAAkBiM,YAAW,EAClC,KAAKjM,kBAAoB,MAEvB,KAAKC,qBACP,KAAKA,mBAAmBiM,QAAO,EAC/B,KAAKjM,mBAAqB,KAE9B,4CA5/BWtC,EAAmB,6BAAnBA,EAAmBwO,QAAnBxO,EAAmByO,UAAAC,WADN,MAAM,CAAA,SACnB1O,CAAmB,GAAA",
|
|
6
|
-
"names": ["SocketUrl_Util", "computeSocketUrlFromStatus", "_data", "origin", "DisplayString_Util", "toDisplayString", "value", "o", "message", "trim", "length", "error", "detail", "s", "String", "import_fsm_dynamo", "Ses_Conversation_ApiService", "baseUrl", "environment", "api", "http", "inject", "HttpClient", "getMessages", "params", "firstValueFrom", "get", "sessionId", "viewMode", "getMessagesChunked", "httpParams", "beforeIndex", "String", "limit", "latest", "archiveScope", "sendMessage", "post", "content", "imageAttachments", "factory", "\u0275fac", "providedIn", "Session_ApiService", "baseUrl", "environment", "api", "http", "inject", "HttpClient", "peiContext_DS", "ExS_InstanceContext_DataService", "currentCcapId", "activeCcapId_$", "withCcapId", "params", "ccapId", "set", "listSessions", "httpParams", "HttpParams", "firstValueFrom", "get", "listArchivedSessions", "createSession", "body", "trimmedName", "name", "undefined", "trim", "length", "post", "getSession", "sessionId", "updateSession", "patch", "updates", "getSessionInfo", "copySession", "forkUntilMessageKey", "stopExecution", "getLlmDebugTrace", "runId", "factory", "\u0275fac", "providedIn", "SOCKET_EVENT_ANSWER", "SOCKET_EVENT_NOTIFY_USER", "SOCKET_EVENT_AGENT_EVENTS", "SOCKET_EVENT_CONTEXT_UPDATED", "SOCKET_EVENT_MONITORING_EVENT", "SOCKET_EVENT_USER_INTERACTION_REQUEST", "SOCKET_EVENT_USER_INTERACTION_RESOLVED", "NTF_TOOL_ID", "NTF_PHASE_SENT", "NTF_PHASE_WAITING", "Session_DataService", "sessionDetailBySessionId", "Map", "sessionInfoBySessionId", "activeSessionId_$", "signal", "requestSidebarCloseOnMobileBump_$", "sessions_$", "sessionsLoadError_$", "sessionsLoading_$", "archivedSessions_$", "archivedSessionsLoading_$", "messages_$", "messagesLoading_$", "messagesLoadError_$", "chunkState_$", "total", "hasMore", "nextBeforeIndex", "isLoadingOlder", "archivedTotal", "agentEvents_$", "activeRunExecutionMode_$", "contextUpdated_$", "monitoringEvent_$", "monitoringEvent_S", "Subject", "pendingInteraction_$", "pendingNotification_$", "sessionDetailMap_$", "sessionDetailLoading_$", "sessionInfoMap_$", "sessionInfoLoading_$", "sessionInfoLoadError_$", "llmDebugTraceEntries_$", "llmDebugTraceLoading_$", "llmDebugTraceLoadError_$", "eventSubscription", "connectedEffectRef", "session_AS", "inject", "Session_ApiService", "conversation_AS", "Ses_Conversation_ApiService", "serverStatus_AS", "SSt_Server_ApiService", "socket_CS", "CCAP_Socket_ControlService", "connected_$", "socketStatus_$", "status_$", "lastSocketError_$", "lastError_$", "connectAttemptCount_$", "diagnoseConnection", "constructor", "event$", "subscribe", "envelope", "handleSocketEvent", "effect", "getActiveSessionId", "emit", "sessionId", "payload", "activeId", "channelId", "undefined", "sessionIdFromPayload", "isForActive", "event", "content", "timestamp", "Date", "toISOString", "runId", "base", "role", "withRun", "__spreadProps", "__spreadValues", "stamped", "ensureClientListKey", "set", "DyFM_Log", "info", "substring", "eventData", "applyAgentEventRunExecutionModeLatch", "toolId", "eventPhase", "phase", "notificationTitle", "notificationType", "notificationPriority", "toolErrorContent", "toolError", "chId", "isForThisSession", "toolErrorStr", "DisplayString_Util", "toDisplayString", "trim", "length", "sid", "contextState", "ev", "monitoringPayload", "next", "resolvedId", "interactionId", "loadSessions", "__async", "response", "listSessions", "sessions", "error", "DyFM_Error", "logSimple", "createSession", "params", "session", "copySession", "forkSession", "name", "forkUntilMessageKey", "loadArchivedSessions", "listArchivedSessions", "setActiveSession", "clearMessages", "reconnectSocket", "status", "getStatus", "origin", "window", "location", "newSocketUrl", "SocketUrl_Util", "computeSocketUrlFromStatus", "httpPort", "socketPort", "currentSocketUrl", "environment", "socketUrl", "reload", "reconnect", "stopExecution", "success", "err", "sendMessageViaSocket", "imageAttachments", "trimmed", "newSession", "sent", "hasImages", "optimisticMsg", "optimisticStamped", "serverMsg", "sendMessage", "message", "updatedMessages", "map", "msg", "clientListKey", "merged", "messageKey", "hasTtsAudio", "rolledBack", "filter", "Error", "sendMessageToSession", "sendInteractionResponse", "setMessages", "messages", "m", "fromTts", "globalThis", "crypto", "randomUUID", "setMessageTtsCached", "updated", "loadMessagesForView", "getMessages", "viewMode", "loadInitialChunk", "getMessagesChunked", "latest", "limit", "archiveScope", "loadOlderChunk", "state", "beforeIndex", "older", "loadSessionDetail", "getSession", "entry", "lastRun", "getCachedSessionDetail", "get", "loadSessionInfo", "getSessionInfo", "getCachedSessionInfo", "fetchLlmDebugTraceEntriesForRun", "rid", "getLlmDebugTrace", "entries", "loadLlmDebugTrace", "updateSession", "archived", "updates", "phaseRaw", "phaseStr", "AC_RunFlowPhase_Type", "analyzeResult", "modeRaw", "runExecutionMode", "normalized", "normalizeRunExecutionModeSocketValue", "runFlowComplete", "runInitialization", "raw", "known", "AC_RunExecutionMode_Type", "instant", "agenticAny", "ask", "plan", "v", "ngOnDestroy", "complete", "unsubscribe", "destroy", "factory", "\u0275fac", "providedIn"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as i,b as c}from"./chunk-Z76NRHPI.js";import"./chunk-Q2PKIGLB.js";import"./chunk-SBTGHAYK.js";import"./chunk-6ALMEEKI.js";import"./chunk-7JUIBZEE.js";import"./chunk-C7XPBJTG.js";import"./chunk-Y2L3PCW4.js";import"./chunk-WPHEQXWB.js";import"./chunk-QIJSGEFW.js";import"./chunk-7LWJBGL4.js";import"./chunk-Z3RMRSY7.js";import"./chunk-TRNNWPOH.js";import"./chunk-Q2NVIOCY.js";import"./chunk-TYWRMRAZ.js";import"./chunk-XYQGWUC4.js";import"./chunk-DTBXYUNS.js";import"./chunk-V3VQWJQL.js";import"./chunk-QSDRSULH.js";import"./chunk-ZBTWQZNB.js";import"./chunk-FLAJXIYW.js";import"./chunk-EO4DNTT4.js";import"./chunk-DAHSKF6G.js";import"./chunk-5UPNU54P.js";import"./chunk-TBT57I7I.js";import"./chunk-KNX6PXMA.js";import{E as e,Kb as r,z as t}from"./chunk-TBMJSIBB.js";var n=[{path:"",component:i}],s=(()=>{class o{static \u0275fac=function(m){return new(m||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[c,r.forChild(n)]})}return o})();export{s as ProjectSource_RoutedModule};
|
|
2
|
-
//# sourceMappingURL=project-source-routed.module-M5G7A42W.js.map
|