@futdevpro/ccap 1.1.2968 → 1.1.2972
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-LFM3J2LA.js → agent-instances.module-7JIOUWBV.js} +2 -2
- package/client-dist/{ca.module-6IKKBFCV.js → ca.module-6RTUEF6F.js} +2 -2
- package/client-dist/{cc-usage-dashboard.component-MAJTREX5.js → cc-usage-dashboard.component-MUE3JFHY.js} +2 -2
- package/client-dist/{cc.module-WIBOFFFC.js → cc.module-MNX3GMAU.js} +2 -2
- package/client-dist/{chunk-GZNAXQSR.js → chunk-4WYWBPHC.js} +2 -2
- package/client-dist/{chunk-C6BPLTAT.js → chunk-4XIUSDLS.js} +2 -2
- package/client-dist/{chunk-M6XVA3F3.js → chunk-65KI3GR5.js} +2 -2
- package/client-dist/{chunk-GZJSMF4W.js → chunk-AAFXSEZA.js} +2 -2
- package/client-dist/{chunk-OHXBMPQN.js → chunk-AX73SZY3.js} +2 -2
- package/client-dist/{chunk-XC6OGCBT.js → chunk-BEGOF2N7.js} +2 -2
- package/client-dist/{chunk-SBTVSUCF.js → chunk-BM4UEP47.js} +2 -2
- package/client-dist/{chunk-ZO42CPIZ.js → chunk-D4MN4WBX.js} +2 -2
- package/client-dist/{chunk-334PU4V5.js → chunk-E4TY6O3W.js} +2 -2
- package/client-dist/{chunk-P4E77IA5.js → chunk-ECVTQRJ7.js} +2 -2
- package/client-dist/{chunk-ZTO2WC4L.js → chunk-F5SAKHCX.js} +2 -2
- package/client-dist/{chunk-SOA6UZHW.js → chunk-GAQBLHO3.js} +2 -2
- package/client-dist/{chunk-7QXWTKTQ.js → chunk-GAS7HMJI.js} +2 -2
- package/client-dist/{chunk-4O5PJT2Q.js → chunk-GK3RSZLZ.js} +2 -2
- package/client-dist/{chunk-KS3E56FC.js → chunk-IOXSJK5R.js} +2 -2
- package/client-dist/{chunk-GXVFIYGG.js → chunk-IPLQJBDL.js} +2 -2
- package/client-dist/{chunk-GOHAZ3UP.js → chunk-J6ZXTCHI.js} +2 -2
- package/client-dist/{chunk-PZ3A7XIC.js → chunk-K35DOQT7.js} +2 -2
- package/client-dist/{chunk-OAZA6CLB.js → chunk-K4GGODV4.js} +2 -2
- package/client-dist/{chunk-KYXVXZA4.js → chunk-K4ZQ4DD5.js} +2 -2
- package/client-dist/{chunk-5SYCIFC7.js → chunk-KVUL77OV.js} +2 -2
- package/client-dist/{chunk-Y4WOX5ZT.js → chunk-LZ2PMXWH.js} +2 -2
- package/client-dist/{chunk-BBQR7THP.js → chunk-MBE24QTZ.js} +2 -2
- package/client-dist/{chunk-TKJC6WIX.js → chunk-MEDDAUB3.js} +2 -2
- package/client-dist/{chunk-B5C3VRNW.js → chunk-MUV3H7Z7.js} +2 -2
- package/client-dist/{chunk-AFNG5IFQ.js → chunk-N3AR5TZI.js} +2 -2
- package/client-dist/{chunk-5JBJMD26.js → chunk-N3TQEDBL.js} +2 -2
- package/client-dist/{chunk-OAYVBZZD.js → chunk-NEZJG3XV.js} +2 -2
- package/client-dist/{chunk-BP6PERGA.js → chunk-OSJXI65X.js} +2 -2
- package/client-dist/{chunk-SLYF4BZT.js → chunk-P3UG3XEN.js} +2 -2
- package/client-dist/{chunk-2XU2LIK5.js → chunk-PQVFWHXC.js} +2 -2
- package/client-dist/{chunk-375SGREC.js → chunk-QB2UH3OX.js} +2 -2
- package/client-dist/{chunk-BNZAUTHL.js → chunk-QEMJBYC2.js} +2 -2
- package/client-dist/{chunk-AOZH5KZ5.js → chunk-QFCHFWGA.js} +2 -2
- package/client-dist/{chunk-K2BXFMAZ.js → chunk-QJKK7MN2.js} +2 -2
- package/client-dist/{chunk-MDOELCBX.js → chunk-QSOEXUHP.js} +2 -2
- package/client-dist/{chunk-3XP3ALCH.js → chunk-RL2M6DJN.js} +2 -2
- package/client-dist/{chunk-5L255H5C.js → chunk-RXRE3G4K.js} +2 -2
- package/client-dist/{chunk-5L255H5C.js.map → chunk-RXRE3G4K.js.map} +1 -1
- package/client-dist/{chunk-YV7GEWMV.js → chunk-SE7LVQMB.js} +2 -2
- package/client-dist/{chunk-UZWYHQU5.js → chunk-STIDSZ7I.js} +2 -2
- package/client-dist/{chunk-CSJOCUB5.js → chunk-T2722QP4.js} +2 -2
- package/client-dist/{chunk-WSRT2AXO.js → chunk-TKONBOQQ.js} +2 -2
- package/client-dist/{chunk-YFGRQVYN.js → chunk-U2WBKQML.js} +2 -2
- package/client-dist/{chunk-ZRLRJNW4.js → chunk-UE4NDJOE.js} +2 -2
- package/client-dist/{chunk-VER7DLPS.js → chunk-UNNGLS4Y.js} +2 -2
- package/client-dist/{chunk-PIN4VFXO.js → chunk-UYLV7WAB.js} +2 -2
- package/client-dist/chunk-UYNSNX4F.js +2 -0
- package/client-dist/chunk-UYNSNX4F.js.map +7 -0
- package/client-dist/{chunk-7DXWR6DX.js → chunk-VJEPWZGD.js} +2 -2
- package/client-dist/{chunk-DZ4365RI.js → chunk-VOITLR7O.js} +2 -2
- package/client-dist/{chunk-HIUVSLF2.js → chunk-VY4R2KTU.js} +2 -2
- package/client-dist/{chunk-F5OKFSMW.js → chunk-WDV7MFNU.js} +2 -2
- package/client-dist/{chunk-OUBAPK5Q.js → chunk-WKAKYIU5.js} +2 -2
- package/client-dist/{chunk-62O4YXH2.js → chunk-XYNIZC5J.js} +2 -2
- package/client-dist/{chunk-536ONGRA.js → chunk-ZO5UJXHI.js} +2 -2
- package/client-dist/{chunk-XS5NRBFX.js → chunk-ZOWPV7TY.js} +2 -2
- package/client-dist/{chunk-GLISSBW6.js → chunk-ZQT44XRN.js} +2 -2
- package/client-dist/{consultant.module-XYGMFIBX.js → consultant.module-DMGMZCMM.js} +2 -2
- package/client-dist/{crd.module-2TUYARHJ.js → crd.module-UY2I7Q6C.js} +2 -2
- package/client-dist/{dashboard.module-G47SY7RR.js → dashboard.module-YAB6AARF.js} +2 -2
- package/client-dist/{do.module-WWLJVEM2.js → do.module-BQ4IIBCS.js} +2 -2
- package/client-dist/{document-library.module-EKVYKBGO.js → document-library.module-DDFSHADI.js} +2 -2
- package/client-dist/{embedding-eval.module-ZXMLZHML.js → embedding-eval.module-FJTNYACK.js} +2 -2
- package/client-dist/{embedding-registry.module-EE5OFQVA.js → embedding-registry.module-Q7H4MSJI.js} +2 -2
- package/client-dist/{err.module-AQ7S3MIX.js → err.module-TEYGZOAQ.js} +2 -2
- package/client-dist/{feedback.module-PS2TJILH.js → feedback.module-46D4VD2U.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-XHWB3K2U.js → host-runtime-mcp.module-MOMBWPOG.js} +2 -2
- package/client-dist/index.html +2 -2
- package/client-dist/{live-dev-pipeline.module-HVIUS654.js → live-dev-pipeline.module-3ZZC7EDM.js} +2 -2
- package/client-dist/{logs.module-RZOFXUFO.js → logs.module-CFTLPVNZ.js} +2 -2
- package/client-dist/main-4A2EJGC7.js +7 -0
- package/client-dist/main-4A2EJGC7.js.map +7 -0
- package/client-dist/{master-control-remote-poc.module-Z44FHFP3.js → master-control-remote-poc.module-4NVA4X32.js} +2 -2
- package/client-dist/{mobile-app.module-7EN7TBHL.js → mobile-app.module-46TKS6V5.js} +2 -2
- package/client-dist/{model-registry.module-3GLXXUHT.js → model-registry.module-L56ALPDT.js} +2 -2
- package/client-dist/{oc.module-XJXWDHRE.js → oc.module-OTDAUU73.js} +2 -2
- package/client-dist/{orc.module-TGXVMQLI.js → orc.module-L6G3GB6S.js} +2 -2
- package/client-dist/{project-management.module-24CUEUF5.js → project-management.module-U75UPDGP.js} +2 -2
- package/client-dist/project-source-routed.module-I4WHFL6T.js +2 -0
- package/client-dist/{scheduler.module-I4VI7QU7.js → scheduler.module-V7JUED6T.js} +2 -2
- package/client-dist/{session.module-MQKLXSPJ.js → session.module-CZCDYPUM.js} +2 -2
- package/client-dist/{set.module-EBOPU2SQ.js → set.module-XQ6TPATG.js} +5 -5
- package/client-dist/{set.module-EBOPU2SQ.js.map → set.module-XQ6TPATG.js.map} +3 -3
- package/client-dist/{setup.module-LOYXPT7O.js → setup.module-M5RVUX4A.js} +2 -2
- package/client-dist/styles-XKQ3MDLE.css +2 -0
- package/client-dist/styles-XKQ3MDLE.css.map +7 -0
- package/client-dist/{terminals.module-45PXK7MW.js → terminals.module-LPJ4TLM7.js} +2 -2
- package/client-dist/{voice-notes-poc.module-UIV4RQN3.js → voice-notes-poc.module-UXJM32VE.js} +2 -2
- package/client-dist/{wfs.module-BNMGWII3.js → wfs.module-UIBLZ4KZ.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/setup-config/_routes/sc-server-status.controller.d.ts.map +1 -1
- package/server/build/src/_modules/setup-config/_routes/sc-server-status.controller.js +13 -0
- package/server/build/src/_modules/setup-config/_routes/sc-server-status.controller.js.map +1 -1
- package/server/build/src/_modules/setup-config/_services/control-services/sc-server-status.control-service.d.ts +28 -0
- package/server/build/src/_modules/setup-config/_services/control-services/sc-server-status.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/setup-config/_services/control-services/sc-server-status.control-service.js +106 -0
- package/server/build/src/_modules/setup-config/_services/control-services/sc-server-status.control-service.js.map +1 -1
- package/client-dist/chunk-EIJM7YZZ.js +0 -2
- package/client-dist/chunk-EIJM7YZZ.js.map +0 -7
- package/client-dist/main-N4T3LPFJ.js +0 -7
- package/client-dist/main-N4T3LPFJ.js.map +0 -7
- package/client-dist/project-source-routed.module-DNGOB2JX.js +0 -2
- package/client-dist/styles-YBSH3JQY.css +0 -2
- package/client-dist/styles-YBSH3JQY.css.map +0 -7
- /package/client-dist/{agent-instances.module-LFM3J2LA.js.map → agent-instances.module-7JIOUWBV.js.map} +0 -0
- /package/client-dist/{ca.module-6IKKBFCV.js.map → ca.module-6RTUEF6F.js.map} +0 -0
- /package/client-dist/{cc-usage-dashboard.component-MAJTREX5.js.map → cc-usage-dashboard.component-MUE3JFHY.js.map} +0 -0
- /package/client-dist/{cc.module-WIBOFFFC.js.map → cc.module-MNX3GMAU.js.map} +0 -0
- /package/client-dist/{chunk-GZNAXQSR.js.map → chunk-4WYWBPHC.js.map} +0 -0
- /package/client-dist/{chunk-C6BPLTAT.js.map → chunk-4XIUSDLS.js.map} +0 -0
- /package/client-dist/{chunk-M6XVA3F3.js.map → chunk-65KI3GR5.js.map} +0 -0
- /package/client-dist/{chunk-GZJSMF4W.js.map → chunk-AAFXSEZA.js.map} +0 -0
- /package/client-dist/{chunk-OHXBMPQN.js.map → chunk-AX73SZY3.js.map} +0 -0
- /package/client-dist/{chunk-XC6OGCBT.js.map → chunk-BEGOF2N7.js.map} +0 -0
- /package/client-dist/{chunk-SBTVSUCF.js.map → chunk-BM4UEP47.js.map} +0 -0
- /package/client-dist/{chunk-ZO42CPIZ.js.map → chunk-D4MN4WBX.js.map} +0 -0
- /package/client-dist/{chunk-334PU4V5.js.map → chunk-E4TY6O3W.js.map} +0 -0
- /package/client-dist/{chunk-P4E77IA5.js.map → chunk-ECVTQRJ7.js.map} +0 -0
- /package/client-dist/{chunk-ZTO2WC4L.js.map → chunk-F5SAKHCX.js.map} +0 -0
- /package/client-dist/{chunk-SOA6UZHW.js.map → chunk-GAQBLHO3.js.map} +0 -0
- /package/client-dist/{chunk-7QXWTKTQ.js.map → chunk-GAS7HMJI.js.map} +0 -0
- /package/client-dist/{chunk-4O5PJT2Q.js.map → chunk-GK3RSZLZ.js.map} +0 -0
- /package/client-dist/{chunk-KS3E56FC.js.map → chunk-IOXSJK5R.js.map} +0 -0
- /package/client-dist/{chunk-GXVFIYGG.js.map → chunk-IPLQJBDL.js.map} +0 -0
- /package/client-dist/{chunk-GOHAZ3UP.js.map → chunk-J6ZXTCHI.js.map} +0 -0
- /package/client-dist/{chunk-PZ3A7XIC.js.map → chunk-K35DOQT7.js.map} +0 -0
- /package/client-dist/{chunk-OAZA6CLB.js.map → chunk-K4GGODV4.js.map} +0 -0
- /package/client-dist/{chunk-KYXVXZA4.js.map → chunk-K4ZQ4DD5.js.map} +0 -0
- /package/client-dist/{chunk-5SYCIFC7.js.map → chunk-KVUL77OV.js.map} +0 -0
- /package/client-dist/{chunk-Y4WOX5ZT.js.map → chunk-LZ2PMXWH.js.map} +0 -0
- /package/client-dist/{chunk-BBQR7THP.js.map → chunk-MBE24QTZ.js.map} +0 -0
- /package/client-dist/{chunk-TKJC6WIX.js.map → chunk-MEDDAUB3.js.map} +0 -0
- /package/client-dist/{chunk-B5C3VRNW.js.map → chunk-MUV3H7Z7.js.map} +0 -0
- /package/client-dist/{chunk-AFNG5IFQ.js.map → chunk-N3AR5TZI.js.map} +0 -0
- /package/client-dist/{chunk-5JBJMD26.js.map → chunk-N3TQEDBL.js.map} +0 -0
- /package/client-dist/{chunk-OAYVBZZD.js.map → chunk-NEZJG3XV.js.map} +0 -0
- /package/client-dist/{chunk-BP6PERGA.js.map → chunk-OSJXI65X.js.map} +0 -0
- /package/client-dist/{chunk-SLYF4BZT.js.map → chunk-P3UG3XEN.js.map} +0 -0
- /package/client-dist/{chunk-2XU2LIK5.js.map → chunk-PQVFWHXC.js.map} +0 -0
- /package/client-dist/{chunk-375SGREC.js.map → chunk-QB2UH3OX.js.map} +0 -0
- /package/client-dist/{chunk-BNZAUTHL.js.map → chunk-QEMJBYC2.js.map} +0 -0
- /package/client-dist/{chunk-AOZH5KZ5.js.map → chunk-QFCHFWGA.js.map} +0 -0
- /package/client-dist/{chunk-K2BXFMAZ.js.map → chunk-QJKK7MN2.js.map} +0 -0
- /package/client-dist/{chunk-MDOELCBX.js.map → chunk-QSOEXUHP.js.map} +0 -0
- /package/client-dist/{chunk-3XP3ALCH.js.map → chunk-RL2M6DJN.js.map} +0 -0
- /package/client-dist/{chunk-YV7GEWMV.js.map → chunk-SE7LVQMB.js.map} +0 -0
- /package/client-dist/{chunk-UZWYHQU5.js.map → chunk-STIDSZ7I.js.map} +0 -0
- /package/client-dist/{chunk-CSJOCUB5.js.map → chunk-T2722QP4.js.map} +0 -0
- /package/client-dist/{chunk-WSRT2AXO.js.map → chunk-TKONBOQQ.js.map} +0 -0
- /package/client-dist/{chunk-YFGRQVYN.js.map → chunk-U2WBKQML.js.map} +0 -0
- /package/client-dist/{chunk-ZRLRJNW4.js.map → chunk-UE4NDJOE.js.map} +0 -0
- /package/client-dist/{chunk-VER7DLPS.js.map → chunk-UNNGLS4Y.js.map} +0 -0
- /package/client-dist/{chunk-PIN4VFXO.js.map → chunk-UYLV7WAB.js.map} +0 -0
- /package/client-dist/{chunk-7DXWR6DX.js.map → chunk-VJEPWZGD.js.map} +0 -0
- /package/client-dist/{chunk-DZ4365RI.js.map → chunk-VOITLR7O.js.map} +0 -0
- /package/client-dist/{chunk-HIUVSLF2.js.map → chunk-VY4R2KTU.js.map} +0 -0
- /package/client-dist/{chunk-F5OKFSMW.js.map → chunk-WDV7MFNU.js.map} +0 -0
- /package/client-dist/{chunk-OUBAPK5Q.js.map → chunk-WKAKYIU5.js.map} +0 -0
- /package/client-dist/{chunk-62O4YXH2.js.map → chunk-XYNIZC5J.js.map} +0 -0
- /package/client-dist/{chunk-536ONGRA.js.map → chunk-ZO5UJXHI.js.map} +0 -0
- /package/client-dist/{chunk-XS5NRBFX.js.map → chunk-ZOWPV7TY.js.map} +0 -0
- /package/client-dist/{chunk-GLISSBW6.js.map → chunk-ZQT44XRN.js.map} +0 -0
- /package/client-dist/{consultant.module-XYGMFIBX.js.map → consultant.module-DMGMZCMM.js.map} +0 -0
- /package/client-dist/{crd.module-2TUYARHJ.js.map → crd.module-UY2I7Q6C.js.map} +0 -0
- /package/client-dist/{dashboard.module-G47SY7RR.js.map → dashboard.module-YAB6AARF.js.map} +0 -0
- /package/client-dist/{do.module-WWLJVEM2.js.map → do.module-BQ4IIBCS.js.map} +0 -0
- /package/client-dist/{document-library.module-EKVYKBGO.js.map → document-library.module-DDFSHADI.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-ZXMLZHML.js.map → embedding-eval.module-FJTNYACK.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-EE5OFQVA.js.map → embedding-registry.module-Q7H4MSJI.js.map} +0 -0
- /package/client-dist/{err.module-AQ7S3MIX.js.map → err.module-TEYGZOAQ.js.map} +0 -0
- /package/client-dist/{feedback.module-PS2TJILH.js.map → feedback.module-46D4VD2U.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-XHWB3K2U.js.map → host-runtime-mcp.module-MOMBWPOG.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-HVIUS654.js.map → live-dev-pipeline.module-3ZZC7EDM.js.map} +0 -0
- /package/client-dist/{logs.module-RZOFXUFO.js.map → logs.module-CFTLPVNZ.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-Z44FHFP3.js.map → master-control-remote-poc.module-4NVA4X32.js.map} +0 -0
- /package/client-dist/{mobile-app.module-7EN7TBHL.js.map → mobile-app.module-46TKS6V5.js.map} +0 -0
- /package/client-dist/{model-registry.module-3GLXXUHT.js.map → model-registry.module-L56ALPDT.js.map} +0 -0
- /package/client-dist/{oc.module-XJXWDHRE.js.map → oc.module-OTDAUU73.js.map} +0 -0
- /package/client-dist/{orc.module-TGXVMQLI.js.map → orc.module-L6G3GB6S.js.map} +0 -0
- /package/client-dist/{project-management.module-24CUEUF5.js.map → project-management.module-U75UPDGP.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-DNGOB2JX.js.map → project-source-routed.module-I4WHFL6T.js.map} +0 -0
- /package/client-dist/{scheduler.module-I4VI7QU7.js.map → scheduler.module-V7JUED6T.js.map} +0 -0
- /package/client-dist/{session.module-MQKLXSPJ.js.map → session.module-CZCDYPUM.js.map} +0 -0
- /package/client-dist/{setup.module-LOYXPT7O.js.map → setup.module-M5RVUX4A.js.map} +0 -0
- /package/client-dist/{terminals.module-45PXK7MW.js.map → terminals.module-LPJ4TLM7.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-UIV4RQN3.js.map → voice-notes-poc.module-UXJM32VE.js.map} +0 -0
- /package/client-dist/{wfs.module-BNMGWII3.js.map → wfs.module-UIBLZ4KZ.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as H,b as Ae}from"./chunk-2XU2LIK5.js";import{a as we}from"./chunk-UFBTR2BG.js";import{a as te,b as p}from"./chunk-6Y7O2W4H.js";import{a as Ie,b as ge,c as ve,d as Re}from"./chunk-SBTVSUCF.js";import{a as Ce}from"./chunk-BP6PERGA.js";import{e as ye}from"./chunk-GZJSMF4W.js";import{L as he,p as ee,t as ae}from"./chunk-5L255H5C.js";import{C as x,a as R,aa as P,b as A,d as Se,h as J,hb as D,jb as me,k as $,wb as fe,y as Z}from"./chunk-TBMJSIBB.js";var M=function(i){return i.standing="standing",i.working="working",i.sitting="sitting",i.walkingIn="walking-in",i.walkingOut="walking-out",i.walkingBetween="walking-between",i.idleWalking="idle-walking",i}(M||{});var O=function(i){return i.workstation="workstation",i.rest="rest",i.meeting="meeting",i}(O||{});var C=function(i){return i.ccap="ccap",i.openclaw="openclaw",i.ccSession="cc-session",i.caSession="ca-session",i}(C||{});var X=function(i){return i.average="average",i.slim="slim",i.stocky="stocky",i.athletic="athletic",i}(X||{});var Y=function(i){return i.casual="casual",i.formal="formal",i.hoodie="hoodie",i.tshirt="tshirt",i}(Y||{});var j=function(i){return i.short="short",i.long="long",i.spiky="spiky",i.curly="curly",i.bald="bald",i.mohawk="mohawk",i}(j||{});var it=["#f5c592","#e8a96e","#d4845a","#c06a3c","#9b5930","#7a3d1c","#4a2412"],ot=["#1a1006","#3b2505","#6b3d11","#9b6720","#c9a227","#e8d5a3","#f0f0f0","#a0a0a0","#2a4080","#8b1a2a"],at=["#1e40af","#166534","#7f1d1d","#4c1d95","#134e4a","#713f12","#374151","#6b21a8","#0f766e","#1e3a5f","#b45309","#be185d","#475569"],rt=["#1e293b","#374151","#292524","#1e3a5f","#1a2e05","#2d1b69","#3b1a08","#1a1a2e"],ct=["#1a1a1a","#3b5998","#2d8a4e","#8b4513","#4b0082","#5f9ea0"],b={skinColor:"#e8a96e",hairColor:"#1a1006",hairStyle:j.short,shirtColor:"#1e40af",clothingStyle:Y.casual,pantsColor:"#1e293b",eyeColor:"#1a1a1a",bodyType:X.average,displayName:""},_={skinColor:"#b0bec5",hairColor:"#37474f",hairStyle:j.short,shirtColor:"#0288d1",clothingStyle:Y.tshirt,pantsColor:"#263238",eyeColor:"#00bcd4",bodyType:X.average,displayName:""},L={skinColor:"#d4c4a8",hairColor:"#2d1b0e",hairStyle:j.short,shirtColor:"#5b21b6",clothingStyle:Y.casual,pantsColor:"#312e81",eyeColor:"#4338ca",bodyType:X.average,displayName:""},N={skinColor:"#e2e8f0",hairColor:"#0f172a",hairStyle:j.short,shirtColor:"#0d9488",clothingStyle:Y.casual,pantsColor:"#134e4a",eyeColor:"#14b8a6",bodyType:X.average,displayName:""};var Me=2e3;var F=(()=>{class i{static officeInstanceIdPrefix="cai:";static build(e){return`${i.officeInstanceIdPrefix}${e.ccapId.trim()}`}static parseCcapId(e){let t=e.trim();if(!t.startsWith(i.officeInstanceIdPrefix))return null;let s=t.slice(i.officeInstanceIdPrefix.length).trim();return s.length>0?s:null}}return i})();var U=(()=>{class i{static officeInstanceIdPrefix="cci:";static build(e){return`${i.officeInstanceIdPrefix}${e.ccapId.trim()}`}static parseCcapId(e){let t=e.trim();if(!t.startsWith(i.officeInstanceIdPrefix))return null;let s=t.slice(i.officeInstanceIdPrefix.length).trim();return s.length>0?s:null}}return i})();var E=class i{static clampGrid(n){return{workstationCols:i.clampDim(n.workstationCols),workstationRows:i.clampDim(n.workstationRows),restCols:i.clampDim(n.restCols),restRows:i.clampDim(n.restRows),meetingCols:i.clampDim(n.meetingCols),meetingRows:i.clampDim(n.meetingRows)}}static computeDerived(n){let e=i.clampGrid(n),t=4*32,s=3*32,a=i.computeWorkspaceWidthPx(e.workstationCols),o=i.computeLoungeWidthPx(e.restCols),r=6*32,c=a+r+o,u=8*32,l=c+u,d=e.workstationRows*6*32,f=3*32+e.meetingRows*5*32+3*32,h=Math.max(2*32,Math.round(f/2)),I=s+d,S=2*32,m=I+h+32,g=t-32,w=S,y=c+2*32,v=m-w,k=m+3*32,T={x:t,y:s,w:a,h:d},G={x:t+a,y:s,w:r,h:m-s},B={x:t+a+r,y:s,w:o,h:m-s},oe={x:t,y:I,w:a,h},De=t+a,ue=t+a+r,Oe=I,be={x:G.x+Math.round(G.w/2),y:m-2*32},_e=i.buildWorkstationSlots(e,T),de=i.buildMeetingSlots(e,oe),Le=i.buildWorkstationDesks(e,T),pe=i.buildLoungeSeatingLayout(e,B),Ne=pe.restSlots,We=pe.loungeSofas,$e=i.buildConferenceFurniture(oe,de),Fe=t+Math.round(a/2),Ue=ue+Math.round(o/2),Ve=t+Math.round(a/2),Ge=s+32,Xe=S+32/2;return{worldW:l,worldH:k,environmentOverflowPx:3e3,buildingOuter:{x:g,y:w,w:y,h:v},floorWorkspace:T,floorLobby:G,floorLounge:B,floorConference:oe,zoneSplitX:De,zoneSplitLobbyLoungeX:ue,topFloorBottomY:Oe,door:be,workstationSlots:_e,restSlots:Ne,meetingSlots:de,workstationDesks:Le,loungeSofas:We,conference:$e,windowsNorthY:Xe,labelWorkspaceX:Fe,labelLoungeX:Ue,labelConferenceX:Ve,ceilingNeonY:Ge}}static workstationCapacity(n){let e=i.clampGrid(n);return e.workstationCols*e.workstationRows}static restCapacity(n){let e=i.clampGrid(n);return e.restCols*e.restRows*2}static meetingCapacity(n){return 2*i.clampGrid(n).meetingCols+2}static clampDim(n){if(!Number.isFinite(n))return 1;let e=Math.floor(n);return e<1?1:e>12?12:e}static computeWorkspaceWidthPx(n){let s=128+n*256;return Math.max(896,s)}static computeLoungeWidthPx(n){return 140+n*170}static buildWorkstationSlots(n,e){let t=[],s=i.workstationPitchX(n.workstationCols,e.w),a=e.x+64,o=i.workstationRowFeetY(n.workstationRows,e);for(let r=0;r<n.workstationRows;r++)for(let c=0;c<n.workstationCols;c++)t.push({x:Math.round(a+c*s),y:o[r]});return t}static workstationPitchX(n,e){return n<=1?0:n===3&&e===896?96:Math.max(96,Math.round((e-192)/(n-1)))}static workstationRowFeetY(n,e){if(n===3)return[e.y+112,e.y+250,e.y+452];let t=[],s=48,o=e.h-s-48,r=n<=1?0:o/(n-1);for(let c=0;c<n;c++)t.push(Math.round(e.y+s+c*r));return t}static buildWorkstationDesks(n,e){let t=[],s=i.workstationPitchX(n.workstationCols,e.w),a=e.x+64,o=i.workstationDeskTopY(n.workstationRows,e);for(let r=0;r<n.workstationRows;r++)for(let c=0;c<n.workstationCols;c++){let l=Math.round(a+c*s)-32,d=o[r],f=(r+c)%2===0;t.push({trackId:`ws-${r}-${c}`,x:l,y:d,monitorIsCyan:f})}return t}static workstationDeskTopY(n,e){return n===3?[e.y+64,e.y+256,e.y+404]:i.workstationRowFeetY(n,e).map(s=>s-48)}static buildLoungeSeatingLayout(n,e){let t=[],s=[],h=e.w-32,S=(e.h-2*18)/Math.max(1,n.restRows);for(let m=0;m<n.restRows;m++){let g=e.y+18+m*S,w=S-14;if(n.restCols<=1){let y=Math.min(188,Math.max(120,e.w-32)),v=e.x+Math.round((e.w-y)/2),k=Math.round(g+w*.12);t.push({trackId:`lounge-${m}-0`,x:v,y:k,w:y,h:36});let T=k+36+14;s.push({x:v+Math.round(y*.33),y:T}),s.push({x:v+Math.round(y*.67),y:T})}else{let y=(n.restCols-1)*12,v=Math.max(96,Math.round((h-y)/n.restCols));for(let k=0;k<n.restCols;k++){let T=e.x+16+k*(v+12),G=Math.round(g+w*.12);t.push({trackId:`lounge-${m}-${k}`,x:T,y:G,w:v,h:36});let B=G+36+14;s.push({x:T+Math.round(v*.33),y:B}),s.push({x:T+Math.round(v*.67),y:B})}}}return{restSlots:s,loungeSofas:t}}static buildMeetingSlots(n,e){return i.computeConferenceChairPositions(n,e)}static computeConferenceChairPositions(n,e){let t=[],s=Math.min(420,e.w-80),a=56,o=e.x+Math.round((e.w-s)/2),r=e.y+Math.round(e.h/2)-Math.round(a/2),c=26,u=Math.max(1,n.meetingCols);for(let d=0;d<u;d++){let f=o+Math.round((d+1)*s/(u+1));t.push({x:f,y:r-c})}for(let d=0;d<u;d++){let f=o+Math.round((d+1)*s/(u+1));t.push({x:f,y:r+a+c})}let l=r+Math.round(a/2);return t.push({x:o-c,y:l}),t.push({x:o+s+c,y:l}),t}static buildConferenceFurniture(n,e){let t=Math.min(420,n.w-80),s=56,a={x:n.x+Math.round((n.w-t)/2),y:n.y+Math.round(n.h/2)-Math.round(s/2),w:t,h:s},o=e.map((r,c)=>({trackId:`conf-chair-${c}`,x:r.x,y:r.y}));return{table:a,chairs:o}}};var se={workstationCols:3,workstationRows:3,restCols:2,restRows:3,meetingCols:2,meetingRows:2,maxEverWorkstationCols:3,maxEverWorkstationRows:3,maxEverRestCols:2,maxEverRestRows:3,maxEverMeetingCols:2,maxEverMeetingRows:2},ke=(()=>{class i{settings_AS=x(he);layoutPersisted_$=P(se);saveTimerId;grid_$=D(()=>{let e=this.layoutPersisted_$();return{workstationCols:e.workstationCols,workstationRows:e.workstationRows,restCols:e.restCols,restRows:e.restRows,meetingCols:e.meetingCols,meetingRows:e.meetingRows}});derived_$=D(()=>E.computeDerived(this.grid_$()));workstationCapacity_$=D(()=>E.workstationCapacity(this.grid_$()));restCapacity_$=D(()=>E.restCapacity(this.grid_$()));meetingCapacity_$=D(()=>E.meetingCapacity(this.grid_$()));maxEverDisplay_$=D(()=>this.layoutPersisted_$());constructor(){this.loadFromServer()}loadFromServer(){return $(this,null,function*(){try{let e=yield this.settings_AS.getSection(ae.darkOfficeLayout);if(e==null||Object.keys(e).length===0){this.layoutPersisted_$.set(se);return}let t=i.parsePayload(e);this.layoutPersisted_$.set(t)}catch{this.layoutPersisted_$.set(se)}})}ensureMinCapacitiesFromSceneCharacters(e){let t=0,s=0,a=0;for(let c of e)c.scenePlacement===O.meeting?a++:c.presence===p.working?t++:s++;let o=this.layoutPersisted_$(),r=R({},o);r=i.expandGridToFit(r,t,s,a),!i.isSamePersisted(o,r)&&(this.layoutPersisted_$.set(r),this.scheduleDebouncedSave())}applyPersistedFromUser(e){return $(this,null,function*(){this.layoutPersisted_$.set(R({},e)),yield this.saveNow()})}validateProposedGridAgainstSceneCharacters(e){let t=E.clampGrid(e.grid),s=0,a=0,o=0;for(let l of e.characters)l.scenePlacement===O.meeting?o++:l.presence===p.working?s++:a++;let r=E.workstationCapacity(t),c=E.restCapacity(t),u=E.meetingCapacity(t);return s<=r&&a<=c&&o<=u?null:`Dark office layout rejected: scene occupancy exceeds proposed capacity. workstation=${s}/${r}, rest=${a}/${c}, meeting=${o}/${u}.`}getWorkstationSlots(){return this.derived_$().workstationSlots}getRestSlots(){return this.derived_$().restSlots}getMeetingSlots(){return this.derived_$().meetingSlots}getDoorPosition(){return this.derived_$().door}scheduleDebouncedSave(){this.saveTimerId!==void 0&&clearTimeout(this.saveTimerId),this.saveTimerId=setTimeout(()=>{this.saveTimerId=void 0,this.saveNow()},500)}saveNow(){return $(this,null,function*(){let e={workstationCols:this.layoutPersisted_$().workstationCols,workstationRows:this.layoutPersisted_$().workstationRows,restCols:this.layoutPersisted_$().restCols,restRows:this.layoutPersisted_$().restRows,meetingCols:this.layoutPersisted_$().meetingCols,meetingRows:this.layoutPersisted_$().meetingRows,maxEverWorkstationCols:this.layoutPersisted_$().maxEverWorkstationCols,maxEverWorkstationRows:this.layoutPersisted_$().maxEverWorkstationRows,maxEverRestCols:this.layoutPersisted_$().maxEverRestCols,maxEverRestRows:this.layoutPersisted_$().maxEverRestRows,maxEverMeetingCols:this.layoutPersisted_$().maxEverMeetingCols,maxEverMeetingRows:this.layoutPersisted_$().maxEverMeetingRows};try{yield this.settings_AS.saveSection(ae.darkOfficeLayout,e)}catch{}})}static parsePayload(e){let t=(o,r)=>{let c=e[o];return typeof c=="number"&&Number.isFinite(c)?Math.floor(c):r},s=se,a={workstationCols:t("workstationCols",s.workstationCols),workstationRows:t("workstationRows",s.workstationRows),restCols:t("restCols",s.restCols),restRows:t("restRows",s.restRows),meetingCols:t("meetingCols",s.meetingCols),meetingRows:t("meetingRows",s.meetingRows),maxEverWorkstationCols:t("maxEverWorkstationCols",s.maxEverWorkstationCols),maxEverWorkstationRows:t("maxEverWorkstationRows",s.maxEverWorkstationRows),maxEverRestCols:t("maxEverRestCols",s.maxEverRestCols),maxEverRestRows:t("maxEverRestRows",s.maxEverRestRows),maxEverMeetingCols:t("maxEverMeetingCols",s.maxEverMeetingCols),maxEverMeetingRows:t("maxEverMeetingRows",s.maxEverMeetingRows)};return i.clampPersisted(a)}static clampPersisted(e){let t=a=>{if(!Number.isFinite(a))return 1;let o=Math.floor(a);return o<1?1:o>12?12:o},s={workstationCols:t(e.workstationCols),workstationRows:t(e.workstationRows),restCols:t(e.restCols),restRows:t(e.restRows),meetingCols:t(e.meetingCols),meetingRows:t(e.meetingRows),maxEverWorkstationCols:t(e.maxEverWorkstationCols),maxEverWorkstationRows:t(e.maxEverWorkstationRows),maxEverRestCols:t(e.maxEverRestCols),maxEverRestRows:t(e.maxEverRestRows),maxEverMeetingCols:t(e.maxEverMeetingCols),maxEverMeetingRows:t(e.maxEverMeetingRows)};return s.maxEverWorkstationCols=Math.max(s.maxEverWorkstationCols,s.workstationCols),s.maxEverWorkstationRows=Math.max(s.maxEverWorkstationRows,s.workstationRows),s.maxEverRestCols=Math.max(s.maxEverRestCols,s.restCols),s.maxEverRestRows=Math.max(s.maxEverRestRows,s.restRows),s.maxEverMeetingCols=Math.max(s.maxEverMeetingCols,s.meetingCols),s.maxEverMeetingRows=Math.max(s.maxEverMeetingRows,s.meetingRows),s}static isSamePersisted(e,t){return e.workstationCols===t.workstationCols&&e.workstationRows===t.workstationRows&&e.restCols===t.restCols&&e.restRows===t.restRows&&e.meetingCols===t.meetingCols&&e.meetingRows===t.meetingRows&&e.maxEverWorkstationCols===t.maxEverWorkstationCols&&e.maxEverWorkstationRows===t.maxEverWorkstationRows&&e.maxEverRestCols===t.maxEverRestCols&&e.maxEverRestRows===t.maxEverRestRows&&e.maxEverMeetingCols===t.maxEverMeetingCols&&e.maxEverMeetingRows===t.maxEverMeetingRows}static expandGridToFit(e,t,s,a){let o=e.workstationCols,r=e.workstationRows,c=e.restCols,u=e.restRows,l=e.meetingCols,d=e.meetingRows;for(;o*r<t&&(o<12||r<12);)o<=r?o=Math.min(12,o+1):r=Math.min(12,r+1);for(;c*u<s&&(c<12||u<12);)c<=u?c=Math.min(12,c+1):u=Math.min(12,u+1);for(;l*d<a&&(l<12||d<12);)l<=d?l=Math.min(12,l+1):d=Math.min(12,d+1);let f={workstationCols:o,workstationRows:r,restCols:c,restRows:u,meetingCols:l,meetingRows:d,maxEverWorkstationCols:Math.max(e.maxEverWorkstationCols,o),maxEverWorkstationRows:Math.max(e.maxEverWorkstationRows,r),maxEverRestCols:Math.max(e.maxEverRestCols,c),maxEverRestRows:Math.max(e.maxEverRestRows,u),maxEverMeetingCols:Math.max(e.maxEverMeetingCols,l),maxEverMeetingRows:Math.max(e.maxEverMeetingRows,d)};return i.clampPersisted(f)}static \u0275fac=function(t){return new(t||i)};static \u0275prov=Z({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var ie=J(ee());var K=function(i){return i.connected="connected",i.disconnected="disconnected",i.error="error",i.unreachable="unreachable",i}(K||{});var W=class{static pickCcapPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveRun===!0||o.presence===p.working);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}static pickCciPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveSession===!0||o.presence===p.working);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}static pickCaiPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveSession===!0||o.presence===p.working);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}};var z=class{static pickPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveSession);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}};var xe=J(ee()),Pe=2*xe.minute;var ne=class i{static mapGatewaySessionsResponse(n){let e=[];for(let t of n.sessions){let s=i.mapOneSession(t);s!==null&&e.push(s)}return e}static mapOneSession(n){let e=typeof n.key=="string"?n.key:typeof n.sessionId=="string"?n.sessionId:typeof n.id=="string"?n.id:"";if(!e.trim())return null;let t=typeof n.status=="string"?n.status.trim().toLowerCase():"",s=i.resolvePresenceFromGatewaySession({statusLower:t,raw:n}),a=s===p.working,o=H.extractTimestamp(n,H.GATEWAY_SESSION_LAST_ACTIVITY_FIELD_NAMES)??new Date().toISOString(),r=typeof n.label=="string"?n.label:typeof n.name=="string"?n.name:typeof n.title=="string"?n.title:void 0,u=(typeof n.statusMessage=="string"?n.statusMessage:void 0)?.trim()||(t.length>0?t:"OpenClaw session"),l=typeof n.lastPrompt=="string"?n.lastPrompt:void 0;return{sessionId:e,sessionName:r,presence:s,lastActivityAt:o,hasActiveSession:a,activitySummary:u,lastMessage:l}}static resolvePresenceFromGatewaySession(n){let e=n.statusLower;return e==="connecting"?p.working:i.hasRecentGatewayOutputTimestamp(n.raw)?p.working:e?p.idle:p.idle}static hasRecentGatewayOutputTimestamp(n){let e=H.extractTimestamp(n,H.GATEWAY_OUTPUT_ONLY_TIMESTAMP_FIELD_NAMES);if(!e?.length)return!1;let t=Date.parse(e);return Number.isNaN(t)?!1:Date.now()-t<=Pe}};var re=function(i){return i.creating="creating",i.connecting="connecting",i.waitingInput="waiting-input",i.running="running",i.errored="errored",i.completed="completed",i.terminated="terminated",i.disconnected="disconnected",i}(re||{});var Ee=J(ee()),ce=(()=>{class i{static INTERESTING_SESSION_WINDOW_MS=5*Ee.minute;static prune(e,t){if(e.length===0)return[];let s=t.nowMs,a=t.recentWindowMs,o=[];for(let u of e){let l=new Date(u.lastActivityAt).getTime();Number.isNaN(l)||o.push({row:u,ms:l})}if(o.length===0)return[];let r=o.filter(u=>s-u.ms<=a),c=u=>{let d=[...u].sort((f,h)=>{let I=h.ms-f.ms;return I!==0?I:f.row.sessionId.localeCompare(h.row.sessionId)})[0];if(!d)throw new Error("DO_InstanceTrackerSessionStatuses_Prune_Util | empty sort");return d.row};if(r.length>0){let u=new Map;for(let l of r){let d=u.get(l.row.sessionId);(!d||l.ms>=d.ms)&&u.set(l.row.sessionId,l)}return[...u.values()].sort((l,d)=>d.ms-l.ms).map(l=>l.row)}return[c(o)]}}return i})();var V=class i{static resolveCcapSessionStatuses(n){let e=i.mapRawToCcapSessionStatuses(n.inst.rawSessionStatuses),t=e.length>0?e:i.snapshotCcapSessionStatuses({darkOffice_DS:n.darkOffice_DS,instanceId:n.inst.instanceId});return i.applyInterestingSessionWindow(t)}static resolveOciSessionStatuses(n){let e=i.mapRawToOciSessionStatuses(n.inst.rawSessionStatuses),t=e.length>0?e:i.snapshotOciSessionStatuses({darkOffice_DS:n.darkOffice_DS,instanceId:n.inst.instanceId});return i.applyInterestingSessionWindow(t)}static resolveCciSessionStatuses(n){let e=U.parseCcapId(n.inst.instanceId);if(!e)return[];let t=i.mapRawToCciSessionStatuses(n.inst.rawSessionStatuses),s=t.length>0?t:i.snapshotCciSessionStatuses({darkOffice_DS:n.darkOffice_DS,ccapId:e});return i.applyInterestingSessionWindow(s)}static resolveCaiSessionStatuses(n){let e=F.parseCcapId(n.inst.instanceId);if(!e)return[];let t=i.mapRawToCaiSessionStatuses(n.inst.rawSessionStatuses),s=t.length>0?t:i.snapshotCaiSessionStatuses({darkOffice_DS:n.darkOffice_DS,ccapId:e});return i.applyInterestingSessionWindow(s)}static applyInterestingSessionWindow(n){return ce.prune(n,{nowMs:Date.now(),recentWindowMs:ce.INTERESTING_SESSION_WINDOW_MS})}static snapshotCcapSessionStatuses(n){let t=n.darkOffice_DS.getCcapInstanceDataSnapshot(n.instanceId)?.sessionStatuses;return Array.isArray(t)?t:[]}static snapshotOciSessionStatuses(n){let t=n.darkOffice_DS.getOciInstanceDataSnapshot(n.instanceId)?.sessionStatuses;return Array.isArray(t)?t:[]}static snapshotCciSessionStatuses(n){let t=n.darkOffice_DS.getCciInstanceDataSnapshot(n.ccapId)?.sessionStatuses;return Array.isArray(t)?t:[]}static snapshotCaiSessionStatuses(n){let t=n.darkOffice_DS.getCaiInstanceDataSnapshot(n.ccapId)?.sessionStatuses;return Array.isArray(t)?t:[]}static mapRawToCcapSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if(!("hasActiveRun"in t))continue;let s=t.hasActiveRun;if(typeof s!="boolean")continue;let a=t.sessionId;if(typeof a!="string")continue;let o=t.presence;if(!i.isPresenceEnum(o))continue;let r=t.lastActivityAt;if(typeof r!="string")continue;let c=t.activitySummary;if(typeof c!="string")continue;let u=t.sessionName,l=t.lastMessage,d;if("activeRunPhase"in t){let h=t.activeRunPhase;if(h==null)d=void 0;else if(i.isRunFlowPhaseValue(h))d=h;else continue}let f;if("activeRunId"in t){let h=t.activeRunId;if(typeof h=="string")f=h;else if(h!=null)continue}e.push({sessionId:a,sessionName:typeof u=="string"?u:void 0,presence:o,lastActivityAt:r,hasActiveRun:s,activeRunId:f,activeRunPhase:d,activitySummary:c,lastMessage:typeof l=="string"?l:void 0})}return e}static mapRawToCaiSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if("hasActiveRun"in t||!("hasActiveSession"in t)||!("currentCaSessionStatus"in t))continue;let s=i.tryMapToOciOrCciShape(t);if(s===null)continue;let a=Reflect.get(t,"currentCaSessionStatus"),o;i.isCaSessionStatusValue(a)&&(o=a),e.push({sessionId:s.sessionId,sessionName:s.sessionName,presence:s.presence,lastActivityAt:s.lastActivityAt,hasActiveSession:s.hasActiveSession,currentCaSessionStatus:o,activitySummary:s.activitySummary,lastMessage:s.lastMessage})}return e}static mapRawToOciSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if("hasActiveRun"in t||!("hasActiveSession"in t))continue;let s=i.tryMapToOciOrCciShape(t);s!==null&&e.push(s)}return e}static mapRawToCciSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if("hasActiveRun"in t||!("hasActiveSession"in t))continue;let s=i.tryMapToOciOrCciShape(t);if(s===null)continue;let a;if("currentCcSessionStatus"in t){let o=t.currentCcSessionStatus;typeof o=="string"&&(a=o)}e.push({sessionId:s.sessionId,sessionName:s.sessionName,presence:s.presence,lastActivityAt:s.lastActivityAt,hasActiveSession:s.hasActiveSession,currentCcSessionStatus:a,activitySummary:s.activitySummary,lastMessage:s.lastMessage})}return e}static tryMapToOciOrCciShape(n){if(!("hasActiveSession"in n))return null;let e=Reflect.get(n,"hasActiveSession");if(typeof e!="boolean")return null;let t=n.sessionId;if(typeof t!="string")return null;let s=n.presence;if(!i.isPresenceEnum(s))return null;let a=n.lastActivityAt;if(typeof a!="string")return null;let o=n.activitySummary;if(typeof o!="string")return null;let r=n.sessionName,c=n.lastMessage;return{sessionId:t,sessionName:typeof r=="string"?r:void 0,presence:s,lastActivityAt:a,hasActiveSession:e,activitySummary:o,lastMessage:typeof c=="string"?c:void 0}}static isPresenceEnum(n){return typeof n!="string"?!1:Object.values(p).includes(n)}static isRunFlowPhaseValue(n){if(typeof n!="string")return!1;let e=Object.values(we);for(let t of e)if(t===n)return!0;return!1}static isCaSessionStatusValue(n){if(typeof n!="string")return!1;let e=Object.values(re);for(let t of e)if(t===n)return!0;return!1}};var Te=72,q=class i{static buildLastMessageDerivedStatusLabel(n){let e=n.trim();return e&&e.startsWith("[QUEUE]")?"Message queued":""}static buildPanelActiveSessionRows(n){let e=n.rawSessionStatuses;if(!e||e.length===0)return[];let t=n.characterType,s;return t===C.openclaw||t===C.ccSession||t===C.caSession?s=i.collectActiveOciOrCciFromUnion(e):s=i.collectActiveCcapFromUnion(e),s.length<=1?[]:s}static buildSessionDisplayLabel(n,e){let t=e?.trim();return t||i.shortenSessionId(n)}static truncateLastMessagePreview(n){let e=n.trim();return e?e.length<=Te?e:`${e.slice(0,Te-1)}\u2026`:""}static isCcapSessionRow(n){return"hasActiveRun"in n}static isOciOrCciSessionRow(n){return"hasActiveSession"in n}static isCcapSessionActive(n){return n.hasActiveRun===!0?!0:n.presence===p.working}static isOciOrCciSessionActive(n){return n.hasActiveSession===!0?!0:n.presence===p.working}static isSessionActiveForSceneDuplication(n){if(n.row.presence===p.offline)return!1;let e=n.characterType;return e===C.openclaw||e===C.ccSession||e===C.caSession?i.isOciOrCciSessionRow(n.row)?i.isOciOrCciSessionActive(n.row):!1:i.isCcapSessionRow(n.row)?i.isCcapSessionActive(n.row):!1}static shortenSessionId(n){return n.length<=10?n:`${n.slice(0,8)}\u2026`}static collectActiveCcapFromUnion(n){let e=[];for(let t of n){if(!i.isCcapSessionRow(t)||!i.isCcapSessionActive(t))continue;let s=i.truncateLastMessagePreview(t.lastMessage??"");e.push({sessionId:t.sessionId,displayLabel:i.buildSessionDisplayLabel(t.sessionId,t.sessionName),presence:t.presence,activitySummary:t.activitySummary,lastMessagePreview:s})}return e}static collectActiveOciOrCciFromUnion(n){let e=[];for(let t of n){if(!i.isOciOrCciSessionRow(t)||!i.isOciOrCciSessionActive(t))continue;let s=i.truncateLastMessagePreview(t.lastMessage??"");e.push({sessionId:t.sessionId,displayLabel:i.buildSessionDisplayLabel(t.sessionId,t.sessionName),presence:t.presence,activitySummary:t.activitySummary,lastMessagePreview:s})}return e}};var le=J(ee());var Q=(()=>{class i{static sceneRecentActivityWindowMs=5*le.minute;static sceneIdleWalkActivityWindowMs=15*le.minute;static parseLastActivityMs(e){let t=Date.parse(e);return Number.isNaN(t)?Number.NaN:t}static isSessionRecentAndOnline(e){if(e.presence===p.offline)return!1;let t=i.parseLastActivityMs(e.lastActivityAtIso);return Number.isNaN(t)?!1:e.nowMs-t<=e.windowMs}static rowLastActivityIso(e){return e.lastActivityAt??""}static isSessionWorkingForSceneCharacter(e){return e.presence===p.working||"hasActiveRun"in e&&e.hasActiveRun===!0||"hasActiveSession"in e&&e.hasActiveSession===!0}static isWorkingSessionRecentAndOnline(e){return i.isSessionWorkingForSceneCharacter(e.row)?i.isSessionRecentAndOnline({lastActivityAtIso:i.rowLastActivityIso(e.row),presence:e.row.presence,nowMs:e.nowMs,windowMs:e.windowMs}):!1}static isSessionInIdleWalkWindow(e){if(e.row.presence===p.offline||i.isWorkingSessionRecentAndOnline({row:e.row,nowMs:e.nowMs,windowMs:e.recentWindowMs}))return!1;let t=i.parseLastActivityMs(i.rowLastActivityIso(e.row));return Number.isNaN(t)?!1:e.nowMs-t<=e.idleWalkWindowMs}static pickNewestSessionByLastActivity(e){let t=e.sessions;return t.length===0?null:[...t].sort((o,r)=>{let c=i.parseLastActivityMs(i.rowLastActivityIso(o)),u=i.parseLastActivityMs(i.rowLastActivityIso(r)),l=!Number.isNaN(c),d=!Number.isNaN(u);return l&&d&&u!==c?u-c:l!==d?l?-1:1:o.sessionId.localeCompare(r.sessionId)})[0]??null}}return i})();var je="instance-data:session-status-updated",Be="openclaw-instance-data:status-updated",He="cci-instance-data:status-updated",Ke="cai-instance-data:status-updated",ys=(()=>{class i{instances_$=P([]);characters_$=D(()=>{let e=this.expandInstancesToCharacters(this.instances_$());return this.assignDistinctSlotsForScene(e)});loading_$=P(!1);loadError_$=P(null);isServerUnreachable_$=P(!1);selectedInstanceId_$=P(null);chatPopupSessionId_$=P(null);chatPopupSessionType_$=P(null);instanceStatusDetailInstanceId_$=P(null);instanceData_AS=x(ve);ociInstanceData_AS=x(Ce);cciInstanceData_AS=x(ge);caiInstanceData_AS=x(Ie);runtimeInstances_DS=x(Re);socket_CS=x(ye);ocSession_DS=x(Ae);darkOfficeLayout_DS=x(ke);constructor(){me(()=>{this.darkOfficeLayout_DS.ensureMinCapacitiesFromSceneCharacters(this.characters_$())},{allowSignalWrites:!0}),this.socket_CS.event$.subscribe(e=>{e.event===je?this.handleInstanceStatusUpdate(e.payload):e.event===Be?this.handleOciInstanceStatusUpdate(e.payload):e.event===He?this.handleCciInstanceStatusUpdate(e.payload):e.event===Ke&&this.handleCaiInstanceStatusUpdate(e.payload)})}workstationSlotMap=new Map;restSlotMap=new Map;patchTimerMap=new Map;meetingRoomLingerMs=2*ie.minute;sessionMeetingRoomUntilByKey=new Map;loadInstanceData(){return $(this,null,function*(){this.loading_$.set(!0),this.loadError_$.set(null);try{yield this.runtimeInstances_DS.loadCcapInstanceList();let e=this.runtimeInstances_DS.ccapInstanceListError_$();if(e){e instanceof fe&&e.status===0?this.isServerUnreachable_$.set(!0):this.loadError_$.set(e);return}yield this.runtimeInstances_DS.loadOciInstanceListAllowEmpty(),yield this.runtimeInstances_DS.loadCciInstanceListAllowEmpty(),yield this.runtimeInstances_DS.loadCaiInstanceListAllowEmpty(),this.isServerUnreachable_$.set(!1);let s=this.runtimeInstances_DS.ccapInstanceList_$().filter(d=>d.status===te.active),a=this.runtimeInstances_DS.ociInstanceList_$(),o=yield this.enrichOciListWithGatewaySessions({list:a}),c=this.runtimeInstances_DS.cciInstanceList_$().filter(d=>d.status===te.active),l=this.runtimeInstances_DS.caiInstanceList_$().filter(d=>d.status===te.active);this.applyAllInstanceData(s,o,c,l)}finally{this.loading_$.set(!1)}})}enrichOciListWithGatewaySessions(e){return $(this,null,function*(){return yield Promise.all(e.list.map(s=>$(this,null,function*(){let a=s.sessionStatuses??[];if(!(s.connectionStatus===K.connected)||a.length>0)return s;try{let r=yield this.ocSession_DS.fetchGatewaySessionsForInstance({instanceId:s.instanceId}),c=ne.mapGatewaySessionsResponse({sessions:r.rawSessions});return c.length===0?s:A(R({},s),{sessionStatuses:c})}catch(r){return ie.DyFM_Error.logSimple("CCAP_DarkOffice_DS | enrichOciListWithGatewaySessions failed",r),s}})))})}saveVisuals(e,t){this.instances_$.update(s=>s.map(a=>a.instanceId===e?A(R({},a),{visuals:t}):a)),this.schedulePatch(e,t)}dismissError(){this.loadError_$.set(null)}openChatPopup(e,t=null){this.chatPopupSessionId_$.set(e),this.chatPopupSessionType_$.set(t)}closeChatPopup(){this.chatPopupSessionId_$.set(null),this.chatPopupSessionType_$.set(null)}selectInstance(e){this.selectedInstanceId_$.set(e)}openInstanceStatusDetail(e){this.instanceStatusDetailInstanceId_$.set(e)}closeInstanceStatusDetail(){this.instanceStatusDetailInstanceId_$.set(null)}getCcapInstanceDataSnapshot(e){return this.runtimeInstances_DS.ccapInstanceList_$().find(t=>t.ccapId===e)}getOciInstanceDataSnapshot(e){return this.runtimeInstances_DS.ociInstanceList_$().find(t=>t.instanceId===e)}getCciInstanceDataSnapshot(e){return this.runtimeInstances_DS.cciInstanceList_$().find(t=>t.ccapId===e)}getCaiInstanceDataSnapshot(e){return this.runtimeInstances_DS.caiInstanceList_$().find(t=>t.ccapId===e)}resolveOfficeInstanceById(e){return e?this.instances_$().find(a=>a.instanceId===e)??null:null}resolveModalCcapSessionStatuses(e){return V.resolveCcapSessionStatuses({inst:e,darkOffice_DS:this})}resolveModalOciSessionStatuses(e){return V.resolveOciSessionStatuses({inst:e,darkOffice_DS:this})}resolveModalCciSessionStatuses(e){return V.resolveCciSessionStatuses({inst:e,darkOffice_DS:this})}resolveModalCaiSessionStatuses(e){return V.resolveCaiSessionStatuses({inst:e,darkOffice_DS:this})}buildInstanceStatusDetailRuntimeHint(e){let t=e.characterType??C.ccap;if(t===C.openclaw)return this.resolveModalOciSessionStatuses(e).length>0||this.getOciInstanceDataSnapshot(e.instanceId)?"":"No matching OCI row in runtime list (last load only; socket updates may not refresh this list).";if(t===C.ccSession){let o=U.parseCcapId(e.instanceId);return!o||this.resolveModalCciSessionStatuses(e).length>0||this.getCciInstanceDataSnapshot(o)?"":"No matching CCI row in runtime list (last load only; socket updates may not refresh this list)."}if(t===C.caSession){let o=F.parseCcapId(e.instanceId);return!o||this.resolveModalCaiSessionStatuses(e).length>0||this.getCaiInstanceDataSnapshot(o)?"":"No matching CAI row in runtime list (last load only; socket updates may not refresh this list)."}return this.resolveModalCcapSessionStatuses(e).length>0||this.getCcapInstanceDataSnapshot(e.instanceId)?"":"No matching CCAP row in runtime list (last load only; socket updates may not refresh this list)."}pruneExpiredMeetingRoomKeys(e){for(let t of[...this.sessionMeetingRoomUntilByKey.keys()]){let s=this.sessionMeetingRoomUntilByKey.get(t);s!==void 0&&s<=e&&this.sessionMeetingRoomUntilByKey.delete(t)}}applyMeetingRoomTransitionForSessionDiff(e){let t=Date.now();this.pruneExpiredMeetingRoomKeys(t);let s=new Map;for(let a of e.previousRows??[])s.set(a.sessionId,a.presence);for(let a of e.nextRows??[]){let o=s.get(a.sessionId),r=`${e.baseInstanceId}::${a.sessionId}`;o===p.working&&a.presence===p.idle&&this.sessionMeetingRoomUntilByKey.set(r,t+this.meetingRoomLingerMs)}}resolveScenePlacementForSessionKey(e){let t=`${e.baseInstanceId}::${e.sessionId}`,s=this.sessionMeetingRoomUntilByKey.get(t);if(s!==void 0&&Date.now()<s)return O.meeting}handleInstanceStatusUpdate(e){let t=typeof e.ccapId=="string"?e.ccapId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0;if(!t||!a)return;let o=this.instances_$(),r=o.findIndex(h=>h.instanceId===t);if(r<0){this.loadInstanceData();return}let c=o[r];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:c.rawSessionStatuses,nextRows:a});let u=this.resolveSessionInfoFromStatuses(a),l=this.assignSlot(t,u.presence,c),d=this.resolveAnimState(u.presence,c.presence),f=this.applyPanelCardProjection(A(R({},c),{presence:u.presence,activitySummary:u.activitySummary,currentRunFlowPhase:u.currentRunFlowPhase,latestSessionId:u.latestSessionId,lastMessage:u.lastMessage,animState:d,previousPresence:c.presence,assignedSlotIndex:l,rawSessionStatuses:a}));this.instances_$.update(h=>h.map(I=>I.instanceId===t?f:I))}resolveSessionInfoFromStatuses(e){if(e.length===0)return{presence:p.idle,activitySummary:"No CCAP Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let s=W.pickCcapPrimary(e)??e[0];return{presence:s.presence,activitySummary:s.activitySummary,currentRunFlowPhase:s.activeRunPhase??null,latestSessionId:s.sessionId,lastMessage:s.lastMessage??""}}applyPanelCardProjection(e){let t=e.sessionName??"";if(!t&&e.latestSessionId&&e.rawSessionStatuses){for(let s of e.rawSessionStatuses)if(s.sessionId===e.latestSessionId){t=s.sessionName??"";break}}return A(R({},e),{sessionName:t,lastMessageDerivedStatusLabel:q.buildLastMessageDerivedStatusLabel(e.lastMessage),panelActiveSessionRows:q.buildPanelActiveSessionRows({characterType:e.characterType,rawSessionStatuses:e.rawSessionStatuses})})}applyAllInstanceData(e,t,s,a){let o=this.instances_$(),r=new Map(o.map(S=>[S.instanceId,S])),c=e.map(S=>{let m=r.get(S.ccapId),g=m?.visuals??this.mapToVisuals(S),w=this.resolveSessionInfo(S),y=this.assignSlot(S.ccapId,w.presence,m),v=this.resolveAnimState(w.presence,m?.presence??null);return this.applyPanelCardProjection({instanceId:S.ccapId,presence:w.presence,activitySummary:w.activitySummary,currentRunFlowPhase:w.currentRunFlowPhase,latestSessionId:w.latestSessionId,lastMessage:w.lastMessage,visuals:g,animState:v,previousPresence:m?.presence??null,assignedSlotIndex:y,characterType:C.ccap,connectionStatus:null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),u=t.map(S=>{let m=r.get(S.instanceId),g=m?.visuals??this.mapOciToVisuals(S),w=this.resolveOciSessionInfo(S),y=this.assignSlot(S.instanceId,w.presence,m),v=this.resolveAnimState(w.presence,m?.presence??null);return this.applyPanelCardProjection({instanceId:S.instanceId,presence:w.presence,activitySummary:w.activitySummary,currentRunFlowPhase:null,latestSessionId:w.latestSessionId,lastMessage:w.lastMessage,visuals:g,animState:v,previousPresence:m?.presence??null,assignedSlotIndex:y,characterType:C.openclaw,connectionStatus:S.connectionStatus??null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),l=s.map(S=>{let m=U.build({ccapId:S.ccapId}),g=r.get(m),w=g?.visuals??this.mapCciToVisuals(S),y=this.resolveCciSessionInfo(S),v=this.assignSlot(m,y.presence,g),k=this.resolveAnimState(y.presence,g?.presence??null);return this.applyPanelCardProjection({instanceId:m,presence:y.presence,activitySummary:y.activitySummary,currentRunFlowPhase:y.currentRunFlowPhase,latestSessionId:y.latestSessionId,lastMessage:y.lastMessage,visuals:w,animState:k,previousPresence:g?.presence??null,assignedSlotIndex:v,characterType:C.ccSession,connectionStatus:null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),d=a.map(S=>{let m=F.build({ccapId:S.ccapId}),g=r.get(m),w=g?.visuals??this.mapCaiToVisuals(S),y=this.resolveCaiSessionInfo(S),v=this.assignSlot(m,y.presence,g),k=this.resolveAnimState(y.presence,g?.presence??null);return this.applyPanelCardProjection({instanceId:m,presence:y.presence,activitySummary:y.activitySummary,currentRunFlowPhase:y.currentRunFlowPhase,latestSessionId:y.latestSessionId,lastMessage:y.lastMessage,visuals:w,animState:k,previousPresence:g?.presence??null,assignedSlotIndex:v,characterType:C.caSession,connectionStatus:null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),f=[...c,...u,...l,...d];for(let S of f){let m=r.get(S.instanceId);this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:S.instanceId,previousRows:m?.rawSessionStatuses,nextRows:S.rawSessionStatuses})}let h=new Set(f.map(S=>S.instanceId)),I=o.filter(S=>!h.has(S.instanceId)&&S.animState!==M.walkingOut).map(S=>this.applyPanelCardProjection(A(R({},S),{animState:M.walkingOut})));this.instances_$.set([...f,...I]),I.length>0&&setTimeout(()=>{this.instances_$.update(S=>S.filter(m=>h.has(m.instanceId)))},Me+200)}mapToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??b.skinColor,hairColor:t?.hairColor??b.hairColor,hairStyle:t?.hairStyle??b.hairStyle,shirtColor:t?.shirtColor??b.shirtColor,clothingStyle:t?.clothingStyle??b.clothingStyle,pantsColor:t?.pantsColor??b.pantsColor,eyeColor:t?.eyeColor??b.eyeColor,bodyType:t?.bodyType??b.bodyType,displayName:e.name??""}}resolveSessionInfo(e){let t=e.sessionStatuses;if(!t||t.length===0)return{presence:p.idle,activitySummary:"No CCAP Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let a=W.pickCcapPrimary(t)??t[0];return{presence:a.presence,activitySummary:a.activitySummary,currentRunFlowPhase:a.activeRunPhase??null,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}}mapOciToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??_.skinColor,hairColor:t?.hairColor??_.hairColor,hairStyle:t?.hairStyle??_.hairStyle,shirtColor:t?.shirtColor??_.shirtColor,clothingStyle:t?.clothingStyle??_.clothingStyle,pantsColor:t?.pantsColor??_.pantsColor,eyeColor:t?.eyeColor??_.eyeColor,bodyType:t?.bodyType??_.bodyType,displayName:e.label??""}}mapCaiToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??N.skinColor,hairColor:t?.hairColor??N.hairColor,hairStyle:t?.hairStyle??N.hairStyle,shirtColor:t?.shirtColor??N.shirtColor,clothingStyle:t?.clothingStyle??N.clothingStyle,pantsColor:t?.pantsColor??N.pantsColor,eyeColor:t?.eyeColor??N.eyeColor,bodyType:t?.bodyType??N.bodyType,displayName:e.name??""}}resolveCaiSessionInfo(e){let t=e.sessionStatuses??[];if(t.length===0)return{presence:p.idle,activitySummary:"No CA Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let a=W.pickCaiPrimary(t)??t[0];return{presence:a.presence,activitySummary:a.activitySummary,currentRunFlowPhase:a.currentCaSessionStatus??null,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}}mapCciToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??L.skinColor,hairColor:t?.hairColor??L.hairColor,hairStyle:t?.hairStyle??L.hairStyle,shirtColor:t?.shirtColor??L.shirtColor,clothingStyle:t?.clothingStyle??L.clothingStyle,pantsColor:t?.pantsColor??L.pantsColor,eyeColor:t?.eyeColor??L.eyeColor,bodyType:t?.bodyType??L.bodyType,displayName:e.name??""}}resolveCciSessionInfo(e){let t=e.sessionStatuses??[];if(t.length===0)return{presence:p.idle,activitySummary:"No CC Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let a=W.pickCciPrimary(t)??t[0];return{presence:a.presence,activitySummary:a.activitySummary,currentRunFlowPhase:a.currentCcSessionStatus??null,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}}resolveOciSessionInfo(e){if(!(e.connectionStatus===K.connected))return{presence:p.offline,activitySummary:"Gateway disconnected",latestSessionId:null,lastMessage:""};let s=e.sessionStatuses??[];if(s.length===0)return{presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""};let a=z.pickPrimary(s);return a?{presence:a.presence,activitySummary:a.activitySummary,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}:{presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""}}handleOciInstanceStatusUpdate(e){let t=typeof e.instanceId=="string"?e.instanceId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0,o=typeof e.connectionStatus=="string"?e.connectionStatus:void 0;if(!t)return;let r=this.instances_$(),c=r.findIndex(m=>m.instanceId===t);if(!(o===K.connected)&&c>=0){let m=r[c],g=this.assignSlot(t,p.offline,m),w=this.resolveAnimState(p.offline,m.presence);this.instances_$.update(y=>y.map(v=>v.instanceId===t?this.applyPanelCardProjection(A(R({},v),{presence:p.offline,activitySummary:"Gateway disconnected",lastMessage:"",animState:w,previousPresence:m.presence,assignedSlotIndex:g,connectionStatus:o??v.connectionStatus})):v));return}if(c<0){this.loadInstanceData();return}let l=r[c],d=a??[];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:l.rawSessionStatuses,nextRows:d});let f;if(d.length>0){let m=z.pickPrimary(d);m?f={presence:m.presence,activitySummary:m.activitySummary,latestSessionId:m.sessionId,lastMessage:m.lastMessage??""}:f={presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""}}else f={presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""};let h=this.assignSlot(t,f.presence,l),I=this.resolveAnimState(f.presence,l.presence),S=this.applyPanelCardProjection(A(R({},l),{presence:f.presence,activitySummary:f.activitySummary,latestSessionId:f.latestSessionId,lastMessage:f.lastMessage,animState:I,previousPresence:l.presence,assignedSlotIndex:h,connectionStatus:o??l.connectionStatus,rawSessionStatuses:d}));this.instances_$.update(m=>m.map(g=>g.instanceId===t?S:g))}handleCciInstanceStatusUpdate(e){let t=typeof e.officeInstanceId=="string"?e.officeInstanceId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0;if(!t)return;let o=this.instances_$(),r=o.findIndex(I=>I.instanceId===t);if(r<0){this.loadInstanceData();return}let c=o[r],u=a??[];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:c.rawSessionStatuses,nextRows:u});let l=this.resolveSessionInfoFromCciStatuses(u),d=this.assignSlot(t,l.presence,c),f=this.resolveAnimState(l.presence,c.presence),h=this.applyPanelCardProjection(A(R({},c),{presence:l.presence,activitySummary:l.activitySummary,currentRunFlowPhase:l.currentRunFlowPhase,latestSessionId:l.latestSessionId,lastMessage:l.lastMessage,animState:f,previousPresence:c.presence,assignedSlotIndex:d,rawSessionStatuses:u}));this.instances_$.update(I=>I.map(S=>S.instanceId===t?h:S))}handleCaiInstanceStatusUpdate(e){let t=typeof e.officeInstanceId=="string"?e.officeInstanceId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0;if(!t)return;let o=this.instances_$(),r=o.findIndex(I=>I.instanceId===t);if(r<0){this.loadInstanceData();return}let c=o[r],u=a??[];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:c.rawSessionStatuses,nextRows:u});let l=this.resolveSessionInfoFromCaiStatuses(u),d=this.assignSlot(t,l.presence,c),f=this.resolveAnimState(l.presence,c.presence),h=this.applyPanelCardProjection(A(R({},c),{presence:l.presence,activitySummary:l.activitySummary,currentRunFlowPhase:l.currentRunFlowPhase,latestSessionId:l.latestSessionId,lastMessage:l.lastMessage,animState:f,previousPresence:c.presence,assignedSlotIndex:d,rawSessionStatuses:u}));this.instances_$.update(I=>I.map(S=>S.instanceId===t?h:S))}resolveSessionInfoFromCciStatuses(e){if(e.length===0)return{presence:p.idle,activitySummary:"No CC Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let s=W.pickCciPrimary(e)??e[0];return{presence:s.presence,activitySummary:s.activitySummary,currentRunFlowPhase:s.currentCcSessionStatus??null,latestSessionId:s.sessionId,lastMessage:s.lastMessage??""}}resolveSessionInfoFromCaiStatuses(e){if(e.length===0)return{presence:p.idle,activitySummary:"No CA Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let s=W.pickCaiPrimary(e)??e[0];return{presence:s.presence,activitySummary:s.activitySummary,currentRunFlowPhase:s.currentCaSessionStatus??null,latestSessionId:s.sessionId,lastMessage:s.lastMessage??""}}schedulePatch(e,t){let s=this.patchTimerMap.get(e);s!==void 0&&clearTimeout(s);let a=setTimeout(()=>{this.patchTimerMap.delete(e);let d=t,{displayName:o}=d,r=Se(d,["displayName"]),c=this.instances_$().find(f=>f.instanceId===e),u=F.parseCcapId(e),l=U.parseCcapId(e);u!==null?this.caiInstanceData_AS.patchByCcapId({ccapId:u,name:o||void 0,darkOfficeVisuals:r}):l!==null?this.cciInstanceData_AS.patchByCcapId({ccapId:l,name:o||void 0,darkOfficeVisuals:r}):c?.characterType===C.openclaw?this.ociInstanceData_AS.patchVisuals({instanceId:e,label:o||void 0,darkOfficeVisuals:r}):this.instanceData_AS.patchByCcapId({ccapId:e,name:o||void 0,darkOfficeVisuals:r})},300);this.patchTimerMap.set(e,a)}assignSlot(e,t,s){let a=t===p.working,o=a?this.workstationSlotMap:this.restSlotMap,r=a?this.darkOfficeLayout_DS.workstationCapacity_$():this.darkOfficeLayout_DS.restCapacity_$();if(o.has(e))return o.get(e);this.workstationSlotMap.delete(e),this.restSlotMap.delete(e);let c=new Set(o.values());for(let l=0;l<r;l++)if(!c.has(l))return o.set(e,l),l;let u=r;for(;c.has(u);)u++;return o.set(e,u),u}resolveAnimState(e,t){return t===p.offline&&e!==p.offline?M.walkingIn:t!==null&&t!==p.offline&&e===p.offline?M.walkingOut:t!==null&&t!==p.offline&&e!==p.offline&&t!==e?M.walkingBetween:e===p.working?M.working:e===p.idle?M.sitting:M.standing}assignDistinctSlotsForScene(e){let t=0,s=0,a=0;return e.map(o=>{let r;return o.scenePlacement===O.meeting?r=a++:o.presence===p.working?r=t++:r=s++,A(R({},o),{assignedSlotIndex:r})})}expandInstancesToCharacters(e){let t=[],s=Date.now(),a=Q.sceneRecentActivityWindowMs,o=Q.sceneIdleWalkActivityWindowMs,r=new Map;for(let c of e)c.characterType===C.ccap&&r.set(c.instanceId,c.presence);for(let c of e){if(c.presence===p.offline)continue;if(c.characterType===C.ccSession||c.characterType===C.caSession){let l=c.characterType===C.ccSession?U.parseCcapId(c.instanceId):F.parseCcapId(c.instanceId),d=l?r.get(l):void 0;if(d===void 0||d===p.offline)continue}t.push(this.buildInstanceBaselineCharacter(c));let u=c.rawSessionStatuses??[];for(let l of u){if(Q.isWorkingSessionRecentAndOnline({row:l,nowMs:s,windowMs:a})){t.push(this.buildPerSessionOfficeCharacter(c,l));continue}Q.isSessionInIdleWalkWindow({row:l,nowMs:s,recentWindowMs:a,idleWalkWindowMs:o})&&t.push(this.buildIdleWalkSessionCharacter(c,l))}}return t}buildIdleWalkSessionCharacter(e,t){let s=`${e.instanceId}::${t.sessionId}`;return this.applyPanelCardProjection(A(R({},e),{instanceId:s,sessionId:t.sessionId,sessionName:t.sessionName??"",presence:p.idle,activitySummary:t.activitySummary,lastMessage:t.lastMessage??"",latestSessionId:t.sessionId,currentRunFlowPhase:i.resolveSessionRunFlowPhaseLabel(t),assignedSlotIndex:0,animState:M.idleWalking,previousPresence:null,scenePlacement:void 0,rawSessionStatuses:void 0,lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]}))}buildInstanceBaselineCharacter(e){return this.applyPanelCardProjection(A(R({},e),{instanceId:e.instanceId,sessionId:void 0,sessionName:"",presence:p.idle,activitySummary:e.activitySummary,lastMessage:"",latestSessionId:null,currentRunFlowPhase:null,assignedSlotIndex:0,animState:M.sitting,previousPresence:null,scenePlacement:void 0,rawSessionStatuses:e.rawSessionStatuses,lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]}))}buildPerSessionOfficeCharacter(e,t){let s=`${e.instanceId}::${t.sessionId}`,o=(t.presence===p.working?void 0:this.resolveScenePlacementForSessionKey({baseInstanceId:e.instanceId,sessionId:t.sessionId}))===O.meeting?O.meeting:void 0;return this.applyPanelCardProjection(A(R({},e),{instanceId:s,sessionId:t.sessionId,sessionName:t.sessionName??"",presence:t.presence,activitySummary:t.activitySummary,lastMessage:t.lastMessage??"",latestSessionId:t.sessionId,currentRunFlowPhase:i.resolveSessionRunFlowPhaseLabel(t),assignedSlotIndex:0,animState:t.presence===p.working?M.working:M.sitting,previousPresence:null,scenePlacement:o,rawSessionStatuses:void 0,lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]}))}static resolveSessionRunFlowPhaseLabel(e){return"activeRunPhase"in e?e.activeRunPhase??null:"currentCcSessionStatus"in e?e.currentCcSessionStatus??null:"currentCaSessionStatus"in e?e.currentCaSessionStatus??null:null}static \u0275fac=function(t){return new(t||i)};static \u0275prov=Z({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();export{M as a,O as b,C as c,K as d,X as e,Y as f,j as g,it as h,ot as i,at as j,rt as k,ct as l,F as m,U as n,Q as o,ke as p,ys as q};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as H,b as Ae}from"./chunk-PQVFWHXC.js";import{a as we}from"./chunk-UFBTR2BG.js";import{a as te,b as p}from"./chunk-6Y7O2W4H.js";import{a as Ie,b as ge,c as ve,d as Re}from"./chunk-BM4UEP47.js";import{a as Ce}from"./chunk-OSJXI65X.js";import{e as ye}from"./chunk-AAFXSEZA.js";import{L as he,p as ee,t as ae}from"./chunk-RXRE3G4K.js";import{C as x,a as R,aa as P,b as A,d as Se,h as J,hb as D,jb as me,k as $,wb as fe,y as Z}from"./chunk-TBMJSIBB.js";var M=function(i){return i.standing="standing",i.working="working",i.sitting="sitting",i.walkingIn="walking-in",i.walkingOut="walking-out",i.walkingBetween="walking-between",i.idleWalking="idle-walking",i}(M||{});var O=function(i){return i.workstation="workstation",i.rest="rest",i.meeting="meeting",i}(O||{});var C=function(i){return i.ccap="ccap",i.openclaw="openclaw",i.ccSession="cc-session",i.caSession="ca-session",i}(C||{});var X=function(i){return i.average="average",i.slim="slim",i.stocky="stocky",i.athletic="athletic",i}(X||{});var Y=function(i){return i.casual="casual",i.formal="formal",i.hoodie="hoodie",i.tshirt="tshirt",i}(Y||{});var j=function(i){return i.short="short",i.long="long",i.spiky="spiky",i.curly="curly",i.bald="bald",i.mohawk="mohawk",i}(j||{});var it=["#f5c592","#e8a96e","#d4845a","#c06a3c","#9b5930","#7a3d1c","#4a2412"],ot=["#1a1006","#3b2505","#6b3d11","#9b6720","#c9a227","#e8d5a3","#f0f0f0","#a0a0a0","#2a4080","#8b1a2a"],at=["#1e40af","#166534","#7f1d1d","#4c1d95","#134e4a","#713f12","#374151","#6b21a8","#0f766e","#1e3a5f","#b45309","#be185d","#475569"],rt=["#1e293b","#374151","#292524","#1e3a5f","#1a2e05","#2d1b69","#3b1a08","#1a1a2e"],ct=["#1a1a1a","#3b5998","#2d8a4e","#8b4513","#4b0082","#5f9ea0"],b={skinColor:"#e8a96e",hairColor:"#1a1006",hairStyle:j.short,shirtColor:"#1e40af",clothingStyle:Y.casual,pantsColor:"#1e293b",eyeColor:"#1a1a1a",bodyType:X.average,displayName:""},_={skinColor:"#b0bec5",hairColor:"#37474f",hairStyle:j.short,shirtColor:"#0288d1",clothingStyle:Y.tshirt,pantsColor:"#263238",eyeColor:"#00bcd4",bodyType:X.average,displayName:""},L={skinColor:"#d4c4a8",hairColor:"#2d1b0e",hairStyle:j.short,shirtColor:"#5b21b6",clothingStyle:Y.casual,pantsColor:"#312e81",eyeColor:"#4338ca",bodyType:X.average,displayName:""},N={skinColor:"#e2e8f0",hairColor:"#0f172a",hairStyle:j.short,shirtColor:"#0d9488",clothingStyle:Y.casual,pantsColor:"#134e4a",eyeColor:"#14b8a6",bodyType:X.average,displayName:""};var Me=2e3;var F=(()=>{class i{static officeInstanceIdPrefix="cai:";static build(e){return`${i.officeInstanceIdPrefix}${e.ccapId.trim()}`}static parseCcapId(e){let t=e.trim();if(!t.startsWith(i.officeInstanceIdPrefix))return null;let s=t.slice(i.officeInstanceIdPrefix.length).trim();return s.length>0?s:null}}return i})();var U=(()=>{class i{static officeInstanceIdPrefix="cci:";static build(e){return`${i.officeInstanceIdPrefix}${e.ccapId.trim()}`}static parseCcapId(e){let t=e.trim();if(!t.startsWith(i.officeInstanceIdPrefix))return null;let s=t.slice(i.officeInstanceIdPrefix.length).trim();return s.length>0?s:null}}return i})();var E=class i{static clampGrid(n){return{workstationCols:i.clampDim(n.workstationCols),workstationRows:i.clampDim(n.workstationRows),restCols:i.clampDim(n.restCols),restRows:i.clampDim(n.restRows),meetingCols:i.clampDim(n.meetingCols),meetingRows:i.clampDim(n.meetingRows)}}static computeDerived(n){let e=i.clampGrid(n),t=4*32,s=3*32,a=i.computeWorkspaceWidthPx(e.workstationCols),o=i.computeLoungeWidthPx(e.restCols),r=6*32,c=a+r+o,u=8*32,l=c+u,d=e.workstationRows*6*32,f=3*32+e.meetingRows*5*32+3*32,h=Math.max(2*32,Math.round(f/2)),I=s+d,S=2*32,m=I+h+32,g=t-32,w=S,y=c+2*32,v=m-w,k=m+3*32,T={x:t,y:s,w:a,h:d},G={x:t+a,y:s,w:r,h:m-s},B={x:t+a+r,y:s,w:o,h:m-s},oe={x:t,y:I,w:a,h},De=t+a,ue=t+a+r,Oe=I,be={x:G.x+Math.round(G.w/2),y:m-2*32},_e=i.buildWorkstationSlots(e,T),de=i.buildMeetingSlots(e,oe),Le=i.buildWorkstationDesks(e,T),pe=i.buildLoungeSeatingLayout(e,B),Ne=pe.restSlots,We=pe.loungeSofas,$e=i.buildConferenceFurniture(oe,de),Fe=t+Math.round(a/2),Ue=ue+Math.round(o/2),Ve=t+Math.round(a/2),Ge=s+32,Xe=S+32/2;return{worldW:l,worldH:k,environmentOverflowPx:3e3,buildingOuter:{x:g,y:w,w:y,h:v},floorWorkspace:T,floorLobby:G,floorLounge:B,floorConference:oe,zoneSplitX:De,zoneSplitLobbyLoungeX:ue,topFloorBottomY:Oe,door:be,workstationSlots:_e,restSlots:Ne,meetingSlots:de,workstationDesks:Le,loungeSofas:We,conference:$e,windowsNorthY:Xe,labelWorkspaceX:Fe,labelLoungeX:Ue,labelConferenceX:Ve,ceilingNeonY:Ge}}static workstationCapacity(n){let e=i.clampGrid(n);return e.workstationCols*e.workstationRows}static restCapacity(n){let e=i.clampGrid(n);return e.restCols*e.restRows*2}static meetingCapacity(n){return 2*i.clampGrid(n).meetingCols+2}static clampDim(n){if(!Number.isFinite(n))return 1;let e=Math.floor(n);return e<1?1:e>12?12:e}static computeWorkspaceWidthPx(n){let s=128+n*256;return Math.max(896,s)}static computeLoungeWidthPx(n){return 140+n*170}static buildWorkstationSlots(n,e){let t=[],s=i.workstationPitchX(n.workstationCols,e.w),a=e.x+64,o=i.workstationRowFeetY(n.workstationRows,e);for(let r=0;r<n.workstationRows;r++)for(let c=0;c<n.workstationCols;c++)t.push({x:Math.round(a+c*s),y:o[r]});return t}static workstationPitchX(n,e){return n<=1?0:n===3&&e===896?96:Math.max(96,Math.round((e-192)/(n-1)))}static workstationRowFeetY(n,e){if(n===3)return[e.y+112,e.y+250,e.y+452];let t=[],s=48,o=e.h-s-48,r=n<=1?0:o/(n-1);for(let c=0;c<n;c++)t.push(Math.round(e.y+s+c*r));return t}static buildWorkstationDesks(n,e){let t=[],s=i.workstationPitchX(n.workstationCols,e.w),a=e.x+64,o=i.workstationDeskTopY(n.workstationRows,e);for(let r=0;r<n.workstationRows;r++)for(let c=0;c<n.workstationCols;c++){let l=Math.round(a+c*s)-32,d=o[r],f=(r+c)%2===0;t.push({trackId:`ws-${r}-${c}`,x:l,y:d,monitorIsCyan:f})}return t}static workstationDeskTopY(n,e){return n===3?[e.y+64,e.y+256,e.y+404]:i.workstationRowFeetY(n,e).map(s=>s-48)}static buildLoungeSeatingLayout(n,e){let t=[],s=[],h=e.w-32,S=(e.h-2*18)/Math.max(1,n.restRows);for(let m=0;m<n.restRows;m++){let g=e.y+18+m*S,w=S-14;if(n.restCols<=1){let y=Math.min(188,Math.max(120,e.w-32)),v=e.x+Math.round((e.w-y)/2),k=Math.round(g+w*.12);t.push({trackId:`lounge-${m}-0`,x:v,y:k,w:y,h:36});let T=k+36+14;s.push({x:v+Math.round(y*.33),y:T}),s.push({x:v+Math.round(y*.67),y:T})}else{let y=(n.restCols-1)*12,v=Math.max(96,Math.round((h-y)/n.restCols));for(let k=0;k<n.restCols;k++){let T=e.x+16+k*(v+12),G=Math.round(g+w*.12);t.push({trackId:`lounge-${m}-${k}`,x:T,y:G,w:v,h:36});let B=G+36+14;s.push({x:T+Math.round(v*.33),y:B}),s.push({x:T+Math.round(v*.67),y:B})}}}return{restSlots:s,loungeSofas:t}}static buildMeetingSlots(n,e){return i.computeConferenceChairPositions(n,e)}static computeConferenceChairPositions(n,e){let t=[],s=Math.min(420,e.w-80),a=56,o=e.x+Math.round((e.w-s)/2),r=e.y+Math.round(e.h/2)-Math.round(a/2),c=26,u=Math.max(1,n.meetingCols);for(let d=0;d<u;d++){let f=o+Math.round((d+1)*s/(u+1));t.push({x:f,y:r-c})}for(let d=0;d<u;d++){let f=o+Math.round((d+1)*s/(u+1));t.push({x:f,y:r+a+c})}let l=r+Math.round(a/2);return t.push({x:o-c,y:l}),t.push({x:o+s+c,y:l}),t}static buildConferenceFurniture(n,e){let t=Math.min(420,n.w-80),s=56,a={x:n.x+Math.round((n.w-t)/2),y:n.y+Math.round(n.h/2)-Math.round(s/2),w:t,h:s},o=e.map((r,c)=>({trackId:`conf-chair-${c}`,x:r.x,y:r.y}));return{table:a,chairs:o}}};var se={workstationCols:3,workstationRows:3,restCols:2,restRows:3,meetingCols:2,meetingRows:2,maxEverWorkstationCols:3,maxEverWorkstationRows:3,maxEverRestCols:2,maxEverRestRows:3,maxEverMeetingCols:2,maxEverMeetingRows:2},ke=(()=>{class i{settings_AS=x(he);layoutPersisted_$=P(se);saveTimerId;grid_$=D(()=>{let e=this.layoutPersisted_$();return{workstationCols:e.workstationCols,workstationRows:e.workstationRows,restCols:e.restCols,restRows:e.restRows,meetingCols:e.meetingCols,meetingRows:e.meetingRows}});derived_$=D(()=>E.computeDerived(this.grid_$()));workstationCapacity_$=D(()=>E.workstationCapacity(this.grid_$()));restCapacity_$=D(()=>E.restCapacity(this.grid_$()));meetingCapacity_$=D(()=>E.meetingCapacity(this.grid_$()));maxEverDisplay_$=D(()=>this.layoutPersisted_$());constructor(){this.loadFromServer()}loadFromServer(){return $(this,null,function*(){try{let e=yield this.settings_AS.getSection(ae.darkOfficeLayout);if(e==null||Object.keys(e).length===0){this.layoutPersisted_$.set(se);return}let t=i.parsePayload(e);this.layoutPersisted_$.set(t)}catch{this.layoutPersisted_$.set(se)}})}ensureMinCapacitiesFromSceneCharacters(e){let t=0,s=0,a=0;for(let c of e)c.scenePlacement===O.meeting?a++:c.presence===p.working?t++:s++;let o=this.layoutPersisted_$(),r=R({},o);r=i.expandGridToFit(r,t,s,a),!i.isSamePersisted(o,r)&&(this.layoutPersisted_$.set(r),this.scheduleDebouncedSave())}applyPersistedFromUser(e){return $(this,null,function*(){this.layoutPersisted_$.set(R({},e)),yield this.saveNow()})}validateProposedGridAgainstSceneCharacters(e){let t=E.clampGrid(e.grid),s=0,a=0,o=0;for(let l of e.characters)l.scenePlacement===O.meeting?o++:l.presence===p.working?s++:a++;let r=E.workstationCapacity(t),c=E.restCapacity(t),u=E.meetingCapacity(t);return s<=r&&a<=c&&o<=u?null:`Dark office layout rejected: scene occupancy exceeds proposed capacity. workstation=${s}/${r}, rest=${a}/${c}, meeting=${o}/${u}.`}getWorkstationSlots(){return this.derived_$().workstationSlots}getRestSlots(){return this.derived_$().restSlots}getMeetingSlots(){return this.derived_$().meetingSlots}getDoorPosition(){return this.derived_$().door}scheduleDebouncedSave(){this.saveTimerId!==void 0&&clearTimeout(this.saveTimerId),this.saveTimerId=setTimeout(()=>{this.saveTimerId=void 0,this.saveNow()},500)}saveNow(){return $(this,null,function*(){let e={workstationCols:this.layoutPersisted_$().workstationCols,workstationRows:this.layoutPersisted_$().workstationRows,restCols:this.layoutPersisted_$().restCols,restRows:this.layoutPersisted_$().restRows,meetingCols:this.layoutPersisted_$().meetingCols,meetingRows:this.layoutPersisted_$().meetingRows,maxEverWorkstationCols:this.layoutPersisted_$().maxEverWorkstationCols,maxEverWorkstationRows:this.layoutPersisted_$().maxEverWorkstationRows,maxEverRestCols:this.layoutPersisted_$().maxEverRestCols,maxEverRestRows:this.layoutPersisted_$().maxEverRestRows,maxEverMeetingCols:this.layoutPersisted_$().maxEverMeetingCols,maxEverMeetingRows:this.layoutPersisted_$().maxEverMeetingRows};try{yield this.settings_AS.saveSection(ae.darkOfficeLayout,e)}catch{}})}static parsePayload(e){let t=(o,r)=>{let c=e[o];return typeof c=="number"&&Number.isFinite(c)?Math.floor(c):r},s=se,a={workstationCols:t("workstationCols",s.workstationCols),workstationRows:t("workstationRows",s.workstationRows),restCols:t("restCols",s.restCols),restRows:t("restRows",s.restRows),meetingCols:t("meetingCols",s.meetingCols),meetingRows:t("meetingRows",s.meetingRows),maxEverWorkstationCols:t("maxEverWorkstationCols",s.maxEverWorkstationCols),maxEverWorkstationRows:t("maxEverWorkstationRows",s.maxEverWorkstationRows),maxEverRestCols:t("maxEverRestCols",s.maxEverRestCols),maxEverRestRows:t("maxEverRestRows",s.maxEverRestRows),maxEverMeetingCols:t("maxEverMeetingCols",s.maxEverMeetingCols),maxEverMeetingRows:t("maxEverMeetingRows",s.maxEverMeetingRows)};return i.clampPersisted(a)}static clampPersisted(e){let t=a=>{if(!Number.isFinite(a))return 1;let o=Math.floor(a);return o<1?1:o>12?12:o},s={workstationCols:t(e.workstationCols),workstationRows:t(e.workstationRows),restCols:t(e.restCols),restRows:t(e.restRows),meetingCols:t(e.meetingCols),meetingRows:t(e.meetingRows),maxEverWorkstationCols:t(e.maxEverWorkstationCols),maxEverWorkstationRows:t(e.maxEverWorkstationRows),maxEverRestCols:t(e.maxEverRestCols),maxEverRestRows:t(e.maxEverRestRows),maxEverMeetingCols:t(e.maxEverMeetingCols),maxEverMeetingRows:t(e.maxEverMeetingRows)};return s.maxEverWorkstationCols=Math.max(s.maxEverWorkstationCols,s.workstationCols),s.maxEverWorkstationRows=Math.max(s.maxEverWorkstationRows,s.workstationRows),s.maxEverRestCols=Math.max(s.maxEverRestCols,s.restCols),s.maxEverRestRows=Math.max(s.maxEverRestRows,s.restRows),s.maxEverMeetingCols=Math.max(s.maxEverMeetingCols,s.meetingCols),s.maxEverMeetingRows=Math.max(s.maxEverMeetingRows,s.meetingRows),s}static isSamePersisted(e,t){return e.workstationCols===t.workstationCols&&e.workstationRows===t.workstationRows&&e.restCols===t.restCols&&e.restRows===t.restRows&&e.meetingCols===t.meetingCols&&e.meetingRows===t.meetingRows&&e.maxEverWorkstationCols===t.maxEverWorkstationCols&&e.maxEverWorkstationRows===t.maxEverWorkstationRows&&e.maxEverRestCols===t.maxEverRestCols&&e.maxEverRestRows===t.maxEverRestRows&&e.maxEverMeetingCols===t.maxEverMeetingCols&&e.maxEverMeetingRows===t.maxEverMeetingRows}static expandGridToFit(e,t,s,a){let o=e.workstationCols,r=e.workstationRows,c=e.restCols,u=e.restRows,l=e.meetingCols,d=e.meetingRows;for(;o*r<t&&(o<12||r<12);)o<=r?o=Math.min(12,o+1):r=Math.min(12,r+1);for(;c*u<s&&(c<12||u<12);)c<=u?c=Math.min(12,c+1):u=Math.min(12,u+1);for(;l*d<a&&(l<12||d<12);)l<=d?l=Math.min(12,l+1):d=Math.min(12,d+1);let f={workstationCols:o,workstationRows:r,restCols:c,restRows:u,meetingCols:l,meetingRows:d,maxEverWorkstationCols:Math.max(e.maxEverWorkstationCols,o),maxEverWorkstationRows:Math.max(e.maxEverWorkstationRows,r),maxEverRestCols:Math.max(e.maxEverRestCols,c),maxEverRestRows:Math.max(e.maxEverRestRows,u),maxEverMeetingCols:Math.max(e.maxEverMeetingCols,l),maxEverMeetingRows:Math.max(e.maxEverMeetingRows,d)};return i.clampPersisted(f)}static \u0275fac=function(t){return new(t||i)};static \u0275prov=Z({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var ie=J(ee());var K=function(i){return i.connected="connected",i.disconnected="disconnected",i.error="error",i.unreachable="unreachable",i}(K||{});var W=class{static pickCcapPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveRun===!0||o.presence===p.working);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}static pickCciPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveSession===!0||o.presence===p.working);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}static pickCaiPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveSession===!0||o.presence===p.working);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}};var z=class{static pickPrimary(n){if(!n.length)return null;let e=(o,r)=>new Date(r.lastActivityAt).getTime()-new Date(o.lastActivityAt).getTime(),t=n.filter(o=>o.hasActiveSession);return t.length>0?[...t].sort(e)[0]??null:[...n].sort(e)[0]??null}};var xe=J(ee()),Pe=2*xe.minute;var ne=class i{static mapGatewaySessionsResponse(n){let e=[];for(let t of n.sessions){let s=i.mapOneSession(t);s!==null&&e.push(s)}return e}static mapOneSession(n){let e=typeof n.key=="string"?n.key:typeof n.sessionId=="string"?n.sessionId:typeof n.id=="string"?n.id:"";if(!e.trim())return null;let t=typeof n.status=="string"?n.status.trim().toLowerCase():"",s=i.resolvePresenceFromGatewaySession({statusLower:t,raw:n}),a=s===p.working,o=H.extractTimestamp(n,H.GATEWAY_SESSION_LAST_ACTIVITY_FIELD_NAMES)??new Date().toISOString(),r=typeof n.label=="string"?n.label:typeof n.name=="string"?n.name:typeof n.title=="string"?n.title:void 0,u=(typeof n.statusMessage=="string"?n.statusMessage:void 0)?.trim()||(t.length>0?t:"OpenClaw session"),l=typeof n.lastPrompt=="string"?n.lastPrompt:void 0;return{sessionId:e,sessionName:r,presence:s,lastActivityAt:o,hasActiveSession:a,activitySummary:u,lastMessage:l}}static resolvePresenceFromGatewaySession(n){let e=n.statusLower;return e==="connecting"?p.working:i.hasRecentGatewayOutputTimestamp(n.raw)?p.working:e?p.idle:p.idle}static hasRecentGatewayOutputTimestamp(n){let e=H.extractTimestamp(n,H.GATEWAY_OUTPUT_ONLY_TIMESTAMP_FIELD_NAMES);if(!e?.length)return!1;let t=Date.parse(e);return Number.isNaN(t)?!1:Date.now()-t<=Pe}};var re=function(i){return i.creating="creating",i.connecting="connecting",i.waitingInput="waiting-input",i.running="running",i.errored="errored",i.completed="completed",i.terminated="terminated",i.disconnected="disconnected",i}(re||{});var Ee=J(ee()),ce=(()=>{class i{static INTERESTING_SESSION_WINDOW_MS=5*Ee.minute;static prune(e,t){if(e.length===0)return[];let s=t.nowMs,a=t.recentWindowMs,o=[];for(let u of e){let l=new Date(u.lastActivityAt).getTime();Number.isNaN(l)||o.push({row:u,ms:l})}if(o.length===0)return[];let r=o.filter(u=>s-u.ms<=a),c=u=>{let d=[...u].sort((f,h)=>{let I=h.ms-f.ms;return I!==0?I:f.row.sessionId.localeCompare(h.row.sessionId)})[0];if(!d)throw new Error("DO_InstanceTrackerSessionStatuses_Prune_Util | empty sort");return d.row};if(r.length>0){let u=new Map;for(let l of r){let d=u.get(l.row.sessionId);(!d||l.ms>=d.ms)&&u.set(l.row.sessionId,l)}return[...u.values()].sort((l,d)=>d.ms-l.ms).map(l=>l.row)}return[c(o)]}}return i})();var V=class i{static resolveCcapSessionStatuses(n){let e=i.mapRawToCcapSessionStatuses(n.inst.rawSessionStatuses),t=e.length>0?e:i.snapshotCcapSessionStatuses({darkOffice_DS:n.darkOffice_DS,instanceId:n.inst.instanceId});return i.applyInterestingSessionWindow(t)}static resolveOciSessionStatuses(n){let e=i.mapRawToOciSessionStatuses(n.inst.rawSessionStatuses),t=e.length>0?e:i.snapshotOciSessionStatuses({darkOffice_DS:n.darkOffice_DS,instanceId:n.inst.instanceId});return i.applyInterestingSessionWindow(t)}static resolveCciSessionStatuses(n){let e=U.parseCcapId(n.inst.instanceId);if(!e)return[];let t=i.mapRawToCciSessionStatuses(n.inst.rawSessionStatuses),s=t.length>0?t:i.snapshotCciSessionStatuses({darkOffice_DS:n.darkOffice_DS,ccapId:e});return i.applyInterestingSessionWindow(s)}static resolveCaiSessionStatuses(n){let e=F.parseCcapId(n.inst.instanceId);if(!e)return[];let t=i.mapRawToCaiSessionStatuses(n.inst.rawSessionStatuses),s=t.length>0?t:i.snapshotCaiSessionStatuses({darkOffice_DS:n.darkOffice_DS,ccapId:e});return i.applyInterestingSessionWindow(s)}static applyInterestingSessionWindow(n){return ce.prune(n,{nowMs:Date.now(),recentWindowMs:ce.INTERESTING_SESSION_WINDOW_MS})}static snapshotCcapSessionStatuses(n){let t=n.darkOffice_DS.getCcapInstanceDataSnapshot(n.instanceId)?.sessionStatuses;return Array.isArray(t)?t:[]}static snapshotOciSessionStatuses(n){let t=n.darkOffice_DS.getOciInstanceDataSnapshot(n.instanceId)?.sessionStatuses;return Array.isArray(t)?t:[]}static snapshotCciSessionStatuses(n){let t=n.darkOffice_DS.getCciInstanceDataSnapshot(n.ccapId)?.sessionStatuses;return Array.isArray(t)?t:[]}static snapshotCaiSessionStatuses(n){let t=n.darkOffice_DS.getCaiInstanceDataSnapshot(n.ccapId)?.sessionStatuses;return Array.isArray(t)?t:[]}static mapRawToCcapSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if(!("hasActiveRun"in t))continue;let s=t.hasActiveRun;if(typeof s!="boolean")continue;let a=t.sessionId;if(typeof a!="string")continue;let o=t.presence;if(!i.isPresenceEnum(o))continue;let r=t.lastActivityAt;if(typeof r!="string")continue;let c=t.activitySummary;if(typeof c!="string")continue;let u=t.sessionName,l=t.lastMessage,d;if("activeRunPhase"in t){let h=t.activeRunPhase;if(h==null)d=void 0;else if(i.isRunFlowPhaseValue(h))d=h;else continue}let f;if("activeRunId"in t){let h=t.activeRunId;if(typeof h=="string")f=h;else if(h!=null)continue}e.push({sessionId:a,sessionName:typeof u=="string"?u:void 0,presence:o,lastActivityAt:r,hasActiveRun:s,activeRunId:f,activeRunPhase:d,activitySummary:c,lastMessage:typeof l=="string"?l:void 0})}return e}static mapRawToCaiSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if("hasActiveRun"in t||!("hasActiveSession"in t)||!("currentCaSessionStatus"in t))continue;let s=i.tryMapToOciOrCciShape(t);if(s===null)continue;let a=Reflect.get(t,"currentCaSessionStatus"),o;i.isCaSessionStatusValue(a)&&(o=a),e.push({sessionId:s.sessionId,sessionName:s.sessionName,presence:s.presence,lastActivityAt:s.lastActivityAt,hasActiveSession:s.hasActiveSession,currentCaSessionStatus:o,activitySummary:s.activitySummary,lastMessage:s.lastMessage})}return e}static mapRawToOciSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if("hasActiveRun"in t||!("hasActiveSession"in t))continue;let s=i.tryMapToOciOrCciShape(t);s!==null&&e.push(s)}return e}static mapRawToCciSessionStatuses(n){if(!Array.isArray(n)||n.length===0)return[];let e=[];for(let t of n){if("hasActiveRun"in t||!("hasActiveSession"in t))continue;let s=i.tryMapToOciOrCciShape(t);if(s===null)continue;let a;if("currentCcSessionStatus"in t){let o=t.currentCcSessionStatus;typeof o=="string"&&(a=o)}e.push({sessionId:s.sessionId,sessionName:s.sessionName,presence:s.presence,lastActivityAt:s.lastActivityAt,hasActiveSession:s.hasActiveSession,currentCcSessionStatus:a,activitySummary:s.activitySummary,lastMessage:s.lastMessage})}return e}static tryMapToOciOrCciShape(n){if(!("hasActiveSession"in n))return null;let e=Reflect.get(n,"hasActiveSession");if(typeof e!="boolean")return null;let t=n.sessionId;if(typeof t!="string")return null;let s=n.presence;if(!i.isPresenceEnum(s))return null;let a=n.lastActivityAt;if(typeof a!="string")return null;let o=n.activitySummary;if(typeof o!="string")return null;let r=n.sessionName,c=n.lastMessage;return{sessionId:t,sessionName:typeof r=="string"?r:void 0,presence:s,lastActivityAt:a,hasActiveSession:e,activitySummary:o,lastMessage:typeof c=="string"?c:void 0}}static isPresenceEnum(n){return typeof n!="string"?!1:Object.values(p).includes(n)}static isRunFlowPhaseValue(n){if(typeof n!="string")return!1;let e=Object.values(we);for(let t of e)if(t===n)return!0;return!1}static isCaSessionStatusValue(n){if(typeof n!="string")return!1;let e=Object.values(re);for(let t of e)if(t===n)return!0;return!1}};var Te=72,q=class i{static buildLastMessageDerivedStatusLabel(n){let e=n.trim();return e&&e.startsWith("[QUEUE]")?"Message queued":""}static buildPanelActiveSessionRows(n){let e=n.rawSessionStatuses;if(!e||e.length===0)return[];let t=n.characterType,s;return t===C.openclaw||t===C.ccSession||t===C.caSession?s=i.collectActiveOciOrCciFromUnion(e):s=i.collectActiveCcapFromUnion(e),s.length<=1?[]:s}static buildSessionDisplayLabel(n,e){let t=e?.trim();return t||i.shortenSessionId(n)}static truncateLastMessagePreview(n){let e=n.trim();return e?e.length<=Te?e:`${e.slice(0,Te-1)}\u2026`:""}static isCcapSessionRow(n){return"hasActiveRun"in n}static isOciOrCciSessionRow(n){return"hasActiveSession"in n}static isCcapSessionActive(n){return n.hasActiveRun===!0?!0:n.presence===p.working}static isOciOrCciSessionActive(n){return n.hasActiveSession===!0?!0:n.presence===p.working}static isSessionActiveForSceneDuplication(n){if(n.row.presence===p.offline)return!1;let e=n.characterType;return e===C.openclaw||e===C.ccSession||e===C.caSession?i.isOciOrCciSessionRow(n.row)?i.isOciOrCciSessionActive(n.row):!1:i.isCcapSessionRow(n.row)?i.isCcapSessionActive(n.row):!1}static shortenSessionId(n){return n.length<=10?n:`${n.slice(0,8)}\u2026`}static collectActiveCcapFromUnion(n){let e=[];for(let t of n){if(!i.isCcapSessionRow(t)||!i.isCcapSessionActive(t))continue;let s=i.truncateLastMessagePreview(t.lastMessage??"");e.push({sessionId:t.sessionId,displayLabel:i.buildSessionDisplayLabel(t.sessionId,t.sessionName),presence:t.presence,activitySummary:t.activitySummary,lastMessagePreview:s})}return e}static collectActiveOciOrCciFromUnion(n){let e=[];for(let t of n){if(!i.isOciOrCciSessionRow(t)||!i.isOciOrCciSessionActive(t))continue;let s=i.truncateLastMessagePreview(t.lastMessage??"");e.push({sessionId:t.sessionId,displayLabel:i.buildSessionDisplayLabel(t.sessionId,t.sessionName),presence:t.presence,activitySummary:t.activitySummary,lastMessagePreview:s})}return e}};var le=J(ee());var Q=(()=>{class i{static sceneRecentActivityWindowMs=5*le.minute;static sceneIdleWalkActivityWindowMs=15*le.minute;static parseLastActivityMs(e){let t=Date.parse(e);return Number.isNaN(t)?Number.NaN:t}static isSessionRecentAndOnline(e){if(e.presence===p.offline)return!1;let t=i.parseLastActivityMs(e.lastActivityAtIso);return Number.isNaN(t)?!1:e.nowMs-t<=e.windowMs}static rowLastActivityIso(e){return e.lastActivityAt??""}static isSessionWorkingForSceneCharacter(e){return e.presence===p.working||"hasActiveRun"in e&&e.hasActiveRun===!0||"hasActiveSession"in e&&e.hasActiveSession===!0}static isWorkingSessionRecentAndOnline(e){return i.isSessionWorkingForSceneCharacter(e.row)?i.isSessionRecentAndOnline({lastActivityAtIso:i.rowLastActivityIso(e.row),presence:e.row.presence,nowMs:e.nowMs,windowMs:e.windowMs}):!1}static isSessionInIdleWalkWindow(e){if(e.row.presence===p.offline||i.isWorkingSessionRecentAndOnline({row:e.row,nowMs:e.nowMs,windowMs:e.recentWindowMs}))return!1;let t=i.parseLastActivityMs(i.rowLastActivityIso(e.row));return Number.isNaN(t)?!1:e.nowMs-t<=e.idleWalkWindowMs}static pickNewestSessionByLastActivity(e){let t=e.sessions;return t.length===0?null:[...t].sort((o,r)=>{let c=i.parseLastActivityMs(i.rowLastActivityIso(o)),u=i.parseLastActivityMs(i.rowLastActivityIso(r)),l=!Number.isNaN(c),d=!Number.isNaN(u);return l&&d&&u!==c?u-c:l!==d?l?-1:1:o.sessionId.localeCompare(r.sessionId)})[0]??null}}return i})();var je="instance-data:session-status-updated",Be="openclaw-instance-data:status-updated",He="cci-instance-data:status-updated",Ke="cai-instance-data:status-updated",ys=(()=>{class i{instances_$=P([]);characters_$=D(()=>{let e=this.expandInstancesToCharacters(this.instances_$());return this.assignDistinctSlotsForScene(e)});loading_$=P(!1);loadError_$=P(null);isServerUnreachable_$=P(!1);selectedInstanceId_$=P(null);chatPopupSessionId_$=P(null);chatPopupSessionType_$=P(null);instanceStatusDetailInstanceId_$=P(null);instanceData_AS=x(ve);ociInstanceData_AS=x(Ce);cciInstanceData_AS=x(ge);caiInstanceData_AS=x(Ie);runtimeInstances_DS=x(Re);socket_CS=x(ye);ocSession_DS=x(Ae);darkOfficeLayout_DS=x(ke);constructor(){me(()=>{this.darkOfficeLayout_DS.ensureMinCapacitiesFromSceneCharacters(this.characters_$())},{allowSignalWrites:!0}),this.socket_CS.event$.subscribe(e=>{e.event===je?this.handleInstanceStatusUpdate(e.payload):e.event===Be?this.handleOciInstanceStatusUpdate(e.payload):e.event===He?this.handleCciInstanceStatusUpdate(e.payload):e.event===Ke&&this.handleCaiInstanceStatusUpdate(e.payload)})}workstationSlotMap=new Map;restSlotMap=new Map;patchTimerMap=new Map;meetingRoomLingerMs=2*ie.minute;sessionMeetingRoomUntilByKey=new Map;loadInstanceData(){return $(this,null,function*(){this.loading_$.set(!0),this.loadError_$.set(null);try{yield this.runtimeInstances_DS.loadCcapInstanceList();let e=this.runtimeInstances_DS.ccapInstanceListError_$();if(e){e instanceof fe&&e.status===0?this.isServerUnreachable_$.set(!0):this.loadError_$.set(e);return}yield this.runtimeInstances_DS.loadOciInstanceListAllowEmpty(),yield this.runtimeInstances_DS.loadCciInstanceListAllowEmpty(),yield this.runtimeInstances_DS.loadCaiInstanceListAllowEmpty(),this.isServerUnreachable_$.set(!1);let s=this.runtimeInstances_DS.ccapInstanceList_$().filter(d=>d.status===te.active),a=this.runtimeInstances_DS.ociInstanceList_$(),o=yield this.enrichOciListWithGatewaySessions({list:a}),c=this.runtimeInstances_DS.cciInstanceList_$().filter(d=>d.status===te.active),l=this.runtimeInstances_DS.caiInstanceList_$().filter(d=>d.status===te.active);this.applyAllInstanceData(s,o,c,l)}finally{this.loading_$.set(!1)}})}enrichOciListWithGatewaySessions(e){return $(this,null,function*(){return yield Promise.all(e.list.map(s=>$(this,null,function*(){let a=s.sessionStatuses??[];if(!(s.connectionStatus===K.connected)||a.length>0)return s;try{let r=yield this.ocSession_DS.fetchGatewaySessionsForInstance({instanceId:s.instanceId}),c=ne.mapGatewaySessionsResponse({sessions:r.rawSessions});return c.length===0?s:A(R({},s),{sessionStatuses:c})}catch(r){return ie.DyFM_Error.logSimple("CCAP_DarkOffice_DS | enrichOciListWithGatewaySessions failed",r),s}})))})}saveVisuals(e,t){this.instances_$.update(s=>s.map(a=>a.instanceId===e?A(R({},a),{visuals:t}):a)),this.schedulePatch(e,t)}dismissError(){this.loadError_$.set(null)}openChatPopup(e,t=null){this.chatPopupSessionId_$.set(e),this.chatPopupSessionType_$.set(t)}closeChatPopup(){this.chatPopupSessionId_$.set(null),this.chatPopupSessionType_$.set(null)}selectInstance(e){this.selectedInstanceId_$.set(e)}openInstanceStatusDetail(e){this.instanceStatusDetailInstanceId_$.set(e)}closeInstanceStatusDetail(){this.instanceStatusDetailInstanceId_$.set(null)}getCcapInstanceDataSnapshot(e){return this.runtimeInstances_DS.ccapInstanceList_$().find(t=>t.ccapId===e)}getOciInstanceDataSnapshot(e){return this.runtimeInstances_DS.ociInstanceList_$().find(t=>t.instanceId===e)}getCciInstanceDataSnapshot(e){return this.runtimeInstances_DS.cciInstanceList_$().find(t=>t.ccapId===e)}getCaiInstanceDataSnapshot(e){return this.runtimeInstances_DS.caiInstanceList_$().find(t=>t.ccapId===e)}resolveOfficeInstanceById(e){return e?this.instances_$().find(a=>a.instanceId===e)??null:null}resolveModalCcapSessionStatuses(e){return V.resolveCcapSessionStatuses({inst:e,darkOffice_DS:this})}resolveModalOciSessionStatuses(e){return V.resolveOciSessionStatuses({inst:e,darkOffice_DS:this})}resolveModalCciSessionStatuses(e){return V.resolveCciSessionStatuses({inst:e,darkOffice_DS:this})}resolveModalCaiSessionStatuses(e){return V.resolveCaiSessionStatuses({inst:e,darkOffice_DS:this})}buildInstanceStatusDetailRuntimeHint(e){let t=e.characterType??C.ccap;if(t===C.openclaw)return this.resolveModalOciSessionStatuses(e).length>0||this.getOciInstanceDataSnapshot(e.instanceId)?"":"No matching OCI row in runtime list (last load only; socket updates may not refresh this list).";if(t===C.ccSession){let o=U.parseCcapId(e.instanceId);return!o||this.resolveModalCciSessionStatuses(e).length>0||this.getCciInstanceDataSnapshot(o)?"":"No matching CCI row in runtime list (last load only; socket updates may not refresh this list)."}if(t===C.caSession){let o=F.parseCcapId(e.instanceId);return!o||this.resolveModalCaiSessionStatuses(e).length>0||this.getCaiInstanceDataSnapshot(o)?"":"No matching CAI row in runtime list (last load only; socket updates may not refresh this list)."}return this.resolveModalCcapSessionStatuses(e).length>0||this.getCcapInstanceDataSnapshot(e.instanceId)?"":"No matching CCAP row in runtime list (last load only; socket updates may not refresh this list)."}pruneExpiredMeetingRoomKeys(e){for(let t of[...this.sessionMeetingRoomUntilByKey.keys()]){let s=this.sessionMeetingRoomUntilByKey.get(t);s!==void 0&&s<=e&&this.sessionMeetingRoomUntilByKey.delete(t)}}applyMeetingRoomTransitionForSessionDiff(e){let t=Date.now();this.pruneExpiredMeetingRoomKeys(t);let s=new Map;for(let a of e.previousRows??[])s.set(a.sessionId,a.presence);for(let a of e.nextRows??[]){let o=s.get(a.sessionId),r=`${e.baseInstanceId}::${a.sessionId}`;o===p.working&&a.presence===p.idle&&this.sessionMeetingRoomUntilByKey.set(r,t+this.meetingRoomLingerMs)}}resolveScenePlacementForSessionKey(e){let t=`${e.baseInstanceId}::${e.sessionId}`,s=this.sessionMeetingRoomUntilByKey.get(t);if(s!==void 0&&Date.now()<s)return O.meeting}handleInstanceStatusUpdate(e){let t=typeof e.ccapId=="string"?e.ccapId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0;if(!t||!a)return;let o=this.instances_$(),r=o.findIndex(h=>h.instanceId===t);if(r<0){this.loadInstanceData();return}let c=o[r];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:c.rawSessionStatuses,nextRows:a});let u=this.resolveSessionInfoFromStatuses(a),l=this.assignSlot(t,u.presence,c),d=this.resolveAnimState(u.presence,c.presence),f=this.applyPanelCardProjection(A(R({},c),{presence:u.presence,activitySummary:u.activitySummary,currentRunFlowPhase:u.currentRunFlowPhase,latestSessionId:u.latestSessionId,lastMessage:u.lastMessage,animState:d,previousPresence:c.presence,assignedSlotIndex:l,rawSessionStatuses:a}));this.instances_$.update(h=>h.map(I=>I.instanceId===t?f:I))}resolveSessionInfoFromStatuses(e){if(e.length===0)return{presence:p.idle,activitySummary:"No CCAP Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let s=W.pickCcapPrimary(e)??e[0];return{presence:s.presence,activitySummary:s.activitySummary,currentRunFlowPhase:s.activeRunPhase??null,latestSessionId:s.sessionId,lastMessage:s.lastMessage??""}}applyPanelCardProjection(e){let t=e.sessionName??"";if(!t&&e.latestSessionId&&e.rawSessionStatuses){for(let s of e.rawSessionStatuses)if(s.sessionId===e.latestSessionId){t=s.sessionName??"";break}}return A(R({},e),{sessionName:t,lastMessageDerivedStatusLabel:q.buildLastMessageDerivedStatusLabel(e.lastMessage),panelActiveSessionRows:q.buildPanelActiveSessionRows({characterType:e.characterType,rawSessionStatuses:e.rawSessionStatuses})})}applyAllInstanceData(e,t,s,a){let o=this.instances_$(),r=new Map(o.map(S=>[S.instanceId,S])),c=e.map(S=>{let m=r.get(S.ccapId),g=m?.visuals??this.mapToVisuals(S),w=this.resolveSessionInfo(S),y=this.assignSlot(S.ccapId,w.presence,m),v=this.resolveAnimState(w.presence,m?.presence??null);return this.applyPanelCardProjection({instanceId:S.ccapId,presence:w.presence,activitySummary:w.activitySummary,currentRunFlowPhase:w.currentRunFlowPhase,latestSessionId:w.latestSessionId,lastMessage:w.lastMessage,visuals:g,animState:v,previousPresence:m?.presence??null,assignedSlotIndex:y,characterType:C.ccap,connectionStatus:null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),u=t.map(S=>{let m=r.get(S.instanceId),g=m?.visuals??this.mapOciToVisuals(S),w=this.resolveOciSessionInfo(S),y=this.assignSlot(S.instanceId,w.presence,m),v=this.resolveAnimState(w.presence,m?.presence??null);return this.applyPanelCardProjection({instanceId:S.instanceId,presence:w.presence,activitySummary:w.activitySummary,currentRunFlowPhase:null,latestSessionId:w.latestSessionId,lastMessage:w.lastMessage,visuals:g,animState:v,previousPresence:m?.presence??null,assignedSlotIndex:y,characterType:C.openclaw,connectionStatus:S.connectionStatus??null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),l=s.map(S=>{let m=U.build({ccapId:S.ccapId}),g=r.get(m),w=g?.visuals??this.mapCciToVisuals(S),y=this.resolveCciSessionInfo(S),v=this.assignSlot(m,y.presence,g),k=this.resolveAnimState(y.presence,g?.presence??null);return this.applyPanelCardProjection({instanceId:m,presence:y.presence,activitySummary:y.activitySummary,currentRunFlowPhase:y.currentRunFlowPhase,latestSessionId:y.latestSessionId,lastMessage:y.lastMessage,visuals:w,animState:k,previousPresence:g?.presence??null,assignedSlotIndex:v,characterType:C.ccSession,connectionStatus:null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),d=a.map(S=>{let m=F.build({ccapId:S.ccapId}),g=r.get(m),w=g?.visuals??this.mapCaiToVisuals(S),y=this.resolveCaiSessionInfo(S),v=this.assignSlot(m,y.presence,g),k=this.resolveAnimState(y.presence,g?.presence??null);return this.applyPanelCardProjection({instanceId:m,presence:y.presence,activitySummary:y.activitySummary,currentRunFlowPhase:y.currentRunFlowPhase,latestSessionId:y.latestSessionId,lastMessage:y.lastMessage,visuals:w,animState:k,previousPresence:g?.presence??null,assignedSlotIndex:v,characterType:C.caSession,connectionStatus:null,rawSessionStatuses:S.sessionStatuses??[],lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]})}),f=[...c,...u,...l,...d];for(let S of f){let m=r.get(S.instanceId);this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:S.instanceId,previousRows:m?.rawSessionStatuses,nextRows:S.rawSessionStatuses})}let h=new Set(f.map(S=>S.instanceId)),I=o.filter(S=>!h.has(S.instanceId)&&S.animState!==M.walkingOut).map(S=>this.applyPanelCardProjection(A(R({},S),{animState:M.walkingOut})));this.instances_$.set([...f,...I]),I.length>0&&setTimeout(()=>{this.instances_$.update(S=>S.filter(m=>h.has(m.instanceId)))},Me+200)}mapToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??b.skinColor,hairColor:t?.hairColor??b.hairColor,hairStyle:t?.hairStyle??b.hairStyle,shirtColor:t?.shirtColor??b.shirtColor,clothingStyle:t?.clothingStyle??b.clothingStyle,pantsColor:t?.pantsColor??b.pantsColor,eyeColor:t?.eyeColor??b.eyeColor,bodyType:t?.bodyType??b.bodyType,displayName:e.name??""}}resolveSessionInfo(e){let t=e.sessionStatuses;if(!t||t.length===0)return{presence:p.idle,activitySummary:"No CCAP Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let a=W.pickCcapPrimary(t)??t[0];return{presence:a.presence,activitySummary:a.activitySummary,currentRunFlowPhase:a.activeRunPhase??null,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}}mapOciToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??_.skinColor,hairColor:t?.hairColor??_.hairColor,hairStyle:t?.hairStyle??_.hairStyle,shirtColor:t?.shirtColor??_.shirtColor,clothingStyle:t?.clothingStyle??_.clothingStyle,pantsColor:t?.pantsColor??_.pantsColor,eyeColor:t?.eyeColor??_.eyeColor,bodyType:t?.bodyType??_.bodyType,displayName:e.label??""}}mapCaiToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??N.skinColor,hairColor:t?.hairColor??N.hairColor,hairStyle:t?.hairStyle??N.hairStyle,shirtColor:t?.shirtColor??N.shirtColor,clothingStyle:t?.clothingStyle??N.clothingStyle,pantsColor:t?.pantsColor??N.pantsColor,eyeColor:t?.eyeColor??N.eyeColor,bodyType:t?.bodyType??N.bodyType,displayName:e.name??""}}resolveCaiSessionInfo(e){let t=e.sessionStatuses??[];if(t.length===0)return{presence:p.idle,activitySummary:"No CA Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let a=W.pickCaiPrimary(t)??t[0];return{presence:a.presence,activitySummary:a.activitySummary,currentRunFlowPhase:a.currentCaSessionStatus??null,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}}mapCciToVisuals(e){let t=e.darkOfficeVisuals;return{skinColor:t?.skinColor??L.skinColor,hairColor:t?.hairColor??L.hairColor,hairStyle:t?.hairStyle??L.hairStyle,shirtColor:t?.shirtColor??L.shirtColor,clothingStyle:t?.clothingStyle??L.clothingStyle,pantsColor:t?.pantsColor??L.pantsColor,eyeColor:t?.eyeColor??L.eyeColor,bodyType:t?.bodyType??L.bodyType,displayName:e.name??""}}resolveCciSessionInfo(e){let t=e.sessionStatuses??[];if(t.length===0)return{presence:p.idle,activitySummary:"No CC Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let a=W.pickCciPrimary(t)??t[0];return{presence:a.presence,activitySummary:a.activitySummary,currentRunFlowPhase:a.currentCcSessionStatus??null,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}}resolveOciSessionInfo(e){if(!(e.connectionStatus===K.connected))return{presence:p.offline,activitySummary:"Gateway disconnected",latestSessionId:null,lastMessage:""};let s=e.sessionStatuses??[];if(s.length===0)return{presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""};let a=z.pickPrimary(s);return a?{presence:a.presence,activitySummary:a.activitySummary,latestSessionId:a.sessionId,lastMessage:a.lastMessage??""}:{presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""}}handleOciInstanceStatusUpdate(e){let t=typeof e.instanceId=="string"?e.instanceId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0,o=typeof e.connectionStatus=="string"?e.connectionStatus:void 0;if(!t)return;let r=this.instances_$(),c=r.findIndex(m=>m.instanceId===t);if(!(o===K.connected)&&c>=0){let m=r[c],g=this.assignSlot(t,p.offline,m),w=this.resolveAnimState(p.offline,m.presence);this.instances_$.update(y=>y.map(v=>v.instanceId===t?this.applyPanelCardProjection(A(R({},v),{presence:p.offline,activitySummary:"Gateway disconnected",lastMessage:"",animState:w,previousPresence:m.presence,assignedSlotIndex:g,connectionStatus:o??v.connectionStatus})):v));return}if(c<0){this.loadInstanceData();return}let l=r[c],d=a??[];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:l.rawSessionStatuses,nextRows:d});let f;if(d.length>0){let m=z.pickPrimary(d);m?f={presence:m.presence,activitySummary:m.activitySummary,latestSessionId:m.sessionId,lastMessage:m.lastMessage??""}:f={presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""}}else f={presence:p.idle,activitySummary:"Connected",latestSessionId:null,lastMessage:""};let h=this.assignSlot(t,f.presence,l),I=this.resolveAnimState(f.presence,l.presence),S=this.applyPanelCardProjection(A(R({},l),{presence:f.presence,activitySummary:f.activitySummary,latestSessionId:f.latestSessionId,lastMessage:f.lastMessage,animState:I,previousPresence:l.presence,assignedSlotIndex:h,connectionStatus:o??l.connectionStatus,rawSessionStatuses:d}));this.instances_$.update(m=>m.map(g=>g.instanceId===t?S:g))}handleCciInstanceStatusUpdate(e){let t=typeof e.officeInstanceId=="string"?e.officeInstanceId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0;if(!t)return;let o=this.instances_$(),r=o.findIndex(I=>I.instanceId===t);if(r<0){this.loadInstanceData();return}let c=o[r],u=a??[];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:c.rawSessionStatuses,nextRows:u});let l=this.resolveSessionInfoFromCciStatuses(u),d=this.assignSlot(t,l.presence,c),f=this.resolveAnimState(l.presence,c.presence),h=this.applyPanelCardProjection(A(R({},c),{presence:l.presence,activitySummary:l.activitySummary,currentRunFlowPhase:l.currentRunFlowPhase,latestSessionId:l.latestSessionId,lastMessage:l.lastMessage,animState:f,previousPresence:c.presence,assignedSlotIndex:d,rawSessionStatuses:u}));this.instances_$.update(I=>I.map(S=>S.instanceId===t?h:S))}handleCaiInstanceStatusUpdate(e){let t=typeof e.officeInstanceId=="string"?e.officeInstanceId:void 0,s=e.sessionStatuses,a=Array.isArray(s)?s:void 0;if(!t)return;let o=this.instances_$(),r=o.findIndex(I=>I.instanceId===t);if(r<0){this.loadInstanceData();return}let c=o[r],u=a??[];this.applyMeetingRoomTransitionForSessionDiff({baseInstanceId:t,previousRows:c.rawSessionStatuses,nextRows:u});let l=this.resolveSessionInfoFromCaiStatuses(u),d=this.assignSlot(t,l.presence,c),f=this.resolveAnimState(l.presence,c.presence),h=this.applyPanelCardProjection(A(R({},c),{presence:l.presence,activitySummary:l.activitySummary,currentRunFlowPhase:l.currentRunFlowPhase,latestSessionId:l.latestSessionId,lastMessage:l.lastMessage,animState:f,previousPresence:c.presence,assignedSlotIndex:d,rawSessionStatuses:u}));this.instances_$.update(I=>I.map(S=>S.instanceId===t?h:S))}resolveSessionInfoFromCciStatuses(e){if(e.length===0)return{presence:p.idle,activitySummary:"No CC Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let s=W.pickCciPrimary(e)??e[0];return{presence:s.presence,activitySummary:s.activitySummary,currentRunFlowPhase:s.currentCcSessionStatus??null,latestSessionId:s.sessionId,lastMessage:s.lastMessage??""}}resolveSessionInfoFromCaiStatuses(e){if(e.length===0)return{presence:p.idle,activitySummary:"No CA Session activity",currentRunFlowPhase:null,latestSessionId:null,lastMessage:""};let s=W.pickCaiPrimary(e)??e[0];return{presence:s.presence,activitySummary:s.activitySummary,currentRunFlowPhase:s.currentCaSessionStatus??null,latestSessionId:s.sessionId,lastMessage:s.lastMessage??""}}schedulePatch(e,t){let s=this.patchTimerMap.get(e);s!==void 0&&clearTimeout(s);let a=setTimeout(()=>{this.patchTimerMap.delete(e);let d=t,{displayName:o}=d,r=Se(d,["displayName"]),c=this.instances_$().find(f=>f.instanceId===e),u=F.parseCcapId(e),l=U.parseCcapId(e);u!==null?this.caiInstanceData_AS.patchByCcapId({ccapId:u,name:o||void 0,darkOfficeVisuals:r}):l!==null?this.cciInstanceData_AS.patchByCcapId({ccapId:l,name:o||void 0,darkOfficeVisuals:r}):c?.characterType===C.openclaw?this.ociInstanceData_AS.patchVisuals({instanceId:e,label:o||void 0,darkOfficeVisuals:r}):this.instanceData_AS.patchByCcapId({ccapId:e,name:o||void 0,darkOfficeVisuals:r})},300);this.patchTimerMap.set(e,a)}assignSlot(e,t,s){let a=t===p.working,o=a?this.workstationSlotMap:this.restSlotMap,r=a?this.darkOfficeLayout_DS.workstationCapacity_$():this.darkOfficeLayout_DS.restCapacity_$();if(o.has(e))return o.get(e);this.workstationSlotMap.delete(e),this.restSlotMap.delete(e);let c=new Set(o.values());for(let l=0;l<r;l++)if(!c.has(l))return o.set(e,l),l;let u=r;for(;c.has(u);)u++;return o.set(e,u),u}resolveAnimState(e,t){return t===p.offline&&e!==p.offline?M.walkingIn:t!==null&&t!==p.offline&&e===p.offline?M.walkingOut:t!==null&&t!==p.offline&&e!==p.offline&&t!==e?M.walkingBetween:e===p.working?M.working:e===p.idle?M.sitting:M.standing}assignDistinctSlotsForScene(e){let t=0,s=0,a=0;return e.map(o=>{let r;return o.scenePlacement===O.meeting?r=a++:o.presence===p.working?r=t++:r=s++,A(R({},o),{assignedSlotIndex:r})})}expandInstancesToCharacters(e){let t=[],s=Date.now(),a=Q.sceneRecentActivityWindowMs,o=Q.sceneIdleWalkActivityWindowMs,r=new Map;for(let c of e)c.characterType===C.ccap&&r.set(c.instanceId,c.presence);for(let c of e){if(c.presence===p.offline)continue;if(c.characterType===C.ccSession||c.characterType===C.caSession){let l=c.characterType===C.ccSession?U.parseCcapId(c.instanceId):F.parseCcapId(c.instanceId),d=l?r.get(l):void 0;if(d===void 0||d===p.offline)continue}t.push(this.buildInstanceBaselineCharacter(c));let u=c.rawSessionStatuses??[];for(let l of u){if(Q.isWorkingSessionRecentAndOnline({row:l,nowMs:s,windowMs:a})){t.push(this.buildPerSessionOfficeCharacter(c,l));continue}Q.isSessionInIdleWalkWindow({row:l,nowMs:s,recentWindowMs:a,idleWalkWindowMs:o})&&t.push(this.buildIdleWalkSessionCharacter(c,l))}}return t}buildIdleWalkSessionCharacter(e,t){let s=`${e.instanceId}::${t.sessionId}`;return this.applyPanelCardProjection(A(R({},e),{instanceId:s,sessionId:t.sessionId,sessionName:t.sessionName??"",presence:p.idle,activitySummary:t.activitySummary,lastMessage:t.lastMessage??"",latestSessionId:t.sessionId,currentRunFlowPhase:i.resolveSessionRunFlowPhaseLabel(t),assignedSlotIndex:0,animState:M.idleWalking,previousPresence:null,scenePlacement:void 0,rawSessionStatuses:void 0,lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]}))}buildInstanceBaselineCharacter(e){return this.applyPanelCardProjection(A(R({},e),{instanceId:e.instanceId,sessionId:void 0,sessionName:"",presence:p.idle,activitySummary:e.activitySummary,lastMessage:"",latestSessionId:null,currentRunFlowPhase:null,assignedSlotIndex:0,animState:M.sitting,previousPresence:null,scenePlacement:void 0,rawSessionStatuses:e.rawSessionStatuses,lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]}))}buildPerSessionOfficeCharacter(e,t){let s=`${e.instanceId}::${t.sessionId}`,o=(t.presence===p.working?void 0:this.resolveScenePlacementForSessionKey({baseInstanceId:e.instanceId,sessionId:t.sessionId}))===O.meeting?O.meeting:void 0;return this.applyPanelCardProjection(A(R({},e),{instanceId:s,sessionId:t.sessionId,sessionName:t.sessionName??"",presence:t.presence,activitySummary:t.activitySummary,lastMessage:t.lastMessage??"",latestSessionId:t.sessionId,currentRunFlowPhase:i.resolveSessionRunFlowPhaseLabel(t),assignedSlotIndex:0,animState:t.presence===p.working?M.working:M.sitting,previousPresence:null,scenePlacement:o,rawSessionStatuses:void 0,lastMessageDerivedStatusLabel:"",panelActiveSessionRows:[]}))}static resolveSessionRunFlowPhaseLabel(e){return"activeRunPhase"in e?e.activeRunPhase??null:"currentCcSessionStatus"in e?e.currentCcSessionStatus??null:"currentCaSessionStatus"in e?e.currentCaSessionStatus??null:null}static \u0275fac=function(t){return new(t||i)};static \u0275prov=Z({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();export{M as a,O as b,C as c,K as d,X as e,Y as f,j as g,it as h,ot as i,at as j,rt as k,ct as l,F as m,U as n,Q as o,ke as p,ys as q};
|
|
2
|
+
//# sourceMappingURL=chunk-UE4NDJOE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as h}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{p as h}from"./chunk-RXRE3G4K.js";import{h as S}from"./chunk-TBMJSIBB.js";var c=S(h()),f=60,d=60*60,g=60*60*24,M=7,m=class{static formatRelativeTime(t){if(t==null)return"";let n=typeof t=="string"?new Date(t):t;if(Number.isNaN(n.getTime()))return"";let a=new Date,i=a.getTime()-n.getTime(),o=Math.floor(i/c.second);if(o<0)return"";if(o<f)return"just now";let e=Math.floor(o/f);if(e<60)return e===1?"1 minute ago":`${e} minutes ago`;let s=Math.floor(o/d);if(s<24)return s===1?"1 hour ago":`${s} hours ago`;let r=Math.floor(o/g);if(r<=M)return r===1?"1 day ago":`${r} days ago`;let u={month:"short",day:"numeric",year:n.getFullYear()!==a.getFullYear()?"numeric":void 0};return n.toLocaleDateString(void 0,u)}static formatCompactRelativeTime(t){if(t==null)return"";let n=typeof t=="string"?new Date(t):t;if(Number.isNaN(n.getTime()))return"";let i=Date.now()-n.getTime();if(i<0)return"just now";let o=Math.floor(i/c.second),e=Math.floor(o/f),s=Math.floor(o/d),r=Math.floor(o/g);return o<f?"just now":e<60?`${e}m ago`:s<24?`${s}h ago`:r<30?`${r}d ago`:`${Math.floor(r/30)}mo ago`}static formatAbsoluteForTooltip(t){if(t==null)return"";let n=typeof t=="string"?new Date(t):t;if(Number.isNaN(n.getTime()))return"";let a=String(n.getFullYear()),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0"),e=String(n.getHours()).padStart(2,"0"),s=String(n.getMinutes()).padStart(2,"0"),r=String(n.getSeconds()).padStart(2,"0");return`${a}-${i}-${o} ${e}:${s}:${r}`}};export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UNNGLS4Y.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as ge}from"./chunk-M6XVA3F3.js";import{a as Se,b as he}from"./chunk-KS3E56FC.js";import{a as ue,b as me}from"./chunk-OUBAPK5Q.js";import{a as xe,b as J}from"./chunk-L44637OO.js";import{a as pe}from"./chunk-536ONGRA.js";import{b as ce}from"./chunk-HIUVSLF2.js";import{d as _e}from"./chunk-SBTVSUCF.js";import{d as W,h as fe}from"./chunk-3XP3ALCH.js";import{a as de}from"./chunk-FLAJXIYW.js";import{f as ie,i as oe,n as ae,o as re,p as se,v as le}from"./chunk-EO4DNTT4.js";import{p as Te}from"./chunk-5L255H5C.js";import{$a as V,C as v,D as y,Fa as s,Ga as k,Ha as f,Ia as ee,J as h,K as C,L as I,M as Q,Q as X,T as q,Ta as b,U as O,Ua as T,Va as te,Z as r,aa as $,ab as ne,bb as j,da as m,fa as D,ga as p,h as $e,hb as g,ia as M,k as H,la as u,mb as P,na as Z,oa as R,pa as F,pb as N,qa as a,ra as o,sa as S,ua as E,ub as B,va as _,wa as c,y as U}from"./chunk-TBMJSIBB.js";var ve=$e(Te());var Y=(()=>{class t{static SESSION_LIMIT_TYPE="five_hour";static WEEKLY_LIMIT_TYPE="seven_day";static formatResetText(e){if(!e?.resetsAt)return"";let i=new Date(e.resetsAt*1e3),n=new Date,l=i.getTime()-n.getTime();if(l<=0)return"expired";let x=Math.floor(l/6e4),w=Math.floor(x/60),A=x%60;return w>0?`${w}h ${A}m`:`${A}m`}static formatResetTextPrecise(e){if(!e?.resetsAt)return"";let i=new Date(e.resetsAt*1e3),n=new Date,l=Math.floor((i.getTime()-n.getTime())/1e3);if(l<=0)return"expired";let x=Math.floor(l/86400),w=Math.floor(l%86400/3600),A=Math.floor(l%3600/60),Ie=l%60,G=[];return x&&G.push(`${x}d`),(x||w)&&G.push(`${w}h`),(x||w||A)&&G.push(`${A}m`),G.push(`${Ie}s`),G.join(" ")}static computeUtilizationPercent(e){if(!e)return 0;let i=typeof e.utilization=="number"?e.utilization:0,n=Math.max(0,Math.min(1,i));return Math.round(n*100)}static computeThresholdPercent(e){if(!e)return 0;let i=typeof e.surpassedThreshold=="number"?e.surpassedThreshold:0,n=Math.max(0,Math.min(1,i));return Math.round(n*100)}static isOverThreshold(e){if(!e)return!1;let i=typeof e.utilization=="number"?e.utilization:0,n=typeof e.surpassedThreshold=="number"?e.surpassedThreshold:1;return i>=n&&n>0}static formatLimitScopeLabel(e){return e?.rateLimitType?e.rateLimitType===t.SESSION_LIMIT_TYPE?"Session":e.rateLimitType===t.WEEKLY_LIMIT_TYPE?"Weekly":e.rateLimitType:""}}return t})();function Me(t,d){if(t&1&&(a(0,"div",0)(1,"span",1),s(2," Rate limit "),o(),a(3,"span",2),s(4,"Scope"),o(),a(5,"span",3),s(6),o(),a(7,"span",2),s(8,"St\xE1tusz"),o(),a(9,"span",3),s(10),o(),a(11,"span",2),s(12,"Utilization"),o(),a(13,"span",4),s(14),o(),a(15,"span",2),s(16,"Reset"),o(),a(17,"span",4),s(18),o(),a(19,"span",2),s(20,"Utols\xF3 \xE9szlel\xE9s"),o(),a(21,"span",5),s(22),V(23,"date"),o()()),t&2){let e=d,i=c();r(6),k(i.limitScopeLabel_$()||"\u2014"),r(3),M("text-neonRed",e.status==="limited")("text-yellow-400",e.status==="allowed_warning")("text-neutral-300",e.status==="allowed"),r(),f(" ",e.status||"\u2014"," "),r(4),f("",i.utilizationPercent_$(),"%"),r(4),k(i.resetText_$()||"\u2014"),r(4),f(" ",j(23,11,e.receivedAt,"yyyy-MM-dd HH:mm:ss")||"\u2014"," ")}}var ye=(()=>{class t{claudeCode_AS=v(ue);_ccapId="";set ccapId(e){this._ccapId=e?.trim()??"",this.refreshRateLimitState()}get ccapId(){return this._ccapId}rateLimitInfo_$=$(null);utilizationPercent_$=g(()=>Y.computeUtilizationPercent(this.rateLimitInfo_$()));resetText_$=g(()=>Y.formatResetText(this.rateLimitInfo_$()));limitScopeLabel_$=g(()=>Y.formatLimitScopeLabel(this.rateLimitInfo_$()));refreshRateLimitState(){if(!this._ccapId){this.rateLimitInfo_$.set(null);return}this.claudeCode_AS.getRateLimitState({ccapId:this._ccapId}).then(e=>{let i=me.mapServerItemsToClientInfo(e.items);this.rateLimitInfo_$.set(i)}).catch(e=>{ve.DyFM_Log.warn(`s-cc-rate-limit-info | rate-limit fetch failed | ccapId: ${this._ccapId} | err: ${String(e)}`),this.rateLimitInfo_$.set(null)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-cc-rate-limit-info"]],inputs:{ccapId:"ccapId"},standalone:!0,features:[b],decls:1,vars:1,consts:[[1,"grid","grid-cols-[minmax(8rem,auto)_1fr]","gap-x-3","gap-y-2","text-xs","text-neutral-200"],[1,"col-span-2","text-[11px]","uppercase","tracking-wider","text-neutral-500"],[1,"text-neutral-500","shrink-0"],[1,"whitespace-nowrap"],[1,"whitespace-nowrap","font-mono"],[1,"font-mono","text-[11px]","whitespace-nowrap"]],template:function(i,n){if(i&1&&m(0,Me,24,14,"div",0),i&2){let l;u((l=n.rateLimitInfo_$())?0:-1,l)}},dependencies:[B,N],encapsulation:2})}return t})();function Oe(t,d){if(t&1&&(a(0,"span",1),s(1,"Instance presence"),o(),a(2,"span",4),S(3,"app-s-instance-presence-badge",8),o()),t&2){let e=d;r(3),p("presence",e.presence)("lastHeartbeatAt",e.lastHeartbeatAt)("wsConnected",e.wsConnected)}}function De(t,d){if(t&1&&(a(0,"span",9),s(1,"Run / tev\xE9kenys\xE9g"),o(),a(2,"span",10)(3,"span",11),s(4),o(),a(5,"span",12),s(6),o()(),a(7,"span",1),s(8,"Utols\xF3 aktivit\xE1s"),o(),a(9,"span",13),s(10),V(11,"date"),o(),a(12,"span",1),s(13,"Utols\xF3 \xFCzenet"),o(),a(14,"span",14),s(15),o()),t&2){let e=d;r(4),k(e.activeRunPhase||"\u2014"),r(2),k(e.activitySummary||"\u2014"),r(4),f(" ",j(11,4,e.lastActivityAt,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),r(5),k(e.lastMessage||"\u2014")}}var be=(()=>{class t{row;presence=void 0;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-instance-detail-view"]],inputs:{row:"row",presence:"presence"},standalone:!0,features:[b],decls:43,vars:18,consts:[[1,"grid","grid-cols-[minmax(8rem,auto)_1fr]","gap-x-3","gap-y-2","text-xs","text-neutral-200"],[1,"text-neutral-500","shrink-0"],[1,"font-mono","break-all"],[1,"break-all"],[1,"whitespace-nowrap"],[1,"font-mono","whitespace-nowrap"],[1,"mt-2","pt-2","border-t","border-neutral-800"],[3,"ccapId"],[3,"presence","lastHeartbeatAt","wsConnected"],[1,"text-neutral-500","shrink-0","self-start","pt-0.5"],[1,"break-words"],[1,"font-mono","text-[11px]","text-neutral-400","block"],[1,"text-neutral-300"],[1,"font-mono","text-[11px]","whitespace-nowrap"],[1,"break-words","text-neutral-300"]],template:function(i,n){if(i&1&&(a(0,"div",0)(1,"span",1),s(2,"instanceKey"),o(),a(3,"span",2),s(4),o(),a(5,"span",1),s(6,"N\xE9v"),o(),a(7,"span",3),s(8),o(),a(9,"span",1),s(10,"St\xE1tusz"),o(),a(11,"span",4),s(12),o(),m(13,Oe,4,3),a(14,"span",1),s(15,"Session presence"),o(),a(16,"span",4),s(17),o(),m(18,De,16,7),a(19,"span",1),s(20,"MAC"),o(),a(21,"span",2),s(22),o(),a(23,"span",1),s(24,"Install path"),o(),a(25,"span",2),s(26),o(),a(27,"span",1),s(28,"hostName"),o(),a(29,"span",3),s(30),o(),a(31,"span",1),s(32,"registry __created"),o(),a(33,"span",5),s(34),V(35,"date"),o(),a(36,"span",1),s(37,"registry __updated"),o(),a(38,"span",5),s(39),V(40,"date"),o()(),a(41,"div",6),S(42,"app-s-cc-rate-limit-info",7),o()),i&2){let l,x;r(4),k(n.row.registry.instanceKey||"\u2014"),r(4),k((n.row.instanceData==null||n.row.instanceData.name==null?null:n.row.instanceData.name.trim())||"\u2014"),r(4),k((n.row.instanceData==null?null:n.row.instanceData.status)||"\u2014"),r(),u((l=n.presence)?13:-1,l),r(4),f(" ",(n.row.instanceData==null||n.row.instanceData.sessionStatuses==null||n.row.instanceData.sessionStatuses[0]==null?null:n.row.instanceData.sessionStatuses[0].presence)||"\u2014"," "),r(),u((x=n.row.instanceData==null||n.row.instanceData.sessionStatuses==null?null:n.row.instanceData.sessionStatuses[0])?18:-1,x),r(4),k(n.row.registry.primaryMacAddress||"\u2014"),r(4),k(n.row.registry.installLocationPath||"\u2014"),r(4),k(n.row.registry.hostName||"\u2014"),r(4),f(" ",j(35,12,n.row.registry.__created,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),r(5),f(" ",j(40,15,n.row.registry.__updated,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),r(3),p("ccapId",n.row.registry.instanceKey||"")}},dependencies:[B,N,ye,J],encapsulation:2})}return t})();var Ae=(t,d)=>d.instanceKey,Re=t=>({"bg-ccapAccent/10":t});function Fe(t,d){if(t&1&&S(0,"app-s-instance-presence-badge",5),t&2){let e=d;p("presence",e.presence)("lastHeartbeatAt",e.lastHeartbeatAt)("wsConnected",e.wsConnected)("showLabel",!1)}}function Ve(t,d){t&1&&(a(0,"span",6),s(1,"(local)"),o())}function Le(t,d){t&1&&S(0,"span",7)}function ze(t,d){if(t&1){let e=E();a(0,"div",2)(1,"button",4),_("click",function(){let n,l=h(e).$implicit,x=c();return C(x.handleSelectInstance((n=l.instanceKey)!==null&&n!==void 0?n:""))}),m(2,Fe,1,4,"app-s-instance-presence-badge",5),s(3),m(4,Ve,2,0,"span",6)(5,Le,1,0,"span",7),o(),a(6,"button",8),_("click",function(){let n,l=h(e).$implicit,x=c();return C(x.handleInfoClick((n=l.instanceKey)!==null&&n!==void 0?n:""))}),s(7," i "),o()()}if(t&2){let e,i=d.$implicit,n=c();r(),M("border-ccapAccent",n.isSelected(i))("text-ccapAccent",n.isSelected(i))("border-neonDefault",!n.isSelected(i))("text-neutral-400",!n.isSelected(i))("hover:text-neutral-200",!n.isSelected(i))("hover:border-neutral-500",!n.isSelected(i)),p("ngClass",te(17,Re,n.isSelected(i))),r(),u((e=n.getPresenceForRow(i))?2:-1,e),r(),f(" ",n.getDisplayLabel(i)," "),r(),u(n.isLocal(i)?4:-1),r(),u(n.getActiveSessionForRow(i)?5:-1)}}function je(t,d){t&1&&(a(0,"span",3),s(1,"loading..."),o())}var we=(()=>{class t{peiContext_DS=v(pe);presenceMap=new Map;activeSessionMap=new Map;infoRequested=new X;instances_$=g(()=>this.peiContext_DS.instanceList_$());selectedCcapId_$=g(()=>this.peiContext_DS.activeCcapId_$());localKey_$=g(()=>this.peiContext_DS.localInstanceKey_$());ngOnInit(){this.peiContext_DS.initialize()}handleSelectInstance(e){this.peiContext_DS.selectInstance(e)}handleInfoClick(e){this.infoRequested.emit({instanceKey:e})}getDisplayLabel(e){let i=e.hostName??"",n=(e.instanceKey??"").slice(-6);return i?`${i} (${n})`:n||"?"}isSelected(e){return(e.instanceKey??"")===this.selectedCcapId_$()}isLocal(e){return(e.instanceKey??"")===this.localKey_$()}getPresenceForRow(e){let i=e.instanceKey??"";return i?this.presenceMap.get(i)??null:null}getActiveSessionForRow(e){let i=e.instanceKey??"";return i?this.activeSessionMap.get(i)===!0:!1}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-instance-selector"]],hostAttrs:[1,"block"],inputs:{presenceMap:"presenceMap",activeSessionMap:"activeSessionMap"},outputs:{infoRequested:"infoRequested"},standalone:!0,features:[b],decls:6,vars:1,consts:[[1,"flex","gap-1","flex-wrap","items-center"],[1,"text-[10px]","text-neutral-500","mr-1","uppercase","tracking-wider"],[1,"flex","items-center","gap-0.5","group"],[1,"text-[10px]","text-neutral-600","italic"],[1,"px-2","py-0.5","text-[11px]","rounded-full","border","transition-colors","flex","items-center","gap-1",3,"click","ngClass"],[3,"presence","lastHeartbeatAt","wsConnected","showLabel"],[1,"ml-0.5","text-[9px]","text-neutral-500"],["title","Akt\xEDv session fut ezen az instance-en","aria-label","Akt\xEDv session fut ezen az instance-en","data-testid","s-instance-active-session-dot",1,"inline-block","w-1.5","h-1.5","rounded-full","bg-yellow-400","animate-pulse","shrink-0"],["type","button","title","Instance details","aria-label","Show instance details","data-testid","s-instance-selector-info-btn",1,"text-[11px]","leading-none","w-4","h-4","rounded-full","border","border-neutral-700","text-neutral-500","hover:text-ccapAccent","hover:border-ccapAccent","transition-colors","flex","items-center","justify-center",3,"click"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"span",1),s(2,"Instance:"),o(),R(3,ze,8,19,"div",2,Ae),m(5,je,2,0,"span",3),o()),i&2&&(r(3),F(n.instances_$()),r(2),u(n.instances_$().length?-1:5))},dependencies:[B,P,J],encapsulation:2})}return t})();function Pe(t,d){if(t&1&&S(0,"app-s-instance-detail-view",3),t&2){let e=c(2);p("row",d)("presence",e.getPresenceForSelectedRow())}}function Be(t,d){if(t&1){let e=E();a(0,"app-s-modal",2),_("closed",function(){h(e);let n=c();return C(n.handleModalClosed())}),m(1,Pe,1,2,"app-s-instance-detail-view",3),o()}if(t&2){let e,i=c();p("isOpen",!0)("title",i.modalTitle_$())("maxWidth","lg"),r(),u((e=i.selectedRow_$())?1:-1,e)}}var Ut=(()=>{class t{instanceRegistry_DS=v(ce);runtimeInstances_DS=v(_e);presenceMap=new Map;activeSessionMap=new Map;selectedInstanceKey_$=$(null);viewRows_$=g(()=>xe.buildViewRows(this.instanceRegistry_DS.list_$(),this.runtimeInstances_DS.ccapInstanceList_$()));selectedRow_$=g(()=>{let e=this.selectedInstanceKey_$();return e?this.viewRows_$().find(i=>(i.registry.instanceKey??"")===e)??null:null});isModalOpen_$=g(()=>this.selectedRow_$()!==null);modalTitle_$=g(()=>{let e=this.selectedRow_$();if(!e)return"";let i=e.registry.hostName??"",n=e.registry.instanceKey??"";return i?`Instance \u2014 ${i}`:`Instance \u2014 ${n.slice(-6)||"?"}`});handleInfoRequested(e){this.selectedInstanceKey_$.set(e.instanceKey)}getPresenceForSelectedRow(){let e=this.selectedRow_$();if(!e)return;let i=e.registry.instanceKey??"";if(i)return this.presenceMap.get(i)}handleModalClosed(){this.selectedInstanceKey_$.set(null)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-instance-chip-row-with-info"]],hostAttrs:[1,"block"],inputs:{presenceMap:"presenceMap",activeSessionMap:"activeSessionMap"},standalone:!0,features:[b],decls:2,vars:3,consts:[[3,"infoRequested","presenceMap","activeSessionMap"],[3,"isOpen","title","maxWidth"],[3,"closed","isOpen","title","maxWidth"],[3,"row","presence"]],template:function(i,n){i&1&&(a(0,"app-s-instance-selector",0),_("infoRequested",function(x){return n.handleInfoRequested(x)}),o(),m(1,Be,2,4,"app-s-modal",1)),i&2&&(p("presenceMap",n.presenceMap)("activeSessionMap",n.activeSessionMap),r(),u(n.isModalOpen_$()?1:-1))},dependencies:[B,we,de,be],encapsulation:2})}return t})();var K=(()=>{class t{currentlyOpenId_$=$(null);isOpen(e){return g(()=>this.currentlyOpenId_$()===e)}setOpen(e){this.currentlyOpenId_$.set(e)}toggle(e){this.currentlyOpenId_$()===e?this.currentlyOpenId_$.set(null):this.currentlyOpenId_$.set(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=U({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var z=function(t){return t.schedule="schedule",t.quickcast="quickcast",t.coordinator="coordinator",t.quickSettings="quick-settings",t}(z||{});var Ee=(t,d)=>d._id,Ke=()=>["border-neonAmber/60","text-neonAmber","shadow-neon-glow-orange","hover:border-neonAmber","hover:bg-neonAmber/10"],Ne=()=>["border-neutral-700","text-neutral-600"];function Ge(t,d){if(t&1&&(a(0,"span",4),s(1),o()),t&2){let e=c();r(),f(" ",e.sessionJobs_$().length>9?"9+":e.sessionJobs_$().length," ")}}function He(t,d){if(t&1&&(a(0,"span",17),s(1),V(2,"date"),o()),t&2){let e=c().$implicit;r(),f(" ",j(2,1,e.nextDueAt,"yyyy-MM-dd HH:mm")," ")}}function Qe(t,d){t&1&&(a(0,"span",18),s(1,"\u2014"),o())}function qe(t,d){if(t&1&&(a(0,"span",21),s(1),o()),t&2){let e=d.$implicit,i=c(5);p("ngClass",i.getExecutionBadgeClass(e.status))("title",i.buildExecutionBadgeTooltip(e)),r(),f(" ",i.getExecutionBadgeLabel(e.status)," ")}}function Je(t,d){if(t&1&&(a(0,"div",19)(1,"span",20),s(2,"Trigger-ek:"),o(),R(3,qe,2,3,"span",21,Ee),o()),t&2){let e=c();r(3),F(e)}}function Ye(t,d){t&1&&m(0,Je,5,0,"div",19),t&2&&u(d.length>0?0:-1)}function We(t,d){if(t&1){let e=E();a(0,"div",9)(1,"div",6)(2,"div",10)(3,"span",11),s(4),o(),a(5,"span",12),s(6),V(7,"schSchedulePresetLabel"),o()(),a(8,"button",13),_("click",function(){let n=h(e).$implicit,l=c(2);return C(l.handleTriggerNow(n))}),I(),a(9,"svg",14),S(10,"path",15),o()()(),Q(),a(11,"div",16)(12,"span"),s(13,"K\xF6vetkez\u0151:"),o(),m(14,He,3,4,"span",17)(15,Qe,2,0,"span",18),o(),m(16,Ye,1,1),o()}if(t&2){let e,i,n,l,x,w=d.$implicit,A=c(2);r(3),p("title",(e=w.name)!==null&&e!==void 0?e:""),r(),f(" ",((i=w.name)!==null&&i!==void 0?i:"").trim()||"Unnamed schedule"," "),r(2),f(" ",ne(7,7,w.schedule)," "),r(2),p("disabled",A.busyJobIds_$().has((n=w._id)!==null&&n!==void 0?n:""))("title",A.busyJobIds_$().has((l=w._id)!==null&&l!==void 0?l:"")?"Ind\xEDt\xE1s folyamatban\u2026":"Most futtatni (Trigger Now)"),r(6),u(w.nextDueAt?14:15),r(2),u((x=A.getRecentExecutions(w))?16:-1,x)}}function Ue(t,d){if(t&1){let e=E();a(0,"div",5)(1,"div",6)(2,"span",7),s(3),o(),a(4,"button",8),_("click",function(){h(e);let n=c();return C(n.handleToggle())}),s(5," \xD7 "),o()(),R(6,We,17,9,"div",9,Ee),o()}if(t&2){let e=c();r(3),f(" Schedule (",e.sessionJobs_$().length,") "),r(3),F(e.sessionJobs_$())}}var pn=(()=>{class t{sessionId=O.required();scheduledJobs_DS=v(Se);overlayCoordinator_CS=v(K);OVERLAY_ID=z.schedule;isOpen_$=this.overlayCoordinator_CS.isOpen(this.OVERLAY_ID);busyJobIds_$=$(new Set);sessionJobs_$=g(()=>{let e=(this.sessionId()??"").trim();return e?this.scheduledJobs_DS.jobs_$().filter(n=>n.enabled===!1?!1:(n.target?.payload?.sessionId??"").trim()===e):[]});hasSchedule_$=g(()=>this.sessionJobs_$().length>0);ngOnInit(){this.scheduledJobs_DS.jobs_$().length===0&&this.scheduledJobs_DS.loadAll()}handleToggle(){this.overlayCoordinator_CS.toggle(this.OVERLAY_ID)}handleTriggerNow(e){return H(this,null,function*(){let i=(e._id??"").trim();if(i&&!this.busyJobIds_$().has(i)){this.busyJobIds_$.update(n=>{let l=new Set(n);return l.add(i),l});try{yield this.scheduledJobs_DS.triggerNow({jobId:i,reason:"session-overlay-manual"})}finally{this.busyJobIds_$.update(n=>{let l=new Set(n);return l.delete(i),l})}}})}getRecentExecutions(e){let i=e._id??"";return i?this.scheduledJobs_DS.recentExecutions_$().get(i)??[]:[]}getExecutionBadgeClass(e){switch(e){case"triggered":return"bg-emerald-500/20 text-emerald-400";case"completed":return"bg-sky-500/20 text-sky-400";case"skipped":return"bg-neutral-600/30 text-neutral-400";case"failed":return"bg-red-500/20 text-red-400";case"cancelled":return"bg-amber-500/20 text-amber-400";case"dry-run":return"bg-purple-500/20 text-purple-400";default:return"bg-neutral-700/40 text-neutral-500"}}getExecutionBadgeLabel(e){switch(e){case"triggered":return"OK";case"completed":return"Done";case"skipped":return"Skip";case"failed":return"Fail";case"cancelled":return"Cancel";case"dry-run":return"Dry";default:return"?"}}buildExecutionBadgeTooltip(e){let i=[];return e.scheduledAt&&(i.push(new Date(e.scheduledAt).toISOString().slice(0,16).replace("T"," ")),i.push(" \u2014 ")),i.push(e.status??"?"),e.skipReason&&i.push(` (${e.skipReason})`),e.status==="failed"&&e.errorDetails?.message&&i.push(`: ${e.errorDetails.message}`),i.join("")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-session-schedule-overlay"]],hostAttrs:[1,"absolute","bottom-4","left-0","z-30","pointer-events-none"],inputs:{sessionId:[1,"sessionId"]},standalone:!0,features:[b],decls:6,vars:12,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","Schedule",1,"relative","flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","rounded-r-lg","transition-all","duration-200","ease-out","disabled:cursor-not-allowed",3,"click","disabled","title","ngClass"],["fill","none","stroke","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d",`M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5
|
|
1
|
+
import{a as ge}from"./chunk-65KI3GR5.js";import{a as Se,b as he}from"./chunk-IOXSJK5R.js";import{a as ue,b as me}from"./chunk-WKAKYIU5.js";import{a as xe,b as J}from"./chunk-L44637OO.js";import{a as pe}from"./chunk-ZO5UJXHI.js";import{b as ce}from"./chunk-VY4R2KTU.js";import{d as _e}from"./chunk-BM4UEP47.js";import{d as W,h as fe}from"./chunk-RL2M6DJN.js";import{a as de}from"./chunk-FLAJXIYW.js";import{f as ie,i as oe,n as ae,o as re,p as se,v as le}from"./chunk-EO4DNTT4.js";import{p as Te}from"./chunk-RXRE3G4K.js";import{$a as V,C as v,D as y,Fa as s,Ga as k,Ha as f,Ia as ee,J as h,K as C,L as I,M as Q,Q as X,T as q,Ta as b,U as O,Ua as T,Va as te,Z as r,aa as $,ab as ne,bb as j,da as m,fa as D,ga as p,h as $e,hb as g,ia as M,k as H,la as u,mb as P,na as Z,oa as R,pa as F,pb as N,qa as a,ra as o,sa as S,ua as E,ub as B,va as _,wa as c,y as U}from"./chunk-TBMJSIBB.js";var ve=$e(Te());var Y=(()=>{class t{static SESSION_LIMIT_TYPE="five_hour";static WEEKLY_LIMIT_TYPE="seven_day";static formatResetText(e){if(!e?.resetsAt)return"";let i=new Date(e.resetsAt*1e3),n=new Date,l=i.getTime()-n.getTime();if(l<=0)return"expired";let x=Math.floor(l/6e4),w=Math.floor(x/60),A=x%60;return w>0?`${w}h ${A}m`:`${A}m`}static formatResetTextPrecise(e){if(!e?.resetsAt)return"";let i=new Date(e.resetsAt*1e3),n=new Date,l=Math.floor((i.getTime()-n.getTime())/1e3);if(l<=0)return"expired";let x=Math.floor(l/86400),w=Math.floor(l%86400/3600),A=Math.floor(l%3600/60),Ie=l%60,G=[];return x&&G.push(`${x}d`),(x||w)&&G.push(`${w}h`),(x||w||A)&&G.push(`${A}m`),G.push(`${Ie}s`),G.join(" ")}static computeUtilizationPercent(e){if(!e)return 0;let i=typeof e.utilization=="number"?e.utilization:0,n=Math.max(0,Math.min(1,i));return Math.round(n*100)}static computeThresholdPercent(e){if(!e)return 0;let i=typeof e.surpassedThreshold=="number"?e.surpassedThreshold:0,n=Math.max(0,Math.min(1,i));return Math.round(n*100)}static isOverThreshold(e){if(!e)return!1;let i=typeof e.utilization=="number"?e.utilization:0,n=typeof e.surpassedThreshold=="number"?e.surpassedThreshold:1;return i>=n&&n>0}static formatLimitScopeLabel(e){return e?.rateLimitType?e.rateLimitType===t.SESSION_LIMIT_TYPE?"Session":e.rateLimitType===t.WEEKLY_LIMIT_TYPE?"Weekly":e.rateLimitType:""}}return t})();function Me(t,d){if(t&1&&(a(0,"div",0)(1,"span",1),s(2," Rate limit "),o(),a(3,"span",2),s(4,"Scope"),o(),a(5,"span",3),s(6),o(),a(7,"span",2),s(8,"St\xE1tusz"),o(),a(9,"span",3),s(10),o(),a(11,"span",2),s(12,"Utilization"),o(),a(13,"span",4),s(14),o(),a(15,"span",2),s(16,"Reset"),o(),a(17,"span",4),s(18),o(),a(19,"span",2),s(20,"Utols\xF3 \xE9szlel\xE9s"),o(),a(21,"span",5),s(22),V(23,"date"),o()()),t&2){let e=d,i=c();r(6),k(i.limitScopeLabel_$()||"\u2014"),r(3),M("text-neonRed",e.status==="limited")("text-yellow-400",e.status==="allowed_warning")("text-neutral-300",e.status==="allowed"),r(),f(" ",e.status||"\u2014"," "),r(4),f("",i.utilizationPercent_$(),"%"),r(4),k(i.resetText_$()||"\u2014"),r(4),f(" ",j(23,11,e.receivedAt,"yyyy-MM-dd HH:mm:ss")||"\u2014"," ")}}var ye=(()=>{class t{claudeCode_AS=v(ue);_ccapId="";set ccapId(e){this._ccapId=e?.trim()??"",this.refreshRateLimitState()}get ccapId(){return this._ccapId}rateLimitInfo_$=$(null);utilizationPercent_$=g(()=>Y.computeUtilizationPercent(this.rateLimitInfo_$()));resetText_$=g(()=>Y.formatResetText(this.rateLimitInfo_$()));limitScopeLabel_$=g(()=>Y.formatLimitScopeLabel(this.rateLimitInfo_$()));refreshRateLimitState(){if(!this._ccapId){this.rateLimitInfo_$.set(null);return}this.claudeCode_AS.getRateLimitState({ccapId:this._ccapId}).then(e=>{let i=me.mapServerItemsToClientInfo(e.items);this.rateLimitInfo_$.set(i)}).catch(e=>{ve.DyFM_Log.warn(`s-cc-rate-limit-info | rate-limit fetch failed | ccapId: ${this._ccapId} | err: ${String(e)}`),this.rateLimitInfo_$.set(null)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-cc-rate-limit-info"]],inputs:{ccapId:"ccapId"},standalone:!0,features:[b],decls:1,vars:1,consts:[[1,"grid","grid-cols-[minmax(8rem,auto)_1fr]","gap-x-3","gap-y-2","text-xs","text-neutral-200"],[1,"col-span-2","text-[11px]","uppercase","tracking-wider","text-neutral-500"],[1,"text-neutral-500","shrink-0"],[1,"whitespace-nowrap"],[1,"whitespace-nowrap","font-mono"],[1,"font-mono","text-[11px]","whitespace-nowrap"]],template:function(i,n){if(i&1&&m(0,Me,24,14,"div",0),i&2){let l;u((l=n.rateLimitInfo_$())?0:-1,l)}},dependencies:[B,N],encapsulation:2})}return t})();function Oe(t,d){if(t&1&&(a(0,"span",1),s(1,"Instance presence"),o(),a(2,"span",4),S(3,"app-s-instance-presence-badge",8),o()),t&2){let e=d;r(3),p("presence",e.presence)("lastHeartbeatAt",e.lastHeartbeatAt)("wsConnected",e.wsConnected)}}function De(t,d){if(t&1&&(a(0,"span",9),s(1,"Run / tev\xE9kenys\xE9g"),o(),a(2,"span",10)(3,"span",11),s(4),o(),a(5,"span",12),s(6),o()(),a(7,"span",1),s(8,"Utols\xF3 aktivit\xE1s"),o(),a(9,"span",13),s(10),V(11,"date"),o(),a(12,"span",1),s(13,"Utols\xF3 \xFCzenet"),o(),a(14,"span",14),s(15),o()),t&2){let e=d;r(4),k(e.activeRunPhase||"\u2014"),r(2),k(e.activitySummary||"\u2014"),r(4),f(" ",j(11,4,e.lastActivityAt,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),r(5),k(e.lastMessage||"\u2014")}}var be=(()=>{class t{row;presence=void 0;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-instance-detail-view"]],inputs:{row:"row",presence:"presence"},standalone:!0,features:[b],decls:43,vars:18,consts:[[1,"grid","grid-cols-[minmax(8rem,auto)_1fr]","gap-x-3","gap-y-2","text-xs","text-neutral-200"],[1,"text-neutral-500","shrink-0"],[1,"font-mono","break-all"],[1,"break-all"],[1,"whitespace-nowrap"],[1,"font-mono","whitespace-nowrap"],[1,"mt-2","pt-2","border-t","border-neutral-800"],[3,"ccapId"],[3,"presence","lastHeartbeatAt","wsConnected"],[1,"text-neutral-500","shrink-0","self-start","pt-0.5"],[1,"break-words"],[1,"font-mono","text-[11px]","text-neutral-400","block"],[1,"text-neutral-300"],[1,"font-mono","text-[11px]","whitespace-nowrap"],[1,"break-words","text-neutral-300"]],template:function(i,n){if(i&1&&(a(0,"div",0)(1,"span",1),s(2,"instanceKey"),o(),a(3,"span",2),s(4),o(),a(5,"span",1),s(6,"N\xE9v"),o(),a(7,"span",3),s(8),o(),a(9,"span",1),s(10,"St\xE1tusz"),o(),a(11,"span",4),s(12),o(),m(13,Oe,4,3),a(14,"span",1),s(15,"Session presence"),o(),a(16,"span",4),s(17),o(),m(18,De,16,7),a(19,"span",1),s(20,"MAC"),o(),a(21,"span",2),s(22),o(),a(23,"span",1),s(24,"Install path"),o(),a(25,"span",2),s(26),o(),a(27,"span",1),s(28,"hostName"),o(),a(29,"span",3),s(30),o(),a(31,"span",1),s(32,"registry __created"),o(),a(33,"span",5),s(34),V(35,"date"),o(),a(36,"span",1),s(37,"registry __updated"),o(),a(38,"span",5),s(39),V(40,"date"),o()(),a(41,"div",6),S(42,"app-s-cc-rate-limit-info",7),o()),i&2){let l,x;r(4),k(n.row.registry.instanceKey||"\u2014"),r(4),k((n.row.instanceData==null||n.row.instanceData.name==null?null:n.row.instanceData.name.trim())||"\u2014"),r(4),k((n.row.instanceData==null?null:n.row.instanceData.status)||"\u2014"),r(),u((l=n.presence)?13:-1,l),r(4),f(" ",(n.row.instanceData==null||n.row.instanceData.sessionStatuses==null||n.row.instanceData.sessionStatuses[0]==null?null:n.row.instanceData.sessionStatuses[0].presence)||"\u2014"," "),r(),u((x=n.row.instanceData==null||n.row.instanceData.sessionStatuses==null?null:n.row.instanceData.sessionStatuses[0])?18:-1,x),r(4),k(n.row.registry.primaryMacAddress||"\u2014"),r(4),k(n.row.registry.installLocationPath||"\u2014"),r(4),k(n.row.registry.hostName||"\u2014"),r(4),f(" ",j(35,12,n.row.registry.__created,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),r(5),f(" ",j(40,15,n.row.registry.__updated,"yyyy-MM-dd HH:mm:ss")||"\u2014"," "),r(3),p("ccapId",n.row.registry.instanceKey||"")}},dependencies:[B,N,ye,J],encapsulation:2})}return t})();var Ae=(t,d)=>d.instanceKey,Re=t=>({"bg-ccapAccent/10":t});function Fe(t,d){if(t&1&&S(0,"app-s-instance-presence-badge",5),t&2){let e=d;p("presence",e.presence)("lastHeartbeatAt",e.lastHeartbeatAt)("wsConnected",e.wsConnected)("showLabel",!1)}}function Ve(t,d){t&1&&(a(0,"span",6),s(1,"(local)"),o())}function Le(t,d){t&1&&S(0,"span",7)}function ze(t,d){if(t&1){let e=E();a(0,"div",2)(1,"button",4),_("click",function(){let n,l=h(e).$implicit,x=c();return C(x.handleSelectInstance((n=l.instanceKey)!==null&&n!==void 0?n:""))}),m(2,Fe,1,4,"app-s-instance-presence-badge",5),s(3),m(4,Ve,2,0,"span",6)(5,Le,1,0,"span",7),o(),a(6,"button",8),_("click",function(){let n,l=h(e).$implicit,x=c();return C(x.handleInfoClick((n=l.instanceKey)!==null&&n!==void 0?n:""))}),s(7," i "),o()()}if(t&2){let e,i=d.$implicit,n=c();r(),M("border-ccapAccent",n.isSelected(i))("text-ccapAccent",n.isSelected(i))("border-neonDefault",!n.isSelected(i))("text-neutral-400",!n.isSelected(i))("hover:text-neutral-200",!n.isSelected(i))("hover:border-neutral-500",!n.isSelected(i)),p("ngClass",te(17,Re,n.isSelected(i))),r(),u((e=n.getPresenceForRow(i))?2:-1,e),r(),f(" ",n.getDisplayLabel(i)," "),r(),u(n.isLocal(i)?4:-1),r(),u(n.getActiveSessionForRow(i)?5:-1)}}function je(t,d){t&1&&(a(0,"span",3),s(1,"loading..."),o())}var we=(()=>{class t{peiContext_DS=v(pe);presenceMap=new Map;activeSessionMap=new Map;infoRequested=new X;instances_$=g(()=>this.peiContext_DS.instanceList_$());selectedCcapId_$=g(()=>this.peiContext_DS.activeCcapId_$());localKey_$=g(()=>this.peiContext_DS.localInstanceKey_$());ngOnInit(){this.peiContext_DS.initialize()}handleSelectInstance(e){this.peiContext_DS.selectInstance(e)}handleInfoClick(e){this.infoRequested.emit({instanceKey:e})}getDisplayLabel(e){let i=e.hostName??"",n=(e.instanceKey??"").slice(-6);return i?`${i} (${n})`:n||"?"}isSelected(e){return(e.instanceKey??"")===this.selectedCcapId_$()}isLocal(e){return(e.instanceKey??"")===this.localKey_$()}getPresenceForRow(e){let i=e.instanceKey??"";return i?this.presenceMap.get(i)??null:null}getActiveSessionForRow(e){let i=e.instanceKey??"";return i?this.activeSessionMap.get(i)===!0:!1}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-instance-selector"]],hostAttrs:[1,"block"],inputs:{presenceMap:"presenceMap",activeSessionMap:"activeSessionMap"},outputs:{infoRequested:"infoRequested"},standalone:!0,features:[b],decls:6,vars:1,consts:[[1,"flex","gap-1","flex-wrap","items-center"],[1,"text-[10px]","text-neutral-500","mr-1","uppercase","tracking-wider"],[1,"flex","items-center","gap-0.5","group"],[1,"text-[10px]","text-neutral-600","italic"],[1,"px-2","py-0.5","text-[11px]","rounded-full","border","transition-colors","flex","items-center","gap-1",3,"click","ngClass"],[3,"presence","lastHeartbeatAt","wsConnected","showLabel"],[1,"ml-0.5","text-[9px]","text-neutral-500"],["title","Akt\xEDv session fut ezen az instance-en","aria-label","Akt\xEDv session fut ezen az instance-en","data-testid","s-instance-active-session-dot",1,"inline-block","w-1.5","h-1.5","rounded-full","bg-yellow-400","animate-pulse","shrink-0"],["type","button","title","Instance details","aria-label","Show instance details","data-testid","s-instance-selector-info-btn",1,"text-[11px]","leading-none","w-4","h-4","rounded-full","border","border-neutral-700","text-neutral-500","hover:text-ccapAccent","hover:border-ccapAccent","transition-colors","flex","items-center","justify-center",3,"click"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"span",1),s(2,"Instance:"),o(),R(3,ze,8,19,"div",2,Ae),m(5,je,2,0,"span",3),o()),i&2&&(r(3),F(n.instances_$()),r(2),u(n.instances_$().length?-1:5))},dependencies:[B,P,J],encapsulation:2})}return t})();function Pe(t,d){if(t&1&&S(0,"app-s-instance-detail-view",3),t&2){let e=c(2);p("row",d)("presence",e.getPresenceForSelectedRow())}}function Be(t,d){if(t&1){let e=E();a(0,"app-s-modal",2),_("closed",function(){h(e);let n=c();return C(n.handleModalClosed())}),m(1,Pe,1,2,"app-s-instance-detail-view",3),o()}if(t&2){let e,i=c();p("isOpen",!0)("title",i.modalTitle_$())("maxWidth","lg"),r(),u((e=i.selectedRow_$())?1:-1,e)}}var Ut=(()=>{class t{instanceRegistry_DS=v(ce);runtimeInstances_DS=v(_e);presenceMap=new Map;activeSessionMap=new Map;selectedInstanceKey_$=$(null);viewRows_$=g(()=>xe.buildViewRows(this.instanceRegistry_DS.list_$(),this.runtimeInstances_DS.ccapInstanceList_$()));selectedRow_$=g(()=>{let e=this.selectedInstanceKey_$();return e?this.viewRows_$().find(i=>(i.registry.instanceKey??"")===e)??null:null});isModalOpen_$=g(()=>this.selectedRow_$()!==null);modalTitle_$=g(()=>{let e=this.selectedRow_$();if(!e)return"";let i=e.registry.hostName??"",n=e.registry.instanceKey??"";return i?`Instance \u2014 ${i}`:`Instance \u2014 ${n.slice(-6)||"?"}`});handleInfoRequested(e){this.selectedInstanceKey_$.set(e.instanceKey)}getPresenceForSelectedRow(){let e=this.selectedRow_$();if(!e)return;let i=e.registry.instanceKey??"";if(i)return this.presenceMap.get(i)}handleModalClosed(){this.selectedInstanceKey_$.set(null)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-instance-chip-row-with-info"]],hostAttrs:[1,"block"],inputs:{presenceMap:"presenceMap",activeSessionMap:"activeSessionMap"},standalone:!0,features:[b],decls:2,vars:3,consts:[[3,"infoRequested","presenceMap","activeSessionMap"],[3,"isOpen","title","maxWidth"],[3,"closed","isOpen","title","maxWidth"],[3,"row","presence"]],template:function(i,n){i&1&&(a(0,"app-s-instance-selector",0),_("infoRequested",function(x){return n.handleInfoRequested(x)}),o(),m(1,Be,2,4,"app-s-modal",1)),i&2&&(p("presenceMap",n.presenceMap)("activeSessionMap",n.activeSessionMap),r(),u(n.isModalOpen_$()?1:-1))},dependencies:[B,we,de,be],encapsulation:2})}return t})();var K=(()=>{class t{currentlyOpenId_$=$(null);isOpen(e){return g(()=>this.currentlyOpenId_$()===e)}setOpen(e){this.currentlyOpenId_$.set(e)}toggle(e){this.currentlyOpenId_$()===e?this.currentlyOpenId_$.set(null):this.currentlyOpenId_$.set(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=U({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var z=function(t){return t.schedule="schedule",t.quickcast="quickcast",t.coordinator="coordinator",t.quickSettings="quick-settings",t}(z||{});var Ee=(t,d)=>d._id,Ke=()=>["border-neonAmber/60","text-neonAmber","shadow-neon-glow-orange","hover:border-neonAmber","hover:bg-neonAmber/10"],Ne=()=>["border-neutral-700","text-neutral-600"];function Ge(t,d){if(t&1&&(a(0,"span",4),s(1),o()),t&2){let e=c();r(),f(" ",e.sessionJobs_$().length>9?"9+":e.sessionJobs_$().length," ")}}function He(t,d){if(t&1&&(a(0,"span",17),s(1),V(2,"date"),o()),t&2){let e=c().$implicit;r(),f(" ",j(2,1,e.nextDueAt,"yyyy-MM-dd HH:mm")," ")}}function Qe(t,d){t&1&&(a(0,"span",18),s(1,"\u2014"),o())}function qe(t,d){if(t&1&&(a(0,"span",21),s(1),o()),t&2){let e=d.$implicit,i=c(5);p("ngClass",i.getExecutionBadgeClass(e.status))("title",i.buildExecutionBadgeTooltip(e)),r(),f(" ",i.getExecutionBadgeLabel(e.status)," ")}}function Je(t,d){if(t&1&&(a(0,"div",19)(1,"span",20),s(2,"Trigger-ek:"),o(),R(3,qe,2,3,"span",21,Ee),o()),t&2){let e=c();r(3),F(e)}}function Ye(t,d){t&1&&m(0,Je,5,0,"div",19),t&2&&u(d.length>0?0:-1)}function We(t,d){if(t&1){let e=E();a(0,"div",9)(1,"div",6)(2,"div",10)(3,"span",11),s(4),o(),a(5,"span",12),s(6),V(7,"schSchedulePresetLabel"),o()(),a(8,"button",13),_("click",function(){let n=h(e).$implicit,l=c(2);return C(l.handleTriggerNow(n))}),I(),a(9,"svg",14),S(10,"path",15),o()()(),Q(),a(11,"div",16)(12,"span"),s(13,"K\xF6vetkez\u0151:"),o(),m(14,He,3,4,"span",17)(15,Qe,2,0,"span",18),o(),m(16,Ye,1,1),o()}if(t&2){let e,i,n,l,x,w=d.$implicit,A=c(2);r(3),p("title",(e=w.name)!==null&&e!==void 0?e:""),r(),f(" ",((i=w.name)!==null&&i!==void 0?i:"").trim()||"Unnamed schedule"," "),r(2),f(" ",ne(7,7,w.schedule)," "),r(2),p("disabled",A.busyJobIds_$().has((n=w._id)!==null&&n!==void 0?n:""))("title",A.busyJobIds_$().has((l=w._id)!==null&&l!==void 0?l:"")?"Ind\xEDt\xE1s folyamatban\u2026":"Most futtatni (Trigger Now)"),r(6),u(w.nextDueAt?14:15),r(2),u((x=A.getRecentExecutions(w))?16:-1,x)}}function Ue(t,d){if(t&1){let e=E();a(0,"div",5)(1,"div",6)(2,"span",7),s(3),o(),a(4,"button",8),_("click",function(){h(e);let n=c();return C(n.handleToggle())}),s(5," \xD7 "),o()(),R(6,We,17,9,"div",9,Ee),o()}if(t&2){let e=c();r(3),f(" Schedule (",e.sessionJobs_$().length,") "),r(3),F(e.sessionJobs_$())}}var pn=(()=>{class t{sessionId=O.required();scheduledJobs_DS=v(Se);overlayCoordinator_CS=v(K);OVERLAY_ID=z.schedule;isOpen_$=this.overlayCoordinator_CS.isOpen(this.OVERLAY_ID);busyJobIds_$=$(new Set);sessionJobs_$=g(()=>{let e=(this.sessionId()??"").trim();return e?this.scheduledJobs_DS.jobs_$().filter(n=>n.enabled===!1?!1:(n.target?.payload?.sessionId??"").trim()===e):[]});hasSchedule_$=g(()=>this.sessionJobs_$().length>0);ngOnInit(){this.scheduledJobs_DS.jobs_$().length===0&&this.scheduledJobs_DS.loadAll()}handleToggle(){this.overlayCoordinator_CS.toggle(this.OVERLAY_ID)}handleTriggerNow(e){return H(this,null,function*(){let i=(e._id??"").trim();if(i&&!this.busyJobIds_$().has(i)){this.busyJobIds_$.update(n=>{let l=new Set(n);return l.add(i),l});try{yield this.scheduledJobs_DS.triggerNow({jobId:i,reason:"session-overlay-manual"})}finally{this.busyJobIds_$.update(n=>{let l=new Set(n);return l.delete(i),l})}}})}getRecentExecutions(e){let i=e._id??"";return i?this.scheduledJobs_DS.recentExecutions_$().get(i)??[]:[]}getExecutionBadgeClass(e){switch(e){case"triggered":return"bg-emerald-500/20 text-emerald-400";case"completed":return"bg-sky-500/20 text-sky-400";case"skipped":return"bg-neutral-600/30 text-neutral-400";case"failed":return"bg-red-500/20 text-red-400";case"cancelled":return"bg-amber-500/20 text-amber-400";case"dry-run":return"bg-purple-500/20 text-purple-400";default:return"bg-neutral-700/40 text-neutral-500"}}getExecutionBadgeLabel(e){switch(e){case"triggered":return"OK";case"completed":return"Done";case"skipped":return"Skip";case"failed":return"Fail";case"cancelled":return"Cancel";case"dry-run":return"Dry";default:return"?"}}buildExecutionBadgeTooltip(e){let i=[];return e.scheduledAt&&(i.push(new Date(e.scheduledAt).toISOString().slice(0,16).replace("T"," ")),i.push(" \u2014 ")),i.push(e.status??"?"),e.skipReason&&i.push(` (${e.skipReason})`),e.status==="failed"&&e.errorDetails?.message&&i.push(`: ${e.errorDetails.message}`),i.join("")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-session-schedule-overlay"]],hostAttrs:[1,"absolute","bottom-4","left-0","z-30","pointer-events-none"],inputs:{sessionId:[1,"sessionId"]},standalone:!0,features:[b],decls:6,vars:12,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","Schedule",1,"relative","flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","rounded-r-lg","transition-all","duration-200","ease-out","disabled:cursor-not-allowed",3,"click","disabled","title","ngClass"],["fill","none","stroke","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d",`M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5
|
|
2
2
|
a2 2 0 00-2 2v12a2 2 0 002 2z`],["aria-hidden","true",1,"absolute","-top-1","-right-1","min-w-[14px]","h-[14px]","px-[2px]","bg-neonCyan","text-neutral-900","rounded-full","text-[9px]","font-mono","font-bold","leading-[14px]","text-center","shadow-neon-glow-cyan"],[1,"bg-neutral-900","border-2","border-neonAmber/60","rounded-lg","p-3","flex","flex-col","gap-2","min-w-[16rem]","max-w-xs","shadow-neon-glow-orange"],[1,"flex","items-center","justify-between","gap-2"],[1,"text-[10px]","uppercase","tracking-wider","text-neonAmber","font-mono"],["type","button","title","Bez\xE1r\xE1s","aria-label","Schedule panel bez\xE1r\xE1sa",1,"text-neutral-400","hover:text-neonAmber","leading-none","px-1","transition-colors",3,"click"],[1,"flex","flex-col","gap-1","border-t","border-neutral-800","pt-2","first:border-t-0","first:pt-0"],[1,"flex","flex-col","min-w-0"],[1,"text-sm","text-neutral-100","truncate",3,"title"],[1,"text-[10px]","text-neutral-500","font-mono"],["type","button","aria-label","Trigger now",1,"shrink-0","flex","items-center","justify-center","w-7","h-7","rounded-full","bg-neutral-900","border-2","border-neonAmber/60","text-neonAmber","hover:border-neonAmber","hover:bg-neonAmber/10","hover:shadow-neon-glow-orange","disabled:opacity-40","disabled:cursor-not-allowed","transition-all",3,"click","disabled","title"],["fill","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-3.5","h-3.5"],["d","M8 5v14l11-7z"],["title","K\xF6vetkez\u0151 \xFCtemezett fut\xE1s id\u0151pontja",1,"text-[10px]","text-neutral-500","flex","items-center","gap-1"],[1,"text-emerald-400","font-medium"],[1,"text-neutral-300"],[1,"flex","items-center","gap-1","flex-wrap"],[1,"text-[10px]","text-neutral-500"],[1,"inline-flex","items-center","px-1.5","py-0.5","text-[10px]","rounded",3,"ngClass","title"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"button",1),_("click",function(){return n.handleToggle()}),I(),a(2,"svg",2),S(3,"path",3),o(),m(4,Ge,2,1,"span",4),o(),m(5,Ue,8,1,"div",5),o()),i&2&&(r(),M("-translate-x-2",!n.isOpen_$())("translate-x-2",n.isOpen_$()),p("disabled",!n.hasSchedule_$())("title",n.hasSchedule_$()?n.isOpen_$()?"Schedule panel bez\xE1r\xE1sa":"Schedule megjelen\xEDt\xE9se ("+n.sessionJobs_$().length+" job)":"Nincs schedule ehhez a sessionh\xF6z")("ngClass",n.hasSchedule_$()?T(10,Ke):T(11,Ne)),D("aria-expanded",n.isOpen_$()),r(3),u(n.hasSchedule_$()&&n.sessionJobs_$().length>1?4:-1),r(),u(n.isOpen_$()?5:-1))},dependencies:[P,N,he],encapsulation:2})}return t})();function Xe(t,d){if(t&1){let e=E();a(0,"button",10),_("click",function(){let n=h(e).$implicit,l=c(2);return C(l.handleAction(n))}),s(1),o()}if(t&2){let e=d.$implicit,i=c(2);p("disabled",i.pendingAction_$()===e),r(),f(" ",i.pendingAction_$()===e?"Sending\u2026":e," ")}}function Ze(t,d){if(t&1){let e=E();a(0,"div",4)(1,"div",5)(2,"span",6),s(3," QuickCast "),o(),a(4,"button",7),_("click",function(){h(e);let n=c();return C(n.handleToggle())}),s(5," \xD7 "),o()(),a(6,"div",8),R(7,Xe,2,2,"button",9,Z),o()()}if(t&2){let e=c();r(7),F(e.actions())}}var gn=(()=>{class t{actions=O(["Go","Continue","OK","Proceed","implement","Review Very Very Carefully","Ensure Documentations","tervezd meg nagyon alaposan \xE9s fejleszd le"]);actionSelected=q();overlayCoordinator_CS=v(K);OVERLAY_ID=z.quickcast;isOpen_$=this.overlayCoordinator_CS.isOpen(this.OVERLAY_ID);pendingAction_$=$(null);handleToggle(){this.overlayCoordinator_CS.toggle(this.OVERLAY_ID)}handleAction(e){this.pendingAction_$()===null&&(this.pendingAction_$.set(e),this.actionSelected.emit(e),setTimeout(()=>{this.pendingAction_$()===e&&this.pendingAction_$.set(null)},800))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-session-quickcast-overlay"]],hostAttrs:[1,"absolute","bottom-16","left-0","z-30","pointer-events-none"],inputs:{actions:[1,"actions"]},outputs:{actionSelected:"actionSelected"},standalone:!0,features:[b],decls:5,vars:7,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","QuickCast",1,"flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","border-neonCyan/60","rounded-r-lg","text-neonCyan","shadow-neon-glow-cyan","hover:border-neonCyan","hover:bg-neonCyan/10","transition-all","duration-200","ease-out",3,"click","title"],["fill","none","stroke","currentColor","viewBox","0 0 24 24","aria-hidden","true",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M13 10V3L4 14h7v7l9-11h-7z"],[1,"bg-neutral-900","border-2","border-neonCyan/60","rounded-md","p-1.5","flex","flex-col","gap-1","min-w-[8rem]","max-w-[13rem]","shadow-neon-glow-cyan"],[1,"flex","items-center","justify-between","gap-1"],[1,"text-[10px]","uppercase","tracking-wider","text-neonCyan","font-mono","leading-none"],["type","button","title","Bez\xE1r\xE1s","aria-label","QuickCast panel bez\xE1r\xE1sa",1,"text-neutral-400","hover:text-neonCyan","leading-none","text-xs","px-1","transition-colors",3,"click"],[1,"flex","flex-col","gap-1"],["type","button",1,"px-1.5","py-0.5","rounded","border-2","border-neonCyan/60","text-neonCyan","text-[11px]","font-medium","hover:border-neonCyan","hover:bg-neonCyan/10","hover:shadow-neon-glow-cyan","disabled:opacity-40","disabled:cursor-not-allowed","transition-all","leading-tight",3,"disabled"],["type","button",1,"px-1.5","py-0.5","rounded","border-2","border-neonCyan/60","text-neonCyan","text-[11px]","font-medium","hover:border-neonCyan","hover:bg-neonCyan/10","hover:shadow-neon-glow-cyan","disabled:opacity-40","disabled:cursor-not-allowed","transition-all","leading-tight",3,"click","disabled"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"button",1),_("click",function(){return n.handleToggle()}),I(),a(2,"svg",2),S(3,"path",3),o()(),m(4,Ze,9,0,"div",4),o()),i&2&&(r(),M("-translate-x-2",!n.isOpen_$())("translate-x-2",n.isOpen_$()),p("title",n.isOpen_$()?"QuickCast bez\xE1r\xE1sa":"QuickCast megnyit\xE1sa"),D("aria-expanded",n.isOpen_$()),r(3),u(n.isOpen_$()?4:-1))},encapsulation:2})}return t})();var et=(t,d)=>d.provider+":::"+d.modelName,tt=()=>["border-neonPurple/60","text-neonPurple","shadow-[0_0_10px_rgba(168,85,247,0.4)]","hover:border-neonPurple","hover:bg-neonPurple/10"],nt=()=>["border-neutral-700","text-neutral-500","hover:border-neutral-500","hover:bg-neutral-800/50"],it=()=>["border-neonPurple/60","shadow-[0_0_10px_rgba(168,85,247,0.4)]"],ot=()=>["border-neutral-700"],at=()=>["text-neonPurple"],rt=()=>["text-neutral-400"];function st(t,d){if(t&1&&(a(0,"div",10)(1,"span",11),s(2,"provider"),o(),a(3,"span",14),s(4),o()()),t&2){let e=c();r(3),p("title",e.providerName),r(),f(" ",e.providerName," ")}}function lt(t,d){if(t&1&&(a(0,"div",10)(1,"span",11),s(2,"model"),o(),a(3,"span",14),s(4),o()()),t&2){let e=c();r(3),p("title",e.model),r(),k(e.model)}}function dt(t,d){if(t&1&&(a(0,"div",10)(1,"span",11),s(2,"workflow"),o(),a(3,"span",14),s(4),o()()),t&2){let e=c();r(3),p("title",e.workflowId),r(),f(" ",e.workflowId," ")}}function ct(t,d){if(t&1){let e=E();a(0,"div",9)(1,"div",10)(2,"span",11),s(3,"status"),o(),a(4,"span",12),s(5),o()(),m(6,st,5,2,"div",10)(7,lt,5,2,"div",10)(8,dt,5,2,"div",10),o(),a(9,"button",13),_("click",function(){h(e);let n=c(2);return C(n.handleStop())}),s(10),o()}if(t&2){let e=d,i=c(2);r(5),k(e.status),r(),u(e.providerName?6:-1),r(),u(e.model?7:-1),r(),u(e.workflowId?8:-1),r(),p("disabled",i.isBusy_$()),r(),f(" ",i.isBusy_$()?"Stopping\u2026":"Stop"," ")}}function pt(t,d){if(t&1&&(a(0,"option",18),s(1),o()),t&2){let e=d.$implicit;p("value",e.provider+":::"+e.modelName),r(),ee(" ",e.provider," / ",e.modelName," ")}}function ut(t,d){if(t&1){let e=E();a(0,"span",15),s(1," Nincs assigned coordinator \u2014 v\xE1lassz modellt \xE9s kattints az Assign-ra. "),o(),a(2,"select",16),_("ngModelChange",function(n){h(e);let l=c(2);return C(l.selectedModelKey_$.set(n))}),a(3,"option",17),s(4,"\u2014 v\xE1lassz modellt \u2014"),o(),R(5,pt,2,3,"option",18,et),o(),a(7,"button",13),_("click",function(){h(e);let n=c(2);return C(n.handleAssign())}),s(8),o()}if(t&2){let e=c(2);r(2),p("ngModel",e.selectedModelKey_$()),r(3),F(e.modelOptions_$()),r(2),p("disabled",!e.selectedModelKey_$()||e.isBusy_$()),r(),f(" ",e.isBusy_$()?"Assigning\u2026":"Assign"," ")}}function mt(t,d){if(t&1){let e=E();a(0,"div",5)(1,"div",6)(2,"span",7),s(3," Coordinator "),o(),a(4,"button",8),_("click",function(){h(e);let n=c();return C(n.handleToggle())}),s(5," \xD7 "),o()(),m(6,ct,11,6)(7,ut,9,3),o()}if(t&2){let e,i=c();p("ngClass",i.isAssigned_$()?T(3,it):T(4,ot)),r(2),p("ngClass",i.isAssigned_$()?T(5,at):T(6,rt)),r(4),u((e=i.assignedCoordinator_$())?6:7,e)}}var Tn=(()=>{class t{sessionId=O.required();coordinator_DS=v(ge);registrySsot_CS=v(fe);overlayCoordinator_CS=v(K);OVERLAY_ID=z.coordinator;isOpen_$=this.overlayCoordinator_CS.isOpen(this.OVERLAY_ID);isBusy_$=$(!1);selectedModelKey_$=$("");modelOptions_$=g(()=>this.registrySsot_CS.enabledLlmModels_$());assignedCoordinator_$=g(()=>{let e=(this.sessionId()??"").trim();return!e||!this.coordinator_DS.coordinatedSessionIds_$().has(e)?null:this.coordinator_DS.globalCoordinatorsList_$().find(l=>{let x=(l.sessionId??"").trim(),w=(l.status??"").trim().toLowerCase();return x===e&&w!=="stopped"&&w!=="completed"})??null});isAssigned_$=g(()=>this.assignedCoordinator_$()!==null);ngOnInit(){this.coordinator_DS.globalCoordinatorsList_$().length===0&&this.coordinator_DS.loadAllCoordinatorsForManagementPage(),this.registrySsot_CS.ensureLoaded("llm")}handleToggle(){this.overlayCoordinator_CS.toggle(this.OVERLAY_ID)}handleAssign(){return H(this,null,function*(){let e=(this.sessionId()??"").trim(),i=this.selectedModelKey_$().trim();if(!e||!i||this.isBusy_$())return;let n=i.split(":::");if(n.length!==2)return;let l=n[0],x=n[1];if(!(!l||!x)){this.isBusy_$.set(!0);try{yield this.coordinator_DS.startCoordinator({sessionId:e,providerName:l,model:x}),this.coordinator_DS.loadAllCoordinatorsForManagementPage()}finally{this.isBusy_$.set(!1)}}})}handleStop(){return H(this,null,function*(){let e=(this.sessionId()??"").trim();if(!(!e||this.isBusy_$())){this.isBusy_$.set(!0);try{yield this.coordinator_DS.stopCoordinator(e),this.coordinator_DS.loadAllCoordinatorsForManagementPage()}finally{this.isBusy_$.set(!1)}}})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-session-coordinator-overlay"]],hostAttrs:[1,"absolute","bottom-28","left-0","z-30","pointer-events-none"],inputs:{sessionId:[1,"sessionId"]},standalone:!0,features:[b],decls:6,vars:10,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","Coordinator",1,"relative","flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","rounded-r-lg","transition-all","duration-200","ease-out",3,"click","title","ngClass"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"w-4","h-4"],["cx","12","cy","12","r","10"],["points","16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"],[1,"bg-neutral-900","border-2","rounded-lg","p-3","flex","flex-col","gap-2","min-w-[16rem]","max-w-xs",3,"ngClass"],[1,"flex","items-center","justify-between","gap-2"],[1,"text-[10px]","uppercase","tracking-wider","font-mono",3,"ngClass"],["type","button","title","Bez\xE1r\xE1s","aria-label","Coordinator panel bez\xE1r\xE1sa",1,"text-neutral-400","hover:text-neonPurple","leading-none","px-1","transition-colors",3,"click"],[1,"flex","flex-col","gap-1","text-xs"],[1,"flex","justify-between","gap-2"],[1,"text-neutral-500","font-mono","text-[10px]"],[1,"text-neutral-100"],["type","button",1,"self-end","px-2","py-1","rounded","border-2","border-neonPurple/60","text-neonPurple","text-xs","font-medium","hover:bg-neonPurple/10","hover:shadow-[0_0_10px_rgba(168,85,247,0.4)]","disabled:opacity-40","disabled:cursor-not-allowed","transition-all",3,"click","disabled"],[1,"text-neutral-100","truncate",3,"title"],[1,"text-[11px]","text-neutral-400"],[1,"bg-neutral-900","border","border-neutral-700","rounded","px-2","py-1","text-xs","text-neutral-100","focus:outline-none","focus:border-neonPurple/60",3,"ngModelChange","ngModel"],["value","","disabled",""],[3,"value"]],template:function(i,n){if(i&1&&(a(0,"div",0)(1,"button",1),_("click",function(){return n.handleToggle()}),I(),a(2,"svg",2),S(3,"circle",3)(4,"polygon",4),o()(),m(5,mt,8,7,"div",5),o()),i&2){let l;r(),M("-translate-x-2",!n.isOpen_$())("translate-x-2",n.isOpen_$()),p("title",n.isAssigned_$()?n.isOpen_$()?"Coordinator panel bez\xE1r\xE1sa":"Coordinator: "+((l=(l=n.assignedCoordinator_$())==null?null:l.status)!==null&&l!==void 0?l:""):n.isOpen_$()?"Coordinator panel bez\xE1r\xE1sa":"Nincs coordinator \u2014 assign-ol\xE1shoz kattints")("ngClass",n.isAssigned_$()?T(8,tt):T(9,nt)),D("aria-expanded",n.isOpen_$()),r(4),u(n.isOpen_$()?5:-1)}},dependencies:[P,le,re,se,ae,ie,oe],encapsulation:2})}return t})();var _t=()=>["border-neonCyan/60","text-neonCyan","shadow-neon-glow-cyan","hover:border-neonCyan","hover:bg-neonCyan/10"],ft=()=>["border-neutral-700","text-neutral-500","hover:border-neutral-500","hover:text-neutral-300"];function xt(t,d){t&1&&(I(),a(0,"svg",1),S(1,"polygon",2)(2,"path",3)(3,"path",4),o())}function St(t,d){t&1&&(I(),a(0,"svg",1),S(1,"polygon",2)(2,"line",5)(3,"line",6),o())}var ke=(()=>{class t{sessionId=O.required();isEnabled_$=$(!1);ngOnInit(){this.refreshEnabledFromStorage()}refreshEnabledFromStorage(){this.isEnabled_$.set(W.isEnabled(this.sessionId()))}handleToggle(){W.toggle(this.sessionId()),this.refreshEnabledFromStorage()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-auto-read-tts-toggle"]],inputs:{sessionId:[1,"sessionId"]},standalone:!0,features:[b],decls:3,vars:6,consts:[["type","button",1,"relative","flex","items-center","justify-center","h-8","w-8","bg-neutral-900","border-2","rounded-md","transition-all","duration-200","ease-out",3,"click","title","ngClass"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"w-4","h-4"],["points","11 5 6 9 2 9 2 15 6 15 11 19 11 5"],["d","M15.54 8.46a5 5 0 0 1 0 7.07"],["d","M19.07 4.93a10 10 0 0 1 0 14.14"],["x1","23","y1","9","x2","17","y2","15"],["x1","17","y1","9","x2","23","y2","15"]],template:function(i,n){i&1&&(a(0,"button",0),_("click",function(){return n.handleToggle()}),m(1,xt,4,0,":svg:svg",1)(2,St,4,0,":svg:svg",1),o()),i&2&&(p("title",n.isEnabled_$()?"Auto-read assistant: ON (\xFAj asszisztens \xFCzenetek automatikusan felolvas\xE1sra ker\xFClnek). Klikk: kikapcsol\xE1s.":"Auto-read assistant: OFF. Klikk: bekapcsol\xE1s (csak az ezut\xE1n \xE9rkez\u0151 \xFCzenetek olvas\xF3dnak fel).")("ngClass",n.isEnabled_$()?T(4,_t):T(5,ft)),D("aria-pressed",n.isEnabled_$()),r(),u(n.isEnabled_$()?1:2))},dependencies:[P],encapsulation:2})}return t})();function gt(t,d){if(t&1){let e=E();a(0,"button",26),_("click",function(){h(e);let n=c(2);return C(n.handleRestartRunnerClick())}),a(1,"span",13),I(),a(2,"svg",14),S(3,"path",27)(4,"path",28)(5,"path",29)(6,"path",30),o(),s(7," Restart Terminal Runner "),o()()}}function ht(t,d){if(t&1){let e=E();a(0,"div",5)(1,"div",6)(2,"span",7),s(3," Quick Settings "),o(),a(4,"button",8),_("click",function(){h(e);let n=c();return C(n.handleToggle())}),s(5," \xD7 "),o()(),a(6,"p",9),s(7," Plan-state v1 \u2014 minden funkci\xF3 "),a(8,"span",10),s(9,"disabled"),o(),s(10,"; bek\xF6t\xE9s Plans Feature Set keret\xE9ben k\xF6vetkezik (`2026-05-06-session-quick-settings-feature-set-plan.md`). "),o(),m(11,gt,8,0,"button",11),a(12,"div",12)(13,"span",13),I(),a(14,"svg",14),S(15,"path",15)(16,"path",16)(17,"path",17),o(),s(18," Auto-Read Assistant TTS "),o(),Q(),S(19,"app-s-auto-read-tts-toggle",18),o(),a(20,"button",19)(21,"span",13),I(),a(22,"svg",20),S(23,"rect",21)(24,"path",22)(25,"path",23)(26,"path",24),o(),s(27," Always-On Intelligent Voice Input "),o(),Q(),a(28,"span",25),s(29,"soon"),o()()()}if(t&2){let e=c();r(11),u(e.showRestartRunner()?11:-1),r(8),p("sessionId",e.sessionId())}}var Kn=(()=>{class t{sessionId=O.required();showRestartRunner=O(!1);restartRunnerClicked=q();overlayCoordinator_CS=v(K);OVERLAY_ID=z.quickSettings;isOpen_$=this.overlayCoordinator_CS.isOpen(this.OVERLAY_ID);handleToggle(){this.overlayCoordinator_CS.toggle(this.OVERLAY_ID)}handleRestartRunnerClick(){this.restartRunnerClicked.emit(),this.overlayCoordinator_CS.setOpen(null)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-s-session-quick-settings-overlay"]],hostAttrs:[1,"absolute","bottom-40","left-0","z-30","pointer-events-none"],inputs:{sessionId:[1,"sessionId"],showRestartRunner:[1,"showRestartRunner"]},outputs:{restartRunnerClicked:"restartRunnerClicked"},standalone:!0,features:[b],decls:6,vars:7,consts:[[1,"flex","items-end","gap-2","pointer-events-auto"],["type","button","aria-label","Session Quick Settings",1,"relative","flex","items-center","justify-center","h-8","w-7","bg-neutral-900","border-2","border-l-0","border-neonGreen/60","rounded-r-lg","text-neonGreen","shadow-[0_0_10px_rgba(0,255,136,0.35)]","hover:border-neonGreen","hover:bg-neonGreen/10","transition-all","duration-200","ease-out",3,"click","title"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"w-4","h-4"],["cx","12","cy","12","r","3"],["d",`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0
|
|
3
3
|
l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2
|
|
4
4
|
2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06
|
|
@@ -15,4 +15,4 @@ auto-send egyetlen \xFCzenetk\xE9nt, opcion\xE1lis chime hangjelz\xE9s a trigger
|
|
|
15
15
|
Spec: __specifications/poc/voice-input-continuous-and-mobile.md (REQ-VIM-CONT-002,
|
|
16
16
|
REQ-VIM-SEND-001). Hi\xE1nyz\xF3 r\xE9szek: per-segment \u2192 cycle-akkumul\xE1ci\xF3, silence-detect
|
|
17
17
|
\u2192 auto-send, cseng\u0151 hang. Nagyobb implement\xE1ci\xF3s csomag \u2014 Plan dokumentum r\xE9szletez.`,1,"flex","items-center","justify-between","gap-2","px-2","py-1.5","rounded","border-2","border-neutral-700","text-neutral-500","text-xs","bg-neutral-900/50","cursor-not-allowed","transition-colors"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"w-4","h-4","shrink-0"],["x","9","y","3","width","6","height","12","rx","3"],["d","M19 11a7 7 0 0 1-14 0"],["d","M12 18v3"],["d","M8 21h8"],[1,"text-[9px]","uppercase","tracking-wider","text-neutral-600","font-mono"],["type","button","title","Aktu\xE1lis CC session terminal runner kill + respawn. \xDAj termin\xE1l ablak ny\xEDlik a friss npm-build-tel; runner version-mismatch vagy no-ACK-fire hib\xE1k gyors fixje a session-b\u0151l, dashboard-ra navig\xE1l\xE1s n\xE9lk\xFCl.",1,"flex","items-center","justify-between","gap-2","px-2","py-1.5","rounded","border-2","border-neonGreen/40","text-neutral-300","text-xs","bg-neutral-900/50","hover:bg-neonGreen/10","hover:border-neonGreen","cursor-pointer","transition-colors",3,"click"],["d","M3 12a9 9 0 0 1 15.5-6.3L21 8"],["d","M21 3v5h-5"],["d","M21 12a9 9 0 0 1-15.5 6.3L3 16"],["d","M3 21v-5h5"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"button",1),_("click",function(){return n.handleToggle()}),I(),a(2,"svg",2),S(3,"circle",3)(4,"path",4),o()(),m(5,ht,30,2,"div",5),o()),i&2&&(r(),M("-translate-x-2",!n.isOpen_$())("translate-x-2",n.isOpen_$()),p("title",n.isOpen_$()?"Session Quick Settings panel bez\xE1r\xE1sa":"Session Quick Settings \u2014 hamarosan: Restart Runner, Auto-Read TTS, Intelligent Voice Input. Plan dokumentum k\xE9szen, implement\xE1ci\xF3 folyamatban."),D("aria-expanded",n.isOpen_$()),r(4),u(n.isOpen_$()?5:-1))},dependencies:[ke],encapsulation:2})}return t})();export{Y as a,Ut as b,pn as c,gn as d,Tn as e,Kn as f};
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-UYLV7WAB.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as h}from"./chunk-VY4R2KTU.js";import{I as c,p as _}from"./chunk-RXRE3G4K.js";import{C as a,aa as r,h as u,k as n,p as o,xb as f,y as l}from"./chunk-TBMJSIBB.js";var p=u(_());var $=6e4,y=(()=>{class i{api_AS=a(h);instancePresenceMap_$=r(new Map);intervalHandle=void 0;lastRefreshAt_$=r(null);startPeriodicRefresh(){this.intervalHandle===void 0&&(this.refreshNow(),this.intervalHandle=setInterval(()=>{this.refreshNow()},$))}stopPeriodicRefresh(){this.intervalHandle!==void 0&&(clearInterval(this.intervalHandle),this.intervalHandle=void 0)}refreshNow(){return n(this,null,function*(){try{let t=yield this.api_AS.getPresence(),e=new Map;for(let s of t.list??[])s.instanceKey&&e.set(s.instanceKey,s);this.instancePresenceMap_$.set(e),this.lastRefreshAt_$.set(new Date().toISOString())}catch(t){p.DyFM_Log.warn(`[CCAP] ExS_InstancePresence_DataService refresh failed (non-fatal): ${t instanceof Error?t.message:String(t)}`)}})}getPresence(t){let e=this.instancePresenceMap_$().get(t);return e||{instanceKey:t,presence:"unknown",wsConnected:!1,reason:"presence map not loaded yet"}}ngOnDestroy(){this.stopPeriodicRefresh()}static \u0275fac=function(e){return new(e||i)};static \u0275prov=l({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var g=5e3,P=18,v=5e3,L=(()=>{class i{versionInfo_$=r(null);loading_$=r(!1);loadError_$=r(null);lastLoadedAt_$=r(null);triggering_$=r(!1);triggerResult_$=r(null);triggerError_$=r(null);pollingPostUpdate_$=r(!1);triggerSucceeded_$=r(null);triggerTimedOut_$=r(!1);http=a(f);pollTimer=null;loadVersionInfo(){return n(this,null,function*(){this.loading_$.set(!0),this.loadError_$.set(null);try{let t=`${c.api.baseUrl}/server/health/version-info`,e=yield o(this.http.get(t));this.versionInfo_$.set(e),this.lastLoadedAt_$.set(new Date)}catch(t){let e=t instanceof Error?t.message:String(t);this.loadError_$.set(e),this.versionInfo_$.set(null)}finally{this.loading_$.set(!1)}})}triggerUpdate(t){return n(this,null,function*(){this.cancelPostUpdatePolling(),this.triggerSucceeded_$.set(null),this.triggerTimedOut_$.set(!1),this.triggering_$.set(!0),this.triggerError_$.set(null),this.triggerResult_$.set(null);try{let e=`${c.api.baseUrl}/server/health/trigger-update`,s=yield o(this.http.post(e,{force:t===!0}));this.triggerResult_$.set(s),s.status==="started"&&s.currentVersion&&this.startPostUpdatePolling(s.currentVersion)}catch(e){let s=e instanceof Error?e.message:String(e);this.triggerError_$.set(s)}finally{this.triggering_$.set(!1)}})}startPostUpdatePolling(t){this.pollingPostUpdate_$.set(!0);let e=0,s=()=>n(this,null,function*(){e+=1;let d=yield this.pollHealthPid();if(d&&d!==t){this.triggerSucceeded_$.set({oldVersion:t,newVersion:d,detectedAtMs:Date.now()}),this.pollingPostUpdate_$.set(!1),this.pollTimer=null,setTimeout(()=>{typeof window<"u"&&window?.location&&window.location.reload()},v);return}if(e>=P){this.triggerTimedOut_$.set(!0),this.pollingPostUpdate_$.set(!1),this.pollTimer=null;return}this.pollTimer=setTimeout(()=>{s()},g)});this.pollTimer=setTimeout(()=>{s()},g)}cancelPostUpdatePolling(){this.pollTimer&&(clearTimeout(this.pollTimer),this.pollTimer=null),this.pollingPostUpdate_$.set(!1)}pollHealthPid(){return n(this,null,function*(){try{let t=`${c.api.baseUrl}/server/health/pid`,e=yield o(this.http.get(t));return typeof e?.ccapVersion=="string"?e.ccapVersion:null}catch{return null}})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=l({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();export{y as a,L as b};
|
|
2
|
+
//# sourceMappingURL=chunk-UYNSNX4F.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/app/_modules/external-sessions/_services/data-services/exs-instance-presence.data-service.ts", "src/app/_modules/config/_modules/settings/_services/data-services/global-settings/version-info/set-version-info.data-service.ts"],
|
|
4
|
+
"sourcesContent": ["import { inject, Injectable, OnDestroy, signal, WritableSignal } from '@angular/core';\n\nimport { DyFM_Log } from '@futdevpro/fsm-dynamo';\n\nimport { ExS_InstanceRegistry_ApiService } from '../exs-instance-registry.api-service';\nimport {\n EXS_InstancePresenceInfo_ClientInterface,\n EXS_InstancePresence_ClientType,\n} from './exs-instance-presence-info.interface';\n\n/** Presence map periodic refresh interval (60s). */\nconst PRESENCE_REFRESH_INTERVAL_MS: number = 60_000;\n\n/**\n * Instance presence data-service (REQ-INST-STATE-001 Slice 3, cycle 691).\n *\n * Központi state: `instancePresenceMap_$` signal — Map<instanceKey, presenceInfo>.\n * A komponensek (Slice 4 UI badge, Slice 5 instance-list felületek)\n * `getPresence(instanceKey)` metódussal kérdezik le.\n *\n * Periodikus 60s refresh-eléssel automatikusan frissül; manuális refresh\n * (`refreshNow()`) is támogatott — pl. session-create után, instance archive\n * után, stb. A real-time WS broadcast-ot Slice 6 hozza majd.\n */\n@Injectable({ providedIn: 'root' })\nexport class ExS_InstancePresence_DataService implements OnDestroy {\n\n private readonly api_AS: ExS_InstanceRegistry_ApiService =\n inject(ExS_InstanceRegistry_ApiService);\n\n /** Presence map signal: instanceKey → EXS_InstancePresenceInfo_ClientInterface. */\n readonly instancePresenceMap_$: WritableSignal<Map<string, EXS_InstancePresenceInfo_ClientInterface>> =\n signal(new Map());\n\n /** Indítva-e már a periodikus refresh? (multi-injection elkerülés). */\n private intervalHandle: ReturnType<typeof setInterval> | undefined = undefined;\n\n /** Az utolsó sikeres refresh timestamp-je (debug + UI). */\n readonly lastRefreshAt_$: WritableSignal<string | null> = signal<string | null>(null);\n\n /**\n * Periodikus refresh indítása. Idempotens — multi-injection nem indít\n * több timer-t. A komponensek (pl. Set_Instances_Component) ngOnInit-ben\n * hívhatják.\n */\n startPeriodicRefresh(): void {\n if (this.intervalHandle !== undefined) {\n return;\n }\n void this.refreshNow();\n this.intervalHandle = setInterval((): void => {\n void this.refreshNow();\n }, PRESENCE_REFRESH_INTERVAL_MS);\n }\n\n /**\n * Periodikus refresh leállítása.\n */\n stopPeriodicRefresh(): void {\n if (this.intervalHandle !== undefined) {\n clearInterval(this.intervalHandle);\n this.intervalHandle = undefined;\n }\n }\n\n /**\n * Manual refresh — explicit hívás (pl. instance-archive event után, vagy\n * felhasználói „Refresh\" gombra). Hiba esetén logol, de nem dob.\n */\n async refreshNow(): Promise<void> {\n try {\n const response: { list: EXS_InstancePresenceInfo_ClientInterface[] } =\n await this.api_AS.getPresence();\n const next: Map<string, EXS_InstancePresenceInfo_ClientInterface> = new Map();\n for (const info of response.list ?? []) {\n if (info.instanceKey) {\n next.set(info.instanceKey, info);\n }\n }\n this.instancePresenceMap_$.set(next);\n this.lastRefreshAt_$.set(new Date().toISOString());\n } catch (err: unknown) {\n DyFM_Log.warn(\n `[CCAP] ExS_InstancePresence_DataService refresh failed (non-fatal): ${\n err instanceof Error ? err.message : String(err)\n }`,\n );\n }\n }\n\n /**\n * Egy instance presence-info-jának lekérése. Ha nincs a map-ben, vagy a\n * map még üres (refresh előtt), `unknown` állapotú info-t ad vissza.\n */\n getPresence(instanceKey: string): EXS_InstancePresenceInfo_ClientInterface {\n const found: EXS_InstancePresenceInfo_ClientInterface | undefined =\n this.instancePresenceMap_$().get(instanceKey);\n if (found) {\n return found;\n }\n return {\n instanceKey: instanceKey,\n presence: 'unknown' as EXS_InstancePresence_ClientType,\n wsConnected: false,\n reason: 'presence map not loaded yet',\n };\n }\n\n ngOnDestroy(): void {\n this.stopPeriodicRefresh();\n }\n}\n", "import { inject, Injectable, signal } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { environment } from '../../../../../../../../../environments/environment';\nimport { CCAP_HealthPid_Response, CCAP_ServerHealthVersionInfo_Response, CCAP_TriggerUpdate_Response, CCAP_TriggerUpdateSucceeded_Interface } from '../../../../../../../../_models/interfaces/version-info/ccap-version-info.interface';\n\n/** REQ-SYS-UPDATE-POLL-001 polling: 5s × 18 = 90s. */\nconst POST_UPDATE_POLL_INTERVAL_MS: number = 5_000;\nconst POST_UPDATE_POLL_MAX_ATTEMPTS: number = 18;\n/** Sikeres detekció után az auto-reload késleltetése (a user lássa a success üzenetet). */\nconst POST_UPDATE_RELOAD_DELAY_MS: number = 5_000;\n\n/**\n * Cycle 781b (REQ-SYS-INSTALL-VERSION-CHECK-001 Slice B) — Settings UI\n * Version-info szekció data-service.\n *\n * Egyetlen GET hívással lekéri a server + npm-latest + aktív CC runner-ek\n * verzió-státuszát. A user manuálisan triggereli (gomb) — nincs auto-poll\n * (az `npm view` 10s-ig is futhat, nem akarunk minden render-nél futtatni).\n */\n@Injectable({ providedIn: 'root' })\nexport class Set_VersionInfo_DataService {\n\n /** Utolsó lekérés eredménye, vagy null ha még nem futott. */\n readonly versionInfo_$ = signal<CCAP_ServerHealthVersionInfo_Response | null>(null);\n\n /** Folyamatban van-e a lekérés. */\n readonly loading_$ = signal<boolean>(false);\n\n /** Hibaüzenet az utolsó lekérésből (null = nincs hiba). */\n readonly loadError_$ = signal<string | null>(null);\n\n /** Utolsó sikeres lekérés időpontja (null = még nem volt). */\n readonly lastLoadedAt_$ = signal<Date | null>(null);\n\n /** REQ-SYS-UPDATE-TRIGGER-001: update-trigger állapot — UI gomb spinner + result feedback. */\n readonly triggering_$ = signal<boolean>(false);\n\n /** Utolsó trigger eredmény (null ha még nem futott vagy reset után). */\n readonly triggerResult_$ = signal<CCAP_TriggerUpdate_Response | null>(null);\n\n /** Utolsó trigger hibaüzenet (null = nincs hiba). */\n readonly triggerError_$ = signal<string | null>(null);\n\n /** REQ-SYS-UPDATE-POLL-001 — folyamatban van-e a post-update polling-loop. */\n readonly pollingPostUpdate_$ = signal<boolean>(false);\n\n /** REQ-SYS-UPDATE-POLL-001 — sikeres post-update detekció (verzió változás). */\n readonly triggerSucceeded_$ = signal<CCAP_TriggerUpdateSucceeded_Interface | null>(null);\n\n /** REQ-SYS-UPDATE-POLL-001 — true ha a 90s polling lejárt verzió-változás nélkül. */\n readonly triggerTimedOut_$ = signal<boolean>(false);\n\n private readonly http: HttpClient = inject(HttpClient);\n\n /** Polling timer handle — null ha nincs aktív polling. */\n private pollTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Verzió-info lekérdezése a szervertől.\n */\n async loadVersionInfo(): Promise<void> {\n this.loading_$.set(true);\n this.loadError_$.set(null);\n try {\n const url: string = `${environment.api.baseUrl}/server/health/version-info`;\n const result: CCAP_ServerHealthVersionInfo_Response = await firstValueFrom(\n this.http.get<CCAP_ServerHealthVersionInfo_Response>(url),\n );\n this.versionInfo_$.set(result);\n this.lastLoadedAt_$.set(new Date());\n } catch (err: unknown) {\n const message: string = err instanceof Error ? err.message : String(err);\n this.loadError_$.set(message);\n this.versionInfo_$.set(null);\n } finally {\n this.loading_$.set(false);\n }\n }\n\n /**\n * REQ-SYS-UPDATE-TRIGGER-001 — user-triggered npm-global frissítés. POST a\n * `/server/health/trigger-update` endpoint-ra. A server 202 Accepted-tal\n * válaszol MIELŐTT a destruktív install elindulna; ezután ~30-90s múlva a\n * server újraindul (a TCP kapcsolat eltörik). A kliens a banner / settings\n * gomb után a verzió-info-t poll-olja a friss verzió detektálásához.\n * @param force Ha true, a server akkor is végrehajtja az install-t, ha\n * `currentVersion === latestVersion` (újratelepítés sérült install-ra).\n */\n async triggerUpdate(force?: boolean): Promise<void> {\n // Új trigger → reset minden post-update polling state-et\n this.cancelPostUpdatePolling();\n this.triggerSucceeded_$.set(null);\n this.triggerTimedOut_$.set(false);\n\n this.triggering_$.set(true);\n this.triggerError_$.set(null);\n this.triggerResult_$.set(null);\n try {\n const url: string = `${environment.api.baseUrl}/server/health/trigger-update`;\n const result: CCAP_TriggerUpdate_Response = await firstValueFrom(\n this.http.post<CCAP_TriggerUpdate_Response>(url, { force: force === true }),\n );\n this.triggerResult_$.set(result);\n\n // REQ-SYS-UPDATE-POLL-001: ha a server elindította a frissítést,\n // poll-oljuk a `/server/health/pid` endpoint-ot a verzió-változás\n // detektálására (5s × 18 = 90s). Sikerre auto-reload, timeout-ra warning.\n if (result.status === 'started' && result.currentVersion) {\n this.startPostUpdatePolling(result.currentVersion);\n }\n } catch (err: unknown) {\n const message: string = err instanceof Error ? err.message : String(err);\n this.triggerError_$.set(message);\n } finally {\n this.triggering_$.set(false);\n }\n }\n\n /**\n * REQ-SYS-UPDATE-POLL-001 — post-trigger polling indítása. 5s-enként hívja a\n * `/server/health/pid` lightweight endpoint-ot (NEM a `/version-info`-t —\n * az `npm view`-t is futtat 10s timeout-tal). Verzió-változásra success;\n * 90s után timeout warning. A polling kívülről `cancelPostUpdatePolling`-gal\n * leállítható (új trigger / komponens-destroy).\n */\n private startPostUpdatePolling(oldVersion: string): void {\n this.pollingPostUpdate_$.set(true);\n\n let attempts: number = 0;\n const tick = async (): Promise<void> => {\n attempts += 1;\n const ver: string | null = await this.pollHealthPid();\n if (ver && ver !== oldVersion) {\n // Sikeres detekció — verzió megváltozott\n this.triggerSucceeded_$.set({\n oldVersion: oldVersion,\n newVersion: ver,\n detectedAtMs: Date.now(),\n });\n this.pollingPostUpdate_$.set(false);\n this.pollTimer = null;\n\n // Auto-reload a friss build-re (5s késleltetés a user lássa a success üzenetet)\n setTimeout((): void => {\n if (typeof window !== 'undefined' && window?.location) {\n window.location.reload();\n }\n }, POST_UPDATE_RELOAD_DELAY_MS);\n return;\n }\n\n if (attempts >= POST_UPDATE_POLL_MAX_ATTEMPTS) {\n // 90s lejárt verzió-változás nélkül → warning\n this.triggerTimedOut_$.set(true);\n this.pollingPostUpdate_$.set(false);\n this.pollTimer = null;\n return;\n }\n\n this.pollTimer = setTimeout((): void => {\n void tick();\n }, POST_UPDATE_POLL_INTERVAL_MS);\n };\n\n // Első tick is delayed (a server épp leállás-előtt van — adjunk neki 5s-t)\n this.pollTimer = setTimeout((): void => {\n void tick();\n }, POST_UPDATE_POLL_INTERVAL_MS);\n }\n\n /**\n * Polling-loop megszakítása (új trigger / unmount). Idempotens.\n */\n private cancelPostUpdatePolling(): void {\n if (this.pollTimer) {\n clearTimeout(this.pollTimer);\n this.pollTimer = null;\n }\n this.pollingPostUpdate_$.set(false);\n }\n\n /**\n * Lightweight verzió-poll a `/server/health/pid` endpoint-on. Hibára null\n * (a server épp restart alatt — várt). Sikerre az `ccapVersion` mező.\n */\n private async pollHealthPid(): Promise<string | null> {\n try {\n const url: string = `${environment.api.baseUrl}/server/health/pid`;\n const result: CCAP_HealthPid_Response = await firstValueFrom(\n this.http.get<CCAP_HealthPid_Response>(url),\n );\n return typeof result?.ccapVersion === 'string' ? result.ccapVersion : null;\n } catch {\n // Várt hiba a restart-ablakban — silent\n return null;\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "2KAEA,IAAAA,EAAyB,OASzB,IAAMC,EAAuC,IAchCC,GAAgC,IAAA,CAAvC,MAAOA,CAAgC,CAE1BC,OACfC,EAAOC,CAA+B,EAG/BC,sBACPC,EAAO,IAAIC,GAAK,EAGVC,eAA6DC,OAG5DC,gBAAiDJ,EAAsB,IAAI,EAOpFK,sBAAoB,CACd,KAAKH,iBAAmBC,SAGvB,KAAKG,WAAU,EACpB,KAAKJ,eAAiBK,YAAY,IAAW,CACtC,KAAKD,WAAU,CACtB,EAAGZ,CAA4B,EACjC,CAKAc,qBAAmB,CACb,KAAKN,iBAAmBC,SAC1BM,cAAc,KAAKP,cAAc,EACjC,KAAKA,eAAiBC,OAE1B,CAMMG,YAAU,QAAAI,EAAA,sBACd,GAAI,CACF,IAAMC,EACJ,MAAM,KAAKf,OAAOgB,YAAW,EACzBC,EAA8D,IAAIZ,IACxE,QAAWa,KAAQH,EAASI,MAAQ,CAAA,EAC9BD,EAAKE,aACPH,EAAKI,IAAIH,EAAKE,YAAaF,CAAI,EAGnC,KAAKf,sBAAsBkB,IAAIJ,CAAI,EACnC,KAAKT,gBAAgBa,IAAI,IAAIC,KAAI,EAAGC,YAAW,CAAE,CACnD,OAASC,EAAc,CACrBC,WAASC,KACP,uEACEF,aAAeG,MAAQH,EAAII,QAAUC,OAAOL,CAAG,CACjD,EAAE,CAEN,CACF,GAMAR,YAAYI,EAAmB,CAC7B,IAAMU,EACJ,KAAK3B,sBAAqB,EAAG4B,IAAIX,CAAW,EAC9C,OAAIU,GAGG,CACLV,YAAaA,EACbY,SAAU,UACVC,YAAa,GACbC,OAAQ,8BAEZ,CAEAC,aAAW,CACT,KAAKvB,oBAAmB,CAC1B,4CArFWb,EAAgC,6BAAhCA,EAAgCqC,QAAhCrC,EAAgCsC,UAAAC,WADnB,MAAM,CAAA,SACnBvC,CAAgC,GAAA,EChB7C,IAAMwC,EAAuC,IACvCC,EAAwC,GAExCC,EAAsC,IAW/BC,GAA2B,IAAA,CAAlC,MAAOA,CAA2B,CAG7BC,cAAgBC,EAAqD,IAAI,EAGzEC,UAAYD,EAAgB,EAAK,EAGjCE,YAAcF,EAAsB,IAAI,EAGxCG,eAAiBH,EAAoB,IAAI,EAGzCI,aAAeJ,EAAgB,EAAK,EAGpCK,gBAAkBL,EAA2C,IAAI,EAGjEM,eAAiBN,EAAsB,IAAI,EAG3CO,oBAAsBP,EAAgB,EAAK,EAG3CQ,mBAAqBR,EAAqD,IAAI,EAG9ES,kBAAoBT,EAAgB,EAAK,EAEjCU,KAAmBC,EAAOC,CAAU,EAG7CC,UAAkD,KAKpDC,iBAAe,QAAAC,EAAA,sBACnB,KAAKd,UAAUe,IAAI,EAAI,EACvB,KAAKd,YAAYc,IAAI,IAAI,EACzB,GAAI,CACF,IAAMC,EAAc,GAAGC,EAAYC,IAAIC,OAAO,8BACxCC,EAAgD,MAAMC,EAC1D,KAAKZ,KAAKa,IAA2CN,CAAG,CAAC,EAE3D,KAAKlB,cAAciB,IAAIK,CAAM,EAC7B,KAAKlB,eAAea,IAAI,IAAIQ,IAAM,CACpC,OAASC,EAAc,CACrB,IAAMC,EAAkBD,aAAeE,MAAQF,EAAIC,QAAUE,OAAOH,CAAG,EACvE,KAAKvB,YAAYc,IAAIU,CAAO,EAC5B,KAAK3B,cAAciB,IAAI,IAAI,CAC7B,QAAC,CACC,KAAKf,UAAUe,IAAI,EAAK,CAC1B,CACF,GAWMa,cAAcC,EAAe,QAAAf,EAAA,sBAEjC,KAAKgB,wBAAuB,EAC5B,KAAKvB,mBAAmBQ,IAAI,IAAI,EAChC,KAAKP,kBAAkBO,IAAI,EAAK,EAEhC,KAAKZ,aAAaY,IAAI,EAAI,EAC1B,KAAKV,eAAeU,IAAI,IAAI,EAC5B,KAAKX,gBAAgBW,IAAI,IAAI,EAC7B,GAAI,CACF,IAAMC,EAAc,GAAGC,EAAYC,IAAIC,OAAO,gCACxCC,EAAsC,MAAMC,EAChD,KAAKZ,KAAKsB,KAAkCf,EAAK,CAAEa,MAAOA,IAAU,EAAI,CAAE,CAAC,EAE7E,KAAKzB,gBAAgBW,IAAIK,CAAM,EAK3BA,EAAOY,SAAW,WAAaZ,EAAOa,gBACxC,KAAKC,uBAAuBd,EAAOa,cAAc,CAErD,OAAST,EAAc,CACrB,IAAMC,EAAkBD,aAAeE,MAAQF,EAAIC,QAAUE,OAAOH,CAAG,EACvE,KAAKnB,eAAeU,IAAIU,CAAO,CACjC,QAAC,CACC,KAAKtB,aAAaY,IAAI,EAAK,CAC7B,CACF,GASQmB,uBAAuBC,EAAkB,CAC/C,KAAK7B,oBAAoBS,IAAI,EAAI,EAEjC,IAAIqB,EAAmB,EACjBC,EAAO,IAA0BvB,EAAA,sBACrCsB,GAAY,EACZ,IAAME,EAAqB,MAAM,KAAKC,cAAa,EACnD,GAAID,GAAOA,IAAQH,EAAY,CAE7B,KAAK5B,mBAAmBQ,IAAI,CAC1BoB,WAAYA,EACZK,WAAYF,EACZG,aAAclB,KAAKmB,IAAG,EACvB,EACD,KAAKpC,oBAAoBS,IAAI,EAAK,EAClC,KAAKH,UAAY,KAGjB+B,WAAW,IAAW,CAChB,OAAOC,OAAW,KAAeA,QAAQC,UAC3CD,OAAOC,SAASC,OAAM,CAE1B,EAAGlD,CAA2B,EAC9B,MACF,CAEA,GAAIwC,GAAYzC,EAA+B,CAE7C,KAAKa,kBAAkBO,IAAI,EAAI,EAC/B,KAAKT,oBAAoBS,IAAI,EAAK,EAClC,KAAKH,UAAY,KACjB,MACF,CAEA,KAAKA,UAAY+B,WAAW,IAAW,CAChCN,EAAI,CACX,EAAG3C,CAA4B,CACjC,GAGA,KAAKkB,UAAY+B,WAAW,IAAW,CAChCN,EAAI,CACX,EAAG3C,CAA4B,CACjC,CAKQoC,yBAAuB,CACzB,KAAKlB,YACPmC,aAAa,KAAKnC,SAAS,EAC3B,KAAKA,UAAY,MAEnB,KAAKN,oBAAoBS,IAAI,EAAK,CACpC,CAMcwB,eAAa,QAAAzB,EAAA,sBACzB,GAAI,CACF,IAAME,EAAc,GAAGC,EAAYC,IAAIC,OAAO,qBACxCC,EAAkC,MAAMC,EAC5C,KAAKZ,KAAKa,IAA6BN,CAAG,CAAC,EAE7C,OAAO,OAAOI,GAAQ4B,aAAgB,SAAW5B,EAAO4B,YAAc,IACxE,MAAQ,CAEN,OAAO,IACT,CACF,8CAhLWnD,EAA2B,6BAA3BA,EAA2BoD,QAA3BpD,EAA2BqD,UAAAC,WADd,MAAM,CAAA,SACnBtD,CAA2B,GAAA",
|
|
6
|
+
"names": ["import_fsm_dynamo", "PRESENCE_REFRESH_INTERVAL_MS", "ExS_InstancePresence_DataService", "api_AS", "inject", "ExS_InstanceRegistry_ApiService", "instancePresenceMap_$", "signal", "Map", "intervalHandle", "undefined", "lastRefreshAt_$", "startPeriodicRefresh", "refreshNow", "setInterval", "stopPeriodicRefresh", "clearInterval", "__async", "response", "getPresence", "next", "info", "list", "instanceKey", "set", "Date", "toISOString", "err", "DyFM_Log", "warn", "Error", "message", "String", "found", "get", "presence", "wsConnected", "reason", "ngOnDestroy", "factory", "\u0275fac", "providedIn", "POST_UPDATE_POLL_INTERVAL_MS", "POST_UPDATE_POLL_MAX_ATTEMPTS", "POST_UPDATE_RELOAD_DELAY_MS", "Set_VersionInfo_DataService", "versionInfo_$", "signal", "loading_$", "loadError_$", "lastLoadedAt_$", "triggering_$", "triggerResult_$", "triggerError_$", "pollingPostUpdate_$", "triggerSucceeded_$", "triggerTimedOut_$", "http", "inject", "HttpClient", "pollTimer", "loadVersionInfo", "__async", "set", "url", "environment", "api", "baseUrl", "result", "firstValueFrom", "get", "Date", "err", "message", "Error", "String", "triggerUpdate", "force", "cancelPostUpdatePolling", "post", "status", "currentVersion", "startPostUpdatePolling", "oldVersion", "attempts", "tick", "ver", "pollHealthPid", "newVersion", "detectedAtMs", "now", "setTimeout", "window", "location", "reload", "clearTimeout", "ccapVersion", "factory", "\u0275fac", "providedIn"]
|
|
7
|
+
}
|