@futdevpro/ccap 1.1.3371 → 1.1.3447
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-TPKOBI3N.js → agent-instances.module-W3REXD56.js} +2 -2
- package/client-dist/{ca.module-I5N6QWSU.js → ca.module-TQ4WHOMF.js} +2 -2
- package/client-dist/{cc-usage-dashboard.component-7SPVADUQ.js → cc-usage-dashboard.component-TGLYNCLF.js} +2 -2
- package/client-dist/{cc.module-7IL3QO5Q.js → cc.module-YMTBVD35.js} +2 -2
- package/client-dist/{chunk-XWYXBY7S.js → chunk-2EBLV6GJ.js} +2 -2
- package/client-dist/{chunk-7VY64KMU.js → chunk-4GTK6NMH.js} +2 -2
- package/client-dist/{chunk-44TWBJUK.js → chunk-5HNAJSRW.js} +2 -2
- package/client-dist/{chunk-77YTUUCR.js → chunk-6AFPKEHZ.js} +2 -2
- package/client-dist/{chunk-RUSAMFGS.js → chunk-6TE4LLRT.js} +2 -2
- package/client-dist/{chunk-RUSAMFGS.js.map → chunk-6TE4LLRT.js.map} +1 -1
- package/client-dist/{chunk-OKUYYDGV.js → chunk-6XSACJBG.js} +2 -2
- package/client-dist/{chunk-UM7AS2IW.js → chunk-77JJATPE.js} +2 -2
- package/client-dist/{chunk-RYD462IO.js → chunk-7GEAKPVD.js} +2 -2
- package/client-dist/{chunk-4FK2D2PX.js → chunk-A3CDBCDP.js} +2 -2
- package/client-dist/{chunk-3G2ZGV66.js → chunk-ACWNNQIT.js} +2 -2
- package/client-dist/{chunk-J5INQQ5M.js → chunk-AGMHTMQA.js} +2 -2
- package/client-dist/{chunk-U3Y5GO6O.js → chunk-BFYF3IU4.js} +2 -2
- package/client-dist/{chunk-U64N3LCA.js → chunk-BNU5THES.js} +2 -2
- package/client-dist/{chunk-4PBNHSRW.js → chunk-BQAILW64.js} +2 -2
- package/client-dist/{chunk-TFB7ULAV.js → chunk-C6J25IMQ.js} +2 -2
- package/client-dist/{chunk-PW5BAINL.js → chunk-CZLRKXDU.js} +2 -2
- package/client-dist/{chunk-CU5YQ2M4.js → chunk-DEAFTFFH.js} +2 -2
- package/client-dist/{chunk-PMJP2N4K.js → chunk-E6C6MLAE.js} +2 -2
- package/client-dist/{chunk-6BYNIFJY.js → chunk-F455BZKF.js} +2 -2
- package/client-dist/chunk-FOLWKVUD.js +2 -0
- package/client-dist/chunk-FOLWKVUD.js.map +7 -0
- package/client-dist/{chunk-CAMM4S7P.js → chunk-GIEG6TTL.js} +3 -3
- package/client-dist/chunk-GIEG6TTL.js.map +1 -0
- package/client-dist/{chunk-4JL2Q6FO.js → chunk-GYSREL5Z.js} +2 -2
- package/client-dist/{chunk-IHNAAEA2.js → chunk-HFDLUJ4U.js} +2 -2
- package/client-dist/{chunk-XFXMWTQS.js → chunk-HS5KMAZC.js} +2 -2
- package/client-dist/{chunk-C2BQQRVH.js → chunk-HZ3SDWNT.js} +2 -2
- package/client-dist/{chunk-5RLDT3NY.js → chunk-I7XAQJ7K.js} +2 -2
- package/client-dist/{chunk-SK3XGSYF.js → chunk-ITSH6RYG.js} +2 -2
- package/client-dist/{chunk-BJ4I73WC.js → chunk-K3UWZKRD.js} +2 -2
- package/client-dist/{chunk-25KTNALK.js → chunk-KDPOJH6B.js} +2 -2
- package/client-dist/{chunk-OS5KCUZD.js → chunk-KKDWUDRS.js} +2 -2
- package/client-dist/{chunk-LIGODF4I.js → chunk-LUV3FOSG.js} +2 -2
- package/client-dist/{chunk-26YUXPZI.js → chunk-MY244SUO.js} +2 -2
- package/client-dist/{chunk-QQ2GRU2N.js → chunk-O3CN5GI3.js} +2 -2
- package/client-dist/{chunk-UVVGFHUG.js → chunk-O4EWDG7M.js} +2 -2
- package/client-dist/{chunk-LMK3IOKN.js → chunk-P7TYGGJE.js} +2 -2
- package/client-dist/{chunk-VOFDBT5T.js → chunk-PG4M4ZHN.js} +2 -2
- package/client-dist/{chunk-EDMLVG72.js → chunk-PIQK6O5O.js} +2 -2
- package/client-dist/{chunk-LCKABD2M.js → chunk-PQEIFO6Y.js} +2 -2
- package/client-dist/{chunk-7CMPZXAO.js → chunk-QSN7KY5M.js} +2 -2
- package/client-dist/{chunk-GG2WP2KM.js → chunk-QTOWXHVD.js} +2 -2
- package/client-dist/{chunk-BH3GMEZZ.js → chunk-ROLHXND4.js} +2 -2
- package/client-dist/{chunk-A33MCHYC.js → chunk-RPTXBYC4.js} +14 -14
- package/client-dist/{chunk-A33MCHYC.js.map → chunk-RPTXBYC4.js.map} +3 -3
- package/client-dist/{chunk-KX2KGHQZ.js → chunk-RZBXT5HF.js} +2 -2
- package/client-dist/{chunk-657E66YR.js → chunk-SDRBFR4F.js} +2 -2
- package/client-dist/{chunk-W7HIS2QA.js → chunk-T4OXQXNG.js} +2 -2
- package/client-dist/{chunk-C4FOSX27.js → chunk-UFASD7B2.js} +2 -2
- package/client-dist/{chunk-E6WOJOGT.js → chunk-UKRECFE4.js} +2 -2
- package/client-dist/{chunk-VRG74DKK.js → chunk-VJ343CWZ.js} +2 -2
- package/client-dist/{chunk-5YDHEFSD.js → chunk-VOEXOXIB.js} +2 -2
- package/client-dist/{chunk-L42Z7YNK.js → chunk-VPHQR3SZ.js} +2 -2
- package/client-dist/{chunk-DXF2FJLD.js → chunk-WDUO4IJE.js} +2 -2
- package/client-dist/chunk-WJCSS2XZ.js +2 -0
- package/client-dist/chunk-WJCSS2XZ.js.map +7 -0
- package/client-dist/{chunk-OLLHHMTV.js → chunk-WW4VCBEU.js} +2 -2
- package/client-dist/{chunk-L2XJGYW4.js → chunk-XLKBCO5O.js} +2 -2
- package/client-dist/{chunk-UD4PV7CD.js → chunk-XZRD3UM5.js} +2 -2
- package/client-dist/{chunk-4EOSKDXN.js → chunk-YWVKQVNA.js} +2 -2
- package/client-dist/{chunk-OCNDLQG5.js → chunk-Z3OBNB3J.js} +2 -2
- package/client-dist/{consultant.module-HHTHUWRL.js → consultant.module-2SDJBVP3.js} +2 -2
- package/client-dist/{crd.module-ER6AHSX5.js → crd.module-IWMW2SSQ.js} +2 -2
- package/client-dist/{dashboard.module-TSNGGBCI.js → dashboard.module-AIDMW46S.js} +2 -2
- package/client-dist/{do.module-NMZD5VSM.js → do.module-X7OAX4DD.js} +2 -2
- package/client-dist/{document-library.module-GHDNXP3T.js → document-library.module-IOCM265I.js} +2 -2
- package/client-dist/{embedding-eval.module-XPXBOIP5.js → embedding-eval.module-KCJREZY3.js} +2 -2
- package/client-dist/{embedding-registry.module-45TQGZI2.js → embedding-registry.module-XQXYNVGG.js} +2 -2
- package/client-dist/err.module-VWGZT7Z4.js +6 -0
- package/client-dist/err.module-VWGZT7Z4.js.map +7 -0
- package/client-dist/{feedback.module-TLKZ4B4N.js → feedback.module-P4XLXCPD.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-HVJZN5R5.js → host-runtime-mcp.module-JBSXKARK.js} +2 -2
- package/client-dist/index.html +2 -2
- package/client-dist/{live-dev-pipeline.module-5PE4ZFFW.js → live-dev-pipeline.module-B66G4DQO.js} +2 -2
- package/client-dist/{logs.module-335EXKCD.js → logs.module-F7SAEBD3.js} +2 -2
- package/client-dist/{main-FRD6VXVH.js → main-FD4U5Q57.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-ORHRUCZH.js → master-control-remote-poc.module-M66UBNEO.js} +2 -2
- package/client-dist/{mobile-app.module-BYYNVKQR.js → mobile-app.module-Z22J4W6C.js} +2 -2
- package/client-dist/{model-registry.module-KIHIJ2Z6.js → model-registry.module-CWMA4CT5.js} +2 -2
- package/client-dist/{oc.module-DAGIRW3Z.js → oc.module-HIXCQOOF.js} +2 -2
- package/client-dist/orc.module-YEZN4Q7U.js +2 -0
- package/client-dist/orc.module-YEZN4Q7U.js.map +7 -0
- package/client-dist/{project-management.module-IJNPSUQZ.js → project-management.module-CB6D2EUD.js} +2 -2
- package/client-dist/project-source-routed.module-CYG342BA.js +2 -0
- package/client-dist/{scheduler.module-S3IKZCLL.js → scheduler.module-V5JCK6QF.js} +2 -2
- package/client-dist/{session.module-FZC22UUN.js → session.module-QZLOBMOL.js} +9 -9
- package/client-dist/{session.module-FZC22UUN.js.map → session.module-QZLOBMOL.js.map} +3 -3
- package/client-dist/{set.module-Y2RHKW7A.js → set.module-EVAQ6TXH.js} +2 -2
- package/client-dist/{setup.module-VTI5EZ3Q.js → setup.module-D2TCNKBN.js} +2 -2
- package/client-dist/styles-CTUT42AQ.css +2 -0
- package/client-dist/{styles-MX7ZZMTH.css.map → styles-CTUT42AQ.css.map} +1 -1
- package/client-dist/{terminals.module-KHEDY6QN.js → terminals.module-LABJDNT5.js} +2 -2
- package/client-dist/{voice-notes-poc.module-EMDLJJIT.js → voice-notes-poc.module-IST3HNZW.js} +2 -2
- package/client-dist/{wfs.module-LUTFNQG5.js → wfs.module-ETTOPBME.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/ccap-agent/_modules/agent-core/_modules/run/_services/control-services/run-flow.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/ccap-agent/_modules/agent-core/_modules/run/_services/control-services/run-flow.control-service.js +8 -1
- package/server/build/src/_modules/ccap-agent/_modules/agent-core/_modules/run/_services/control-services/run-flow.control-service.js.map +1 -1
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.d.ts +47 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.d.ts.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.js +100 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.js.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.spec.d.ts +2 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.spec.js +162 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_collections/utils/voc-mp3-id3-strip.util.spec.js.map +1 -0
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_services/control-services/tts/voc-tts.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_services/control-services/tts/voc-tts.control-service.js +22 -4
- package/server/build/src/_modules/ccap-agent/_modules/integrations/_modules/voice/_services/control-services/tts/voc-tts.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.d.ts +40 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.js +174 -8
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.spec.d.ts +9 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.spec.js +213 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js +8 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.interface.d.ts +10 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-adapter.interface.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts +22 -42
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js +75 -58
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.d.ts +13 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.js +39 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/status/cc-status-transition.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +9 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
- package/server/build/src/_modules/notification/_collections/utils/ntf-system-event.util.d.ts +10 -0
- package/server/build/src/_modules/notification/_collections/utils/ntf-system-event.util.d.ts.map +1 -1
- package/server/build/src/_modules/notification/_collections/utils/ntf-system-event.util.js +18 -0
- package/server/build/src/_modules/notification/_collections/utils/ntf-system-event.util.js.map +1 -1
- package/server/build/src/_modules/notification/_collections/utils/ntf-system-event.util.spec.js +32 -3
- package/server/build/src/_modules/notification/_collections/utils/ntf-system-event.util.spec.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-event-relay.control-service.spec.d.ts +15 -0
- package/server/build/src/_modules/peer-instance/_services/pei-event-relay.control-service.spec.d.ts.map +1 -0
- package/server/build/src/_modules/peer-instance/_services/pei-event-relay.control-service.spec.js +122 -0
- package/server/build/src/_modules/peer-instance/_services/pei-event-relay.control-service.spec.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/auto-update/sc-server-auto-update.util.d.ts.map +1 -1
- package/server/build/src/_modules/setup-config/_collections/utils/auto-update/sc-server-auto-update.util.js +19 -32
- package/server/build/src/_modules/setup-config/_collections/utils/auto-update/sc-server-auto-update.util.js.map +1 -1
- package/server/build/src/_modules/setup-config/_collections/utils/auto-update/sc-server-auto-update.util.spec.js +32 -79
- package/server/build/src/_modules/setup-config/_collections/utils/auto-update/sc-server-auto-update.util.spec.js.map +1 -1
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache-entry.interface.d.ts +14 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache-entry.interface.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache-entry.interface.js +3 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache-entry.interface.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.d.ts +59 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.js +166 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.spec.d.ts +6 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.spec.js +135 -0
- package/server/build/src/_modules/setup-config/_collections/utils/npm-latest-cache/sc-npm-latest-cache.util.spec.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update-result.interface.d.ts +18 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update-result.interface.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update-result.interface.js +3 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update-result.interface.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.d.ts +37 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.js +135 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.spec.d.ts +8 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.spec.js +109 -0
- package/server/build/src/_modules/setup-config/_collections/utils/spawn-ccap-update/sc-spawn-ccap-update.util.spec.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.d.ts +6 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.d.ts.map +1 -1
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.js +12 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.js.map +1 -1
- package/server/build/src/_modules/setup-config/_services/control-services/sc-server-status.control-service.d.ts +13 -17
- 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 +44 -50
- package/server/build/src/_modules/setup-config/_services/control-services/sc-server-status.control-service.js.map +1 -1
- package/server/build/src/app.server.d.ts.map +1 -1
- package/server/build/src/app.server.js +4 -9
- package/server/build/src/app.server.js.map +1 -1
- package/client-dist/chunk-3AG5X2MY.js +0 -2
- package/client-dist/chunk-3AG5X2MY.js.map +0 -7
- package/client-dist/chunk-CAMM4S7P.js.map +0 -1
- package/client-dist/chunk-CDNAFC73.js +0 -2
- package/client-dist/chunk-CDNAFC73.js.map +0 -7
- package/client-dist/err.module-GCKYDYCK.js +0 -6
- package/client-dist/err.module-GCKYDYCK.js.map +0 -7
- package/client-dist/orc.module-KZELL6XR.js +0 -2
- package/client-dist/orc.module-KZELL6XR.js.map +0 -7
- package/client-dist/project-source-routed.module-DP3RD454.js +0 -2
- package/client-dist/styles-MX7ZZMTH.css +0 -2
- /package/client-dist/{agent-instances.module-TPKOBI3N.js.map → agent-instances.module-W3REXD56.js.map} +0 -0
- /package/client-dist/{ca.module-I5N6QWSU.js.map → ca.module-TQ4WHOMF.js.map} +0 -0
- /package/client-dist/{cc-usage-dashboard.component-7SPVADUQ.js.map → cc-usage-dashboard.component-TGLYNCLF.js.map} +0 -0
- /package/client-dist/{cc.module-7IL3QO5Q.js.map → cc.module-YMTBVD35.js.map} +0 -0
- /package/client-dist/{chunk-XWYXBY7S.js.map → chunk-2EBLV6GJ.js.map} +0 -0
- /package/client-dist/{chunk-7VY64KMU.js.map → chunk-4GTK6NMH.js.map} +0 -0
- /package/client-dist/{chunk-44TWBJUK.js.map → chunk-5HNAJSRW.js.map} +0 -0
- /package/client-dist/{chunk-77YTUUCR.js.map → chunk-6AFPKEHZ.js.map} +0 -0
- /package/client-dist/{chunk-OKUYYDGV.js.map → chunk-6XSACJBG.js.map} +0 -0
- /package/client-dist/{chunk-UM7AS2IW.js.map → chunk-77JJATPE.js.map} +0 -0
- /package/client-dist/{chunk-RYD462IO.js.map → chunk-7GEAKPVD.js.map} +0 -0
- /package/client-dist/{chunk-4FK2D2PX.js.map → chunk-A3CDBCDP.js.map} +0 -0
- /package/client-dist/{chunk-3G2ZGV66.js.map → chunk-ACWNNQIT.js.map} +0 -0
- /package/client-dist/{chunk-J5INQQ5M.js.map → chunk-AGMHTMQA.js.map} +0 -0
- /package/client-dist/{chunk-U3Y5GO6O.js.map → chunk-BFYF3IU4.js.map} +0 -0
- /package/client-dist/{chunk-U64N3LCA.js.map → chunk-BNU5THES.js.map} +0 -0
- /package/client-dist/{chunk-4PBNHSRW.js.map → chunk-BQAILW64.js.map} +0 -0
- /package/client-dist/{chunk-TFB7ULAV.js.map → chunk-C6J25IMQ.js.map} +0 -0
- /package/client-dist/{chunk-PW5BAINL.js.map → chunk-CZLRKXDU.js.map} +0 -0
- /package/client-dist/{chunk-CU5YQ2M4.js.map → chunk-DEAFTFFH.js.map} +0 -0
- /package/client-dist/{chunk-PMJP2N4K.js.map → chunk-E6C6MLAE.js.map} +0 -0
- /package/client-dist/{chunk-6BYNIFJY.js.map → chunk-F455BZKF.js.map} +0 -0
- /package/client-dist/{chunk-4JL2Q6FO.js.map → chunk-GYSREL5Z.js.map} +0 -0
- /package/client-dist/{chunk-IHNAAEA2.js.map → chunk-HFDLUJ4U.js.map} +0 -0
- /package/client-dist/{chunk-XFXMWTQS.js.map → chunk-HS5KMAZC.js.map} +0 -0
- /package/client-dist/{chunk-C2BQQRVH.js.map → chunk-HZ3SDWNT.js.map} +0 -0
- /package/client-dist/{chunk-5RLDT3NY.js.map → chunk-I7XAQJ7K.js.map} +0 -0
- /package/client-dist/{chunk-SK3XGSYF.js.map → chunk-ITSH6RYG.js.map} +0 -0
- /package/client-dist/{chunk-BJ4I73WC.js.map → chunk-K3UWZKRD.js.map} +0 -0
- /package/client-dist/{chunk-25KTNALK.js.map → chunk-KDPOJH6B.js.map} +0 -0
- /package/client-dist/{chunk-OS5KCUZD.js.map → chunk-KKDWUDRS.js.map} +0 -0
- /package/client-dist/{chunk-LIGODF4I.js.map → chunk-LUV3FOSG.js.map} +0 -0
- /package/client-dist/{chunk-26YUXPZI.js.map → chunk-MY244SUO.js.map} +0 -0
- /package/client-dist/{chunk-QQ2GRU2N.js.map → chunk-O3CN5GI3.js.map} +0 -0
- /package/client-dist/{chunk-UVVGFHUG.js.map → chunk-O4EWDG7M.js.map} +0 -0
- /package/client-dist/{chunk-LMK3IOKN.js.map → chunk-P7TYGGJE.js.map} +0 -0
- /package/client-dist/{chunk-VOFDBT5T.js.map → chunk-PG4M4ZHN.js.map} +0 -0
- /package/client-dist/{chunk-EDMLVG72.js.map → chunk-PIQK6O5O.js.map} +0 -0
- /package/client-dist/{chunk-LCKABD2M.js.map → chunk-PQEIFO6Y.js.map} +0 -0
- /package/client-dist/{chunk-7CMPZXAO.js.map → chunk-QSN7KY5M.js.map} +0 -0
- /package/client-dist/{chunk-GG2WP2KM.js.map → chunk-QTOWXHVD.js.map} +0 -0
- /package/client-dist/{chunk-BH3GMEZZ.js.map → chunk-ROLHXND4.js.map} +0 -0
- /package/client-dist/{chunk-KX2KGHQZ.js.map → chunk-RZBXT5HF.js.map} +0 -0
- /package/client-dist/{chunk-657E66YR.js.map → chunk-SDRBFR4F.js.map} +0 -0
- /package/client-dist/{chunk-W7HIS2QA.js.map → chunk-T4OXQXNG.js.map} +0 -0
- /package/client-dist/{chunk-C4FOSX27.js.map → chunk-UFASD7B2.js.map} +0 -0
- /package/client-dist/{chunk-E6WOJOGT.js.map → chunk-UKRECFE4.js.map} +0 -0
- /package/client-dist/{chunk-VRG74DKK.js.map → chunk-VJ343CWZ.js.map} +0 -0
- /package/client-dist/{chunk-5YDHEFSD.js.map → chunk-VOEXOXIB.js.map} +0 -0
- /package/client-dist/{chunk-L42Z7YNK.js.map → chunk-VPHQR3SZ.js.map} +0 -0
- /package/client-dist/{chunk-DXF2FJLD.js.map → chunk-WDUO4IJE.js.map} +0 -0
- /package/client-dist/{chunk-OLLHHMTV.js.map → chunk-WW4VCBEU.js.map} +0 -0
- /package/client-dist/{chunk-L2XJGYW4.js.map → chunk-XLKBCO5O.js.map} +0 -0
- /package/client-dist/{chunk-UD4PV7CD.js.map → chunk-XZRD3UM5.js.map} +0 -0
- /package/client-dist/{chunk-4EOSKDXN.js.map → chunk-YWVKQVNA.js.map} +0 -0
- /package/client-dist/{chunk-OCNDLQG5.js.map → chunk-Z3OBNB3J.js.map} +0 -0
- /package/client-dist/{consultant.module-HHTHUWRL.js.map → consultant.module-2SDJBVP3.js.map} +0 -0
- /package/client-dist/{crd.module-ER6AHSX5.js.map → crd.module-IWMW2SSQ.js.map} +0 -0
- /package/client-dist/{dashboard.module-TSNGGBCI.js.map → dashboard.module-AIDMW46S.js.map} +0 -0
- /package/client-dist/{do.module-NMZD5VSM.js.map → do.module-X7OAX4DD.js.map} +0 -0
- /package/client-dist/{document-library.module-GHDNXP3T.js.map → document-library.module-IOCM265I.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-XPXBOIP5.js.map → embedding-eval.module-KCJREZY3.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-45TQGZI2.js.map → embedding-registry.module-XQXYNVGG.js.map} +0 -0
- /package/client-dist/{feedback.module-TLKZ4B4N.js.map → feedback.module-P4XLXCPD.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-HVJZN5R5.js.map → host-runtime-mcp.module-JBSXKARK.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-5PE4ZFFW.js.map → live-dev-pipeline.module-B66G4DQO.js.map} +0 -0
- /package/client-dist/{logs.module-335EXKCD.js.map → logs.module-F7SAEBD3.js.map} +0 -0
- /package/client-dist/{main-FRD6VXVH.js.map → main-FD4U5Q57.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-ORHRUCZH.js.map → master-control-remote-poc.module-M66UBNEO.js.map} +0 -0
- /package/client-dist/{mobile-app.module-BYYNVKQR.js.map → mobile-app.module-Z22J4W6C.js.map} +0 -0
- /package/client-dist/{model-registry.module-KIHIJ2Z6.js.map → model-registry.module-CWMA4CT5.js.map} +0 -0
- /package/client-dist/{oc.module-DAGIRW3Z.js.map → oc.module-HIXCQOOF.js.map} +0 -0
- /package/client-dist/{project-management.module-IJNPSUQZ.js.map → project-management.module-CB6D2EUD.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-DP3RD454.js.map → project-source-routed.module-CYG342BA.js.map} +0 -0
- /package/client-dist/{scheduler.module-S3IKZCLL.js.map → scheduler.module-V5JCK6QF.js.map} +0 -0
- /package/client-dist/{set.module-Y2RHKW7A.js.map → set.module-EVAQ6TXH.js.map} +0 -0
- /package/client-dist/{setup.module-VTI5EZ3Q.js.map → setup.module-D2TCNKBN.js.map} +0 -0
- /package/client-dist/{terminals.module-KHEDY6QN.js.map → terminals.module-LABJDNT5.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-EMDLJJIT.js.map → voice-notes-poc.module-IST3HNZW.js.map} +0 -0
- /package/client-dist/{wfs.module-LUTFNQG5.js.map → wfs.module-ETTOPBME.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/app/_modules/system/_modules/errors/_components/ccap-errors-trend-chart/errors-trend-chart.component.ts", "src/app/_modules/system/_modules/errors/_components/ccap-errors-trend-chart/errors-trend-chart.component.html", "src/app/_modules/system/_modules/errors/_components/ccap-errors-stats-panel/errors-stats-panel.component.ts", "src/app/_modules/system/_modules/errors/_components/ccap-errors-stats-panel/errors-stats-panel.component.html", "src/app/_modules/system/_modules/errors/_components/ccap-errors/errors.component.ts", "src/app/_modules/system/_modules/errors/_components/ccap-errors/errors.component.html", "src/app/_modules/system/_modules/errors/err.module.ts"],
|
|
4
|
+
"sourcesContent": ["import { CommonModule } from '@angular/common';\nimport { Component, computed, input, Signal, signal } from '@angular/core';\n\nimport { CCAP_ErrorStatsTrendBucket_Response } from '../../../../../../_models/interfaces/feedback-errors/ccap-error-stats.interface';\n\n/**\n * REQ-UI-ERR-STATISTICS-001 Slice 4 (cycle 972) — error-stats trend mini chart.\n *\n * Plan-doc: `__documentations/plans/2026-05-11/2026-05-11-req-ui-err-statistics-001.plan.md`.\n *\n * Lightweight SVG oszlopdiagram a `trendBuckets` adatra; NEM külső chart-library\n * (bundle-méret megőrzése). Vertikális tengely: count; horizontális tengely:\n * time-bucket-ek. Hover-tooltip: bucket-end timestamp + count.\n *\n * A komponens állapotmentes — `buckets` Input signal-ből renderelődik. A maximum\n * count alapján skálázza az oszlopok magasságát; üres lista esetén placeholder\n * üzenet jelenik meg.\n */\ninterface TrendBarLayout_Interface {\n bucket: CCAP_ErrorStatsTrendBucket_Response;\n /** Bar bal-x koordinátája SVG-ben. */\n x: number;\n /** Bar magassága px-ben (0..chartHeight). */\n height: number;\n /** Bar top-y koordinátája (chartHeight - height). */\n y: number;\n}\n\nconst CHART_WIDTH: number = 600;\nconst CHART_HEIGHT: number = 80;\nconst BAR_GAP_PX: number = 2;\n\n@Component({\n selector: 'app-ccap-errors-trend-chart',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './errors-trend-chart.component.html',\n})\n/** Errors_TrendChart_Component — REQ-UI-ERR-STATISTICS-001 Slice 4 chart. */\nexport class Errors_TrendChart_Component {\n\n /** Input: bucket-tömb (a stats response `trendBuckets` mezője). */\n readonly buckets = input.required<CCAP_ErrorStatsTrendBucket_Response[]>();\n\n /** Hover-state: melyik bucket index van hover alatt (null = nincs). */\n readonly hoveredIndex_$ = signal<number | null>(null);\n\n /** SVG méretek (template-be is publikus). */\n readonly chartWidth: number = CHART_WIDTH;\n readonly chartHeight: number = CHART_HEIGHT;\n\n /**\n * Max count a skálázáshoz; min 1, hogy ne osszunk 0-val üres bucket-ek\n * esetén. A számkártyán mutatott `total` szándékosan eltérhet (összesítés\n * vs. legmagasabb bucket).\n */\n readonly maxCount_$: Signal<number> = computed((): number => {\n const list: CCAP_ErrorStatsTrendBucket_Response[] = this.buckets();\n let max: number = 0;\n for (const b of list) {\n if (b.count > max) {\n max = b.count;\n }\n }\n return Math.max(1, max);\n });\n\n /** Egy bar-szélesség px-ben, gap-eket levonva. */\n readonly barWidth_$: Signal<number> = computed((): number => {\n const list: CCAP_ErrorStatsTrendBucket_Response[] = this.buckets();\n if (list.length === 0) {\n return 0;\n }\n const totalGap: number = (list.length - 1) * BAR_GAP_PX;\n return Math.max(1, (CHART_WIDTH - totalGap) / list.length);\n });\n\n /** Layout: minden bucket-hez x/y/height SVG-koordináta. */\n readonly bars_$: Signal<TrendBarLayout_Interface[]> = computed((): TrendBarLayout_Interface[] => {\n const list: CCAP_ErrorStatsTrendBucket_Response[] = this.buckets();\n const barWidth: number = this.barWidth_$();\n const maxCount: number = this.maxCount_$();\n return list.map((bucket: CCAP_ErrorStatsTrendBucket_Response, idx: number): TrendBarLayout_Interface => {\n const height: number = (bucket.count / maxCount) * CHART_HEIGHT;\n return {\n bucket: bucket,\n x: idx * (barWidth + BAR_GAP_PX),\n height: height,\n y: CHART_HEIGHT - height,\n };\n });\n });\n\n /** Hover-bucket adat (a tooltip rendereléséhez). */\n readonly hoveredBar_$: Signal<TrendBarLayout_Interface | null> = computed((): TrendBarLayout_Interface | null => {\n const idx: number | null = this.hoveredIndex_$();\n if (idx == null) {\n return null;\n }\n const bars: TrendBarLayout_Interface[] = this.bars_$();\n return bars[idx] ?? null;\n });\n\n /** Bar hover-handler (mouseenter + touchstart). */\n handleBarHover(index: number): void {\n this.hoveredIndex_$.set(index);\n }\n\n /** Bar hover-end (mouseleave). */\n handleBarHoverEnd(): void {\n this.hoveredIndex_$.set(null);\n }\n\n /** Tooltip-szöveg: bucket-end ISO + count (rövid forma). */\n formatTooltip(bar: TrendBarLayout_Interface): string {\n const endMs: number = bar.bucket.bucketEndMs;\n const dt: Date = new Date(endMs);\n const iso: string = dt.toISOString();\n return `${iso} — ${bar.bucket.count}`;\n }\n}\n", "@if (buckets().length === 0) {\n <p class=\"text-xs text-neutral-500\">Nincs adat a trend-hez az időszakban.</p>\n} @else {\n <div class=\"relative\">\n <svg\n class=\"w-full\"\n [attr.viewBox]=\"'0 0 ' + chartWidth + ' ' + chartHeight\"\n preserveAspectRatio=\"none\"\n role=\"img\"\n aria-label=\"Error trend bucket-ek\">\n @for (bar of bars_$(); track $index; let i = $index) {\n <rect\n [attr.x]=\"bar.x\"\n [attr.y]=\"bar.y\"\n [attr.width]=\"barWidth_$()\"\n [attr.height]=\"bar.height\"\n class=\"fill-neonCyan/60 hover:fill-neonCyan transition-colors cursor-pointer\"\n (mouseenter)=\"handleBarHover(i)\"\n (mouseleave)=\"handleBarHoverEnd()\"\n (touchstart)=\"handleBarHover(i)\">\n <title>{{ formatTooltip(bar) }}</title>\n </rect>\n }\n </svg>\n\n @if (hoveredBar_$(); as bar) {\n <div class=\"absolute top-0 right-0 text-xs bg-neutral-900/90 text-neutral-200 px-2 py-1 rounded border border-neutral-700 pointer-events-none\">\n <span class=\"font-mono\">{{ formatTooltip(bar) }}</span>\n </div>\n }\n </div>\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, OnInit, Output, Signal, inject } from '@angular/core';\n\nimport {\n CCAP_ErrorStats_Response,\n CCAP_ErrorStatsRangeKey_Type,\n} from '../../../../../../_models/interfaces/feedback-errors/ccap-error-stats.interface';\nimport { Errors_DataService } from '../../_services/errors.data-service';\nimport { Errors_TrendChart_Component } from '../ccap-errors-trend-chart/errors-trend-chart.component';\n\n/**\n * REQ-UI-ERR-STATISTICS-001 Slice 3 (cycle 971) — `/errors` page stats-panel.\n *\n * Plan-doc: `__documentations/plans/2026-05-11/2026-05-11-req-ui-err-statistics-001.plan.md`.\n *\n * Layout:\n * - 4 number card row (total, uniqueSignatures, pmMarked, handled)\n * - Range selector pill-buttons (1h / 24h / 7d / all) — kattintásra DS `selectedRange_$`\n * frissül + `loadStats(rangeKey)` reload.\n * - 2-column lists: Top-5 errorCode + Top-5 source — minden tétel klikkelhető,\n * `filterByErrorCode` / `filterBySource` Output event-et bocsát ki (Slice 5\n * fogja a fő error-listával összekötni).\n *\n * Az init-en a Slice 2 `Errors_DataService.loadStats(selectedRange)` hívódik;\n * a kapott `errorStats_$` signal-ra reaktívan renderelünk. Üres state /\n * loading / error állapot is kezelt.\n */\n@Component({\n selector: 'app-ccap-errors-stats-panel',\n standalone: true,\n imports: [CommonModule, Errors_TrendChart_Component],\n templateUrl: './errors-stats-panel.component.html',\n})\n/** Errors_StatsPanel_Component — REQ-UI-ERR-STATISTICS-001 Slice 3 panel. */\nexport class Errors_StatsPanel_Component implements OnInit {\n\n /** Cycle 971: Slice 5 fogja behálózni a fő error-listára; Slice 3-ban csak emit. */\n @Output() filterByErrorCode: EventEmitter<string> = new EventEmitter<string>();\n @Output() filterBySource: EventEmitter<string> = new EventEmitter<string>();\n\n readonly errors_DS: Errors_DataService = inject(Errors_DataService);\n\n readonly stats_$: Signal<CCAP_ErrorStats_Response | null> = this.errors_DS.errorStats_$;\n readonly selectedRange_$: Signal<CCAP_ErrorStatsRangeKey_Type> = this.errors_DS.selectedRange_$;\n readonly loading_$: Signal<boolean> = this.errors_DS.errorStatsLoading_$;\n readonly loadError_$: Signal<string | null> = this.errors_DS.errorStatsLoadError_$;\n\n /** A pill-buttons rendereléséhez deterministic sorrend. */\n readonly rangeOptions: CCAP_ErrorStatsRangeKey_Type[] = ['1h', '24h', '7d', 'all'];\n\n ngOnInit(): void {\n void this.errors_DS.loadStats(this.selectedRange_$());\n }\n\n /** Range pill-button click → DS reload az új range-re. */\n handleSelectRange(rangeKey: CCAP_ErrorStatsRangeKey_Type): void {\n if (this.selectedRange_$() === rangeKey) {\n return;\n }\n void this.errors_DS.loadStats(rangeKey);\n }\n\n /** Top-by-count item-click → filter event emit a host komponensnek. */\n handleErrorCodeClick(errorCode: string | null): void {\n if (errorCode == null || errorCode.length === 0) {\n return;\n }\n this.filterByErrorCode.emit(errorCode);\n }\n\n /** Top-by-source item-click → filter event emit a host komponensnek. */\n handleSourceClick(source: string): void {\n if (source.length === 0) {\n return;\n }\n this.filterBySource.emit(source);\n }\n}\n", "<section class=\"mb-4 gt-xs:mb-6 p-3 gt-xs:p-4 border border-neutral-700 rounded-md bg-neutral-900/50\">\n <header class=\"flex flex-wrap items-center gap-2 mb-3\">\n <h2 class=\"text-base gt-xs:text-lg font-semibold text-neutral-100\">Statisztika</h2>\n\n <!-- Range pill-buttons (1h / 24h / 7d / all) -->\n <div class=\"flex flex-wrap gap-1 ml-auto\" role=\"group\" aria-label=\"Időablak\">\n @for (range of rangeOptions; track range) {\n <button type=\"button\"\n (click)=\"handleSelectRange(range)\"\n [disabled]=\"loading_$()\"\n class=\"px-2.5 py-1 text-xs gt-xs:text-sm border rounded transition-colors\"\n [class.bg-neonCyan]=\"selectedRange_$() === range\"\n [class.text-neutral-900]=\"selectedRange_$() === range\"\n [class.border-neonCyan]=\"selectedRange_$() === range\"\n [class.text-neutral-300]=\"selectedRange_$() !== range\"\n [class.border-neutral-600]=\"selectedRange_$() !== range\"\n [class.hover:bg-neutral-700]=\"selectedRange_$() !== range\">\n {{ range }}\n </button>\n }\n </div>\n </header>\n\n @let s = stats_$();\n\n @if (loading_$() && !s) {\n <p class=\"text-neutral-400 text-sm\">Statisztika betöltése…</p>\n } @else if (loadError_$()) {\n <p class=\"text-red-300 text-sm\">A statisztika nem tölthető be: {{ loadError_$() }}</p>\n } @else if (s) {\n <!-- 4 number-card sor -->\n <div class=\"grid grid-cols-2 md:grid-cols-4 gap-2 gt-xs:gap-3 mb-3\">\n <div class=\"p-2 gt-xs:p-3 bg-neutral-800/70 border border-neutral-700 rounded\">\n <div class=\"text-2xl gt-xs:text-3xl font-bold text-neonCyan\">{{ s.total }}</div>\n <div class=\"text-xs text-neutral-400\">Total</div>\n </div>\n <div class=\"p-2 gt-xs:p-3 bg-neutral-800/70 border border-neutral-700 rounded\">\n <div class=\"text-2xl gt-xs:text-3xl font-bold text-emerald-300\">{{ s.uniqueSignatures }}</div>\n <div class=\"text-xs text-neutral-400\">Egyedi</div>\n </div>\n <div class=\"p-2 gt-xs:p-3 bg-neutral-800/70 border border-neutral-700 rounded\">\n <div class=\"text-2xl gt-xs:text-3xl font-bold text-amber-300\">{{ s.pmMarked }}</div>\n <div class=\"text-xs text-neutral-400\">PM jelölt</div>\n </div>\n <div class=\"p-2 gt-xs:p-3 bg-neutral-800/70 border border-neutral-700 rounded\">\n <div class=\"text-2xl gt-xs:text-3xl font-bold text-neutral-300\">{{ s.handled }}</div>\n <div class=\"text-xs text-neutral-400\">Kezelt</div>\n </div>\n </div>\n\n <!-- 2 oszlop: Top-5 errorCode + Top-5 source -->\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-2 gt-xs:gap-3\">\n <div>\n <h3 class=\"text-sm font-semibold text-neutral-200 mb-1\">Top errorCode</h3>\n @if (s.topByCount.length === 0) {\n <p class=\"text-xs text-neutral-500\">Nincs adat az időszakban.</p>\n } @else {\n <ul class=\"space-y-1\">\n @for (item of s.topByCount; track item.errorCode) {\n <li>\n <button type=\"button\"\n (click)=\"handleErrorCodeClick(item.errorCode)\"\n [disabled]=\"!item.errorCode\"\n class=\"flex items-center w-full text-left px-2 py-1 rounded text-xs gt-xs:text-sm\n text-neutral-200 hover:bg-neutral-800 disabled:opacity-60 disabled:cursor-default\">\n <span class=\"font-mono truncate\">{{ item.errorCode || '(no errorCode)' }}</span>\n <span class=\"ml-auto text-neonCyan font-bold\">{{ item.count }}</span>\n </button>\n </li>\n }\n </ul>\n }\n </div>\n\n <div>\n <h3 class=\"text-sm font-semibold text-neutral-200 mb-1\">Top source</h3>\n @if (s.topBySource.length === 0) {\n <p class=\"text-xs text-neutral-500\">Nincs adat az időszakban.</p>\n } @else {\n <ul class=\"space-y-1\">\n @for (item of s.topBySource; track item.source) {\n <li>\n <button type=\"button\"\n (click)=\"handleSourceClick(item.source)\"\n class=\"flex items-center w-full text-left px-2 py-1 rounded text-xs gt-xs:text-sm\n text-neutral-200 hover:bg-neutral-800\">\n <span class=\"font-mono truncate\">{{ item.source }}</span>\n <span class=\"ml-auto text-neonCyan font-bold\">{{ item.count }}</span>\n </button>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n\n <!-- REQ-UI-ERR-STATISTICS-001 Slice 4 (cycle 972): trend mini chart -->\n <div class=\"mt-3\">\n <h3 class=\"text-sm font-semibold text-neutral-200 mb-1\">Trend</h3>\n <app-ccap-errors-trend-chart [buckets]=\"s.trendBuckets\" />\n </div>\n } @else {\n <p class=\"text-neutral-500 text-sm\">Nincs statisztikai adat.</p>\n }\n</section>\n", "import { Component, OnInit, OnDestroy, inject, signal, computed } from '@angular/core';\n\nimport { second } from '@futdevpro/fsm-dynamo';\n\nimport { ObjectTypeGuards_Util } from '../../../../../../_collections/utils/object-type-guards.util';\nimport { CCAP_ErrorContextDetailEntry_Interface } from '../../../../../../_models/interfaces/feedback-errors/ccap-error-context-detail-entry.interface';\nimport { CCAP_ErrorListItem_Response } from '../../../../../../_models/interfaces/feedback-errors/ccap-error-list-item.interface';\nimport { Errors_DataService } from '../../_services/errors.data-service';\n\n/**\n * Hibák oldal: lista (message, source, CCAP/session/run, occurrenceCount, lastOccurrenceAt), route/URL;\n * kontextus részletek és stack kinyitható; Clear all, soronkénti Clear, Másolás.\n */\n@Component({\n selector: 'app-ccap-errors',\n templateUrl: './errors.component.html',\n})\n/** Errors_Component class. */\nexport class Errors_Component implements OnInit, OnDestroy {\n\n readonly errors_DS: Errors_DataService = inject(Errors_DataService);\n\n /** Tick signal — 10 másodpercenként frissül a relatív idő kijelzéshez. */\n private readonly refreshTick_$ = signal<number>(0);\n private refreshTickInterval: ReturnType<typeof setInterval> | null = null;\n\n /** Utolsó frissítés óta eltelt idő szövegesen (pl. \"most\", \"2 perce\"). */\n readonly lastRefreshedAgo_$ = computed((): string => {\n void this.refreshTick_$();\n const lastDate: Date | null = this.errors_DS.lastRefreshedAt_$();\n if (!lastDate) {\n return '';\n }\n const diffMs: number = Date.now() - lastDate.getTime();\n const seconds: number = Math.floor(diffMs / 1000);\n const minutes: number = Math.floor(seconds / 60);\n const hours: number = Math.floor(minutes / 60);\n\n if (seconds < 10) {\n return 'most';\n }\n if (seconds < 60) {\n return `${seconds} mp`;\n }\n if (minutes < 60) {\n return `${minutes} perce`;\n }\n return `${hours} órája`;\n });\n\n /** PM / user megjelölés POST folyamatban erre az `_id`-re (üres = nincs). */\n readonly pmUserMarkBusyErrorId_$ = signal<string>('');\n\n /**\n * Cycle 780 (REQ-SYS-EH-FIX-ANNOTATION-001) — szűrt lista a default\n * `hideStaleBuild_$` toggle figyelembevételével. Default: STALE-BUILD elrejtve.\n *\n * Cycle 973 (REQ-UI-ERR-STATISTICS-001 Slice 5): a `errorListFilter_$` szöveg-szűrő\n * is alkalmazódik — substring match (case-insensitive) errorCode és source ellen.\n */\n readonly visibleErrors_$ = computed<CCAP_ErrorListItem_Response[]>((): CCAP_ErrorListItem_Response[] => {\n const all: CCAP_ErrorListItem_Response[] = this.errors_DS.errors_$();\n const staleHidden: CCAP_ErrorListItem_Response[] = this.errors_DS.hideStaleBuild_$()\n ? all.filter((e: CCAP_ErrorListItem_Response): boolean =>\n e.fixAnnotation?.classification !== 'STALE-BUILD',\n )\n : all;\n const filterText: string = this.errors_DS.errorListFilter_$().toLowerCase();\n if (filterText.length === 0) {\n return staleHidden;\n }\n return staleHidden.filter((e: CCAP_ErrorListItem_Response): boolean => {\n const errorCode: string = (e.errorCode ?? '').toLowerCase();\n const source: string = (e.source ?? '').toLowerCase();\n return errorCode.includes(filterText) || source.includes(filterText);\n });\n });\n\n /** Slice 5: stats-panel filter-event handler. */\n handleFilterByErrorCode(errorCode: string): void {\n this.errors_DS.setListFilter(errorCode);\n }\n\n /** Slice 5: stats-panel filter-event handler. */\n handleFilterBySource(source: string): void {\n this.errors_DS.setListFilter(source);\n }\n\n /** Slice 5: clear-filter button. */\n handleClearListFilter(): void {\n this.errors_DS.clearListFilter();\n }\n\n /** A teljes és szűrt lista méretét egyben mutató szöveg (pl. „24 / 38\"). */\n readonly visibleVsTotalLabel_$ = computed<string>((): string => {\n const total: number = this.errors_DS.errors_$().length;\n const visible: number = this.visibleErrors_$().length;\n if (visible === total) {\n return `${total}`;\n }\n return `${visible} / ${total}`;\n });\n\n /** Soronként kinyitott stack (_id → true). */\n readonly expandedId_$ = signal<Record<string, boolean>>({});\n\n /** Soronként kinyitott surroundingState extra részlet (_id → true). */\n readonly contextExpandedId_$ = signal<Record<string, boolean>>({});\n\n /** Hiba id → route / URL sor (template; CCAP/session/run külön a HTML-ben). */\n readonly errorContextLineMap_$ = computed<Record<string, string>>(() => {\n const errs: CCAP_ErrorListItem_Response[] = this.errors_DS.errors_$();\n const m: Record<string, string> = {};\n for (const err of errs) {\n const id: string = err._id ?? '';\n m[id] = Errors_Component.buildRouteUrlLine(err.surroundingState);\n }\n return m;\n });\n\n /** Hiba id → surroundingState extra (userMessage, baseline, userAgent, additionalContext, stb.) a blokkba. */\n readonly contextDetailTextMap_$ = computed<Record<string, string>>(() => {\n const errs: CCAP_ErrorListItem_Response[] = this.errors_DS.errors_$();\n const m: Record<string, string> = {};\n for (const err of errs) {\n const id: string = err._id ?? '';\n m[id] = Errors_Component.buildSurroundingStateExtraDetail(err.surroundingState);\n }\n return m;\n });\n\n /** Hiba id → strukturált kontextus bejegyzések a formázott megjelenítéshez. */\n readonly contextDetailEntries_$ = computed<Partial<Record<string, CCAP_ErrorContextDetailEntry_Interface[]>>>(() => {\n const errs: CCAP_ErrorListItem_Response[] = this.errors_DS.errors_$();\n const m: Partial<Record<string, CCAP_ErrorContextDetailEntry_Interface[]>> = {};\n for (const err of errs) {\n const id: string = err._id ?? '';\n m[id] = Errors_Component.buildContextDetailEntries(err.surroundingState);\n }\n return m;\n });\n\n ngOnInit(): void {\n void this.errors_DS.loadErrors();\n this.refreshTickInterval = setInterval((): void => {\n this.refreshTick_$.update((v: number): number => v + 1);\n }, 10 * second);\n }\n\n ngOnDestroy(): void {\n if (this.refreshTickInterval) {\n clearInterval(this.refreshTickInterval);\n }\n }\n\n /** Lista újratöltése. */\n refresh(): void {\n void this.errors_DS.loadErrors();\n }\n\n /** Összes hiba törlése. */\n clearAll(): void {\n void this.errors_DS.clearAll();\n }\n\n /** Egy hiba törlése. */\n clearOne(id: string): void {\n void this.errors_DS.clearOne(id);\n }\n\n /**\n * PM / user manuális megjelölés vagy törlése.\n */\n handlePmUserMark(err: CCAP_ErrorListItem_Response, marked: boolean): void {\n const id: string = err._id ?? '';\n if (!id.length || this.pmUserMarkBusyErrorId_$() === id) {\n return;\n }\n this.pmUserMarkBusyErrorId_$.set(id);\n void this.errors_DS.setPmUserMark(id, marked).finally((): void => {\n this.pmUserMarkBusyErrorId_$.set('');\n });\n }\n\n /** Stack kinyitva van-e az adott id-hez (tesztekhez; template expandedId_$()[id]-t használ). */\n isExpanded(id: string): boolean {\n return this.expandedId_$()[id] === true;\n }\n\n /** Hiba azonosító (tesztekhez; template err._id-t használ). */\n getErrorId(err: CCAP_ErrorListItem_Response): string {\n return err._id ?? '';\n }\n\n /**\n * Route / URL a surroundingState-ből (meta sor; azonosítók külön a template-ben).\n */\n private static buildRouteUrlLine(\n state: Record<string, unknown> | undefined,\n ): string {\n if (!state || typeof state !== 'object') {\n return '';\n }\n const route: unknown = state.route;\n const url: unknown = state.url;\n const routeStr: string =\n typeof route === 'string' && route.trim().length > 0 ? route.trim() : '';\n const urlStr: string =\n typeof url === 'string' && url.trim().length > 0 ? url.trim() : '';\n if (routeStr && urlStr) {\n return `Route: ${routeStr} · URL: ${urlStr}`;\n }\n if (routeStr) {\n return `Route: ${routeStr}`;\n }\n if (urlStr) {\n return `URL: ${urlStr}`;\n }\n return '';\n }\n\n /**\n * Másolás / getErrorContextLine: azonosítók + route/URL egy blokkban.\n */\n private static buildContextLine(err: CCAP_ErrorListItem_Response): string {\n const parts: string[] = [];\n if (err.ccapId?.trim()) {\n parts.push(`CCAP: ${err.ccapId.trim()}`);\n }\n if (err.sessionId?.trim()) {\n parts.push(`Session: ${err.sessionId.trim()}`);\n }\n if (err.runId?.trim()) {\n parts.push(`Run: ${err.runId.trim()}`);\n }\n const routeUrl: string = Errors_Component.buildRouteUrlLine(err.surroundingState);\n if (routeUrl.length > 0) {\n parts.push(routeUrl);\n }\n return parts.join(' · ');\n }\n\n /**\n * SurroundingState-ből több sor: userMessage, session/run (ha csak itt vannak), szerver baseline, kliens mezők, additionalContext.\n */\n private static buildSurroundingStateExtraDetail(\n state: Record<string, unknown> | undefined,\n ): string {\n const flat: Record<string, unknown> =\n Errors_Component.flattenSurroundingStateForDisplay(state);\n if (Object.keys(flat).length === 0) {\n return '';\n }\n const lines: string[] = [];\n const pushStringLine = (label: string, value: unknown): void => {\n if (typeof value === 'string' && value.trim().length > 0) {\n lines.push(`${label}: ${value.trim()}`);\n }\n };\n pushStringLine('userMessage', flat.userMessage);\n pushStringLine('sessionId (surroundingState)', flat.sessionId);\n pushStringLine('runId (surroundingState)', flat.runId);\n pushStringLine('nodeVersion', flat.nodeVersion);\n pushStringLine('platform', flat.platform);\n pushStringLine('timestamp', flat.timestamp);\n pushStringLine('userAgent', flat.userAgent);\n const additionalContext: unknown = flat.additionalContext;\n if (ObjectTypeGuards_Util.isRecord(additionalContext)) {\n try {\n const json: string = JSON.stringify(additionalContext, null, 2);\n lines.push(`additionalContext:\\n${json}`);\n } catch {\n lines.push('additionalContext: [not serializable]');\n }\n }\n const printedKeys: Set<string> = new Set<string>([\n 'userMessage',\n 'sessionId',\n 'runId',\n 'nodeVersion',\n 'platform',\n 'timestamp',\n 'userAgent',\n 'additionalContext',\n 'route',\n 'url',\n ]);\n const restKeys: string[] = Object.keys(flat).filter(\n (k: string): boolean => !printedKeys.has(k),\n );\n restKeys.sort();\n for (const key of restKeys) {\n const v: unknown = flat[key];\n if (v === undefined || v === null) {\n continue;\n }\n if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {\n lines.push(`${key}: ${String(v)}`);\n continue;\n }\n try {\n lines.push(`${key}:\\n${JSON.stringify(v, null, 2)}`);\n } catch {\n lines.push(`${key}: [not serializable]`);\n }\n }\n return lines.join('\\n');\n }\n\n /**\n * Strukturált kontextus bejegyzéseket épít a surroundingState-ből a formázott megjelenítéshez.\n */\n private static buildContextDetailEntries(\n state: Record<string, unknown> | undefined,\n ): CCAP_ErrorContextDetailEntry_Interface[] {\n const flat: Record<string, unknown> =\n Errors_Component.flattenSurroundingStateForDisplay(state);\n if (Object.keys(flat).length === 0) {\n return [];\n }\n const entries: CCAP_ErrorContextDetailEntry_Interface[] = [];\n\n /** Egyszerű string mezőt bejegyzéssé alakít, ha nem üres. */\n const pushIfString = (label: string, value: unknown): void => {\n if (typeof value === 'string' && value.trim().length > 0) {\n entries.push({ label: label, value: value.trim(), isMultiline: false });\n }\n };\n\n pushIfString('sessionId (surroundingState)', flat.sessionId);\n pushIfString('runId (surroundingState)', flat.runId);\n pushIfString('nodeVersion', flat.nodeVersion);\n pushIfString('platform', flat.platform);\n pushIfString('timestamp', flat.timestamp);\n pushIfString('userMessage', flat.userMessage);\n pushIfString('userAgent', flat.userAgent);\n\n // additionalContext — rekurzívan stringified JSON mezőket is kifejtjük\n const additionalContext: unknown = flat.additionalContext;\n if (ObjectTypeGuards_Util.isRecord(additionalContext)) {\n const formatted: string = Errors_Component.formatObjectDeep(additionalContext);\n entries.push({ label: 'additionalContext', value: formatted, isMultiline: true });\n }\n\n // Maradék mezők (route, url, stb. kihagyva, mert a meta sorban jelennek meg)\n const printedKeys: Set<string> = new Set<string>([\n 'userMessage', 'sessionId', 'runId', 'nodeVersion', 'platform',\n 'timestamp', 'userAgent', 'additionalContext', 'route', 'url',\n ]);\n const restKeys: string[] = Object.keys(flat).filter(\n (k: string): boolean => !printedKeys.has(k),\n );\n restKeys.sort();\n for (const key of restKeys) {\n const v: unknown = flat[key];\n if (v === undefined || v === null) {\n continue;\n }\n if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {\n entries.push({ label: key, value: String(v), isMultiline: false });\n continue;\n }\n try {\n const json: string = JSON.stringify(v, null, 2);\n entries.push({ label: key, value: json, isMultiline: true });\n } catch {\n entries.push({ label: key, value: '[not serializable]', isMultiline: false });\n }\n }\n return entries;\n }\n\n /**\n * JSON objektumot formáz megjelenítéshez — stringified JSON értékeket is kifejtve.\n */\n private static formatObjectDeep(obj: Record<string, unknown>): string {\n const parsed: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n parsed[key] = Errors_Component.tryParseJsonString(obj[key]);\n }\n return JSON.stringify(parsed, null, 2);\n }\n\n /**\n * Ha az érték stringified JSON, parse-olja; egyébként visszaadja az eredetit.\n */\n private static tryParseJsonString(value: unknown): unknown {\n if (typeof value !== 'string') {\n return value;\n }\n const trimmed: string = value.trim();\n if (\n (trimmed.startsWith('{') && trimmed.endsWith('}')) ||\n (trimmed.startsWith('[') && trimmed.endsWith(']'))\n ) {\n try {\n return JSON.parse(trimmed);\n } catch {\n return value;\n }\n }\n return value;\n }\n\n /**\n * Egyszintű surroundingState a megjelenítéshez: beágyazott surroundingState egy szintre lapítása.\n */\n private static flattenSurroundingStateForDisplay(\n state: Record<string, unknown> | undefined,\n ): Record<string, unknown> {\n if (!state || typeof state !== 'object') {\n return {};\n }\n const nested: unknown = state.surroundingState;\n if (ObjectTypeGuards_Util.isRecord(nested)) {\n const { surroundingState: _drop, ...outerRest } = state;\n return {\n ...outerRest,\n ...nested,\n };\n }\n return { ...state };\n }\n\n /** Stack toggle. */\n toggleExpanded(id: string): void {\n this.expandedId_$.update((prev: Record<string, boolean>) => ({\n ...prev,\n [id]: !prev[id],\n }));\n }\n\n /**\n * SurroundingState extra részlet (userAgent, timestamp, additionalContext) kinyitása / bezárása.\n */\n toggleContextExpanded(id: string): void {\n this.contextExpandedId_$.update((prev: Record<string, boolean>) => ({\n ...prev,\n [id]: !prev[id],\n }));\n }\n\n /**\n * Van-e kinyitható kontextus részlet (userMessage, baseline, userAgent, additionalContext, egyéb) a map alapján.\n */\n hasContextDetailText(id: string | undefined): boolean {\n if (!id) {\n return false;\n }\n const entries: CCAP_ErrorContextDetailEntry_Interface[] | undefined = this.contextDetailEntries_$()[id];\n if (entries?.length) {\n return true;\n }\n return this.contextDetailTextMap_$()[id]?.trim().length > 0;\n }\n\n /**\n * Egy hiba teljes tartalmának szöveges összeállítása másoláshoz (message, source, stack, stb.).\n * Az s-copy-button komponens kezeli a vágólapra másolást és a visszajelzést.\n */\n getErrorCopyText(err: CCAP_ErrorListItem_Response): string {\n const parts: string[] = [];\n if (err.message?.trim()) {\n parts.push(err.message.trim());\n }\n const meta: string[] = [];\n if (err.source?.trim()) {\n meta.push(`Forrás: ${err.source.trim()}`);\n }\n if (err.occurrenceCount != null && err.occurrenceCount > 1) {\n meta.push(`Előfordulások: ${err.occurrenceCount}`);\n }\n const raw: string | undefined = err.lastOccurrenceAt ?? err.timestamp;\n const dateStr: string =\n !raw ? '–' : ((): string => {\n try {\n return new Date(raw).toLocaleString(undefined, { dateStyle: 'short', timeStyle: 'short' });\n } catch {\n return raw;\n }\n })();\n if (dateStr !== '–') {\n meta.push(`Utolsó: ${dateStr}`);\n }\n if (meta.length > 0) {\n parts.push(meta.join(' · '));\n }\n const contextSummary: string = Errors_Component.buildContextLine(err);\n if (contextSummary.trim().length > 0) {\n parts.push('');\n parts.push(contextSummary);\n }\n const contextExtra: string = Errors_Component.buildSurroundingStateExtraDetail(\n err.surroundingState,\n );\n if (contextExtra.trim().length > 0) {\n parts.push('');\n parts.push('Kontextus részletek:');\n parts.push(contextExtra.trim());\n }\n if (err.stack?.trim()) {\n parts.push('');\n parts.push('Stack:');\n parts.push(err.stack.trim());\n }\n return parts.join('\\n');\n }\n\n /** Kontextus sor (tesztekhez; template errorContextLineMap_$-t használ). */\n getErrorContextLine(err: CCAP_ErrorListItem_Response): string {\n return Errors_Component.buildContextLine(err);\n }\n}\n", "<div class=\"max-w-4xl mx-auto p-3 gt-xs:p-6 text-neutral-100\">\n <h1 class=\"text-xl gt-xs:text-2xl font-bold mb-4 gt-xs:mb-6\">Hibák</h1>\n <p class=\"text-neutral-400 text-sm gt-xs:text-base mb-4 gt-xs:mb-6\">\n A rendszerben rögzített hibák listája (szerver és kliens). Sorrend: legfelül a legfrissebb utolsó előfordulás\n (<code class=\"bg-neutral-800 px-1 rounded\">lastOccurrenceAt</code> / első rögzítés ideje). Azonos hiba többszöri\n előfordulása egy sorban jelenik meg (előfordulások száma). Törölheted egyenként vagy mindegyiket egyszerre.\n </p>\n\n <!-- REQ-UI-ERR-STATISTICS-001 Slice 3 (cycle 971): stats panel a lista FELETT.\n Slice 5 (cycle 973): filter-event-ek a fő listára kötve. -->\n <app-ccap-errors-stats-panel\n (filterByErrorCode)=\"handleFilterByErrorCode($event)\"\n (filterBySource)=\"handleFilterBySource($event)\" />\n\n <!-- Slice 5 filter-indicator + clear-button. -->\n @if (errors_DS.errorListFilter_$(); as filterText) {\n @if (filterText.length > 0) {\n <div class=\"flex items-center gap-2 mb-3 px-3 py-2 bg-neutral-800/60 border border-neonCyan/50 rounded\">\n <span class=\"text-xs text-neutral-400\">Szűrő:</span>\n <span class=\"font-mono text-sm text-neonCyan\">{{ filterText }}</span>\n <button type=\"button\"\n (click)=\"handleClearListFilter()\"\n class=\"ml-auto px-2 py-0.5 text-xs border border-neutral-600 rounded\n text-neutral-300 hover:bg-neutral-700\">\n Törlés\n </button>\n </div>\n }\n }\n\n <div class=\"flex flex-wrap gap-1.5 gt-xs:gap-2 items-center mb-3 gt-xs:mb-4\">\n <button type=\"button\"\n (click)=\"refresh()\"\n [disabled]=\"errors_DS.errorsLoading_$()\"\n class=\"px-3 py-1.5 gt-xs:px-4 gt-xs:py-2 text-sm gt-xs:text-base border border-neonCyan rounded\n text-neutral-300 hover:bg-neutral-700 disabled:opacity-50 transition-colors\">\n {{ errors_DS.errorsLoading_$() ? 'Betöltés…' : 'Frissítés' }}\n </button>\n @if (lastRefreshedAgo_$()) {\n <span class=\"text-neutral-500 text-xs gt-xs:text-sm\">\n {{ lastRefreshedAgo_$() }}\n </span>\n }\n <button type=\"button\"\n (click)=\"clearAll()\"\n [disabled]=\"errors_DS.errorsLoading_$() || errors_DS.errors_$().length === 0\"\n class=\"px-3 py-1.5 gt-xs:px-4 gt-xs:py-2 text-sm gt-xs:text-base bg-red-900/60 border border-red-500/70\n rounded text-red-200 hover:bg-red-900/80 disabled:opacity-50 transition-colors\">\n Összes törlése\n </button>\n <!-- Cycle 780 (REQ-SYS-EH-FIX-ANNOTATION-001): STALE-BUILD szűrő toggle. -->\n <button type=\"button\"\n (click)=\"errors_DS.hideStaleBuild_$.set(!errors_DS.hideStaleBuild_$())\"\n class=\"ml-auto px-3 py-1.5 gt-xs:px-4 gt-xs:py-2 text-sm gt-xs:text-base border rounded\n transition-colors\"\n [class.bg-emerald-900]=\"errors_DS.hideStaleBuild_$()\"\n [class.border-emerald-500]=\"errors_DS.hideStaleBuild_$()\"\n [class.text-emerald-200]=\"errors_DS.hideStaleBuild_$()\"\n [class.border-neutral-600]=\"!errors_DS.hideStaleBuild_$()\"\n [class.text-neutral-300]=\"!errors_DS.hideStaleBuild_$()\"\n title=\"Régebbi server-build-ekből származó, már fixelt errorok elrejtése (cycle 780 fix-annotation registry)\">\n {{ errors_DS.hideStaleBuild_$() ? '✓ STALE elrejtve' : 'STALE mutatása' }}\n ({{ visibleVsTotalLabel_$() }})\n </button>\n </div>\n\n @if (errors_DS.errorsLoadError_$()) {\n <div class=\"mb-4\">\n <p class=\"text-neutral-300 mb-3\">A lista nem tölthető be.</p>\n <app-ccap-error-display\n [error]=\"errors_DS.errorsLoadErrorRaw_$() ?? errors_DS.errorsLoadError_$()\" />\n </div>\n }\n\n @if (errors_DS.errorsLoading_$() && errors_DS.errors_$().length === 0) {\n <p class=\"text-neutral-400\">Betöltés…</p>\n } @else if (errors_DS.errors_$().length === 0 && !errors_DS.errorsLoadError_$()) {\n <p class=\"text-neutral-500\">Nincs rögzített hiba.</p>\n } @else if (visibleErrors_$().length === 0 && errors_DS.hideStaleBuild_$()) {\n <p class=\"text-neutral-500\">\n Csak STALE-BUILD bejegyzések vannak (régebbi server-build-ekből, már fixelt). Kapcsold ki a szűrőt\n a megjelenítéshez vagy használd az\n <code class=\"bg-neutral-800 px-1 rounded\">errors-cleanup-stale.sh</code>-t a takarításhoz.\n </p>\n } @else if (errors_DS.errors_$().length > 0) {\n <div class=\"space-y-2 gt-xs:space-y-3\">\n @for (err of visibleErrors_$(); track err._id) {\n <div class=\"p-2.5 gt-xs:p-4 bg-neutral-800/50 border border-neonDefault rounded-lg\">\n <!-- xs: műveletek felül; gt-xs: jobb oszlop. Üzenet + meta alatta / balon. -->\n <div class=\"min-w-0 flex flex-col gap-2 gt-xs:flex-row gt-xs:items-start gt-xs:justify-between gt-xs:gap-2\">\n <div class=\"flex items-center gap-1.5 gt-xs:gap-2 flex-wrap justify-end gt-xs:justify-end order-1\n gt-xs:order-2 shrink-0 w-full gt-xs:w-auto\">\n <app-s-copy-button [content]=\"getErrorCopyText(err)\" />\n @if (err.pmUserMarkedAt?.trim()) {\n <button type=\"button\"\n (click)=\"handlePmUserMark(err, false)\"\n [disabled]=\"!err._id || pmUserMarkBusyErrorId_$() === err._id\"\n class=\"px-2 py-1 gt-xs:px-3 gt-xs:py-1.5 text-amber-300 hover:bg-amber-900/25 rounded\n border border-amber-600/50 text-xs gt-xs:text-sm disabled:opacity-50\n transition-colors shrink-0\">\n Jelölés törlése\n </button>\n } @else {\n <button type=\"button\"\n (click)=\"handlePmUserMark(err, true)\"\n [disabled]=\"!err._id || pmUserMarkBusyErrorId_$() === err._id\"\n class=\"px-2 py-1 gt-xs:px-3 gt-xs:py-1.5 text-neutral-300 hover:bg-neutral-700/50 rounded\n border border-neutral-600 text-xs gt-xs:text-sm disabled:opacity-50\n transition-colors shrink-0\">\n Megjelölés\n </button>\n }\n <button type=\"button\"\n (click)=\"clearOne(err._id ?? '')\"\n [disabled]=\"!err._id\"\n class=\"px-2 py-1 gt-xs:px-3 gt-xs:py-1.5 text-red-400 hover:bg-red-900/30 rounded\n text-xs gt-xs:text-sm disabled:opacity-50 transition-colors shrink-0\">\n Törlés\n </button>\n </div>\n <div class=\"min-w-0 flex-1 order-2 gt-xs:order-1 w-full gt-xs:w-auto\">\n <!-- Cycle 780 fix-annotation badge: a message FÖLÖTT, hogy jól látsszon. -->\n @if (err.fixAnnotation && err.fixAnnotation.classification !== 'UNFIXED') {\n <div class=\"mb-1 gt-xs:mb-1.5 flex flex-wrap items-center gap-1.5\">\n @if (err.fixAnnotation.classification === 'STALE-BUILD') {\n <span class=\"px-1.5 py-0.5 text-[10px] gt-xs:text-xs font-mono uppercase tracking-wider\n bg-emerald-900/60 border border-emerald-600 rounded text-emerald-200\"\n title=\"Régebbi server-build, már fixelt — biztonságosan mark-done-olható.\">\n STALE\n </span>\n } @else if (err.fixAnnotation.classification === 'REGRESSION') {\n <span class=\"px-1.5 py-0.5 text-[10px] gt-xs:text-xs font-mono uppercase tracking-wider\n bg-red-900/60 border border-red-600 rounded text-red-200\"\n title=\"A fix után újra előfordult — valódi regresszió, vissza implementre.\">\n REGRESSION\n </span>\n }\n <span class=\"text-[11px] gt-xs:text-xs text-neutral-400 font-mono\">\n Fixed in {{ err.fixAnnotation.fixedInVersion }} (cycle {{ err.fixAnnotation.fixedInCycle }})\n </span>\n @if (err.fixAnnotation.summary) {\n <span class=\"text-[11px] gt-xs:text-xs text-neutral-500 italic break-words\">\n — {{ err.fixAnnotation.summary }}\n </span>\n }\n </div>\n }\n <p class=\"font-medium text-neutral-200 text-sm gt-xs:text-base break-words\">{{\n err.message ?? '–' }}</p>\n <p class=\"text-neutral-500 text-[11px] gt-xs:text-sm mt-1.5 gt-xs:mt-1 flex flex-wrap gap-x-2 gap-y-1\">\n @if (err.pmUserMarkedAt?.trim()) {\n <span class=\"break-words text-amber-400/90 font-medium\">Megjelölve (PM)</span>\n }\n <span class=\"break-words\">Forrás: {{ err.source ?? '–' }}</span>\n @if (err.occurrenceCount != null && err.occurrenceCount > 1) {\n <span class=\"break-words\">· Előfordulások: {{ err.occurrenceCount }}</span>\n }\n <span class=\"break-words\">· Utolsó: {{ (err.lastOccurrenceAt ?? err.timestamp) ?\n ((err.lastOccurrenceAt ?? err.timestamp) | date:'short') : '–' }}</span>\n @if (err.ccapId?.trim()) {\n <span class=\"break-words\">· CCAP: {{ err.ccapId }}</span>\n }\n @if (err.sessionId?.trim()) {\n <span class=\"break-words\">· Session: {{ err.sessionId }}</span>\n }\n @if (err.runId?.trim()) {\n <span class=\"break-words\">· Run: {{ err.runId }}</span>\n }\n @if (errorContextLineMap_$()[err._id ?? '']) {\n <span class=\"break-words\">· {{ errorContextLineMap_$()[err._id ?? ''] }}</span>\n }\n </p>\n </div>\n </div>\n @if (hasContextDetailText(err._id)) {\n <div class=\"mt-1.5 gt-xs:mt-2\">\n <button type=\"button\"\n (click)=\"toggleContextExpanded(err._id ?? '')\"\n class=\"text-neutral-400 hover:text-neutral-200 text-xs gt-xs:text-sm flex items-center gap-1\">\n <svg class=\"w-3 h-3 shrink-0 transition-transform duration-150\"\n [class.-rotate-90]=\"!contextExpandedId_$()[err._id ?? '']\"\n viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n {{ contextExpandedId_$()[err._id ?? ''] ? 'Kontextus részletek elrejtése' : 'Kontextus részletek' }}\n </button>\n @if (contextExpandedId_$()[err._id ?? '']) {\n <div class=\"mt-1.5 p-2 gt-xs:p-3 bg-neutral-900 rounded max-h-[70vh] overflow-y-auto\n space-y-1.5 gt-xs:space-y-2\">\n @for (entry of contextDetailEntries_$()[err._id ?? ''] ?? []; track entry.label) {\n <div class=\"text-xs\">\n @if (entry.isMultiline) {\n <div class=\"text-neutral-500 font-medium mb-0.5\">{{ entry.label }}</div>\n <pre class=\"p-1.5 gt-xs:p-2 bg-neutral-950/60 rounded text-neutral-300 font-mono\n whitespace-pre-wrap break-words overflow-x-auto\">{{ entry.value }}</pre>\n } @else {\n <div class=\"flex flex-wrap gap-x-1.5\">\n <span class=\"text-neutral-500 font-medium shrink-0\">{{ entry.label }}:</span>\n <span class=\"text-neutral-300 break-all font-mono\">{{ entry.value }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n @if (err.stack?.trim()) {\n <div class=\"mt-1.5 gt-xs:mt-2\">\n <button type=\"button\"\n (click)=\"toggleExpanded(err._id ?? '')\"\n class=\"text-neutral-400 hover:text-neutral-200 text-xs gt-xs:text-sm flex items-center gap-1\">\n <svg class=\"w-3 h-3 shrink-0 transition-transform duration-150\"\n [class.-rotate-90]=\"!expandedId_$()[err._id ?? '']\"\n viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n {{ expandedId_$()[err._id ?? ''] ? 'Stack elrejtése' : 'Stack megjelenítése' }}\n </button>\n @if (expandedId_$()[err._id ?? '']) {\n <pre class=\"mt-1 p-1.5 gt-xs:p-2 bg-neutral-900 rounded text-xs text-neutral-300 font-mono\n whitespace-pre-wrap break-words overflow-x-auto max-h-[70vh] overflow-y-auto\">{{\n err.stack }}</pre>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"pt-4 gt-xs:pt-6\">\n <a routerLink=\"/\"\n class=\"inline-flex px-3 py-1.5 gt-xs:px-4 gt-xs:py-2 text-sm gt-xs:text-base border border-neonCyan rounded\n text-neutral-300 hover:bg-neutral-700\">\n Vissza\n </a>\n </div>\n</div>\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { CCAP_ErrorDisplay_Component } from '../../../../_components/ccap-error-display/ccap-error-display.component';\nimport { S_CopyButton_Component } from '../../../shared/_components/s-copy-button/s-copy-button.component';\nimport { Errors_StatsPanel_Component } from './_components/ccap-errors-stats-panel/errors-stats-panel.component';\nimport { Errors_Component } from './_components/ccap-errors/errors.component';\n\n/** Errors modul route: errors path → hibák listája. */\nconst errorsRoutes: Routes = [\n { path: '', pathMatch: 'full', component: Errors_Component },\n];\n\n/**\n * Errors (Hibák) modul.\n * Rögzített hibák listázása, törlése (egyenként vagy mind).\n */\n@NgModule({\n declarations: [Errors_Component],\n imports: [\n CommonModule,\n RouterModule.forChild(errorsRoutes),\n CCAP_ErrorDisplay_Component,\n S_CopyButton_Component,\n Errors_StatsPanel_Component,\n ],\n})\n/** Errors_Module class. */\nexport class Errors_Module {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275$index_10_r2", "\u0275\u0275restoreView", "_r1", "$index", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleBarHover", "handleBarHoverEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "formatTooltip", "bar_r4", "ctx", "\u0275\u0275repeaterCreate", "Errors_TrendChart_Component_Conditional_1_For_3_Template", "\u0275\u0275repeaterTrackByIndex", "\u0275\u0275template", "Errors_TrendChart_Component_Conditional_1_Conditional_4_Template", "\u0275\u0275repeater", "bars_$", "\u0275\u0275conditional", "tmp_3_0", "hoveredBar_$", "CHART_WIDTH", "CHART_HEIGHT", "BAR_GAP_PX", "Errors_TrendChart_Component", "buckets", "input", "required", "hoveredIndex_$", "signal", "chartWidth", "chartHeight", "maxCount_$", "computed", "list", "max", "b", "count", "Math", "barWidth_$", "length", "totalGap", "barWidth", "maxCount", "map", "bucket", "idx", "height", "x", "y", "index", "set", "bar", "endMs", "bucketEndMs", "Date", "toISOString", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "Errors_TrendChart_Component_Conditional_0_Template", "Errors_TrendChart_Component_Conditional_1_Template", "CommonModule", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275listener", "range_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelectRange", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275classProp", "selectedRange_$", "\u0275\u0275property", "loading_$", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "loadError_$", "item_r5", "_r4", "handleErrorCodeClick", "errorCode", "\u0275\u0275textInterpolate", "count", "\u0275\u0275repeaterCreate", "Errors_StatsPanel_Component_Conditional_10_Conditional_26_For_2_Template", "_forTrack0", "\u0275\u0275repeater", "s_r6", "topByCount", "item_r8", "_r7", "handleSourceClick", "source", "Errors_StatsPanel_Component_Conditional_10_Conditional_31_For_2_Template", "_forTrack1", "topBySource", "\u0275\u0275template", "Errors_StatsPanel_Component_Conditional_10_Conditional_25_Template", "Errors_StatsPanel_Component_Conditional_10_Conditional_26_Template", "Errors_StatsPanel_Component_Conditional_10_Conditional_30_Template", "Errors_StatsPanel_Component_Conditional_10_Conditional_31_Template", "\u0275\u0275element", "total", "uniqueSignatures", "pmMarked", "handled", "\u0275\u0275conditional", "length", "trendBuckets", "Errors_StatsPanel_Component", "filterByErrorCode", "EventEmitter", "filterBySource", "errors_DS", "inject", "Errors_DataService", "stats_$", "errorStats_$", "errorStatsLoading_$", "errorStatsLoadError_$", "rangeOptions", "ngOnInit", "loadStats", "rangeKey", "emit", "selectors", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "Errors_StatsPanel_Component_For_6_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275declareLet", "Errors_StatsPanel_Component_Conditional_8_Template", "Errors_StatsPanel_Component_Conditional_9_Template", "Errors_StatsPanel_Component_Conditional_10_Template", "Errors_StatsPanel_Component_Conditional_11_Template", "\u0275\u0275storeLet", "s_r9", "CommonModule", "Errors_TrendChart_Component", "encapsulation", "import_fsm_dynamo", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleClearListFilter", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "filterText_r3", "\u0275\u0275template", "Errors_Component_Conditional_9_Conditional_0_Template", "\u0275\u0275conditional", "ctx", "length", "\u0275\u0275textInterpolate1", "lastRefreshedAgo_$", "\u0275\u0275element", "\u0275\u0275property", "tmp_1_0", "errors_DS", "errorsLoadErrorRaw_$", "undefined", "errorsLoadError_$", "_r5", "err_r6", "$implicit", "handlePmUserMark", "_id", "pmUserMarkBusyErrorId_$", "_r7", "fixAnnotation", "summary", "Errors_Component_Conditional_22_For_2_Conditional_9_Conditional_1_Template", "Errors_Component_Conditional_22_For_2_Conditional_9_Conditional_2_Template", "Errors_Component_Conditional_22_For_2_Conditional_9_Conditional_5_Template", "classification", "\u0275\u0275textInterpolate2", "fixedInVersion", "fixedInCycle", "occurrenceCount", "ccapId", "sessionId", "runId", "errorContextLineMap_$", "tmp_12_0", "entry_r9", "label", "value", "Errors_Component_Conditional_22_For_2_Conditional_24_Conditional_5_For_2_Conditional_1_Template", "Errors_Component_Conditional_22_For_2_Conditional_24_Conditional_5_For_2_Conditional_2_Template", "isMultiline", "\u0275\u0275repeaterCreate", "Errors_Component_Conditional_22_For_2_Conditional_24_Conditional_5_For_2_Template", "_forTrack1", "\u0275\u0275repeater", "tmp_13_0", "contextDetailEntries_$", "\u0275\u0275pureFunction0", "_c0", "_r8", "toggleContextExpanded", "Errors_Component_Conditional_22_For_2_Conditional_24_Conditional_5_Template", "\u0275\u0275classProp", "contextExpandedId_$", "tmp_14_0", "stack", "_r10", "toggleExpanded", "Errors_Component_Conditional_22_For_2_Conditional_25_Conditional_5_Template", "expandedId_$", "Errors_Component_Conditional_22_For_2_Conditional_4_Template", "Errors_Component_Conditional_22_For_2_Conditional_5_Template", "_r4", "clearOne", "Errors_Component_Conditional_22_For_2_Conditional_9_Template", "Errors_Component_Conditional_22_For_2_Conditional_13_Template", "Errors_Component_Conditional_22_For_2_Conditional_16_Template", "Errors_Component_Conditional_22_For_2_Conditional_20_Template", "Errors_Component_Conditional_22_For_2_Conditional_21_Template", "Errors_Component_Conditional_22_For_2_Conditional_22_Template", "Errors_Component_Conditional_22_For_2_Conditional_23_Template", "Errors_Component_Conditional_22_For_2_Conditional_24_Template", "Errors_Component_Conditional_22_For_2_Conditional_25_Template", "getErrorCopyText", "pmUserMarkedAt", "trim", "tmp_15_0", "message", "tmp_17_0", "source", "tmp_19_0", "lastOccurrenceAt", "timestamp", "\u0275\u0275pipeBind2", "tmp_23_0", "hasContextDetailText", "Errors_Component_Conditional_22_For_2_Template", "_forTrack0", "visibleErrors_$", "Errors_Component", "inject", "Errors_DataService", "refreshTick_$", "signal", "refreshTickInterval", "computed", "lastDate", "lastRefreshedAt_$", "diffMs", "Date", "now", "getTime", "seconds", "Math", "floor", "minutes", "hours", "all", "errors_$", "staleHidden", "hideStaleBuild_$", "filter", "e", "filterText", "errorListFilter_$", "toLowerCase", "errorCode", "includes", "handleFilterByErrorCode", "setListFilter", "handleFilterBySource", "clearListFilter", "visibleVsTotalLabel_$", "total", "visible", "errs", "m", "err", "id", "buildRouteUrlLine", "surroundingState", "contextDetailTextMap_$", "buildSurroundingStateExtraDetail", "buildContextDetailEntries", "ngOnInit", "loadErrors", "setInterval", "update", "v", "second", "ngOnDestroy", "clearInterval", "refresh", "clearAll", "marked", "set", "setPmUserMark", "finally", "isExpanded", "getErrorId", "state", "route", "url", "routeStr", "urlStr", "buildContextLine", "parts", "push", "routeUrl", "join", "flat", "flattenSurroundingStateForDisplay", "Object", "keys", "lines", "pushStringLine", "userMessage", "nodeVersion", "platform", "userAgent", "additionalContext", "ObjectTypeGuards_Util", "isRecord", "json", "JSON", "stringify", "printedKeys", "Set", "restKeys", "k", "has", "sort", "key", "String", "entries", "pushIfString", "formatted", "formatObjectDeep", "obj", "parsed", "tryParseJsonString", "trimmed", "startsWith", "endsWith", "parse", "nested", "_drop", "outerRest", "__spreadValues", "prev", "__spreadProps", "meta", "raw", "dateStr", "toLocaleString", "dateStyle", "timeStyle", "contextSummary", "contextExtra", "getErrorContextLine", "selectors", "decls", "vars", "consts", "template", "rf", "$event", "Errors_Component_Conditional_9_Template", "Errors_Component_Conditional_13_Template", "Errors_Component_Conditional_18_Template", "Errors_Component_Conditional_19_Template", "Errors_Component_Conditional_20_Template", "Errors_Component_Conditional_21_Template", "Errors_Component_Conditional_22_Template", "tmp_0_0", "errorsLoading_$", "errorsRoutes", "path", "pathMatch", "component", "Errors_Component", "Errors_Module", "CommonModule", "RouterModule", "forChild", "CCAP_ErrorDisplay_Component", "S_CopyButton_Component", "Errors_StatsPanel_Component"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as z}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=feedback.module-
|
|
1
|
+
import{a as z}from"./chunk-QTOWXHVD.js";import{a as x}from"./chunk-WPHEQXWB.js";import{k}from"./chunk-ROLHXND4.js";import"./chunk-5UPNU54P.js";import"./chunk-RPTXBYC4.js";import"./chunk-6TE4LLRT.js";import{$a as w,C as v,D as y,E as g,Fa as r,Ga as F,Ha as _,Hb as B,J as E,K as D,Kb as P,Z as i,bb as L,da as b,ga as m,ia as f,ja as T,la as u,oa as h,pa as $,pb as M,qa as o,ra as a,sa as C,ua as I,ub as A,va as s,wa as p,z as S}from"./chunk-TBMJSIBB.js";var V=(e,d)=>d._id;function N(e,d){if(e&1&&C(0,"app-ccap-error-display",8),e&2){let n=p();m("error",n.feedback_DS.feedbackLoadError_$())}}function R(e,d){e&1&&(o(0,"p",9),r(1,"Bet\xF6lt\xE9s\u2026"),a())}function Y(e,d){e&1&&(o(0,"p",10),r(1,"Nincs r\xF6gz\xEDtett feedback."),a())}function K(e,d){if(e&1&&(o(0,"p",19),r(1),a()),e&2){let n=p().$implicit;i(),F(n.description)}}function G(e,d){if(e&1&&(o(0,"span"),r(1),a()),e&2){let n=p().$implicit;i(),_("Tool: ",n.toolId,"")}}function H(e,d){if(e&1&&(o(0,"span"),r(1),a()),e&2){let n=p().$implicit;T(n.toolId!=null&&n.toolId.trim()?"ml-2":""),i(),_("Session: ",n.sessionId,"")}}function J(e,d){if(e&1){let n=I();o(0,"div",14)(1,"div",15)(2,"div",16)(3,"p",17),r(4),a(),C(5,"app-s-status-badge",18),b(6,K,2,1,"p",19),o(7,"p",20),b(8,G,2,1,"span")(9,H,2,4,"span",21),o(10,"span",22),r(11),w(12,"date"),a()()(),o(13,"div",23)(14,"button",24),s("click",function(){let t,c=E(n).$implicit,j=p(2);return D(j.clearOne((t=c._id)!==null&&t!==void 0?t:""))}),r(15," T\xF6rl\xE9s "),a()()()()}if(e&2){let n,l,t=d.$implicit,c=p(2);i(4),F((n=t.title)!==null&&n!==void 0?n:"\u2013"),i(),m("value",c.TYPE_LABELS[(l=t.type)!==null&&l!==void 0?l:""])("colorMap",c.feedbackTypeColorMap),i(),u(t.description!=null&&t.description.trim()?6:-1),i(2),u(t.toolId!=null&&t.toolId.trim()?8:-1),i(),u(t.sessionId!=null&&t.sessionId.trim()?9:-1),i(2),_("\xB7 ",t.timestamp?L(12,8,t.timestamp,"short"):"\u2013",""),i(3),m("disabled",!t._id)}}function Q(e,d){if(e&1&&(o(0,"div",11),h(1,J,16,11,"div",14,V),a()),e&2){let n=p();i(),$(n.feedback_DS.feedback_$())}}var U={"bug-report":"Bug report","feature-request":"Feature request"},q=(()=>{class e{feedback_DS=v(z);ngOnInit(){this.feedback_DS.loadFeedback()}refresh(){this.feedback_DS.loadFeedback()}clearAll(){this.feedback_DS.clearAll()}clearOne(n){this.feedback_DS.clearOne(n)}setFilter(n){this.feedback_DS.setFilterType(n)}getFeedbackId(n){return n._id??""}TYPE_LABELS=U;feedbackTypeColorMap={"bug report":"bg-red-900/40 text-red-200","feature request":"bg-cyan-900/40 text-cyan-200"};static \u0275fac=function(l){return new(l||e)};static \u0275cmp=y({type:e,selectors:[["app-ccap-feedback"]],decls:25,vars:11,consts:[[1,"max-w-4xl","mx-auto","p-4","gt-xs:p-6","text-neutral-100"],[1,"text-2xl","font-bold","mb-6"],[1,"text-neutral-400","mb-6"],[1,"flex","flex-wrap","gap-2","items-center","mb-4"],["type","button",1,"px-4","py-2","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700","disabled:opacity-50","transition-colors",3,"click","disabled"],["type","button",1,"px-4","py-2","bg-red-900/60","border","border-red-500/70","rounded","text-red-200","hover:bg-red-900/80","disabled:opacity-50","transition-colors",3,"click","disabled"],[1,"text-neutral-500","text-sm","ml-2"],["type","button",1,"px-3","py-1.5","border","border-neutral-600","rounded","text-neutral-300","hover:bg-neutral-700","transition-colors","text-sm",3,"click"],["sourceLabelOverride","Feedback lista",1,"mb-4","block","max-w-3xl",3,"error"],[1,"text-neutral-400"],[1,"text-neutral-500"],[1,"space-y-3"],[1,"pt-6"],["routerLink","/",1,"px-4","py-2","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700"],[1,"p-4","bg-neutral-800/50","border","border-neonDefault","rounded-lg"],[1,"flex","flex-wrap","gap-2","items-start","justify-between"],[1,"min-w-0","flex-1"],[1,"font-medium","text-neutral-200","break-words"],["size","sm",3,"value","colorMap"],[1,"text-neutral-400","text-sm","mt-2","whitespace-pre-wrap","break-words"],[1,"text-neutral-500","text-sm","mt-2"],[3,"class"],[1,"ml-2"],[1,"flex","items-center","gap-2","shrink-0"],["type","button",1,"px-3","py-1.5","text-red-400","hover:bg-red-900/30","rounded","text-sm","disabled:opacity-50","transition-colors",3,"click","disabled"]],template:function(l,t){l&1&&(o(0,"div",0)(1,"h1",1),r(2,"Agent feedback"),a(),o(3,"p",2),r(4," Az agent \xE1ltal bek\xFCld\xF6tt bug report-ok \xE9s feature request-ek list\xE1ja (saj\xE1t m\u0171k\xF6d\xE9s \xE9s tool-ok kapcs\xE1n). T\xF6r\xF6lheted egyenk\xE9nt vagy mindegyiket egyszerre. "),a(),o(5,"div",3)(6,"button",4),s("click",function(){return t.refresh()}),r(7),a(),o(8,"button",5),s("click",function(){return t.clearAll()}),r(9," \xD6sszes t\xF6rl\xE9se "),a(),o(10,"span",6),r(11,"Sz\u0171r\u0151:"),a(),o(12,"button",7),s("click",function(){return t.setFilter(void 0)}),r(13," \xD6sszes "),a(),o(14,"button",7),s("click",function(){return t.setFilter("bug-report")}),r(15," Bug report "),a(),o(16,"button",7),s("click",function(){return t.setFilter("feature-request")}),r(17," Feature request "),a()(),b(18,N,1,1,"app-ccap-error-display",8)(19,R,2,0,"p",9)(20,Y,2,0,"p",10)(21,Q,3,0,"div",11),o(22,"div",12)(23,"a",13),r(24," Vissza "),a()()()),l&2&&(i(6),m("disabled",t.feedback_DS.feedbackLoading_$()),i(),_(" ",t.feedback_DS.feedbackLoading_$()?"Bet\xF6lt\xE9s\u2026":"Friss\xEDt\xE9s"," "),i(),m("disabled",t.feedback_DS.feedbackLoading_$()||t.feedback_DS.feedback_$().length===0),i(4),f("border-neonCyan",t.feedback_DS.filterType_$()===void 0),i(2),f("border-neonCyan",t.feedback_DS.filterType_$()==="bug-report"),i(2),f("border-neonCyan",t.feedback_DS.filterType_$()==="feature-request"),i(2),u(t.feedback_DS.feedbackLoadError_$()?18:-1),i(),u(t.feedback_DS.feedbackLoading_$()&&t.feedback_DS.feedback_$().length===0?19:t.feedback_DS.feedback_$().length===0?20:21))},dependencies:[B,k,x,M],encapsulation:2})}return e})();var W=[{path:"",pathMatch:"full",component:q}],se=(()=>{class e{static \u0275fac=function(l){return new(l||e)};static \u0275mod=g({type:e});static \u0275inj=S({imports:[A,P.forChild(W),k,x]})}return e})();export{se as Feedback_Module};
|
|
2
|
+
//# sourceMappingURL=feedback.module-P4XLXCPD.js.map
|
package/client-dist/{host-runtime-mcp.module-HVJZN5R5.js → host-runtime-mcp.module-JBSXKARK.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as J}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=host-runtime-mcp.module-
|
|
1
|
+
import{j as J}from"./chunk-RPTXBYC4.js";import{I as N}from"./chunk-6TE4LLRT.js";import{C as d,D as w,E as k,Fa as o,Ga as _,Ha as f,J as g,K as v,Kb as V,L as H,Z as a,a as h,aa as u,da as p,ga as I,hb as M,ia as P,k as E,la as m,oa as j,p as R,pa as F,qa as r,ra as i,sa as D,ua as S,ub as A,va as b,wa as c,xb as z,y as C,z as T}from"./chunk-TBMJSIBB.js";var O=(()=>{class t{baseUrl=`${N.api.baseUrl}/ccap-host-runtime-mcp`;http=d(z);postProbeTools(){return R(this.http.post(`${this.baseUrl}/probe-tools`,{}))}static \u0275fac=function(n){return new(n||t)};static \u0275prov=C({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var U=(()=>{class t{hostRuntimeMcp_AS=d(O);postProbeTools(){return this.hostRuntimeMcp_AS.postProbeTools()}static \u0275fac=function(n){return new(n||t)};static \u0275prov=C({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G=(t,l)=>l.name;function L(t,l){t&1&&o(0," Bet\xF6lt\xE9s\u2026 ")}function q(t,l){t&1&&o(0," Friss\xEDt\xE9s ")}function K(t,l){t&1&&(r(0,"div",6),o(1),i()),t&2&&(a(),f(" ",l," "))}function Q(t,l){if(t&1&&(r(0,"span",11),o(1),i()),t&2){let e=c();a(),f("| toolok: ",e.toolCount,"")}}function W(t,l){t&1&&(r(0,"p",12),o(1),i()),t&2&&(a(),f(" Program: ",l.programJsPath," "))}function X(t,l){t&1&&(r(0,"p",15),o(1,"Nincs tool a v\xE1laszban."),i())}function Y(t,l){if(t&1&&(r(0,"p",9),o(1),i()),t&2){let e=c().$implicit;a(),_(e.description)}}function Z(t,l){if(t&1&&(r(0,"pre",24),o(1),i()),t&2){let e=c().$implicit,n=c(3);a(),_(n.formatSchema(e.inputSchema))}}function tt(t,l){if(t&1){let e=S();r(0,"li",18)(1,"div",19)(2,"span",20),o(3),i(),p(4,Y,2,1,"p",9),r(5,"button",21),b("click",function(){let s=g(e).$implicit,x=c(3);return v(x.toggleSchema(s.name))}),H(),r(6,"svg",22),D(7,"polyline",23),i(),o(8),i(),p(9,Z,2,1,"pre",24),i()()}if(t&2){let e=l.$implicit,n=c(3);a(3),_(e.name),a(),m(e.description?4:-1),a(2),P("-rotate-90",!n.schemaExpanded_$()[e.name]),a(2),f(" ",n.schemaExpanded_$()[e.name]?"inputSchema elrejt\xE9se":"inputSchema megjelen\xEDt\xE9se"," "),a(),m(n.schemaExpanded_$()[e.name]?9:-1)}}function et(t,l){if(t&1&&(r(0,"ul",16),j(1,tt,10,6,"li",18,G),i()),t&2){let e=c(2);a(),F(e.tools_$())}}function nt(t,l){t&1&&o(0," M\xE1solva ")}function it(t,l){t&1&&o(0," JSON m\xE1sol\xE1sa ")}function ot(t,l){if(t&1){let e=S();r(0,"section",17)(1,"div",25)(2,"h2",26),o(3,"Cursor MCP config p\xE9lda"),i(),r(4,"button",27),b("click",function(){g(e);let s=c(2);return v(s.copyCursorSnippet())}),p(5,nt,1,0)(6,it,1,0),i()(),r(7,"p",28),o(8," Illeszd a Cursor "),r(9,"code",29),o(10,"mcp.json"),i(),o(11," vagy projekt MCP be\xE1ll\xEDt\xE1s\xE1ba; a "),r(12,"code",29),o(13,"env"),i(),o(14," tartalmazza az API base URL-t. "),i(),r(15,"pre",30),o(16),i()()}if(t&2){let e=c(2);a(5),m(e.snippetCopied_$()?5:6),a(11),_(e.cursorSnippet_$())}}function rt(t,l){if(t&1&&(r(0,"section",7)(1,"h2",8),o(2,"\xD6sszegz\xE9s"),i(),r(3,"p",9),o(4," Sikeres probe: "),r(5,"span",10),o(6),i(),p(7,Q,2,1,"span",11),i(),p(8,W,2,1,"p",12),i(),r(9,"section",13)(10,"h2",14),o(11,"El\xE9rhet\u0151 toolok (MCP tools/list)"),i(),p(12,X,2,0,"p",15)(13,et,3,0,"ul",16),i(),p(14,ot,17,2,"section",17)),t&2){let e,n=l,s=c();a(6),_(n.success?"igen":"nem"),a(),m(n.toolCount!==void 0?7:-1),a(),m((e=n.resolvedSpawn)?8:-1,e),a(4),m(s.tools_$().length?13:12),a(2),m(s.cursorSnippet_$().trim().length>0?14:-1)}}function at(t,l){t&1&&(r(0,"p",31),o(1,"Probe fut\u2026"),i())}function lt(t,l){t&1&&(r(0,"p",15),o(1,"M\xE9g nincs probe eredm\xE9ny. Nyomd meg a Friss\xEDt\xE9s gombot."),i())}function st(t,l){if(t&1&&p(0,at,2,0,"p",31)(1,lt,2,0,"p",15),t&2){let e=c();m(e.loading_$()?0:1)}}var B=(()=>{class t{hostRuntimeMcp_DS=d(U);globalError_CS=d(J);loading_$=u(!1);errorMessage_$=u(void 0);probe_$=u(void 0);schemaExpanded_$=u({});tools_$=M(()=>this.probe_$()?.tools??[]);cursorSnippet_$=M(()=>{let e=this.probe_$()?.resolvedSpawn;if(!e)return"";let n={mcpServers:{"ccap-host-runtime-mcp":{command:e.command,args:e.args,env:h({},e.recommendedEnv)}}};return JSON.stringify(n,null,2)});copyResetTimeoutId;snippetCopied_$=u(!1);ngOnInit(){this.refreshProbe()}refreshProbe(){return E(this,null,function*(){this.loading_$.set(!0),this.errorMessage_$.set(void 0);try{let e=yield this.hostRuntimeMcp_DS.postProbeTools();this.probe_$.set(e),!e.success&&e.error&&this.errorMessage_$.set(e.error)}catch(e){let n=e instanceof Error?e.message:String(e);this.errorMessage_$.set(n),this.probe_$.set(void 0)}finally{this.loading_$.set(!1)}})}toggleSchema(e){let n=e.trim();if(n.length===0)return;let s=h({},this.schemaExpanded_$());s[n]=!s[n],this.schemaExpanded_$.set(s)}formatSchema(e){if(e===void 0)return"\u2014";try{return JSON.stringify(e,null,2)}catch{return"\u2014"}}copyCursorSnippet(){return E(this,null,function*(){let e=this.cursorSnippet_$().trim();if(e.length===0)return;(yield this.globalError_CS.copyToClipboard(e)).ok&&(this.snippetCopied_$.set(!0),this.copyResetTimeoutId!==void 0&&clearTimeout(this.copyResetTimeoutId),this.copyResetTimeoutId=setTimeout(()=>{this.snippetCopied_$.set(!1)},2e3))})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=w({type:t,selectors:[["app-ccap-host-runtime-mcp"]],decls:16,vars:4,consts:[[1,"flex","flex-col","min-h-full","text-neutral-100","p-4","gt-xs:p-6","max-w-5xl"],[1,"flex","flex-col","sm:flex-row","sm:items-center","sm:justify-between","gap-4","mb-6"],[1,"text-2xl","gt-xs:text-3xl","font-bold","text-neutral-100"],[1,"text-neutral-400","text-sm","gt-xs:text-base","mt-1"],[1,"text-neutral-300"],["type","button",1,"shrink-0","px-4","py-2","border","border-neonCyan","rounded-lg","text-neutral-300","text-sm","font-medium","hover:bg-neutral-800","hover:shadow-neon-glow-cyan","transition-colors","disabled:opacity-50",3,"click","disabled"],[1,"rounded-lg","border","border-amber-500/40","bg-amber-950/20","p-4","mb-6","text-amber-100/90","text-sm"],[1,"rounded-lg","bg-neutral-800/60","border","border-neonDefault","p-4","mb-6"],[1,"text-lg","font-semibold","text-neutral-200","mb-2"],[1,"text-neutral-400","text-sm"],[1,"text-neutral-200","font-medium"],[1,"ml-2"],[1,"text-neutral-500","text-xs","mt-2","break-all"],[1,"mb-8"],[1,"text-lg","font-semibold","text-neutral-200","mb-3"],[1,"text-neutral-500","text-sm"],[1,"space-y-3"],[1,"rounded-lg","bg-neutral-800/60","border","border-neonDefault","p-4"],[1,"rounded-lg","border","border-neutral-600/80","bg-neutral-900/40","p-4"],[1,"flex","flex-col","gap-1"],[1,"font-mono","text-ccapAccent","text-sm","font-semibold"],["type","button",1,"self-start","mt-1","text-xs","text-neutral-400","hover:text-ccapAccent","flex","items-center","gap-1",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"mt-2","p-3","rounded","bg-black/40","border","border-neutral-700","text-xs","text-neutral-300","overflow-x-auto","whitespace-pre-wrap"],[1,"flex","flex-wrap","items-center","justify-between","gap-2","mb-2"],[1,"text-lg","font-semibold","text-neutral-200"],["type","button",1,"px-3","py-1.5","text-xs","border","border-neonCyan","rounded-md","text-neutral-300","hover:bg-neutral-700",3,"click"],[1,"text-neutral-500","text-xs","mb-2"],[1,"text-neutral-400"],[1,"p-3","rounded","bg-black/40","border","border-neutral-700","text-xs","text-neutral-300","overflow-x-auto","whitespace-pre-wrap"],[1,"text-neutral-500"]],template:function(n,s){if(n&1&&(r(0,"div",0)(1,"header",1)(2,"div")(3,"h1",2),o(4,"Host Runtime MCP"),i(),r(5,"p",3),o(6," CCAP saj\xE1t stdio MCP szerver tooljai \xE9s s\xE9m\xE1i \u2013 "),r(7,"span",4),o(8,"nem"),i(),o(9," a Be\xE1ll\xEDt\xE1sok \u2192 Agent MCP integr\xE1ci\xF3. A run trace esem\xE9nyek szerver restart ut\xE1n mem\xF3ri\xE1ban \xFCresek lehetnek. "),i()(),r(10,"button",5),b("click",function(){return s.refreshProbe()}),p(11,L,1,0)(12,q,1,0),i()(),p(13,K,2,1,"div",6)(14,rt,15,5)(15,st,2,1),i()),n&2){let x,$;a(10),I("disabled",s.loading_$()),a(),m(s.loading_$()?11:12),a(2),m((x=s.errorMessage_$())?13:-1,x),a(),m(($=s.probe_$())?14:15,$)}},encapsulation:2})}return t})();var mt=[{path:"",pathMatch:"full",component:B}],wt=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=k({type:t});static \u0275inj=T({imports:[A,V.forChild(mt)]})}return t})();export{wt as HostRuntimeMcp_Module};
|
|
2
|
+
//# sourceMappingURL=host-runtime-mcp.module-JBSXKARK.js.map
|
package/client-dist/index.html
CHANGED
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
</style>
|
|
115
|
-
<link rel="stylesheet" href="styles-
|
|
115
|
+
<link rel="stylesheet" href="styles-CTUT42AQ.css"></head>
|
|
116
116
|
<body data-bwignore="1">
|
|
117
117
|
<!--
|
|
118
118
|
CCAP boot splash DOM.
|
|
@@ -180,5 +180,5 @@
|
|
|
180
180
|
</svg>
|
|
181
181
|
</div>
|
|
182
182
|
<app-root></app-root>
|
|
183
|
-
<link rel="modulepreload" href="chunk-
|
|
183
|
+
<link rel="modulepreload" href="chunk-A3CDBCDP.js"><link rel="modulepreload" href="chunk-SDRBFR4F.js"><link rel="modulepreload" href="chunk-O4EWDG7M.js"><link rel="modulepreload" href="chunk-KKDWUDRS.js"><link rel="modulepreload" href="chunk-BQAILW64.js"><link rel="modulepreload" href="chunk-Z4OXAMEA.js"><link rel="modulepreload" href="chunk-YRVQSWSZ.js"><link rel="modulepreload" href="chunk-UKRECFE4.js"><link rel="modulepreload" href="chunk-WJCSS2XZ.js"><link rel="modulepreload" href="chunk-5HNAJSRW.js"><script src="polyfills-GOMDJCXS.js" type="module"></script><script src="main-FD4U5Q57.js" type="module"></script></body>
|
|
184
184
|
</html>
|
package/client-dist/{live-dev-pipeline.module-5PE4ZFFW.js → live-dev-pipeline.module-B66G4DQO.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as de}from"./chunk-PMJP2N4K.js";import{a as se}from"./chunk-VOFDBT5T.js";import"./chunk-EDMLVG72.js";import{k as M}from"./chunk-BH3GMEZZ.js";import"./chunk-5UPNU54P.js";import"./chunk-A33MCHYC.js";import{p as Ce}from"./chunk-RUSAMFGS.js";import{$a as h,C as R,D as W,E as Y,Fa as n,G as Z,Ga as C,Ha as m,Ia as F,J as B,Ja as N,K as z,Kb as re,L as ee,M as te,Ya as ne,Z as a,a as X,aa as f,ab as O,b as q,bb as L,da as c,fa as P,ga as b,h as fe,hb as oe,ia as ie,ja as y,k as J,la as p,mb as ae,oa as $,pa as I,qa as o,ra as i,sa as T,ua as H,ub as le,va as E,wa as d,y as Q,z as U}from"./chunk-TBMJSIBB.js";var k=class e{static classifyTier(l){return typeof l!="number"||!isFinite(l)?"teal":l<50?"red":l<60?"amber":l<75?"teal":"green"}static getTextClass(l){switch(e.classifyTier(l)){case"red":return"text-red-400";case"amber":return"text-amber-300";case"teal":return"text-cyan-200";case"green":return"text-green-400"}}static getDotClass(l){switch(e.classifyTier(l)){case"red":return"bg-red-500";case"amber":return"bg-amber-400";case"teal":return"bg-cyan-400";case"green":return"bg-green-500"}}};var pe=(()=>{class e{transform(t,r){return r==="dot"?k.getDotClass(t):k.getTextClass(t)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=Z({name:"ccapCoverageTierClass",type:e,pure:!0,standalone:!0})}return e})();var w=function(e){return e.current="current",e.previous="previous",e}(w||{});var _e=fe(Ce());var j=class e{static buildExpandDetail(l){let t=l.snapPrefix,r=l.stepId,s=l.step,_=`${t}-detail-${r}`,u=[];if(s.errors!==void 0&&s.errors.length>0)for(let S=0;S<s.errors.length;S++){let v=s.errors[S],A=v.line!==void 0?`Line ${v.line}: `:"";u.push({rowId:`${_}-log-${S}`,text:`${A}${v.text}`}),v.details!==void 0&&v.details.length>0&&u.push({rowId:`${_}-log-${S}-details`,text:v.details})}let g=[],x=s.testSummary?.failures;if(x!==void 0&&x>0){let S=s.testSummary?.passed,v=s.testSummary?.totalSpecs,A=s.logLineStart!==void 0&&s.logLineEnd!==void 0?`Log lines ${s.logLineStart}\u2013${s.logLineEnd}.`:"",ve=`${x} spec(s) failed.`+(S!==void 0&&v!==void 0?` Passed ${S} / ${v} total.`:"");g.push({rowId:`${_}-spec-0`,text:ve}),A.length>0&&g.push({rowId:`${_}-spec-1`,text:A})}let D=s.errors!==void 0&&s.errors.length>0,V=x!==void 0&&x>0,K=null;s.status==="failed"&&!D&&!V&&(K=s.logLineStart!==void 0&&s.logLineEnd!==void 0?`See log lines ${s.logLineStart}\u2013${s.logLineEnd}.`:"See pipeline output log for details.");let xe=e.buildCoverageMetrics({baseId:_,coverage:s.testSummary?.coverage});return{logErrorRows:u,testFailureRows:g,failedStatusHint:K,coverageMetrics:xe}}static buildCoverageMetrics(l){let t=l.coverage,r=l.baseId;if(t===void 0)return[];let s={statements:"Statements",branches:"Branches",functions:"Functions",lines:"Lines"},_=["statements","branches","functions","lines"],u=[];for(let g of _){let x=t[g];if(x===void 0||typeof x.pct!="number"||typeof x.covered!="number"||typeof x.total!="number")continue;let D=String(g),V=s[D]!==void 0?s[D]:D;u.push({metricId:`${r}-cov-${D}`,label:V,pct:x.pct,covered:x.covered,total:x.total})}return u}};var ce=(()=>{class e{snapshotView_$=f(w.current);pipelineStatus_$=f(null);unavailableReason_$=f(null);loading_$=f(!1);loadError_$=f(null);stepTableRows_$=oe(()=>{let t=this.pipelineStatus_$(),r=this.snapshotView_$();if(!t?.steps)return[];let s=Object.keys(t.steps);return s.sort((_,u)=>{let g=t.steps[_].logLineStart??Number.MAX_SAFE_INTEGER,x=t.steps[u].logLineStart??Number.MAX_SAFE_INTEGER;return g-x}),s.map(_=>{let u=t.steps[_];return{stepId:_,step:u,detail:j.buildExpandDetail({snapPrefix:r,stepId:_,step:u})}})});intervalId=null;pollIntervalMs=_e.minute;serverStatus_AS=R(se);isPreviousSnapshotSelected(){return this.snapshotView_$()===w.previous}loadLiveDevPipelineStatus(t){return J(this,null,function*(){let r=t?.showSpinner!==!1;r&&this.loading_$.set(!0),this.loadError_$.set(null);try{let s=yield this.serverStatus_AS.getLiveDevPipelineStatus({isPrevious:this.isPreviousSnapshotSelected()});this.pipelineStatus_$.set(s.pipelineStatus),this.unavailableReason_$.set(s.unavailableReason)}catch(s){this.loadError_$.set(s),this.pipelineStatus_$.set(null),this.unavailableReason_$.set(null)}finally{r&&this.loading_$.set(!1)}})}setSnapshotView(t){this.snapshotView_$.set(t),this.loadLiveDevPipelineStatus({showSpinner:!0})}loadPage(){this.loadLiveDevPipelineStatus({showSpinner:!0})}startPolling(){this.stopPolling(),this.loadLiveDevPipelineStatus({showSpinner:!1}),this.intervalId=setInterval(()=>{this.loadLiveDevPipelineStatus({showSpinner:!1})},this.pollIntervalMs)}stopPolling(){this.intervalId!==null&&(clearInterval(this.intervalId),this.intervalId=null)}refresh(){this.loadLiveDevPipelineStatus({showSpinner:!0})}static \u0275fac=function(r){return new(r||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Se=(e,l)=>l.stepId,he=(e,l)=>l.metricId,me=(e,l)=>l.rowId,be=(e,l,t,r)=>({"rounded px-2 py-0.5 text-xs font-medium":!0,"bg-green-900/50 text-green-200":e,"bg-red-900/50 text-red-200":l,"bg-amber-900/50 text-amber-200":t,"bg-neutral-800 text-neutral-200":r});function Ee(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"version:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.version,"")}}function De(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"pid:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.pid,"")}}function Pe(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"totalDurationSec:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.totalDurationSec,"")}}function ye(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"startedAt:"),i(),o(3,"span"),n(4),h(5,"ccapRelativeTime"),i()()),e&2){let t=d();a(3),P("title",t.startedAt),a(),C(O(5,2,t.startedAt))}}function Te(e,l){if(e&1&&(o(0,"div",2),c(1,Ee,4,1,"span")(2,De,4,1,"span")(3,Pe,4,1,"span")(4,ye,6,4,"span"),i()),e&2){let t=l;a(),p(t.version?1:-1),a(),p(t.pid!==void 0?2:-1),a(),p(t.totalDurationSec!==void 0&&t.totalDurationSec!==null?3:-1),a(),p(t.startedAt?4:-1)}}function Le(e,l){if(e&1){let t=H();T(0,"app-ccap-error-display",18),o(1,"button",19),E("click",function(){B(t);let s=d();return z(s.handleRetryLoad())}),n(2," \xDAjrapr\xF3b\xE1l\xE1s "),i()}if(e&2){let t=d();b("error",t.liveDevPipeline_DS.loadError_$())}}function we(e,l){e&1&&(o(0,"p",15),n(1,"Bet\xF6lt\xE9s\u2026"),i())}function $e(e,l){if(e&1&&(o(0,"div",16)(1,"p",20),n(2,"Pipeline status nem el\xE9rhet\u0151"),i(),o(3,"p",21),n(4),i()()),e&2){let t=d();a(4),C(t.liveDevPipeline_DS.unavailableReason_$())}}function Ie(e,l){if(e&1&&(o(0,"span",46),n(1),i()),e&2){let t=d().$implicit;a(),F(" ",t.step.errors.length," issue",t.step.errors.length>1?"s":""," ")}}function Fe(e,l){if(e&1&&(T(0,"span",52),h(1,"ccapCoverageTierClass")),e&2){let t=l;y(L(1,3,t.pct,"dot")),P("title","coverage lines: "+t.pct+"%")}}function ke(e,l){if(e&1&&n(0),e&2){let t=d().$implicit;m(" ",t.step.durationSec," ")}}function Ae(e,l){e&1&&n(0," \u2014 ")}function Re(e,l){if(e&1&&n(0),e&2){let t=d().$implicit;F(" ",t.step.logLineStart,"\u2013",t.step.logLineEnd," ")}}function Me(e,l){e&1&&n(0," \u2014 ")}function je(e,l){if(e&1&&(o(0,"div"),n(1),i()),e&2){let t,r=d(2).$implicit;a(),N("specs: ",(t=r.step.testSummary.passed)!==null&&t!==void 0?t:"\u2014"," / ",r.step.testSummary.totalSpecs," (fail: ",(t=r.step.testSummary.failures)!==null&&t!==void 0?t:0,")")}}function Ve(e,l){if(e&1&&(o(0,"div",17),n(1),i()),e&2){let t=d(2).$implicit;a(),m("duration: ",t.step.testSummary.testDurationSec,"s")}}function Be(e,l){if(e&1&&(o(0,"div",53),T(1,"span",54),h(2,"ccapCoverageTierClass"),o(3,"span"),n(4,"lines:"),i(),o(5,"span",55),h(6,"ccapCoverageTierClass"),n(7),i()()),e&2){let t=l;a(),y(L(2,5,t.pct,"dot")),a(4),y(L(6,8,t.pct,"text")),a(2),m(" ",t.pct,"% ")}}function ze(e,l){if(e&1&&c(0,je,2,3,"div")(1,Ve,2,1,"div",17)(2,Be,8,11,"div",53),e&2){let t,r=d().$implicit;p(r.step.testSummary.totalSpecs!==void 0?0:-1),a(),p(r.step.testSummary.testDurationSec!==void 0?1:-1),a(),p((t=r.step.testSummary.coverage==null?null:r.step.testSummary.coverage.lines)?2:-1,t)}}function He(e,l){e&1&&n(0," \u2014 ")}function Ne(e,l){if(e&1&&(o(0,"dt",17),n(1,"startedAt"),i(),o(2,"dd",68),n(3),h(4,"ccapRelativeTime"),i()),e&2){let t=d(2).$implicit;a(2),P("title",t.step.startedAt),a(),m(" ",O(4,2,t.step.startedAt)," ")}}function Oe(e,l){if(e&1&&n(0),e&2){let t=d(2).$implicit;m(" ",t.step.durationSec," ")}}function Ge(e,l){e&1&&n(0," \u2014 ")}function Ke(e,l){if(e&1&&n(0),e&2){let t=d(2).$implicit;F(" ",t.step.logLineStart,"\u2013",t.step.logLineEnd," ")}}function Xe(e,l){e&1&&n(0," \u2014 ")}function qe(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"specs:"),i(),n(3),i()),e&2){let t,r=d(3).$implicit;a(3),N(" passed ",(t=r.step.testSummary.passed)!==null&&t!==void 0?t:"\u2014"," / total ",r.step.testSummary.totalSpecs," (failures ",(t=r.step.testSummary.failures)!==null&&t!==void 0?t:0,") ")}}function Je(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"test run duration:"),i(),n(3),i()),e&2){let t=d(3).$implicit;a(3),m(" ",t.step.testSummary.testDurationSec,"s ")}}function Qe(e,l){if(e&1&&(o(0,"section",63)(1,"h3",59),n(2," Test results "),i(),o(3,"ul",69),c(4,qe,4,3,"li")(5,Je,4,1,"li"),i()()),e&2){let t=d(2).$implicit;a(4),p(t.step.testSummary.totalSpecs!==void 0?4:-1),a(),p(t.step.testSummary.testDurationSec!==void 0?5:-1)}}function Ue(e,l){if(e&1&&(o(0,"div",72)(1,"p",73),T(2,"span",54),h(3,"ccapCoverageTierClass"),o(4,"span"),n(5),i()(),o(6,"p",74),h(7,"ccapCoverageTierClass"),n(8),i(),o(9,"p",75),n(10),i()()),e&2){let t=l.$implicit;a(2),y(L(3,8,t.pct,"dot")),a(3),C(t.label),a(),y(L(7,11,t.pct,"text")),a(2),m(" ",t.pct,"% "),a(2),F(" ",t.covered," / ",t.total," ")}}function We(e,l){if(e&1&&(o(0,"section",64)(1,"h3",70),n(2," Coverage "),i(),o(3,"div",71),$(4,Ue,11,14,"div",72,he),i()()),e&2){let t=d(2).$implicit;a(4),I(t.detail.coverageMetrics)}}function Ye(e,l){if(e&1&&(o(0,"li",78),n(1),i()),e&2){let t=l.$implicit;a(),m(" ",t.text," ")}}function Ze(e,l){if(e&1&&(o(0,"section",65)(1,"h3",76),n(2," Pipeline log errors "),i(),o(3,"ul",77),$(4,Ye,2,1,"li",78,me),i()()),e&2){let t=d(2).$implicit;a(4),I(t.detail.logErrorRows)}}function et(e,l){if(e&1&&(o(0,"li",78),n(1),i()),e&2){let t=l.$implicit;a(),m(" ",t.text," ")}}function tt(e,l){if(e&1&&(o(0,"section",66)(1,"h3",76),n(2," Test failures "),i(),o(3,"ul",77),$(4,et,2,1,"li",78,me),i()()),e&2){let t=d(2).$implicit;a(4),I(t.detail.testFailureRows)}}function it(e,l){if(e&1&&(o(0,"section",67)(1,"h3",76),n(2," Status failed "),i(),o(3,"p",79),n(4),i()()),e&2){let t=d(2).$implicit;a(4),m(" ",t.detail.failedStatusHint," ")}}function nt(e,l){if(e&1&&(o(0,"tr",51)(1,"td",56)(2,"div",57)(3,"section",58)(4,"h3",59),n(5,"Meta"),i(),o(6,"dl",60),c(7,Ne,5,4),o(8,"dt",17),n(9,"durationSec"),i(),o(10,"dd",61),c(11,Oe,1,1)(12,Ge,1,0),i(),o(13,"dt",17),n(14,"log lines (output.log)"),i(),o(15,"dd",62),c(16,Ke,1,2)(17,Xe,1,0),i()()(),c(18,Qe,6,2,"section",63)(19,We,6,0,"section",64)(20,Ze,6,0,"section",65)(21,tt,6,0,"section",66)(22,it,5,1,"section",67),i()()()),e&2){let t=d().$implicit;a(2),P("id","ldp-detail-"+t.stepId),a(5),p(t.step.startedAt?7:-1),a(4),p(t.step.durationSec!==void 0&&t.step.durationSec!==null?11:12),a(5),p(t.step.logLineStart!==void 0&&t.step.logLineEnd!==void 0?16:17),a(2),p(t.step.testSummary?18:-1),a(),p(t.detail.coverageMetrics.length>0?19:-1),a(),p(t.detail.logErrorRows.length>0?20:-1),a(),p(t.detail.testFailureRows.length>0?21:-1),a(),p(t.detail.failedStatusHint?22:-1)}}function ot(e,l){if(e&1){let t=H();o(0,"tr",38)(1,"td",39)(2,"button",40),E("click",function(){let s=B(t).$implicit,_=d(3);return z(_.handleStepExpandToggle({stepId:s.stepId}))}),ee(),o(3,"svg",41),T(4,"polyline",42),i()()(),te(),o(5,"td",43),n(6),i(),o(7,"td",44)(8,"span",45),n(9),i(),c(10,Ie,2,2,"span",46)(11,Fe,2,6,"span",47),i(),o(12,"td",48),c(13,ke,1,1)(14,Ae,1,0),i(),o(15,"td",49),c(16,Re,1,2)(17,Me,1,0),i(),o(18,"td",50),c(19,ze,3,3)(20,He,1,0),i()(),c(21,nt,23,9,"tr",51)}if(e&2){let t,r=l.$implicit,s=d(3);a(2),P("aria-expanded",s.expandedStepIds_$()[r.stepId]===!0)("aria-controls","ldp-detail-"+r.stepId)("aria-label","R\xE9szletek: "+r.stepId),a(),ie("-rotate-90",s.expandedStepIds_$()[r.stepId]!==!0),a(3),C(r.stepId),a(2),b("ngClass",ne(14,be,r.step.status==="ok",r.step.status==="failed",r.step.status==="running",r.step.status!=="ok"&&r.step.status!=="failed"&&r.step.status!=="running")),a(),m(" ",r.step.status," "),a(),p(r.step.status==="failed"&&(r.step.errors!=null&&r.step.errors.length)?10:-1),a(),p((t=r.step.testSummary==null||r.step.testSummary.coverage==null?null:r.step.testSummary.coverage.lines)?11:-1,t),a(2),p(r.step.durationSec!==void 0&&r.step.durationSec!==null?13:14),a(3),p(r.step.logLineStart!==void 0&&r.step.logLineEnd!==void 0?16:17),a(3),p(r.step.testSummary?19:20),a(2),p(s.expandedStepIds_$()[r.stepId]?21:-1)}}function at(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"serverRunning:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.serverRunning?"true":"false"," ")}}function lt(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"restartPending:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.restartPending?"true":"false"," ")}}function rt(e,l){if(e&1&&(o(0,"dt",17),n(1,"trimmedAt"),i(),o(2,"dd",61),n(3),i()),e&2){let t=d(2);a(3),C(t.trimInfo.trimmedAt)}}function st(e,l){if(e&1&&(o(0,"dt",17),n(1,"removedLineCount"),i(),o(2,"dd"),n(3),i()),e&2){let t=d(2);a(3),C(t.trimInfo.removedLineCount)}}function dt(e,l){if(e&1&&(o(0,"dt",17),n(1,"fileLineCountAfterTrim"),i(),o(2,"dd"),n(3),i()),e&2){let t=d(2);a(3),C(t.trimInfo.fileLineCountAfterTrim)}}function pt(e,l){if(e&1&&(o(0,"div",34)(1,"h2",35),n(2,"trimInfo"),i(),o(3,"dl",60),c(4,rt,4,1)(5,st,4,1)(6,dt,4,1),i()()),e&2){let t=d();a(4),p(t.trimInfo.trimmedAt?4:-1),a(),p(t.trimInfo.removedLineCount!==void 0?5:-1),a(),p(t.trimInfo.fileLineCountAfterTrim!==void 0?6:-1)}}function _t(e,l){if(e&1&&(o(0,"div",22)(1,"div",23)(2,"h2",24),n(3," Pipeline steps "),i(),o(4,"div",25)(5,"table",26)(6,"thead",27)(7,"tr")(8,"th",28)(9,"span",29),n(10,"R\xE9szletek"),i()(),o(11,"th",30),n(12,"Step"),i(),o(13,"th",30),n(14,"Status"),i(),o(15,"th",30),n(16,"Duration (s)"),i(),o(17,"th",31),n(18,"Log lines"),i(),o(19,"th",32),n(20,"Tests / coverage"),i()()(),o(21,"tbody"),$(22,ot,22,19,null,null,Se),i()()()(),o(24,"div",33)(25,"div",34)(26,"h2",35),n(27,"Phase"),i(),o(28,"p",36),n(29),i()(),o(30,"div",34)(31,"h2",35),n(32,"Flags"),i(),o(33,"ul",37)(34,"li")(35,"span",17),n(36,"pipelineComplete:"),i(),n(37),i(),c(38,at,4,1,"li")(39,lt,4,1,"li"),i()()(),c(40,pt,7,3,"div",34),i()),e&2){let t=l,r=d(2);a(22),I(r.stepTableRows_$()),a(7),C(t.phase),a(8),m(" ",t.pipelineComplete?"true":"false"," "),a(),p(t.serverRunning!==void 0?38:-1),a(),p(t.restartPending!==void 0?39:-1),a(),p(t.trimInfo?40:-1)}}function ct(e,l){if(e&1&&c(0,_t,41,5,"div",22),e&2){let t,r=d();p((t=r.liveDevPipeline_DS.pipelineStatus_$())?0:-1,t)}}var ue=(()=>{class e{snapshotTypeEnum=w;liveDevPipeline_DS=R(ce);stepTableRows_$=this.liveDevPipeline_DS.stepTableRows_$;isAutoRefreshEnabled_$=f(!1);expandedStepIds_$=f({});ngOnInit(){this.liveDevPipeline_DS.loadPage()}ngOnDestroy(){this.liveDevPipeline_DS.stopPolling()}handleSnapshotSelect(t){this.liveDevPipeline_DS.snapshotView_$()!==t&&(this.expandedStepIds_$.set({}),this.liveDevPipeline_DS.setSnapshotView(t))}handleStepExpandToggle(t){let r=t.stepId,s=this.expandedStepIds_$(),_=s[r]===!0,u=q(X({},s),{[r]:!_});this.expandedStepIds_$.set(u)}handleAutoRefreshChange(t){let r=t.target;if(r===null||!(r instanceof HTMLInputElement))return;let s=r.checked;this.isAutoRefreshEnabled_$.set(s),s?this.liveDevPipeline_DS.startPolling():this.liveDevPipeline_DS.stopPolling()}handleRefresh(){this.liveDevPipeline_DS.refresh()}handleRetryLoad(){this.liveDevPipeline_DS.refresh()}static \u0275fac=function(r){return new(r||e)};static \u0275cmp=W({type:e,selectors:[["app-ccap-live-dev-pipeline"]],decls:50,vars:9,consts:[[1,"max-w-5xl","mx-auto","p-3","gt-xs:p-6","text-neutral-100"],[1,"text-xl","gt-xs:text-2xl","font-bold","mb-2","gt-xs:mb-3"],[1,"flex","flex-wrap","gap-3","gt-xs:gap-4","items-center","mb-3","gt-xs:mb-4","rounded-lg","border","border-neutral-700","bg-neutral-900/50","px-3","py-2","gt-xs:px-4","gt-xs:py-2.5","text-sm","text-neutral-300"],[1,"text-neutral-400","text-sm","gt-xs:text-base","mb-4","gt-xs:mb-6"],[1,"bg-neutral-800","px-1","rounded"],[1,"font-medium","text-neutral-300"],[1,"border","border-neutral-700","rounded-lg","px-3","py-3","gt-xs:px-4","gt-xs:py-3","mb-4","gt-xs:mb-5"],[1,"text-xs","gt-xs:text-sm","font-medium","text-neutral-400","px-1"],[1,"flex","flex-wrap","gap-4","gt-xs:gap-6","items-center"],[1,"flex","items-center","gap-2","cursor-pointer","text-sm","gt-xs:text-base","text-neutral-300","select-none"],["type","radio","name","liveDevPipelineSnapshot",1,"border-neutral-600","bg-neutral-800","text-neonCyan","focus:ring-neonCyan",3,"change","value","checked"],[1,"text-xs"],[1,"flex","flex-wrap","gap-4","gt-xs:gap-6","items-center","mb-4","gt-xs:mb-5"],["type","button",1,"px-3","py-1.5","gt-xs:px-4","gt-xs:py-2","text-sm","gt-xs:text-base","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700","disabled:opacity-50","transition-colors",3,"click","disabled"],["type","checkbox",1,"rounded","border-neutral-600","bg-neutral-800","text-neonCyan","focus:ring-neonCyan",3,"change","checked"],[1,"text-neutral-400"],[1,"rounded-lg","border","border-amber-600/50","bg-amber-950/30","px-4","py-3","text-amber-100","text-sm","gt-xs:text-base","max-w-3xl"],[1,"text-neutral-500"],["sourceLabelOverride","Live Development Pipeline",1,"mb-4","block","max-w-3xl",3,"error"],["type","button",1,"px-3","py-1.5","text-sm","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700","transition-colors",3,"click"],[1,"font-medium","text-amber-200","mb-1"],[1,"text-neutral-300","whitespace-pre-wrap"],[1,"flex","flex-col","gap-4","gt-xs:gap-6"],[1,"rounded-lg","border","border-neutral-700","overflow-hidden"],[1,"text-sm","font-semibold","text-neutral-400","uppercase","tracking-wide","px-3","py-2","bg-neutral-900/60","border-b","border-neutral-700"],[1,"overflow-x-auto"],[1,"w-full","text-left","text-sm","text-neutral-300"],[1,"bg-neutral-900/80","text-neutral-400","text-xs","uppercase"],["scope","col",1,"px-1","py-2","w-10","font-medium"],[1,"sr-only"],["scope","col",1,"px-3","py-2","font-medium"],["scope","col",1,"px-3","py-2","font-medium","hidden","sm:table-cell"],["scope","col",1,"px-3","py-2","font-medium","hidden","md:table-cell"],[1,"grid","grid-cols-1","sm:grid-cols-2","gap-3","gt-xs:gap-4"],[1,"rounded-lg","border","border-neutral-700","bg-neutral-900/40","p-3","gt-xs:p-4"],[1,"text-sm","font-semibold","text-neutral-400","uppercase","tracking-wide","mb-2"],[1,"text-lg","font-mono","text-ccapAccent"],[1,"text-sm","text-neutral-300","space-y-1"],[1,"border-t","border-neutral-800","hover:bg-neutral-800/40"],[1,"px-1","py-2","align-middle","w-10"],["type","button",1,"p-1.5","rounded-md","text-neutral-400","hover:text-ccapAccent","hover:bg-neutral-800","transition-colors","focus:outline-none","focus:ring-2","focus:ring-neonCyan/50",3,"click"],["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","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"px-3","py-2","font-mono","text-ccapAccent"],[1,"px-3","py-2"],[3,"ngClass"],[1,"ml-1.5","rounded","px-1.5","py-0.5","text-xs","font-medium","bg-red-900/30","text-red-300"],["aria-hidden","true",1,"ml-1.5","inline-block","w-2.5","h-2.5","rounded-full","align-middle",3,"class"],[1,"px-3","py-2","font-mono"],[1,"px-3","py-2","font-mono","text-xs","hidden","sm:table-cell"],[1,"px-3","py-2","text-xs","hidden","md:table-cell","align-top"],[1,"border-t","border-neutral-800","bg-neutral-950/50"],["aria-hidden","true",1,"ml-1.5","inline-block","w-2.5","h-2.5","rounded-full","align-middle"],[1,"text-neutral-500","mt-1","flex","items-center","gap-1.5"],["aria-hidden","true",1,"inline-block","w-2","h-2","rounded-full"],[1,"font-mono","font-semibold"],["colspan","6",1,"p-0","align-top"],[1,"px-3","py-4","gt-xs:px-5","gt-xs:py-5","border-t","border-neutral-800/80","space-y-4"],["aria-label","Step meta"],[1,"text-xs","font-semibold","text-neutral-500","uppercase","tracking-wide","mb-2"],[1,"grid","grid-cols-1","sm:grid-cols-2","gap-x-4","gap-y-1","text-sm","text-neutral-300"],[1,"font-mono"],[1,"font-mono","text-xs"],["aria-label","Test results"],["aria-label","Coverage"],["aria-label","Pipeline log errors"],["aria-label","Test failures"],["aria-label","Step failed hint"],[1,"break-all"],[1,"text-sm","text-neutral-300","space-y-1","list-none","pl-0"],[1,"text-xs","font-semibold","text-cyan-300/90","uppercase","tracking-wide","mb-2"],[1,"grid","grid-cols-2","sm:grid-cols-4","gap-2","gt-xs:gap-3","max-w-3xl"],[1,"rounded-md","border","border-cyan-900/50","bg-neutral-900/60","px-2","py-2","gt-xs:px-3","gt-xs:py-2.5"],[1,"text-[10px]","gt-xs:text-xs","font-medium","text-neutral-500","uppercase","tracking-wide","mb-1","flex","items-center","gap-1.5"],[1,"text-lg","gt-xs:text-xl","font-mono","font-semibold"],[1,"text-[10px]","gt-xs:text-xs","text-neutral-500","mt-0.5","font-mono"],[1,"text-xs","font-semibold","text-red-300","uppercase","tracking-wide","mb-2"],[1,"list-none","space-y-2","text-sm","text-red-100/95"],[1,"border-l-2","border-red-600/50","pl-2","whitespace-pre-wrap","break-words"],[1,"text-sm","text-red-100/95","border-l-2","border-red-600/50","pl-2"]],template:function(r,s){if(r&1&&(o(0,"div",0)(1,"h1",1),n(2,"Live Development Pipeline"),i(),c(3,Te,5,4,"div",2),o(4,"p",3),n(5," Dev pipeline meta a szerver "),o(6,"code",4),n(7,"logs/live-dev-pipeline/status.json"),i(),n(8," f\xE1jlj\xE1b\xF3l; az "),o(9,"strong",5),n(10,"El\u0151z\u0151 fut\xE1s"),i(),n(11," opci\xF3 a "),o(12,"code",4),n(13,"status-previous.json"),i(),n(14," snapshot-ot t\xF6lti. Alapb\xF3l nincs periodikus lek\xE9r\xE9s; a "),o(15,"strong",5),n(16,"Friss\xEDt\xE9s"),i(),n(17," gomb azonnali \xFAjrat\xF6lt\xE9st k\xE9r. Opcion\xE1lisan bekapcsolhat\xF3 automatikus friss\xEDt\xE9s kb. percenk\xE9nt. A "),o(18,"strong",5),n(19,"pipeline step"),i(),n(20," sorok lenyithat\xF3k \u2014 r\xE9szletes meta, teszt, coverage \xE9s hiba inf\xF3 a sor alatt. "),i(),o(21,"fieldset",6)(22,"legend",7),n(23,"Megjelen\xEDtett snapshot"),i(),o(24,"div",8)(25,"label",9)(26,"input",10),E("change",function(){return s.handleSnapshotSelect(s.snapshotTypeEnum.current)}),i(),o(27,"span"),n(28,"Aktu\xE1lis ("),o(29,"code",11),n(30,"status.json"),i(),n(31,")"),i()(),o(32,"label",9)(33,"input",10),E("change",function(){return s.handleSnapshotSelect(s.snapshotTypeEnum.previous)}),i(),o(34,"span"),n(35,"El\u0151z\u0151 fut\xE1s ("),o(36,"code",11),n(37,"status-previous.json"),i(),n(38,")"),i()()()(),o(39,"div",12)(40,"button",13),E("click",function(){return s.handleRefresh()}),n(41),i(),o(42,"label",9)(43,"input",14),E("change",function(u){return s.handleAutoRefreshChange(u)}),i(),o(44,"span"),n(45,"Automatikus friss\xEDt\xE9s (kb. percenk\xE9nt)"),i()()(),c(46,Le,3,1)(47,we,2,0,"p",15)(48,$e,5,1,"div",16)(49,ct,1,1),i()),r&2){let _;a(3),p((_=s.liveDevPipeline_DS.pipelineStatus_$())?3:-1,_),a(23),b("value",s.snapshotTypeEnum.current)("checked",s.liveDevPipeline_DS.snapshotView_$()===s.snapshotTypeEnum.current),a(7),b("value",s.snapshotTypeEnum.previous)("checked",s.liveDevPipeline_DS.snapshotView_$()===s.snapshotTypeEnum.previous),a(7),b("disabled",s.liveDevPipeline_DS.loading_$()),a(),m(" ",s.liveDevPipeline_DS.loading_$()?"Bet\xF6lt\xE9s\u2026":"Friss\xEDt\xE9s"," "),a(2),b("checked",s.isAutoRefreshEnabled_$()),a(3),p(s.liveDevPipeline_DS.loadError_$()?46:s.liveDevPipeline_DS.loading_$()&&!s.liveDevPipeline_DS.pipelineStatus_$()?47:s.liveDevPipeline_DS.unavailableReason_$()&&!s.liveDevPipeline_DS.pipelineStatus_$()?48:49)}},dependencies:[ae,M,pe,de],encapsulation:2})}return e})();var mt=[{path:"",pathMatch:"full",component:ue}],Nt=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=Y({type:e});static \u0275inj=U({imports:[le,re.forChild(mt),M]})}return e})();export{Nt as LiveDevPipeline_Module};
|
|
2
|
-
//# sourceMappingURL=live-dev-pipeline.module-
|
|
1
|
+
import{a as de}from"./chunk-E6C6MLAE.js";import{a as se}from"./chunk-PG4M4ZHN.js";import"./chunk-PIQK6O5O.js";import{k as M}from"./chunk-ROLHXND4.js";import"./chunk-5UPNU54P.js";import"./chunk-RPTXBYC4.js";import{p as Ce}from"./chunk-6TE4LLRT.js";import{$a as h,C as R,D as W,E as Y,Fa as n,G as Z,Ga as C,Ha as m,Ia as F,J as B,Ja as N,K as z,Kb as re,L as ee,M as te,Ya as ne,Z as a,a as X,aa as f,ab as O,b as q,bb as L,da as c,fa as P,ga as b,h as fe,hb as oe,ia as ie,ja as y,k as J,la as p,mb as ae,oa as $,pa as I,qa as o,ra as i,sa as T,ua as H,ub as le,va as E,wa as d,y as Q,z as U}from"./chunk-TBMJSIBB.js";var k=class e{static classifyTier(l){return typeof l!="number"||!isFinite(l)?"teal":l<50?"red":l<60?"amber":l<75?"teal":"green"}static getTextClass(l){switch(e.classifyTier(l)){case"red":return"text-red-400";case"amber":return"text-amber-300";case"teal":return"text-cyan-200";case"green":return"text-green-400"}}static getDotClass(l){switch(e.classifyTier(l)){case"red":return"bg-red-500";case"amber":return"bg-amber-400";case"teal":return"bg-cyan-400";case"green":return"bg-green-500"}}};var pe=(()=>{class e{transform(t,r){return r==="dot"?k.getDotClass(t):k.getTextClass(t)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=Z({name:"ccapCoverageTierClass",type:e,pure:!0,standalone:!0})}return e})();var w=function(e){return e.current="current",e.previous="previous",e}(w||{});var _e=fe(Ce());var j=class e{static buildExpandDetail(l){let t=l.snapPrefix,r=l.stepId,s=l.step,_=`${t}-detail-${r}`,u=[];if(s.errors!==void 0&&s.errors.length>0)for(let S=0;S<s.errors.length;S++){let v=s.errors[S],A=v.line!==void 0?`Line ${v.line}: `:"";u.push({rowId:`${_}-log-${S}`,text:`${A}${v.text}`}),v.details!==void 0&&v.details.length>0&&u.push({rowId:`${_}-log-${S}-details`,text:v.details})}let g=[],x=s.testSummary?.failures;if(x!==void 0&&x>0){let S=s.testSummary?.passed,v=s.testSummary?.totalSpecs,A=s.logLineStart!==void 0&&s.logLineEnd!==void 0?`Log lines ${s.logLineStart}\u2013${s.logLineEnd}.`:"",ve=`${x} spec(s) failed.`+(S!==void 0&&v!==void 0?` Passed ${S} / ${v} total.`:"");g.push({rowId:`${_}-spec-0`,text:ve}),A.length>0&&g.push({rowId:`${_}-spec-1`,text:A})}let D=s.errors!==void 0&&s.errors.length>0,V=x!==void 0&&x>0,K=null;s.status==="failed"&&!D&&!V&&(K=s.logLineStart!==void 0&&s.logLineEnd!==void 0?`See log lines ${s.logLineStart}\u2013${s.logLineEnd}.`:"See pipeline output log for details.");let xe=e.buildCoverageMetrics({baseId:_,coverage:s.testSummary?.coverage});return{logErrorRows:u,testFailureRows:g,failedStatusHint:K,coverageMetrics:xe}}static buildCoverageMetrics(l){let t=l.coverage,r=l.baseId;if(t===void 0)return[];let s={statements:"Statements",branches:"Branches",functions:"Functions",lines:"Lines"},_=["statements","branches","functions","lines"],u=[];for(let g of _){let x=t[g];if(x===void 0||typeof x.pct!="number"||typeof x.covered!="number"||typeof x.total!="number")continue;let D=String(g),V=s[D]!==void 0?s[D]:D;u.push({metricId:`${r}-cov-${D}`,label:V,pct:x.pct,covered:x.covered,total:x.total})}return u}};var ce=(()=>{class e{snapshotView_$=f(w.current);pipelineStatus_$=f(null);unavailableReason_$=f(null);loading_$=f(!1);loadError_$=f(null);stepTableRows_$=oe(()=>{let t=this.pipelineStatus_$(),r=this.snapshotView_$();if(!t?.steps)return[];let s=Object.keys(t.steps);return s.sort((_,u)=>{let g=t.steps[_].logLineStart??Number.MAX_SAFE_INTEGER,x=t.steps[u].logLineStart??Number.MAX_SAFE_INTEGER;return g-x}),s.map(_=>{let u=t.steps[_];return{stepId:_,step:u,detail:j.buildExpandDetail({snapPrefix:r,stepId:_,step:u})}})});intervalId=null;pollIntervalMs=_e.minute;serverStatus_AS=R(se);isPreviousSnapshotSelected(){return this.snapshotView_$()===w.previous}loadLiveDevPipelineStatus(t){return J(this,null,function*(){let r=t?.showSpinner!==!1;r&&this.loading_$.set(!0),this.loadError_$.set(null);try{let s=yield this.serverStatus_AS.getLiveDevPipelineStatus({isPrevious:this.isPreviousSnapshotSelected()});this.pipelineStatus_$.set(s.pipelineStatus),this.unavailableReason_$.set(s.unavailableReason)}catch(s){this.loadError_$.set(s),this.pipelineStatus_$.set(null),this.unavailableReason_$.set(null)}finally{r&&this.loading_$.set(!1)}})}setSnapshotView(t){this.snapshotView_$.set(t),this.loadLiveDevPipelineStatus({showSpinner:!0})}loadPage(){this.loadLiveDevPipelineStatus({showSpinner:!0})}startPolling(){this.stopPolling(),this.loadLiveDevPipelineStatus({showSpinner:!1}),this.intervalId=setInterval(()=>{this.loadLiveDevPipelineStatus({showSpinner:!1})},this.pollIntervalMs)}stopPolling(){this.intervalId!==null&&(clearInterval(this.intervalId),this.intervalId=null)}refresh(){this.loadLiveDevPipelineStatus({showSpinner:!0})}static \u0275fac=function(r){return new(r||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Se=(e,l)=>l.stepId,he=(e,l)=>l.metricId,me=(e,l)=>l.rowId,be=(e,l,t,r)=>({"rounded px-2 py-0.5 text-xs font-medium":!0,"bg-green-900/50 text-green-200":e,"bg-red-900/50 text-red-200":l,"bg-amber-900/50 text-amber-200":t,"bg-neutral-800 text-neutral-200":r});function Ee(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"version:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.version,"")}}function De(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"pid:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.pid,"")}}function Pe(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"totalDurationSec:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.totalDurationSec,"")}}function ye(e,l){if(e&1&&(o(0,"span")(1,"span",17),n(2,"startedAt:"),i(),o(3,"span"),n(4),h(5,"ccapRelativeTime"),i()()),e&2){let t=d();a(3),P("title",t.startedAt),a(),C(O(5,2,t.startedAt))}}function Te(e,l){if(e&1&&(o(0,"div",2),c(1,Ee,4,1,"span")(2,De,4,1,"span")(3,Pe,4,1,"span")(4,ye,6,4,"span"),i()),e&2){let t=l;a(),p(t.version?1:-1),a(),p(t.pid!==void 0?2:-1),a(),p(t.totalDurationSec!==void 0&&t.totalDurationSec!==null?3:-1),a(),p(t.startedAt?4:-1)}}function Le(e,l){if(e&1){let t=H();T(0,"app-ccap-error-display",18),o(1,"button",19),E("click",function(){B(t);let s=d();return z(s.handleRetryLoad())}),n(2," \xDAjrapr\xF3b\xE1l\xE1s "),i()}if(e&2){let t=d();b("error",t.liveDevPipeline_DS.loadError_$())}}function we(e,l){e&1&&(o(0,"p",15),n(1,"Bet\xF6lt\xE9s\u2026"),i())}function $e(e,l){if(e&1&&(o(0,"div",16)(1,"p",20),n(2,"Pipeline status nem el\xE9rhet\u0151"),i(),o(3,"p",21),n(4),i()()),e&2){let t=d();a(4),C(t.liveDevPipeline_DS.unavailableReason_$())}}function Ie(e,l){if(e&1&&(o(0,"span",46),n(1),i()),e&2){let t=d().$implicit;a(),F(" ",t.step.errors.length," issue",t.step.errors.length>1?"s":""," ")}}function Fe(e,l){if(e&1&&(T(0,"span",52),h(1,"ccapCoverageTierClass")),e&2){let t=l;y(L(1,3,t.pct,"dot")),P("title","coverage lines: "+t.pct+"%")}}function ke(e,l){if(e&1&&n(0),e&2){let t=d().$implicit;m(" ",t.step.durationSec," ")}}function Ae(e,l){e&1&&n(0," \u2014 ")}function Re(e,l){if(e&1&&n(0),e&2){let t=d().$implicit;F(" ",t.step.logLineStart,"\u2013",t.step.logLineEnd," ")}}function Me(e,l){e&1&&n(0," \u2014 ")}function je(e,l){if(e&1&&(o(0,"div"),n(1),i()),e&2){let t,r=d(2).$implicit;a(),N("specs: ",(t=r.step.testSummary.passed)!==null&&t!==void 0?t:"\u2014"," / ",r.step.testSummary.totalSpecs," (fail: ",(t=r.step.testSummary.failures)!==null&&t!==void 0?t:0,")")}}function Ve(e,l){if(e&1&&(o(0,"div",17),n(1),i()),e&2){let t=d(2).$implicit;a(),m("duration: ",t.step.testSummary.testDurationSec,"s")}}function Be(e,l){if(e&1&&(o(0,"div",53),T(1,"span",54),h(2,"ccapCoverageTierClass"),o(3,"span"),n(4,"lines:"),i(),o(5,"span",55),h(6,"ccapCoverageTierClass"),n(7),i()()),e&2){let t=l;a(),y(L(2,5,t.pct,"dot")),a(4),y(L(6,8,t.pct,"text")),a(2),m(" ",t.pct,"% ")}}function ze(e,l){if(e&1&&c(0,je,2,3,"div")(1,Ve,2,1,"div",17)(2,Be,8,11,"div",53),e&2){let t,r=d().$implicit;p(r.step.testSummary.totalSpecs!==void 0?0:-1),a(),p(r.step.testSummary.testDurationSec!==void 0?1:-1),a(),p((t=r.step.testSummary.coverage==null?null:r.step.testSummary.coverage.lines)?2:-1,t)}}function He(e,l){e&1&&n(0," \u2014 ")}function Ne(e,l){if(e&1&&(o(0,"dt",17),n(1,"startedAt"),i(),o(2,"dd",68),n(3),h(4,"ccapRelativeTime"),i()),e&2){let t=d(2).$implicit;a(2),P("title",t.step.startedAt),a(),m(" ",O(4,2,t.step.startedAt)," ")}}function Oe(e,l){if(e&1&&n(0),e&2){let t=d(2).$implicit;m(" ",t.step.durationSec," ")}}function Ge(e,l){e&1&&n(0," \u2014 ")}function Ke(e,l){if(e&1&&n(0),e&2){let t=d(2).$implicit;F(" ",t.step.logLineStart,"\u2013",t.step.logLineEnd," ")}}function Xe(e,l){e&1&&n(0," \u2014 ")}function qe(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"specs:"),i(),n(3),i()),e&2){let t,r=d(3).$implicit;a(3),N(" passed ",(t=r.step.testSummary.passed)!==null&&t!==void 0?t:"\u2014"," / total ",r.step.testSummary.totalSpecs," (failures ",(t=r.step.testSummary.failures)!==null&&t!==void 0?t:0,") ")}}function Je(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"test run duration:"),i(),n(3),i()),e&2){let t=d(3).$implicit;a(3),m(" ",t.step.testSummary.testDurationSec,"s ")}}function Qe(e,l){if(e&1&&(o(0,"section",63)(1,"h3",59),n(2," Test results "),i(),o(3,"ul",69),c(4,qe,4,3,"li")(5,Je,4,1,"li"),i()()),e&2){let t=d(2).$implicit;a(4),p(t.step.testSummary.totalSpecs!==void 0?4:-1),a(),p(t.step.testSummary.testDurationSec!==void 0?5:-1)}}function Ue(e,l){if(e&1&&(o(0,"div",72)(1,"p",73),T(2,"span",54),h(3,"ccapCoverageTierClass"),o(4,"span"),n(5),i()(),o(6,"p",74),h(7,"ccapCoverageTierClass"),n(8),i(),o(9,"p",75),n(10),i()()),e&2){let t=l.$implicit;a(2),y(L(3,8,t.pct,"dot")),a(3),C(t.label),a(),y(L(7,11,t.pct,"text")),a(2),m(" ",t.pct,"% "),a(2),F(" ",t.covered," / ",t.total," ")}}function We(e,l){if(e&1&&(o(0,"section",64)(1,"h3",70),n(2," Coverage "),i(),o(3,"div",71),$(4,Ue,11,14,"div",72,he),i()()),e&2){let t=d(2).$implicit;a(4),I(t.detail.coverageMetrics)}}function Ye(e,l){if(e&1&&(o(0,"li",78),n(1),i()),e&2){let t=l.$implicit;a(),m(" ",t.text," ")}}function Ze(e,l){if(e&1&&(o(0,"section",65)(1,"h3",76),n(2," Pipeline log errors "),i(),o(3,"ul",77),$(4,Ye,2,1,"li",78,me),i()()),e&2){let t=d(2).$implicit;a(4),I(t.detail.logErrorRows)}}function et(e,l){if(e&1&&(o(0,"li",78),n(1),i()),e&2){let t=l.$implicit;a(),m(" ",t.text," ")}}function tt(e,l){if(e&1&&(o(0,"section",66)(1,"h3",76),n(2," Test failures "),i(),o(3,"ul",77),$(4,et,2,1,"li",78,me),i()()),e&2){let t=d(2).$implicit;a(4),I(t.detail.testFailureRows)}}function it(e,l){if(e&1&&(o(0,"section",67)(1,"h3",76),n(2," Status failed "),i(),o(3,"p",79),n(4),i()()),e&2){let t=d(2).$implicit;a(4),m(" ",t.detail.failedStatusHint," ")}}function nt(e,l){if(e&1&&(o(0,"tr",51)(1,"td",56)(2,"div",57)(3,"section",58)(4,"h3",59),n(5,"Meta"),i(),o(6,"dl",60),c(7,Ne,5,4),o(8,"dt",17),n(9,"durationSec"),i(),o(10,"dd",61),c(11,Oe,1,1)(12,Ge,1,0),i(),o(13,"dt",17),n(14,"log lines (output.log)"),i(),o(15,"dd",62),c(16,Ke,1,2)(17,Xe,1,0),i()()(),c(18,Qe,6,2,"section",63)(19,We,6,0,"section",64)(20,Ze,6,0,"section",65)(21,tt,6,0,"section",66)(22,it,5,1,"section",67),i()()()),e&2){let t=d().$implicit;a(2),P("id","ldp-detail-"+t.stepId),a(5),p(t.step.startedAt?7:-1),a(4),p(t.step.durationSec!==void 0&&t.step.durationSec!==null?11:12),a(5),p(t.step.logLineStart!==void 0&&t.step.logLineEnd!==void 0?16:17),a(2),p(t.step.testSummary?18:-1),a(),p(t.detail.coverageMetrics.length>0?19:-1),a(),p(t.detail.logErrorRows.length>0?20:-1),a(),p(t.detail.testFailureRows.length>0?21:-1),a(),p(t.detail.failedStatusHint?22:-1)}}function ot(e,l){if(e&1){let t=H();o(0,"tr",38)(1,"td",39)(2,"button",40),E("click",function(){let s=B(t).$implicit,_=d(3);return z(_.handleStepExpandToggle({stepId:s.stepId}))}),ee(),o(3,"svg",41),T(4,"polyline",42),i()()(),te(),o(5,"td",43),n(6),i(),o(7,"td",44)(8,"span",45),n(9),i(),c(10,Ie,2,2,"span",46)(11,Fe,2,6,"span",47),i(),o(12,"td",48),c(13,ke,1,1)(14,Ae,1,0),i(),o(15,"td",49),c(16,Re,1,2)(17,Me,1,0),i(),o(18,"td",50),c(19,ze,3,3)(20,He,1,0),i()(),c(21,nt,23,9,"tr",51)}if(e&2){let t,r=l.$implicit,s=d(3);a(2),P("aria-expanded",s.expandedStepIds_$()[r.stepId]===!0)("aria-controls","ldp-detail-"+r.stepId)("aria-label","R\xE9szletek: "+r.stepId),a(),ie("-rotate-90",s.expandedStepIds_$()[r.stepId]!==!0),a(3),C(r.stepId),a(2),b("ngClass",ne(14,be,r.step.status==="ok",r.step.status==="failed",r.step.status==="running",r.step.status!=="ok"&&r.step.status!=="failed"&&r.step.status!=="running")),a(),m(" ",r.step.status," "),a(),p(r.step.status==="failed"&&(r.step.errors!=null&&r.step.errors.length)?10:-1),a(),p((t=r.step.testSummary==null||r.step.testSummary.coverage==null?null:r.step.testSummary.coverage.lines)?11:-1,t),a(2),p(r.step.durationSec!==void 0&&r.step.durationSec!==null?13:14),a(3),p(r.step.logLineStart!==void 0&&r.step.logLineEnd!==void 0?16:17),a(3),p(r.step.testSummary?19:20),a(2),p(s.expandedStepIds_$()[r.stepId]?21:-1)}}function at(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"serverRunning:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.serverRunning?"true":"false"," ")}}function lt(e,l){if(e&1&&(o(0,"li")(1,"span",17),n(2,"restartPending:"),i(),n(3),i()),e&2){let t=d();a(3),m(" ",t.restartPending?"true":"false"," ")}}function rt(e,l){if(e&1&&(o(0,"dt",17),n(1,"trimmedAt"),i(),o(2,"dd",61),n(3),i()),e&2){let t=d(2);a(3),C(t.trimInfo.trimmedAt)}}function st(e,l){if(e&1&&(o(0,"dt",17),n(1,"removedLineCount"),i(),o(2,"dd"),n(3),i()),e&2){let t=d(2);a(3),C(t.trimInfo.removedLineCount)}}function dt(e,l){if(e&1&&(o(0,"dt",17),n(1,"fileLineCountAfterTrim"),i(),o(2,"dd"),n(3),i()),e&2){let t=d(2);a(3),C(t.trimInfo.fileLineCountAfterTrim)}}function pt(e,l){if(e&1&&(o(0,"div",34)(1,"h2",35),n(2,"trimInfo"),i(),o(3,"dl",60),c(4,rt,4,1)(5,st,4,1)(6,dt,4,1),i()()),e&2){let t=d();a(4),p(t.trimInfo.trimmedAt?4:-1),a(),p(t.trimInfo.removedLineCount!==void 0?5:-1),a(),p(t.trimInfo.fileLineCountAfterTrim!==void 0?6:-1)}}function _t(e,l){if(e&1&&(o(0,"div",22)(1,"div",23)(2,"h2",24),n(3," Pipeline steps "),i(),o(4,"div",25)(5,"table",26)(6,"thead",27)(7,"tr")(8,"th",28)(9,"span",29),n(10,"R\xE9szletek"),i()(),o(11,"th",30),n(12,"Step"),i(),o(13,"th",30),n(14,"Status"),i(),o(15,"th",30),n(16,"Duration (s)"),i(),o(17,"th",31),n(18,"Log lines"),i(),o(19,"th",32),n(20,"Tests / coverage"),i()()(),o(21,"tbody"),$(22,ot,22,19,null,null,Se),i()()()(),o(24,"div",33)(25,"div",34)(26,"h2",35),n(27,"Phase"),i(),o(28,"p",36),n(29),i()(),o(30,"div",34)(31,"h2",35),n(32,"Flags"),i(),o(33,"ul",37)(34,"li")(35,"span",17),n(36,"pipelineComplete:"),i(),n(37),i(),c(38,at,4,1,"li")(39,lt,4,1,"li"),i()()(),c(40,pt,7,3,"div",34),i()),e&2){let t=l,r=d(2);a(22),I(r.stepTableRows_$()),a(7),C(t.phase),a(8),m(" ",t.pipelineComplete?"true":"false"," "),a(),p(t.serverRunning!==void 0?38:-1),a(),p(t.restartPending!==void 0?39:-1),a(),p(t.trimInfo?40:-1)}}function ct(e,l){if(e&1&&c(0,_t,41,5,"div",22),e&2){let t,r=d();p((t=r.liveDevPipeline_DS.pipelineStatus_$())?0:-1,t)}}var ue=(()=>{class e{snapshotTypeEnum=w;liveDevPipeline_DS=R(ce);stepTableRows_$=this.liveDevPipeline_DS.stepTableRows_$;isAutoRefreshEnabled_$=f(!1);expandedStepIds_$=f({});ngOnInit(){this.liveDevPipeline_DS.loadPage()}ngOnDestroy(){this.liveDevPipeline_DS.stopPolling()}handleSnapshotSelect(t){this.liveDevPipeline_DS.snapshotView_$()!==t&&(this.expandedStepIds_$.set({}),this.liveDevPipeline_DS.setSnapshotView(t))}handleStepExpandToggle(t){let r=t.stepId,s=this.expandedStepIds_$(),_=s[r]===!0,u=q(X({},s),{[r]:!_});this.expandedStepIds_$.set(u)}handleAutoRefreshChange(t){let r=t.target;if(r===null||!(r instanceof HTMLInputElement))return;let s=r.checked;this.isAutoRefreshEnabled_$.set(s),s?this.liveDevPipeline_DS.startPolling():this.liveDevPipeline_DS.stopPolling()}handleRefresh(){this.liveDevPipeline_DS.refresh()}handleRetryLoad(){this.liveDevPipeline_DS.refresh()}static \u0275fac=function(r){return new(r||e)};static \u0275cmp=W({type:e,selectors:[["app-ccap-live-dev-pipeline"]],decls:50,vars:9,consts:[[1,"max-w-5xl","mx-auto","p-3","gt-xs:p-6","text-neutral-100"],[1,"text-xl","gt-xs:text-2xl","font-bold","mb-2","gt-xs:mb-3"],[1,"flex","flex-wrap","gap-3","gt-xs:gap-4","items-center","mb-3","gt-xs:mb-4","rounded-lg","border","border-neutral-700","bg-neutral-900/50","px-3","py-2","gt-xs:px-4","gt-xs:py-2.5","text-sm","text-neutral-300"],[1,"text-neutral-400","text-sm","gt-xs:text-base","mb-4","gt-xs:mb-6"],[1,"bg-neutral-800","px-1","rounded"],[1,"font-medium","text-neutral-300"],[1,"border","border-neutral-700","rounded-lg","px-3","py-3","gt-xs:px-4","gt-xs:py-3","mb-4","gt-xs:mb-5"],[1,"text-xs","gt-xs:text-sm","font-medium","text-neutral-400","px-1"],[1,"flex","flex-wrap","gap-4","gt-xs:gap-6","items-center"],[1,"flex","items-center","gap-2","cursor-pointer","text-sm","gt-xs:text-base","text-neutral-300","select-none"],["type","radio","name","liveDevPipelineSnapshot",1,"border-neutral-600","bg-neutral-800","text-neonCyan","focus:ring-neonCyan",3,"change","value","checked"],[1,"text-xs"],[1,"flex","flex-wrap","gap-4","gt-xs:gap-6","items-center","mb-4","gt-xs:mb-5"],["type","button",1,"px-3","py-1.5","gt-xs:px-4","gt-xs:py-2","text-sm","gt-xs:text-base","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700","disabled:opacity-50","transition-colors",3,"click","disabled"],["type","checkbox",1,"rounded","border-neutral-600","bg-neutral-800","text-neonCyan","focus:ring-neonCyan",3,"change","checked"],[1,"text-neutral-400"],[1,"rounded-lg","border","border-amber-600/50","bg-amber-950/30","px-4","py-3","text-amber-100","text-sm","gt-xs:text-base","max-w-3xl"],[1,"text-neutral-500"],["sourceLabelOverride","Live Development Pipeline",1,"mb-4","block","max-w-3xl",3,"error"],["type","button",1,"px-3","py-1.5","text-sm","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700","transition-colors",3,"click"],[1,"font-medium","text-amber-200","mb-1"],[1,"text-neutral-300","whitespace-pre-wrap"],[1,"flex","flex-col","gap-4","gt-xs:gap-6"],[1,"rounded-lg","border","border-neutral-700","overflow-hidden"],[1,"text-sm","font-semibold","text-neutral-400","uppercase","tracking-wide","px-3","py-2","bg-neutral-900/60","border-b","border-neutral-700"],[1,"overflow-x-auto"],[1,"w-full","text-left","text-sm","text-neutral-300"],[1,"bg-neutral-900/80","text-neutral-400","text-xs","uppercase"],["scope","col",1,"px-1","py-2","w-10","font-medium"],[1,"sr-only"],["scope","col",1,"px-3","py-2","font-medium"],["scope","col",1,"px-3","py-2","font-medium","hidden","sm:table-cell"],["scope","col",1,"px-3","py-2","font-medium","hidden","md:table-cell"],[1,"grid","grid-cols-1","sm:grid-cols-2","gap-3","gt-xs:gap-4"],[1,"rounded-lg","border","border-neutral-700","bg-neutral-900/40","p-3","gt-xs:p-4"],[1,"text-sm","font-semibold","text-neutral-400","uppercase","tracking-wide","mb-2"],[1,"text-lg","font-mono","text-ccapAccent"],[1,"text-sm","text-neutral-300","space-y-1"],[1,"border-t","border-neutral-800","hover:bg-neutral-800/40"],[1,"px-1","py-2","align-middle","w-10"],["type","button",1,"p-1.5","rounded-md","text-neutral-400","hover:text-ccapAccent","hover:bg-neutral-800","transition-colors","focus:outline-none","focus:ring-2","focus:ring-neonCyan/50",3,"click"],["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","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"px-3","py-2","font-mono","text-ccapAccent"],[1,"px-3","py-2"],[3,"ngClass"],[1,"ml-1.5","rounded","px-1.5","py-0.5","text-xs","font-medium","bg-red-900/30","text-red-300"],["aria-hidden","true",1,"ml-1.5","inline-block","w-2.5","h-2.5","rounded-full","align-middle",3,"class"],[1,"px-3","py-2","font-mono"],[1,"px-3","py-2","font-mono","text-xs","hidden","sm:table-cell"],[1,"px-3","py-2","text-xs","hidden","md:table-cell","align-top"],[1,"border-t","border-neutral-800","bg-neutral-950/50"],["aria-hidden","true",1,"ml-1.5","inline-block","w-2.5","h-2.5","rounded-full","align-middle"],[1,"text-neutral-500","mt-1","flex","items-center","gap-1.5"],["aria-hidden","true",1,"inline-block","w-2","h-2","rounded-full"],[1,"font-mono","font-semibold"],["colspan","6",1,"p-0","align-top"],[1,"px-3","py-4","gt-xs:px-5","gt-xs:py-5","border-t","border-neutral-800/80","space-y-4"],["aria-label","Step meta"],[1,"text-xs","font-semibold","text-neutral-500","uppercase","tracking-wide","mb-2"],[1,"grid","grid-cols-1","sm:grid-cols-2","gap-x-4","gap-y-1","text-sm","text-neutral-300"],[1,"font-mono"],[1,"font-mono","text-xs"],["aria-label","Test results"],["aria-label","Coverage"],["aria-label","Pipeline log errors"],["aria-label","Test failures"],["aria-label","Step failed hint"],[1,"break-all"],[1,"text-sm","text-neutral-300","space-y-1","list-none","pl-0"],[1,"text-xs","font-semibold","text-cyan-300/90","uppercase","tracking-wide","mb-2"],[1,"grid","grid-cols-2","sm:grid-cols-4","gap-2","gt-xs:gap-3","max-w-3xl"],[1,"rounded-md","border","border-cyan-900/50","bg-neutral-900/60","px-2","py-2","gt-xs:px-3","gt-xs:py-2.5"],[1,"text-[10px]","gt-xs:text-xs","font-medium","text-neutral-500","uppercase","tracking-wide","mb-1","flex","items-center","gap-1.5"],[1,"text-lg","gt-xs:text-xl","font-mono","font-semibold"],[1,"text-[10px]","gt-xs:text-xs","text-neutral-500","mt-0.5","font-mono"],[1,"text-xs","font-semibold","text-red-300","uppercase","tracking-wide","mb-2"],[1,"list-none","space-y-2","text-sm","text-red-100/95"],[1,"border-l-2","border-red-600/50","pl-2","whitespace-pre-wrap","break-words"],[1,"text-sm","text-red-100/95","border-l-2","border-red-600/50","pl-2"]],template:function(r,s){if(r&1&&(o(0,"div",0)(1,"h1",1),n(2,"Live Development Pipeline"),i(),c(3,Te,5,4,"div",2),o(4,"p",3),n(5," Dev pipeline meta a szerver "),o(6,"code",4),n(7,"logs/live-dev-pipeline/status.json"),i(),n(8," f\xE1jlj\xE1b\xF3l; az "),o(9,"strong",5),n(10,"El\u0151z\u0151 fut\xE1s"),i(),n(11," opci\xF3 a "),o(12,"code",4),n(13,"status-previous.json"),i(),n(14," snapshot-ot t\xF6lti. Alapb\xF3l nincs periodikus lek\xE9r\xE9s; a "),o(15,"strong",5),n(16,"Friss\xEDt\xE9s"),i(),n(17," gomb azonnali \xFAjrat\xF6lt\xE9st k\xE9r. Opcion\xE1lisan bekapcsolhat\xF3 automatikus friss\xEDt\xE9s kb. percenk\xE9nt. A "),o(18,"strong",5),n(19,"pipeline step"),i(),n(20," sorok lenyithat\xF3k \u2014 r\xE9szletes meta, teszt, coverage \xE9s hiba inf\xF3 a sor alatt. "),i(),o(21,"fieldset",6)(22,"legend",7),n(23,"Megjelen\xEDtett snapshot"),i(),o(24,"div",8)(25,"label",9)(26,"input",10),E("change",function(){return s.handleSnapshotSelect(s.snapshotTypeEnum.current)}),i(),o(27,"span"),n(28,"Aktu\xE1lis ("),o(29,"code",11),n(30,"status.json"),i(),n(31,")"),i()(),o(32,"label",9)(33,"input",10),E("change",function(){return s.handleSnapshotSelect(s.snapshotTypeEnum.previous)}),i(),o(34,"span"),n(35,"El\u0151z\u0151 fut\xE1s ("),o(36,"code",11),n(37,"status-previous.json"),i(),n(38,")"),i()()()(),o(39,"div",12)(40,"button",13),E("click",function(){return s.handleRefresh()}),n(41),i(),o(42,"label",9)(43,"input",14),E("change",function(u){return s.handleAutoRefreshChange(u)}),i(),o(44,"span"),n(45,"Automatikus friss\xEDt\xE9s (kb. percenk\xE9nt)"),i()()(),c(46,Le,3,1)(47,we,2,0,"p",15)(48,$e,5,1,"div",16)(49,ct,1,1),i()),r&2){let _;a(3),p((_=s.liveDevPipeline_DS.pipelineStatus_$())?3:-1,_),a(23),b("value",s.snapshotTypeEnum.current)("checked",s.liveDevPipeline_DS.snapshotView_$()===s.snapshotTypeEnum.current),a(7),b("value",s.snapshotTypeEnum.previous)("checked",s.liveDevPipeline_DS.snapshotView_$()===s.snapshotTypeEnum.previous),a(7),b("disabled",s.liveDevPipeline_DS.loading_$()),a(),m(" ",s.liveDevPipeline_DS.loading_$()?"Bet\xF6lt\xE9s\u2026":"Friss\xEDt\xE9s"," "),a(2),b("checked",s.isAutoRefreshEnabled_$()),a(3),p(s.liveDevPipeline_DS.loadError_$()?46:s.liveDevPipeline_DS.loading_$()&&!s.liveDevPipeline_DS.pipelineStatus_$()?47:s.liveDevPipeline_DS.unavailableReason_$()&&!s.liveDevPipeline_DS.pipelineStatus_$()?48:49)}},dependencies:[ae,M,pe,de],encapsulation:2})}return e})();var mt=[{path:"",pathMatch:"full",component:ue}],Nt=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=Y({type:e});static \u0275inj=U({imports:[le,re.forChild(mt),M]})}return e})();export{Nt as LiveDevPipeline_Module};
|
|
2
|
+
//# sourceMappingURL=live-dev-pipeline.module-B66G4DQO.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-
|
|
1
|
+
import{a as Z}from"./chunk-E6C6MLAE.js";import"./chunk-PIQK6O5O.js";import{a as v}from"./chunk-WW4VCBEU.js";import{j as K,k as S}from"./chunk-ROLHXND4.js";import"./chunk-5UPNU54P.js";import"./chunk-RPTXBYC4.js";import{I as J}from"./chunk-6TE4LLRT.js";import{$a as z,C as m,D as F,E as j,Fa as l,Ga as f,Ha as b,Hb as Y,J as $,K as R,Kb as H,L as N,Z as i,a as k,aa as _,ab as U,b as O,da as h,ga as c,hb as T,ia as L,k as y,ka as P,la as x,oa as M,p as E,pa as B,qa as s,ra as r,sa as g,ua as w,ub as V,va as u,wa as d,xb as G,y as C,z as A}from"./chunk-TBMJSIBB.js";var X=(()=>{class o{baseUrl=`${J.api.baseUrl}/logs`;http=m(G);getLlmDebugLog(){let e=`${this.baseUrl}/get-entries`;return E(this.http.get(e))}clearLlmDebugLog(){let e=`${this.baseUrl}/clear-log`;return E(this.http.delete(e))}deleteRun(e){let n=`${this.baseUrl}/delete-run/${e}`;return E(this.http.delete(n))}static \u0275fac=function(n){return new(n||o)};static \u0275prov=C({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var W=(()=>{class o{entries_$=_([]);loading_$=_(!1);loadError_$=_(null);logs_AS=m(X);loadLlmDebugLog(){return y(this,null,function*(){this.loading_$.set(!0),this.loadError_$.set(null);try{let e=yield this.logs_AS.getLlmDebugLog();this.entries_$.set(e.entries??[])}catch(e){this.loadError_$.set(e),this.entries_$.set([])}finally{this.loading_$.set(!1)}})}clearLog(){return y(this,null,function*(){this.loadError_$.set(null);try{yield this.logs_AS.clearLlmDebugLog(),yield this.loadLlmDebugLog()}catch(e){this.loadError_$.set(e)}})}deleteRun(e){return y(this,null,function*(){this.loadError_$.set(null);try{yield this.logs_AS.deleteRun(e),yield this.loadLlmDebugLog()}catch(n){this.loadError_$.set(n)}})}static \u0275fac=function(n){return new(n||o)};static \u0275prov=C({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();function Q(o,p){if(o&1&&g(0,"app-ccap-error-display",8),o&2){let e=d();c("error",e.logs_DS.loadError_$())}}function ee(o,p){o&1&&(s(0,"p",9),l(1,"Bet\xF6lt\xE9s\u2026"),r())}function te(o,p){o&1&&(s(0,"p",10),l(1,"Nincs log bejegyz\xE9s, vagy a f\xE1jl log nincs enged\xE9lyezve."),r())}function ne(o,p){if(o&1){let e=w();s(0,"div",15),g(1,"span",31),s(2,"span",32),l(3),r(),s(4,"button",33),u("click",function(){$(e);let t=d().$index,a=d(2);return R(a.deleteRun(a.getRunIndexForEntry(t)))}),l(5," T\xF6rl\xE9s "),r(),g(6,"span",31),r()}if(o&2){let e=d().$index,n=d(2);i(3),b("Run ",n.getRunIndexForEntry(e),""),i(),c("disabled",n.logs_DS.loading_$())}}function oe(o,p){if(o&1&&(s(0,"span",20),l(1),r()),o&2){let e=d().$implicit,n=d(2);i(),f(n.getLineRangeText(e))}}function ie(o,p){if(o&1&&(s(0,"span",21),l(1),z(2,"ccapRelativeTime"),r()),o&2){let e=d().$implicit;i(),b(" \xC9rkezett: ",U(2,1,e.timestamp),"")}}function re(o,p){if(o&1&&(s(0,"div",30)(1,"pre",34),l(2),r()()),o&2){let e=d().$implicit,n=d(2);i(),L("text-red-200",n.isErrorEntry(e))("text-neutral-300",!n.isErrorEntry(e)),i(),f(n.formatBody(e))}}function se(o,p){if(o&1){let e=w();h(0,ne,7,2,"div",15),s(1,"div",16)(2,"div",17)(3,"div",18)(4,"span",19),l(5),r(),h(6,oe,2,1,"span",20)(7,ie,3,3,"span",21),g(8,"app-s-copy-button",22),r(),s(9,"div",23)(10,"span",24),l(11),r(),s(12,"p",25),l(13),r()()(),s(14,"div",26)(15,"button",27),u("click",function(){let t=$(e).$index,a=d(2);return R(a.toggleExpanded(t))}),N(),s(16,"svg",28),g(17,"polyline",29),r(),l(18),r(),h(19,re,3,5,"div",30),r()()}if(o&2){let e=p.$implicit,n=p.$index,t=d(2);x(t.isRunStart(e)?0:-1),i(),L("border-neonCyan",t.toolResultIndexSet_$().has(n))("shadow-neon-glow-cyan",t.toolResultIndexSet_$().has(n))("border-neonOrange",(t.errorRelatedIndexSet_$().has(n)||t.isErrorEntry(e))&&!t.toolResultIndexSet_$().has(n))("shadow-neon-glow-orange",(t.errorRelatedIndexSet_$().has(n)||t.isErrorEntry(e))&&!t.toolResultIndexSet_$().has(n))("border-neonDefault",!t.toolResultIndexSet_$().has(n)&&!t.errorRelatedIndexSet_$().has(n)&&!t.isErrorEntry(e)),i(4),f(t.getEntryEmoji(e)),i(),x(t.getLineRangeText(e)?6:-1),i(),x(e.timestamp?7:-1),i(),c("content",t.getEntryReferenceText(e))("buttonTitle",t.getCopyButtonTitle(e)),i(3),f(t.getEntryEmoji(e)),i(2),f(e.header),i(3),L("-rotate-90",!t.isExpanded(n)),i(2),b(" ",t.isExpanded(n)?"Body elrejt\xE9se":"Body megjelen\xEDt\xE9se"," "),i(),x(t.isExpanded(n)?19:-1)}}function le(o,p){if(o&1&&(s(0,"div",11),M(1,se,20,22,"div",14,P().trackByIndex,!0),r()),o&2){let e=d();i(),B(e.logs_DS.entries_$())}}var ae={ANALYZE:"\u{1F4CB}",AGENTIC_LOOP:"\u{1F916}",TOOL_DESCRIPTION:"\u{1F527}",TOOL_RESULT:"\u{1F4E4}",TOOL_RESULT_CHUNKING:"\u2702\uFE0F",TOOL_ERROR_RETRY:"\u26A0\uFE0F",Run_FINALIZATION:"\u{1F3C1}",CHAT_HISTORY_COMPACTING:"\u{1F4DC}",EXECUTION_HISTORY_COMPACTING:"\u{1F4DC}",SOUL_COMPACTING:"\u{1F9E0}",CONTEXT_COMPACTING:"\u{1F5C2}\uFE0F",SELECT_RELEVANT_CHUNKS:"\u{1F50D}"},de="\u{1F4E5}",q=(()=>{class o{logs_DS=m(W);expandedIndex_$=_({});errorRelatedIndexSet_$=T(()=>{let e=this.logs_DS.entries_$(),n=new Set;for(let t=0;t<e.length;t++)this.isErrorRelatedEntry(e[t])&&n.add(t);return n});toolResultIndexSet_$=T(()=>{let e=this.logs_DS.entries_$(),n=new Set;for(let t=0;t<e.length;t++)this.isToolResultEntry(e[t])&&n.add(t);return n});ngOnInit(){this.logs_DS.loadLlmDebugLog()}refresh(){this.logs_DS.loadLlmDebugLog()}isExpanded(e){return this.expandedIndex_$()[e]===!0}toggleExpanded(e){this.expandedIndex_$.update(n=>O(k({},n),{[e]:!n[e]}))}expandAll(){let e=this.logs_DS.entries_$(),n={};for(let t=0;t<e.length;t++)n[t]=!0;this.expandedIndex_$.set(n)}collapseAll(){this.expandedIndex_$.set({})}expandResultsOnly(){let e=this.logs_DS.entries_$(),n={};for(let t=0;t<e.length;t++)this.isResultContentEntry(e[t])&&(n[t]=!0);this.expandedIndex_$.set(n)}formatBody(e){let n=e.body?.trim()??"";if(!n)return"";if(e.bodyIsJson===!0||n.startsWith("{")){let t=K.tryParseStrict({text:e.body,contextLabel:"CCAP_Logs_formatBody"});return t.ok?JSON.stringify(t.value,null,2).replace(/\\n/g,`
|
|
2
2
|
`).replace(/\\t/g," "):e.body}return e.body}trackByIndex(e){return e}isRunStart(e){let n=e.header??"";return n.includes("[LLM] ANALYZE")&&n.includes("full conversation")}isErrorEntry(e){return e.isError===!0?!0:(e.header??"").includes("[ERROR]")}isErrorRelatedEntry(e){return((e.header??"").match(/\[LLM\]\s+([A-Z_]+)\s+\|/)?.[1]??"")==="TOOL_ERROR_RETRY"}isToolResultEntry(e){return(e.header??"").includes("[LLM] TOOL_RESULT")}getEntryEmoji(e){let n=e.header??"";if(n.includes("[ERROR]"))return"\u274C";let a=n.match(/\[LLM\]\s+([A-Z_]+)\s+\|/)?.[1]??"";return ae[a]??de}getLineRangeText(e){let n=e.startLine,t=e.endLine;return n==null||t==null?"":n===t?`sor ${n}`:`sor ${n}\u2013${t}`}isResultContentEntry(e){return(e.header??"").includes("result content")}getEntryReferenceText(e){let n=e.header??"",t=this.getLineRangeText(e),a=t?`${n} (${t})`:n;if(this.isResultContentEntry(e)){let D=this.formatBody(e);if(D)return`${a}
|
|
3
3
|
|
|
4
4
|
${D}`}return a}getCopyButtonTitle(e){return this.isResultContentEntry(e)?"Elem \xE9s tartalom m\xE1sol\xE1sa":"Elem neve \xE9s sor tartom\xE1ny m\xE1sol\xE1sa"}getRunIndexForEntry(e){let n=this.logs_DS.entries_$(),t=0;for(let a=0;a<=e&&a<n.length;a++)this.isRunStart(n[a])&&t++;return t>0?t-1:0}clearLog(){this.logs_DS.clearLog()}deleteRun(e){this.logs_DS.deleteRun(e)}static \u0275fac=function(n){return new(n||o)};static \u0275cmp=F({type:o,selectors:[["app-ccap-logs"]],decls:26,vars:8,consts:[[1,"max-w-4xl","mx-auto","p-3","gt-xs:p-6","text-neutral-100"],[1,"text-xl","gt-xs:text-2xl","font-bold","mb-4","gt-xs:mb-6"],[1,"text-neutral-400","text-sm","gt-xs:text-base","mb-4","gt-xs:mb-6"],[1,"bg-neutral-800","px-1","rounded"],[1,"flex","flex-wrap","gap-1.5","gt-xs:gap-2","items-center","mb-3","gt-xs:mb-4"],["type","button",1,"px-3","py-1.5","gt-xs:px-4","gt-xs:py-2","text-sm","gt-xs:text-base","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700","disabled:opacity-50","transition-colors",3,"click","disabled"],["type","button",1,"px-3","py-1.5","gt-xs:px-4","gt-xs:py-2","text-sm","gt-xs:text-base","border","border-neonDefault","rounded","text-neutral-300","hover:bg-neutral-700","disabled:opacity-50","transition-colors",3,"click","disabled"],["type","button",1,"px-3","py-1.5","gt-xs:px-4","gt-xs:py-2","text-sm","gt-xs:text-base","border","border-red-500/70","rounded","text-red-200","hover:bg-red-900/60","disabled:opacity-50","transition-colors",3,"click","disabled"],["sourceLabelOverride","LLM debug log",1,"mb-4","block","max-w-3xl",3,"error"],[1,"text-neutral-400"],[1,"text-neutral-500"],[1,"space-y-2","gt-xs:space-y-3"],[1,"pt-6"],["routerLink","/",1,"px-4","py-2","border","border-neonCyan","rounded","text-neutral-300","hover:bg-neutral-700"],[1,"p-2.5","gt-xs:p-4","bg-neutral-800/50","border","rounded-lg",3,"border-neonCyan","shadow-neon-glow-cyan","border-neonOrange","shadow-neon-glow-orange","border-neonDefault"],["aria-hidden","true",1,"flex","items-center","gap-2","gt-xs:gap-3","py-2","gt-xs:py-4","min-w-0"],[1,"p-2.5","gt-xs:p-4","bg-neutral-800/50","border","rounded-lg"],[1,"min-w-0","flex","flex-col","gap-2","gt-xs:flex-row","gt-xs:items-start","gt-xs:justify-between","gt-xs:gap-2"],[1,"flex","flex-wrap","items-center","gap-x-1.5","gap-y-1","gt-xs:gap-2","order-1","gt-xs:order-2","gt-xs:ml-2","gt-xs:flex-nowrap","gt-xs:justify-end","w-full","gt-xs:w-auto","shrink-0"],["aria-hidden","true",1,"text-base","gt-xs:text-lg","shrink-0","gt-xs:hidden"],[1,"text-[11px]","gt-xs:text-xs","text-neutral-500","font-mono","whitespace-nowrap"],[1,"text-[11px]","gt-xs:text-xs","text-neutral-500","min-w-0","max-w-full","gt-xs:max-w-none"],[3,"content","buttonTitle"],[1,"flex","items-start","gap-2","min-w-0","flex-1","order-2","gt-xs:order-1","w-full","gt-xs:w-auto"],["aria-hidden","true",1,"text-base","gt-xs:text-lg","shrink-0","hidden","gt-xs:inline"],[1,"text-neutral-300","font-mono","text-xs","gt-xs:text-sm","break-all","min-w-0","w-full"],[1,"mt-1.5","gt-xs:mt-2"],["type","button",1,"text-neutral-400","hover:text-neutral-200","text-xs","gt-xs:text-sm","flex","items-center","gap-1",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-150"],["points","6 9 12 15 18 9"],["title","\xC1tm\xE9retezhet\u0151: h\xFAzd az als\xF3 jobb sz\xE9let",1,"ccap-logs-body-wrapper","mt-1","rounded","bg-neutral-900","resize-y","overflow-auto","min-h-32","max-h-[80vh]","h-96","border","border-neutral-700/50"],[1,"flex-1","min-w-0","h-px","border-t-2","border-neonCyan/60","shadow-neon-glow-cyan"],[1,"text-[11px]","gt-xs:text-xs","font-medium","uppercase","tracking-wider","text-neonCyan/90","px-2","py-0.5","gt-xs:px-3","gt-xs:py-1","shrink-0","rounded-full","border","border-neonCyan/50","bg-neutral-900/80","shadow-neon-glow-cyan"],["type","button",1,"px-1.5","py-0.5","gt-xs:px-2","gt-xs:py-1","text-[11px]","gt-xs:text-xs","border","border-red-500/70","rounded","text-red-300","hover:bg-red-900/40","disabled:opacity-50","transition-colors","shrink-0",3,"click","disabled"],[1,"p-1.5","gt-xs:p-2","h-full","min-h-0","overflow-auto","text-xs","font-mono","whitespace-pre-wrap","break-words"]],template:function(n,t){n&1&&(s(0,"div",0)(1,"h1",1),l(2,"LLM Debug Log"),r(),s(3,"p",2),l(4," A szerver "),s(5,"code",3),l(6,"logs/llm-debug.log"),r(),l(7," f\xE1jlj\xE1nak tartalma, bejegyz\xE9senk\xE9nt t\xF6rdelve. A body (JSON vagy sz\xF6veg) b\u0151v\xEDthet\u0151. "),r(),s(8,"div",4)(9,"button",5),u("click",function(){return t.refresh()}),l(10),r(),s(11,"button",6),u("click",function(){return t.expandAll()}),l(12," \xD6sszes kinyit\xE1sa "),r(),s(13,"button",6),u("click",function(){return t.collapseAll()}),l(14," \xD6sszes becsuk\xE1sa "),r(),s(15,"button",6),u("click",function(){return t.expandResultsOnly()}),l(16," Csak resultok kinyit\xE1sa "),r(),s(17,"button",7),u("click",function(){return t.clearLog()}),l(18," Log ki\xFCr\xEDt\xE9se "),r()(),h(19,Q,1,1,"app-ccap-error-display",8)(20,ee,2,0,"p",9)(21,te,2,0,"p",10)(22,le,3,0,"div",11),s(23,"div",12)(24,"a",13),l(25," Vissza "),r()()()),n&2&&(i(9),c("disabled",t.logs_DS.loading_$()),i(),b(" ",t.logs_DS.loading_$()?"Bet\xF6lt\xE9s\u2026":"Friss\xEDt\xE9s"," "),i(),c("disabled",t.logs_DS.loading_$()||t.logs_DS.entries_$().length===0),i(2),c("disabled",t.logs_DS.loading_$()||t.logs_DS.entries_$().length===0),i(2),c("disabled",t.logs_DS.loading_$()||t.logs_DS.entries_$().length===0),i(2),c("disabled",t.logs_DS.loading_$()||t.logs_DS.entries_$().length===0),i(2),x(t.logs_DS.loadError_$()?19:-1),i(),x(t.logs_DS.loading_$()&&t.logs_DS.entries_$().length===0?20:t.logs_DS.entries_$().length===0?21:22))},dependencies:[Y,S,v,Z],encapsulation:2})}return o})();var pe=[{path:"",pathMatch:"full",component:q}],Me=(()=>{class o{static \u0275fac=function(n){return new(n||o)};static \u0275mod=j({type:o});static \u0275inj=A({imports:[V,H.forChild(pe),S,v]})}return o})();export{Me as Logs_Module};
|
|
5
|
-
//# sourceMappingURL=logs.module-
|
|
5
|
+
//# sourceMappingURL=logs.module-F7SAEBD3.js.map
|